sqoop incremantal посчитайте разницу - PullRequest
0 голосов
/ 23 мая 2018

Я хочу импортировать все новые строки моей таблицы, используя sqoop, в таблицу улья, проблема в том, что у меня нет столбца для моего инкрементального обновления.

  • Поэтому я пытаюсь сосчитать все строкимоя таблица, и я храню ее в кусте со столбцом метки времени.
  • Затем я выбираю максимальное из этого числа и сравниваю его с количеством строк в моей исходной таблице.

MyВопрос в том, как использовать sqoop для импорта только той разницы между моей таблицей улья и исходной таблицей?

1 Ответ

0 голосов
/ 23 мая 2018

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

1) The initial load data (previous day data) is in hdfs  - Relation A
2) Import the current data into HDFS using sqoop -- Relation B
3) Use pig Load the above two hdfs directories in relation A and B define schema.
4) Convert them to tuples and join them by all columns
5) The join result will have two tuples in each row((A,B),(A,B)) , fetch the result from join where tuple B is null ((A,D),).
6) Now flatten the join by tuple A you will have new/updated records(A,D).
...