У меня есть импорт 10 записей из СУБД в Hadoop через Sqoop, задание завершается ошибкой при загрузке 7-й записи, как я могу получить последние три записи в одиночку в следующий раз. Может ли кто-нибудь помочь мне с синтаксисом?
Как получить ошибочные данные в Sqoop при импорте?
Ответы (1)
Вы можете использовать --last-modified или --incremental-append, чтобы получить только эти 3 строки, и это можно сделать только тогда, когда у вас есть идентификатор этой конкретной строки (7-я строка в вашем случае).
Пожалуйста, посмотрите на приведенную ниже команду, которая возвращает вам новые добавленные записи после этой конкретной метки времени. В вашем случае, если вы передадите идентификатор 7-й строки, вы получите следующие 3 строки из этой команды.
sqoop import --connect jdbc:mysql://hostname/dbname --username root --password cloudera --table tablename --target-dir /user/cloudera/new_directory_name -m 1 --check-column column_name --incremental append --last-value "2018-10-19 20:46:33"
person
Anmol Kankariya
schedule
19.10.2018
Привет, Анмол. Спасибо за ваш вклад. Я говорю о 7 записях для примера, если между ними произошел сбой задания, и мы не знаем, сколько записей загружено, в этом случае какое решение будет?
- person Kanagasubramanian; 29.10.2018
В этом случае мы можем просто создать один сценарий оболочки, который может извлекать идентификатор последней строки из таблицы куста и сохранять его в переменной, передав эту переменную команде sqoop, мы можем загрузить остальные записи.
- person Anmol Kankariya; 20.11.2018
можем ли мы запустить эту команду в случае более чем 1 картографа, тогда набор данных будет разделен на несколько частей?
- person vikas malik; 21.01.2020
@vikasmalik да, мы можем.
- person Anmol Kankariya; 24.04.2020