如何快速在Mongodb中插入数千个JSON数组转储?

时间:2012-12-05 10:06:01

标签: mongodb mongoimport

我有大约20,000个带有JSON数组的文件。我想将所有这些文件DUMP转换为本地托管的MongoDB。我正在为此目的使用mongoimport。

有什么方法可以加快这个过程吗?

这20,000个文件包含大约1200万条记录。

1 个答案:

答案 0 :(得分:0)

在拥有32个内核的Linux服务器中,我的Mongo版本是2.6.12。我已经将1.34亿条记录导入MongoDB。输入文件的数量大约是1700,格式是JSON数组。我的测试结果如下:

  1. mongoimport:100K记录一次。在4分50秒内导入100K记录。(在Mongo 3.0.0之前,没有" - numInsertionWorkers"参数,因此我进行单线程导入。如果有更新的版本可以尝试使用该参数。 )
  2. mongoimport:50K记录一次。在2分20秒内导入100K记录。
  3. PyMongo(单线程):a记录时间,使用insert方法。在30秒内导入100K记录。
  4. PyMongo(多线程,线程号为8):记录一次。在1小时32分钟内导入134百万条记录。它接近线性加速。
  5. 原因可能是:具有100K记录的文件是一个很大的块,这对于" mongoimport"是非常耗时的。处理。我还没弄清楚为什么PyMongo比mongoimport更快。 JSON文件处理速度更快吗?所以,您可以尝试以多线程方式使用PyMongo。