DataX
DataX copied to clipboard
Mongodbreader update
1.原始的切片算法 col.find().skip(skipCount).limit(chunkDocCount).first()没有加过滤条件, 在对大数据量的mongodb表进行切片时,耗时太长。对mongodb的切片算法加上过滤条件.并针对mongodb3.2+版本增加Sample切片算法,切片速度提升10倍。在对4TBmongodb集合进行切片划分时,也能在10秒内完成(query过滤条件加了索引)
2.重写mongodb的反序列化,原有的方式对于很多mongodb类型处理的不好。 3.增加mongo的登录验证方式 4.新增了batchsize参数,批量读取mongodb表数据 5.设置read preference,优先读取副本 6.增加jsonType参数,可以将mongodb所有数据扫描json,而不是扫描固定的column字段(需求变化频繁的表) 7.对18个不同mongodb库,72张mongodb表都进行了测试。在channel=1和channel=4时,数据量能保持一致。
https://github.com/alibaba/DataX/issues/738
亲测好用,尤其是能把mongodb的数组和对象类型扫描成json格式,非常给力!
切片算法对于不是同一类型的情况如何处理?比如文档里面既有ObjectId类型,又有String类型
切片算法对于不是同一类型的情况如何处理?比如文档里面既有ObjectId类型,又有String类型
1.没有考虑过文档里面既有ObjectId类型,又有String类型的情况,没有遇到过。我会进行测试一下
貌似过滤条件不生效,有bug