【问题标题】:mongoimport very very slow for large json file对于大型 json 文件,mongoimport 非常非常慢
【发布时间】:2014-11-11 18:29:59
【问题描述】:

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

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

【问题讨论】:

    标签: mongoimport


    【解决方案1】:

    我遇到过类似的情况。我使用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 &
    ...
    

    【讨论】:

    • 感谢您的更新。我将在再次创建转储时使用这种方法。我使用的是 mongoimport,因为我有 json 文件,而不是我的收藏的 bson 文件。该集合现在不存在,因此我无法使用块方法再次创建转储。我必须找到一种方法来拆分大 json 文件并加载它。谢谢。
    • 考虑到 mongodump 命令,您已经在某些键值的基础上给出了查询参数,但我有一个大型数据库,其中包含类似键但不是一般值的东西。在这种情况下,我该如何制作一个块?
    【解决方案2】:

    如果您使用的是 mongodb > 3.0.0,您可以在 mongoimport 命令上使用--numInsertionWorkers
    将此设置为您拥有的 CPU 数量以加快导入速度。
    ref.

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 如果 mongo 在 Kubernetes 中运行并且记录表明您无法从外部连接到 mongo,则不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2022-10-06
      相关资源
      最近更新 更多