Możesz zdecydowanie dołączyć dane do istniejącej tabeli. (Ale w rzeczywistości nie jest to dodatek na poziomie HDFS). Chodzi o to, że za każdym razem, gdy wykonasz operację ŁADUJ lub WSTAW na istniejącej tabeli Hive bez klauzuli OVERWRITE
, nowe dane zostaną umieszczone bez zastępowania starych danych. Dla nowo wstawionych danych w katalogu odpowiadającym tej tabeli zostanie utworzony nowy plik. Na przykład:
Mam plik o nazwie demo.txt który ma 2 linie:
ABC
XYZ
utworzyć tabelę i załadować ten plik do niego
hive> create table demo(foo string);
hive> load data inpath '/demo.txt' into table demo;
Teraz, jeśli zrobić SELECT na tym stole będzie to dać mi:
hive> select * from demo;
OK
ABC
XYZ
Przypuśćmy, że mam jeszcze jeden plik o nazwie demo2.txt który posiada:
PQR
I robię obciążeniem ponownie na tej tabeli bez użycia nadpisać
hive> load data inpath '/demo2.txt' into table demo;
Teraz, jeśli mam teraz zrobić SELECT, to będzie mi dać,
hive> select * from demo;
OK
ABC
XYZ
PQR
HTH
To naprawdę powinna być najlepsza (zaakceptowana) odpowiedź. – xenocyon
@mattinbits: Próbuję wstawić wygenerowaną sekwencyjnie liczbę dla jednej kolumny i znacznik czasu dla jednej innej kolumny. Dla znacznika czasu próbowałem "from_unixtime (unix_timestamp())" w instrukcji insert. Mam "SemanticException [ERROR 10293]: Nie można utworzyć pliku tymczasowego dla wartości insert Wyrażenie typu TOK_FUNCTION nieobsługiwane we insert/values". Nie mam jasnego pojęcia, w jaki sposób mogę osiągnąć generowanie numerów sekwencyjnych. Czy mógłbyś podać kilka informacji na temat tego, w jaki sposób mogę osiągnąć oba? Używam Hive 1.1.0. Dzięki. – Marco99
@ Marco99 powinieneś podnieść to nowe pytanie – mattinbits