2013-06-10 14 views
5

pozwala powiedzieć, stworzyłem zewnętrzny stół Hive "myTable" z pliku myFile.csv (znajdujący się w HDFS).aktualizowanie tabeli zewnętrznej Hive ze zmianami HDFS

Plik myFile.csv jest zmieniany codziennie, a następnie jestem zainteresowany aktualizacją "myTable" również raz dziennie.

Czy istnieje zapytanie HiveQL, które mówi, aby aktualizować tabelę codziennie?

Dziękuję.

P.S.

Chciałbym wiedzieć, czy działa tak samo z katalogami: powiedzmy, tworzę partycję Hive z katalogu HDFS "myDir", gdy "myDir" zawiera 10 plików. Następnego dnia "myDIr" zawiera 20 plików (dodano 10 plików). Czy powinienem zaktualizować partycję Hive?

Odpowiedz

6

Istnieją zasadniczo dwa rodzaje tabel w Ulu.

Jedna to zarządzana tabela zarządzana przez magazyn ula, gdy zostanie utworzona tabela danych zostanie skopiowana do wewnętrznego magazynu. You can not have latest data in the query output.

Inny jest zewnętrzny stół, w którym ul will not copy its data to internal warehouse.

Tak więc za każdym razem, gdy wywołujesz zapytanie w tabeli, pobiera dane z pliku.

Dzięki temu można nawet mieć najnowsze dane w wynikach zapytania.

That is one of the goals of external table.

Można nawet usunąć tabelę, a dane nie zostaną utracone.

+0

dziękuję za odpowiedź! – sunny

+0

Chciałbym wiedzieć, czy działa to tak samo z katalogami: Powiedzmy, że tworzę partycję Hive z katalogu HDFS "myDir", kiedy "myDir" zawiera 10 plików. następnego dnia "myDIr" zawiera 20 plików (dodano 10 plików). Czy powinienem zaktualizować partycję Hive? – sunny

+0

tak powinno działać –

4

Jeśli dodasz klauzulę LOCATION '/path/to/myFile.csv' do instrukcji tworzenia tabeli, nie powinieneś aktualizować niczego w Hive. Zawsze będzie używać najnowszej wersji pliku w zapytaniach.

Powiązane problemy