Как скопировать всю таблицу hive из одной базы данных в другую базу данных

У меня есть таблица по умолчанию db в таблице hive, которая содержит 80 таблиц.
Я создал еще одну базу данных, и я хочу скопировать все таблицы из базы данных по умолчанию в новые базы данных.

Можно ли каким-либо образом скопировать из одной базы данных в другую базу данных без создания отдельной таблицы.

Пожалуйста, дайте мне знать, если какое-либо решение.. Спасибо заранее

Ответы

Ответ 1

Я могу представить пару вариантов.

Надеюсь, это поможет.

Ответ 2

создать внешнюю таблицу new_db.table, например old_db.table location '(путь файла в файле hdfs)';

Если у вас есть раздел в таблице, вам нужно добавить раздел в new_db.table.

Ответ 3

Это, пожалуй, самый быстрый и простой способ скопировать/переместить таблицы из одной базы данных в другую.

Переместить таблицу источник

Начиная с версии 0.14, вы можете использовать следующую инструкцию для перемещения таблицы из одной базы данных в другую в том же метасторе:

alter table old_database.table_a rename to new_database.table_a;

Вышеуказанные операторы также будут перемещать данные таблицы по hdfs, если table_a - управляемая таблица.

Скопировать таблицу

Вы всегда можете использовать операторы CREATE TABLE <new_db>.<new_table> AS SELECT * FROM <old_db>.<old_table>;. Но я считаю, что этот альтернативный метод копирования базы данных с помощью hdfs dfs -cp, а затем создание таблиц с LIKE может быть немного быстрее, если ваши таблицы огромны:

hdfs dfs -cp /user/hive/warehouse/<old_database>.db /user/hive/warehouse/<new_database>.db

And then in hive:
CREATE DATABASE <new_database>;
CREATE TABLE <new_database>.<new_table> LIKE <old_database>.<old_table>;
.
.
.

Ответ 4

Вы можете выбрать один из следующих вариантов:

Синтаксис выглядит примерно так: ТАБЛИЦА ЭКСПОРТА table_or_partition TO hdfs_path; IMPORT [[EXTERNAL] TABLE table_or_partition] FROM hdfs_path [LOCATION [table_location]];

Некоторые примеры утверждений будут выглядеть так: ЭКСПОРТНАЯ ТАБЛИЦА "Место в hdfs";

Использовать test_db; IMPORT FROM 'location in hdfs';

Экспортировать импорт можно также на основе раздела: РАЗДЕЛ ЭКСПОРТНОГО ТАБЛИЦЫ (loc = "USA" ) в "местоположение в hdfs";

Ниже импортируются команды импорта во внешнюю таблицу вместо управляемой ИМПОРТНАЯ ВНЕШНЯЯ ТАБЛИЦА FROM 'location in hdfs' LOCATION '/location/of/external/table;