Mongodb集群 - 导入数十亿条记录

时间:2017-12-11 15:46:56

标签: mongodb mongoimport mongodb-cluster

我正在尝试导入100亿条记录。开始测试导入10亿条记录。插入记录时导入时间变得越来越糟糕。以下是配置和统计信息。

Mongo db version - 3.4
Documents - 1226592923
Routers(m4.xlarge) 2 
Config 3
Nodes(i3.large,15GB nvme ssd)  Import time(hrs)
5                              14:30:00
10                             8:10:00

每份文件大约有7个字段。分片键位于3个字段上。遵循https://docs.mongodb.com/v3.4/reference/ulimit/#recommended-ulimit-settings的所有建议。

导入选项

--writeConcern '{ w: 0, j: false }'
--numInsertionWorkers 8

甚至尝试过禁用期刊(--nojournal),但差别不大。

不确定这是否是预期的导入时间。或者我可以采取其他方式来提高摄取率?

1 个答案:

答案 0 :(得分:0)

以下是导入

方面有很多改进的一些因素
  1. 预裂
  2. 排序数据
  3. 停用平衡器sh.stopBalancer()
  4. 在加载期间关闭自动拆分(sh.disableAutoSplit()或重新启动mongos而不--noAutoSplit
  5. 加载完整数据后建立索引
  6. <强>参考文献:

    1. https://blog.zawodny.com/2011/03/06/mongodb-pre-splitting-for-faster-data-loading-and-importing/
    2. https://stackoverflow.com/a/19672303