我有一个大的 json 文件(350GB),我正在尝试使用 mongoimport 将它导入 MongoDB 集合中。mongoimport 非常慢,我不确定需要多少天。
任何人都可以建议将此 json 文件加载到 mongodb 集合的最佳方法。我有足够的磁盘空间来加载这个 json 文件。
我有一个大的 json 文件(350GB),我正在尝试使用 mongoimport 将它导入 MongoDB 集合中。mongoimport 非常慢,我不确定需要多少天。
任何人都可以建议将此 json 文件加载到 mongodb 集合的最佳方法。我有足够的磁盘空间来加载这个 json 文件。
我遇到过类似的情况。我用mongorestore
了,mongoimport
但想法是一样的。iotop
显示恢复过程的 IO 速率约为 1M/s,非常低。正如这里的其他帖子所暗示的那样,性能低下可能是由于 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 &
...
如果您使用的是 mongodb > 3.0.0,则可以使用mongoimport命令
将其设置为您拥有的 CPU 数量,以加快导入速度--numInsertionWorkers
。参考。
使用 Studio3T-mongoChef GUI 客户端,其中导入 JSON、转储等既简单又快速。