1

我正在尝试导入 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),但没有太大区别。

不确定这是否是预期的导入时间。或者我可以做些什么来提高摄取率?

4

1 回答 1

0

以下是一些在进口方面取得很大改进的因素

  1. 预拆分
  2. 排序数据
  3. 禁用平衡器sh.stopBalancer()
  4. 在加载期间关闭自动拆分(sh.disableAutoSplit()或重新启动mongos没有--noAutoSplit
  5. 加载完整数据后的索引

参考:

  1. https://blog.zawodny.com/2011/03/06/mongodb-pre-splitting-for-faster-data-loading-and-importing/
  2. https://stackoverflow.com/a/19672303
于 2017-12-20T14:01:37.760 回答