我们一直在研究卡夫卡生态系统。让我来了解一下流程
源(SQLServer)-> Debezium(CDC)-> Kafka代理-> Kafka Stream(处理,联接等)-> Mongo连接器-> Mongo DB
现在,我们进入了最后一步,我们将处理后的数据插入到mongo dB中,但是现在我们需要重新插入数据,而不仅仅是插入。
我们可以从mongo sink连接器获取upsert(插入/更新)功能吗?就目前而言,我知道这是不可能完成的。
答案 0 :(得分:1)
有效地,这是一个upsert,如果$ {uniqueFieldToUpdateOn}不在mongo中,我们要插入,或者如果存在以下内容,则要进行更新。
以下配置状态:
PartialValueStrategy
配合使用,可以为id策略投影自定义值字段。"document.id.strategy.partial.value.projection.list":"${uniqueFieldToUpdateOn}",
"document.id.strategy.partial.value.projection.type":"AllowList",
"writemodel.strategy":"com.mongodb.kafka.connect.sink.writemodel.strategy.ReplaceOneBusinessKeyStrategy"
答案 1 :(得分:0)
请点击提供的链接,其中包含有关kafka mongo连接器的所有信息。我已经成功实现了upsert functionilty。您只需要仔细阅读本文档即可。