我有一个大的json文件(350GB),我试图使用mongoimport在MongoDB集合中导入它.mongoimport非常慢,我不确定需要多少天。
任何人都可以建议将这个json文件加载到mongodb集合的最佳方法。我有足够的磁盘空间来加载这个json文件。
答案 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,转储等简单而快捷。