我有大约625,000个对象的集合。
每晚通过cron,我从数据提供者处检索此数据的更新文件(tsv),并需要将它们重新导入我的mongodb。
在不中断网站/服务及其消费数据的用户的情况下,最好的方法是什么? mongoimport --upup是直接在集合上最好的方式吗?这太慢了。
我是否应该考虑涉及我的收藏品副本的其他方法?
答案 0 :(得分:1)
mongoimport --upup是直接在集合上最好的方式吗?它太慢了。
这会有效,但根据我的经验mongoimport
一直很慢而且不实用。它还有一些其他严重的限制:无法跟踪进度,没有检查/验证的位置,也没有记录它正在做什么。
我是否应该考虑涉及我的收藏品副本的其他方法?
这里的替代方法是编写一个执行此操作的脚本。在大多数语言中,这都是微不足道的。
这将使您能够跟踪进度并处理错误数据。如果您发现导入速度特别慢,您也可以分叉该过程并拆分工作。
关于速度
请记住,您正在更新625k对象。如果您可以获得1k更新/秒,那么还有10分钟需要更新。如果你在导入过程中运行mongostat
或检查你的监控,你应该知道正在做多少工作。