sqoop добавочный импорт обновленная строка и вновь созданная запись

0

У меня есть работа sqoop, созданная с добавочным добавлением с последним значением

Работа, вакансии:

sqoop job --create myjob2 -- import --connect jdbc:mysql://host/DBnam -username user -password passwor --table savingssmal --check-column id --incremental append --last-value 0 --target-dir /user/xxxx/prac/sqoop --split-by id --as-parquetfile -m 1

Мой вопрос: я хочу импортировать вновь созданную запись, а также обновленную запись в таблицу mysql?

Не могли бы вы помочь мне в этом?

Теги:
hive
sqoop
sqoop2
apache-sqoop

1 ответ

0

Вы можете использовать режим lastmodified для инкрементного импорта lastmodified.

Режим append (используемый в вашем примере) используется для импорта строк на основе увеличения значений идентификатора строки. Таким образом, когда задание выполняется, оно будет импортировать строки, где --check-column (т.е. id) больше, чем --last-value (т.е. 0). Если строка обновлена, id, как правило, останется прежним, а обновленная строка не будет импортирована.

Режим lastmodified используется для импорта строк на основе столбца временной метки (например, last_modified_time). Когда задание выполняется, оно будет импортировать строки, где --check-column более поздний, чем указано через --last-value. Приложению, записываемому в таблицу, необходимо обновить столбец last_modified_time для вставок и обновлений. Таким образом, как новые, так и обновленные строки будут импортированы при выполнении задания Sqoop.

Образец запроса, основанный на вашем примере с режимом lastmodified будет выглядеть следующим образом:

sqoop job --create myjob2 -- import --connect jdbc:mysql://host/DBnam -username user -password passwor --table savingssmal --check-column last_update_time --incremental lastmodified --last-value "2018-02-03 04:38:39.0" --target-dir /user/xxxx/prac/sqoop --as-parquetfile -m 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню