大佬们,麻烦进来看下 [使用 mongoimport 和 pymongo 插入遇到的问题]

2020-06-30 11:50:30 +08:00
 dtgxx

同样的数据,使用 mongo 自带命令 mongoinsert 导入,速度很快,每秒 15000 条左右,60 亿数据占空间 300G 。 我手写的代码,使用 pymongo 的 insert_one 方法插入同样的数据,速度很慢,每秒 300 条左右,因为要根据数据插入不同的集合,所以只能使用 insert_one 。 而且插入后的数据,占空间很大,60 亿占 2T 空间。

找了很多原因,不知道性能和空间占用为什么差这么大,都使用的默认 snappy 压缩。如果说性能是 insert_one 导致的,那一样的数据量一样的数据,占空间为什么差距这么大。。( PS.mongoinsert 导入一个集合,我的程序导入之后,有几千个集合。不知道这个有没有原因)

希望大佬们给些建议,感谢感谢!!

3959 次点击
所在节点    MongoDB
5 条回复
lpts007
2020-06-30 11:55:35 +08:00
英文网站去问问看,附上代码,数据结构。
275761919
2020-06-30 17:05:20 +08:00
对数据分类用 insert_many 不行吗?
dtgxx
2020-07-01 10:05:48 +08:00
@275761919 #2 有点难,不过多少会有点效果,效果不大。如果每次处理 1 万条数据,数据几乎分布在 3-4000 个集合当中。然后一次要大并发做 3-4000 次 insert_many
lpts007
2020-08-01 14:40:05 +08:00
解决了吗
dtgxx
2020-08-01 23:34:47 +08:00
@lpts007 #4 把数据处理成文件,分好文件夹,并行的用 mongoinsert 导入了,主要是只有一个机器,mongo 性能确实数据量越大就越慢,没办法,导了很久。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/685877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX