同样的数据,使用 mongo 自带命令 mongoinsert 导入,速度很快,每秒 15000 条左右,60 亿数据占空间 300G 。 我手写的代码,使用 pymongo 的 insert_one 方法插入同样的数据,速度很慢,每秒 300 条左右,因为要根据数据插入不同的集合,所以只能使用 insert_one 。 而且插入后的数据,占空间很大,60 亿占 2T 空间。
找了很多原因,不知道性能和空间占用为什么差这么大,都使用的默认 snappy 压缩。如果说性能是 insert_one 导致的,那一样的数据量一样的数据,占空间为什么差距这么大。。( PS.mongoinsert 导入一个集合,我的程序导入之后,有几千个集合。不知道这个有没有原因)
希望大佬们给些建议,感谢感谢!!
1
lpts007 2020-06-30 11:55:35 +08:00 1
英文网站去问问看,附上代码,数据结构。
|
2
275761919 2020-06-30 17:05:20 +08:00
对数据分类用 insert_many 不行吗?
|
3
dtgxx OP @275761919 #2 有点难,不过多少会有点效果,效果不大。如果每次处理 1 万条数据,数据几乎分布在 3-4000 个集合当中。然后一次要大并发做 3-4000 次 insert_many
|
4
lpts007 2020-08-01 14:40:05 +08:00 via Android
解决了吗
|