Kann ich mehrere location zur gleichen externen hive-Tabelle?
Ich verarbeiten muss, die Sie mehrere Monate von Daten gleichzeitig. Also, ist es eine option, um Punkt mehrere Ordner zu der externen Tabelle?
z.B.
Create external table logdata(col1 string, col2 string........) location s3://logdata/april, s3://logdata/march
- Ich habe das vorher nicht getan, aber ich denke, Sie können join-operation, um zu erreichen, dass. Eine weitere option kann mithilfe Konzept der Aussicht wird es ermöglichen, die Berichterstattung Zeug auch einfach, da Sie nur anzeigen müssen, sehen Ihre ursprünglichen Tabellen. Lassen Sie mich wissen, ob das hilft oder Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfache Antwort: Nein, die
location
von einem Bienenstockexternal
Tabelle während der Erstellung, um eindeutig zu sein, erforderlich ist dies durch die metastore zu verstehen, wo Ihre Tabelle Leben.Dass gesagt wird, können Sie wahrscheinlich Weg mit Hilfe von Partitionen: Sie können angeben, eine
location
für jede der Partitionen, die scheint zu sein, was Sie wollen letztlich, da Sie die Aufteilung nach Monat.So erstellen Sie Ihre Tabelle wie diese:
Dann können Sie Partitionen hinzufügen, wie dies:
Tun Sie dies für jeden Monat, und jetzt können Sie Ihre Abfrage-Tabelle angeben, welche partition, die Sie wollen, und Bienenstock werden nur die Verzeichnisse, für die Sie tatsächlich wünschen, dass Daten (zum Beispiel, wenn Sie nur die Verarbeitung von april bis Juni Hive nicht laden kann)
select * from logdata where month='april'
Ich habe dein Szenario. Ich denke, man kann erreichen, dass durch die Verwendung von mehreren laden inpath-Anweisungen für die Aktivierung mehrerer Standorte .
Unten sind die Schritte, die ich nahm für den test, lief ich.
Lassen Sie mich wissen, wenn dies nicht für Sie arbeiten
EDIT: ich nur die Daten überprüft hat, wird immer verschoben, in diesem Fall in das hive-warehouse Gegensatz zu dem Konzept der externen Tabelle Daten Links an seiner ursprünglichen Position, die unten gezeigt:
Ich bin derzeit auf der Suche nach dem Thema hier und wird wieder einmal gemacht.
NEIN, der Ort muss eine einzige Verzeichnis. Jedoch, Sie können ändern Standort-zu-Punkt, um mehrere Verzeichnisse zu erstrecken. Aber, wenn Sie query-Tabelle, es wird ein Fehler sein.
Beispiel:
1. Verändern Sie die Lage der Tabelle, wie unten. Ich trat zwei hdfs-Verzeichnissen, getrennt durch': 'versuchte ',' und ';'. Es war ein Erfolg.
Haben Sie einen Blick auf SymlinkTextInputFormat /https://issues.apache.org/jira/browse/HIVE-1272. Denke, dass könnte dein problem lösen. Müssen nur zu halten eine separate text-Datei mit allen Standorten!
Siehe auch https://issues.apache.org/jira/browse/HIVE-951 das ist nicht gelöst, aber wäre eine Lösung!