2016-09-06 1 views
0

У меня 20000 записей в таблице. Я хочу скопировать их в два отдельных файла (одинаково распределенные записи) в HDFS (используя Sqoop). Как достичь этого, если в таблице нет первичного ключа или уникального ключа?Как импортировать 20000 записей таблицы в два разных файла (одинаково распределенные записи), если таблица не имеет первичного ключа или уникального ключа?

ответ

-1

Наличие первичного ключа или уникального ключа не является ограничением для импорта параллельно.

Разделение на неравномерно распределенный столбец не рекомендуется, поскольку это может привести к несбалансированным задачам.

Теперь ваши записи распределены равномерно. Таким образом, с этой проблемой не будет никаких проблем с производительностью.

Позвольте мне объяснить, что это работает, используя пример,

У вас есть таблица с колонки col1 со значениями от 1 -100 (некоторые из повторяющихся значений также есть).

Теперь sqoop будет определять минимальное и максимальное значения и разделить его на 2 части

  • 1 - 50
  • 51 - 100

Картостроители будет получать данные через JDBC с использованием запросов, как -

  • SELECT * FROM sometable WHERE id >= 1 AND id < 50

  • SELECT * FROM sometable WHERE id >= 51 AND id < 100

Таким образом, идти вперед с sqoop импорта запроса с двумя картографов (-m 2).

0

Убедитесь, что вы даете --split-by col1 с -m 2 иначе вы увидите сообщение об ошибке.

 Смежные вопросы

  • Нет связанных вопросов^_^