mongoimport对于大型json文件非常慢

时间:2014-11-11 18:29:59

标签: mongoimport

我有一个大的json文件(350GB),我试图使用mongoimport在MongoDB集合中导入它.mongoimport非常慢,我不确定需要多少天。

任何人都可以建议将这个json文件加载到mongodb集合的最佳方法。我有足够的磁盘空间来加载这个json文件。

3 个答案:

答案 0 :(得分:2)

我遇到过类似的情况。我使用mongorestore代替mongoimport,但想法是一样的。 iotop表明恢复过程的IO速率约为1M / s,这非常低。作为other post here suggests,低性能可能是由于json到bson序列化。所以我结束了使用以下命令将导出的json文件拆分成不同的块

mongodump --host < host > --port < port > --username < user > --password < pwd > --authenticateionDatabase admin --db < db > --collection < coll > --query "{DayOfWeek:"Monday"}" --out "SomeDir-Monday" &

mongodump --host < host > --port < port > --username < user > --password < pwd > --authenticateionDatabase admin --db < db > --collection < coll > --query "{DayOfWeek:"Tuesday"}" --out "SomeDir-Tuesday" &

...
然后我最终得到了7个块。 最后使用mongorestore使用以下命令并行导入这些块。

mongorestore --host < host > --port < port > --username < user > --password < pwd > --authenticateionDatabase admin --db < db > --collection < coll > PATH_TO_MONDAY.json &

mongorestore --host < host > --port < port > --username < user > --password < pwd > --authenticateionDatabase admin --db < db > --collection < coll > PATH_TO_TUESDAY.json &
...

答案 1 :(得分:2)

如果您使用的是mongodb&gt; 3.0.0您可以使用 mongoimport 命令的--numInsertionWorkers 将此值设置为您加速导入的CPU数量 ref.

答案 2 :(得分:0)

使用Studio3T-mongoChef GUI客户端,导入JSON,转储等简单而快捷。