Загрузка 600 миллиардов записей из одной таблицы улья в другую - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть внешняя таблица куста в 1 базе данных с 600 миллиардами записей и 100 столбцами. Мне нужно скопировать данные как есть в ту же таблицу в другой базе данных. Я пытаюсь написать искровой код, но это занимает вечность. есть ли рекомендации, как бы я написал код? Я новичок в искре!

1 Ответ

1 голос
/ 01 апреля 2019

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

USE YOUR_DATABASE;
CREATE EXTERNAL TABLE abc ... LOCATION 'hdfs://your/data';

При необходимости восстановите разделы, используя MSCK REPAIR TABLE abc; или ALTER TABLE abc RECOVER PARTITIONS;, если вы используете EMR.

Если вам абсолютно необходимо скопировать данные в другое место (и если вы находитесь в платном кластере EC2 Amazon, вам нужна причина для того, чтобы тратить на это деньги), используйте distcp (инструмент распределенного копирования) :

hadoop distcp hdfs://your/data hdfs://your/data2
...