Kafka Mongodb接收器连接器-更新文档

时间:2019-11-28 07:10:56

标签: mongodb apache-kafka apache-kafka-connect

我们一直在研究卡夫卡生态系统。让我来了解一下流程

源(SQLServer)-> Debezium(CDC)-> Kafka代理-> Kafka Stream(处理,联接等)-> Mongo连接器-> Mongo DB

现在,我们进入了最后一步,我们将处理后的数据插入到mongo dB中,但是现在我们需要重新插入数据,而不仅仅是插入。

我们可以从mongo sink连接器获取upsert(插入/更新)功能吗?就目前而言,我知道这是不可能完成的。

2 个答案:

答案 0 :(得分:1)

有效地,这是一个upsert,如果$ {uniqueFieldToUpdateOn}不在mongo中,我们要插入,或者如果存在以下内容,则要进行更新。

以下配置状态:

  1. 将$ {uniqueFieldToUpdateOn}替换为您要在其上进行建模的记录的唯一字段。
  2. AllowList(白名单)此字段与PartialValueStrategy配合使用,可以为id策略投影自定义值字段。
  3. ReplaceOneBusinessKeyStrategy意味着将仅更新由上面声明的唯一字段引用的一个文档。
"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。您只需要仔细阅读本文档即可。

Kafka Connector - Mongodb