Sqoop 导出插入重复条目

Sqoop export inserting duplicate entries

我试图了解 sqoop export works.I 如何在 mysql 中有一个 table 站点,其中包含两列 id 和 url 并包含两行

1,www.yahoo.com
2,www.gmail.com

table没有主键

当我通过执行以下命令将条目从 HDFS 导出到 mysql 站点 table 时,它会插入重复的条目

我在 HDFS 中有以下条目

1,www.one.com
2,www.2.com
3,www.3.com
4,www.4.com

sqoop export --table site --connect jdbc:mysql://localhost/loudacre -- username training --password training --export-dir /site/ --update-mode allowinsert --update-key id

因此,与其更新已经存在的 ID,不如再次插入重复的 ID(意思是两个 1,www.one.com 为 1,www.yahoo.com 为 1)

即使我删除 --update-key 结果也是 same.Does 因为 table 没有主键

我在 Cloudera 快速启动 VM 中使用 sqoop 1.4.5

有什么帮助吗?

根据 Sqoop docs,

MySQL will try to insert new row and if the insertion fails with duplicate unique key error it will update appropriate row instead.

因此,--update-key 列应该是 主键 或具有 唯一索引


在内部,sqoop 将创建这样的查询

INSERT INTO table (id,email) VALUES (1,www.one.com) ON DUPLICATE KEY UPDATE email=www.one.com

所有其他值依此类推。