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
所有其他值依此类推。
我试图了解 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
所有其他值依此类推。