2016-07-22 2 views
0

Привет, я загрузил данные из mysql в hdfs через коннектор sqoop. Теперь, что, если строка между существующими данными обновляется, есть ли какой-либо запрос для обновления значения данных существующей строки в sqoop. Мне известно об инкрементном обновлении? Будет ли в инкрементном обновлении также обновлять существующую строку? Я новичок в sqoop?Инкрементное обновление в sqoop

ответ

0

Да, но вы должны использовать режим lastmodified, когда вы выполняете инкрементный импорт. Согласно documentation:

Альтернативной стратегии обновления таблицы, поддерживаемой Sqoop называется LastModified режима. Вы должны использовать это, если строки исходной таблицы могут быть обновлены, и каждое такое обновление установит значение последнего измененного столбца на текущую временную метку. Строки, где в столбце check хранится метка времени, более поздняя, ​​чем временная метка, указанная с - значение -области импортируются.

В конце инкрементного импорта значение, которое должно быть , указанное как -последнее значение для последующего импорта, печатается на экране . При выполнении последующего импорта вы должны указать --last-value таким образом, чтобы обеспечить импорт только новых или обновленных данных. Это обрабатывается автоматически, создавая инкрементный импорт в качестве сохраненного задания, что является предпочтительным механизмом для повторного инкрементного импорта . Дополнительную информацию см. В разделе «Сохраненные задания» ниже в .

Имейте в виду, что этот режим требует столбец, который содержит значение даты (например, date, time, datetime и timestamp).

This answer показывает альтернативную стратегию импорта существующих значений с использованием merge-key.

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