项目中使用flink存数据到mongo,使用了upsert,发现入数很慢,效率很低,经过测试之后,发现是代码中设置_id的问题
使用的jar包和原来的代码
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.11.0</version>
</dependency>
BasicDBObject searchDoc = new BasicDBObject();
searchDoc.append("_id.time","20200101");
searchDoc.append("_id.name","testName");
测试之后,发现mongo的_id拼接方法要改成
BasicDBObject searchDoc = new BasicDBObject("_id", new BasicDBObject("time", "20200101").append("name", "testName"));
在使用Flink将数据写入MongoDB时,采用upsert方式遇到效率低下问题。经排查发现,问题源于_id字段的设置不当。通过调整_id字段的构造方式,从原先的分离设置改为嵌套文档形式,显著提升了数据写入速度。
1080

被折叠的 条评论
为什么被折叠?



