Jak skopiować całą tabelę hive z jednej bazy danych do innej bazy danych
Mam domyślne db w tabeli hive, która zawiera 80 tabel .
Utworzyłem jeszcze jedną bazę danych i chcę skopiować wszystkie tabele z domyślnego DB do nowych baz danych.
Czy Jest jakiś sposób na skopiowanie z jednego DB do drugiego DB, bez tworzenia indywidualnej tabeli.
Proszę dać mi znać, jeśli jakieś rozwiązanie.. Z góry dzięki
4 answers
Mogę wymyślić kilka opcji.
-
Użyj CTA.
CREATE TABLE NEWDB.NEW_TABLE1 AS select * from OLDDB.OLD_TABLE1; CREATE TABLE NEWDB.NEW_TABLE2 AS select * from OLDDB.OLD_TABLE2; ...
Użyj funkcji importu Ula https://cwiki.apache.org/confluence/display/Hive/LanguageManual + ImportExport
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-22 05:04:13
Utwórz zewnętrzną tabelę new_db.tabela jak old_db.table location " (ścieżka do pliku w pliku hdfs)';
Jeśli masz partycję w tabeli to musisz dodać partycję w new_db.stolik.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-10 14:40:41
Są to prawdopodobnie najszybszy i najprostszy sposób kopiowania / przenoszenia tabel z jednego db do drugiego.
Aby przenieść stół źródło
Od wersji 0.14, możesz użyć następującego polecenia, aby przenieść tabelę z jednej bazy danych do drugiej w tym samym metastore:
alter table old_database.table_a rename to new_database.table_a;
Powyższe instrukcje również przeniosą dane tabeli na hdfs, jeśli table_a
jest tabelą zarządzaną.
Aby skopiować tabelę
Zawsze możesz użyć CREATE TABLE <new_db>.<new_table> AS SELECT * FROM <old_db>.<old_table>;
. Ale wierzę, że ten alternatywny metoda kopiowania bazy danych za pomocą hdfs dfs -cp
, a następnie tworzenia tabel za pomocą LIKE
może być nieco szybsza, jeśli tabele są ogromne:
hdfs dfs -cp /user/hive/warehouse/<old_database>.db /user/hive/warehouse/<new_database>.db
A potem w ulu:
CREATE DATABASE <new_database>;
CREATE TABLE <new_database>.<new_table> LIKE <old_database>.<old_table>;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-19 10:54:02
Możesz wybrać jedną z następujących opcji:
Składnia wygląda mniej więcej tak: Eksport tabeli table_or_partition do hdfs_path; IMPORT [[zewnętrzny] TABLE table_or_partition] z hdfs_path [lokalizacja [table_location]];
Niektóre przykładowe stwierdzenia wyglądałyby jak: EXPORT TABLE TO 'location in hdfs';
Użyj test_db; IMPORT z "lokalizacja w hdfs";
Export Import może być również stosowany na partycji: EXPORT Table PARTITION (loc="USA") to "lokalizacja w hdfs";
Poniższe polecenia import importują do tabeli zewnętrznej zamiast zarządzanej IMPORT tabeli zewnętrznej z "lokalizacja w hdfs "lokalizacja" / lokalizacja / of / external / table";
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-06 14:03:54