Mongoimport:在不中断数据消耗的情况下每晚更新集合



我有一个大约625,000个对象的集合。

每晚通过cron,我从数据提供程序检索此数据的更新文件(tsv),并需要将它们重新导入到我的mongodb。

在不中断正在使用数据的网站/服务及其用户的情况下,最好的方法是什么?直接在集合上执行mongoimport—upsert是最好的方法吗?实在是太慢了。

我是否应该考虑涉及我的集合副本的其他方法?

直接在集合上执行mongoimport——upsert是最好的方法吗?实在是太慢了。

这将工作,但在我的经验,mongoimport一直是缓慢和笨拙的。它也有一些其他严重的限制:无法跟踪进度,没有检查/验证的位置,没有日志记录它正在做什么。

我是否应该考虑涉及我的集合副本的其他方法?

这里的另一种方法是编写一个脚本来执行此操作。在大多数语言中,这是非常微不足道的。

这将使您能够跟踪进度并处理坏数据。如果您发现导入特别慢,您也可以将该过程分成分支并拆分工作。

关于速度

请记住您正在更新625k个对象。如果你的更新速度是每秒1k次,那么你仍然需要10分钟的更新时间。如果在导入过程中运行mongostat或检查监视,您应该了解正在完成多少工作。

相关内容

最新更新