2013-06-10 7 views
5

lässt sich sagen, ich erstellte Hive externe Tabelle "myTable" aus der Datei myFile.csv (in HDFS).Aktualisierung Hive externe Tabelle mit HDFS Änderungen

myFile.csv wird jeden Tag geändert, dann bin ich daran interessiert "myTable" auch einmal am Tag zu aktualisieren.

Gibt es irgendeine HiveQL-Abfrage, die besagt, die Tabelle jeden Tag zu aktualisieren?

Vielen Dank.

P.S.

Ich würde gerne wissen, ob es auf die gleiche Weise mit Verzeichnissen funktioniert: sagen wir, ich erstelle Hive-Partition aus dem HDFS-Verzeichnis "myDir", wenn "myDir" 10 Dateien enthält. Am nächsten Tag enthält "myDIr" 20 Dateien (10 Dateien wurden hinzugefügt). Soll ich die Hive-Partition aktualisieren?

Antwort

6

Es gibt grundsätzlich zwei Arten von Tabellen in Hive.

Eins ist verwaltete Tabelle, die von einem Hive-Lager verwaltet wird, wenn Sie eine Tabelle erstellen, werden Daten in das interne Warehouse kopiert. Sie can not have latest data in the query output.

Andere ist externe Tabelle, in der Bienenstock will not copy its data to internal warehouse.

Wenn Sie also eine Abfrage für eine Tabelle auslösen, ruft sie Daten aus der Datei ab.

SO können Sie sogar die neuesten Daten in der Abfrage-Ausgabe haben.

That is one of the goals of external table.

Sie können sogar den Tisch fallen lassen und die Daten nicht verloren geht.

+0

danke für unsere antwort! – sunny

+0

Ich würde gerne wissen, ob es auf die gleiche Weise mit Verzeichnissen funktioniert: lässt sich sagen, ich erstelle Hive-Partition von HDFS-Verzeichnis "myDir", wenn "myDir" 10 Dateien enthält. nächsten Tag "myDIr" enthält 20 Dateien (10 Dateien wurden hinzugefügt). Soll ich die Hive-Partition aktualisieren? – sunny

+0

ja sollte es funktionieren –

4

Wenn Sie Ihrer Tabelle create-Anweisung eine LOCATION '/path/to/myFile.csv'-Klausel hinzufügen, müssen Sie nichts in Hive aktualisieren. Es wird immer die neueste Version der Datei in Abfragen verwenden.

Verwandte Themen