在最近尝试了 MongoDB 之后,我尝试了几种不同的方法来将大量数据导入/插入到集合中。到目前为止,我发现的最有效的方法是 mongoimport。它工作得很好,但仍然有开销。即使在导入完成后,除非我重新启动机器,否则内存仍不可用。
例子:
mongoimport -d flightdata -c trajectory_data --type csv --file trjdata.csv --headerline
我的标题和数据如下所示:
'FID','ACID','FLIGHT_INDEX','ORIG_INDEX','ORIG_TIME','CUR_LAT', ...
'20..','J5','79977,'79977','20110116:15:53:11','1967', ...
有 530 万行乘 20 列,大约 900MB,我最终是这样的:
从长远来看,这对我不起作用;我可能并不总是能够重新启动,或者最终会耗尽内存。导入 MongoDB 的更有效方法是什么?我已经阅读了有关定期 RAM 刷新的信息,我该如何实现与上面的示例类似的内容?
更新: 我认为我的案例不会从调整 fsync、syncdelay 或日志中受益匪浅。我只是好奇什么时候这是一个好主意和最佳实践,即使我在高 RAM 服务器上运行。