我是MongoDB的新手并计划将DB2数据(~6TB)迁移到Mongodb。所以我们计划使用Java实用程序从DB2读取数据并在MongoDB中插入它。
如果在执行Java utitity期间发生任何错误,我重新启动它,然后在MongoDB中插入重复的记录。我怎样才能避免那些重复记录?
请在这里指导我!
谢谢!
答案 0 :(得分:0)
来自DB2的数据应该已经具有唯一的主键,并且数据中可能还有其他唯一的业务键。如果将这些字段填充为MongoDB中的_id
(而不是允许MongoDB自动生成_id),那么您将能够避免MongoDB端的重复。如果您尝试两次插入相同的记录,则会出现DuplicateKeyException。
除此之外,如果单个记录中存在错误,则必须完全重新启动加载过程。但也许你有更严重的问题需要解决,例如加载程序崩溃了JVM?
也许你只需要改进你的加载程序,这样你就不必完全重新开始。如果您按照我的建议填充_id
,您将获得额外的保证,即您没有插入重复的记录。