Мне нужно экспортировать файл HDFS в MySql.
Допустим, мой файл HDFS:
1,abcd,23
2,efgh,24
3,ijkl,25
4,mnop,26
5,qrst,27
и скажите, что моя схема базы данных Mysql:
+-----+-----+-------------+
| ID | AGE | NAME |
+-----+-----+-------------+
| | | |
+-----+-----+-------------+
Когда я вставляю с помощью следующей команды Sqoop:
sqoop export \
--connect jdbc:mysql://localhost/DBNAME \
--username root \
--password root \
--export-dir /input/abc \
--table test \
--fields-terminated-by "," \
--columns "id,name,age"
Он работает нормально и вставляется в базу данных.
Но когда мне нужно обновить уже существующие записи, я должен использовать --update-key
и --columns
.
Теперь, когда я пытаюсь обновить таблицу, используя следующую команду:
sqoop export \
--connect jdbc:mysql://localhost/DBNAME \
--username root \
--password root \
--export-dir /input/abc \
--table test \
--fields-terminated-by "," \
--columns "id,name,age" \
--update-key id
Я столкнулся с проблемой, когда данные не обновляются в столбцах, как указано в --columns
Я делаю что-то не так?
Разве мы не можем обновить базу данных таким образом? Файл HDFS должен находиться в схеме Mysql только для обновления?
Есть ли другой способ добиться этого?