2

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

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

4

3 回答 3

4

我遇到过类似的情况。我用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 &
...
于 2014-12-12T05:29:29.043 回答
4

如果您使用的是 mongodb > 3.0.0,则可以使用mongoimport命令 将其设置为您拥有的 CPU 数量,以加快导入速度--numInsertionWorkers参考。

于 2015-10-28T10:21:02.527 回答
0

使用 Studio3T-mongoChef GUI 客户端,其中导入 JSON、转储等既简单又快速。

于 2017-07-25T06:24:07.007 回答