Ruby MONGODB,陷入转储和删除大数据的困境

Ruby MONGODB,陷入转储和删除大数据的困境,ruby,mongodb,amazon-ec2,sidekiq,mongodump,Ruby,Mongodb,Amazon Ec2,Sidekiq,Mongodump,我对dump有问题,然后删除大数据MONGODB 数据库已经有需要查询的索引字段 总数据约50万条记录 过滤后的数据必须转储并删除~5m 3服务器: -MONGO t2.5中等 -SIDEKIQ t2.small -其他服务器t2.small multi 我在流量较少的时间运行cronjob。但完成作业需要花费太多时间,~6-8小时,当它运行时,其他服务器无法连接MONGODB,然后其他服务器将状态更改为degrade elasticbeantalk with docker 当服务器关闭时,我检

我对dump有问题,然后删除大数据MONGODB

数据库已经有需要查询的索引字段

总数据约50万条记录

过滤后的数据必须转储并删除~5m

3服务器: -MONGO t2.5中等

-SIDEKIQ t2.small

-其他服务器t2.small multi

我在流量较少的时间运行cronjob。但完成作业需要花费太多时间,~6-8小时,当它运行时,其他服务器无法连接MONGODB,然后其他服务器将状态更改为degrade elasticbeantalk with docker

当服务器关闭时,我检查MONGODB mongostat:cpu占用约95-96%。其他服务器日志无法连接到数据库


请,有mongodb经验的人可以帮助我解决这个问题,也许你应该尝试其他策略。你可以试着分几步来做。此外,您还必须将此任务划分为许多小任务。您可以在后台以低优先级运行此作业。在你的位置上,我将采取以下步骤:

第一步: 1创建用于存储转储数据的临时DBcollection 2.从原始收集中选择所需数据,并将其分成小部分。多大?这取决于你的服务器。例如,每个时间限制5000个条目,偏移量。 3将数据保存在临时数据库中


现在您可以尝试转储临时数据库。如果不起作用,您可以尝试使用

我认为你的方法很难应用。因为数据超过500万条记录。甚至我也尽可能快地为查询字段编制索引,但在mongodb中排序和计数需要花费大量时间,这样分割数据对于再次导入来说是不方便的