我必须将 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 模式中仅用于更新?
有没有其他方法可以实现这一目标?