Wie man MSCK-REPARATUR-TABELLE ausführen, die automatisch in der AWS-Athena
Ich habe eine spark-batch-job ausgeführt wird, von Stunde zu Stunde. Jeder Lauf erzeugt und speichert neue Daten in S3
mit dem directory naming pattern DATA/YEAR=?/MONTH=?/DATE=?/datafile
.
Nach dem hochladen der Daten zu S3
, ich möchte Sie untersuchen mithilfe Athena
. Mehr möchte ich visualisieren Sie in QuickSight
durch die Verbindung zu Athena als Datenquelle.
Das problem ist, dass nach jedem Lauf meine Funke batch, die neu generierten Daten gespeichert S3
nicht erkannt werden, werden von Athena, wenn ich manuell die Abfrage ausführen MSCK REPARI TABLE
.
Ist es ein Weg, um Athena zu aktualisieren, die Daten automatisch, so dass ich eine Vollautomatische Daten-Visualisierungs-pipeline?
InformationsquelleAutor YangZhao | 2017-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Reihe von Möglichkeiten, um den Zeitplan dieser Aufgabe. Wie planen Sie Ihre Arbeitsabläufe? Verwenden Sie ein system wie Luftstrom, Luigi, Askaban, cron, oder mit einem AWS Data pipeline?
Von diesen, sollten Sie in der Lage, das Feuer aus den folgenden CLI-Befehl.
$ aws athena start-query-execution --query-string "MSCK REPAIR TABLE some_database.some_table" --result-configuration "OutputLocation=s3://SOMEPLACE"
Andere option wäre AWS Lambda. Sie hätten eine Funktion, die nennt
MSCK REPAIR TABLE some_database.some_table
in Antwort auf einen neuen upload auf S3.Beispiel Lambda-Funktion kann geschrieben werden als Z:
Würden Sie dann konfigurieren Sie einen trigger für die Ausführung Ihrer Lambda-Funktion, wenn neue Daten Hinzugefügt werden, werden unter der
DATA/
Präfix in Ihrem Eimer.Letztlich explizit Neuerstellen der Partitionen nach dem ausführen deiner Funke Job mit einem job-scheduler hat den Vorteil, dass Sie selbst zu dokumentieren. Auf der anderen Seite, AWS Lambda ist bequem für Aufträge wie diesen.
MSCK REPAIR TABLE
BefehlIch verwendet eine geplante AWS-Crawler durchforsten die Datenbank um die Tabelle zu aktualisieren. Was ist Ihre Meinung zu dieser Lösung?
Das kann funktionieren. Die nette Sache über die Verwendung einer Lambda-Funktion ist, dass die Lambda reagieren können dynamisch auf Ereignisse, wie das hinzufügen einer Datei zu einem S3 im Fall der Athena. Die schlechte Sache über Lambda-Funktionen ist, dass Sie etwas verwirrend sein, zu verwalten, von einem continuous integration und Versionskontrolle Perspektive.
InformationsquelleAutor Zerodf
Sollten Sie ausgeführt werden
ADD PARTITION
statt:Fügt eine neu erstellte partition aus Ihrem
S3
LageAthena nutzt Hive zum partitionieren von Daten.
Erstellen Sie eine Tabelle mit Partitionen, müssen Sie es während der
CREATE TABLE
- Anweisung. VerwendenPARTITIONED BY
zum definieren der Schlüssel, die Daten zu partitionieren.InformationsquelleAutor Tony Marti