10

我们可以在 mongodb 中更新/更新记录,但是是否有任何方法或函数可以直接在 mongodb 中更新或更新文档,源系统是 kafka,目标是 mongodb。

4

2 回答 2

7

是的,我们可以更新/更新数据。对于更新,您必须在 Kafka 连接器中定义一个参数。并将要更新记录的列列入白名单。属性如下:

document.id.strategy=com.mongodb.kafka.connect.sink.processor.id.strategy.PartialValueStrategy
value.projection.list=tokenNumber
value.projection.type=whitelist
writemodel.strategy=com.mongodb.kafka.connect.sink.writemodel.strategy.UpdateOneTimestampsStrategy
于 2020-03-19T07:09:22.577 回答
0

我苦苦挣扎,终于得到了答案。我使用了以下 Mongodb 接收器连接器

在对他们的文件进行了一段时间的窃听之后,我终于找到了解决方案。

这是我正在使用的确切 mongodb sink 连接器配置

{
  "name": "mongodbsync",
  "connector.class": "at.grahsl.kafka.connect.mongodb.MongoDbSinkConnector",
  "topics": "alpha-foobar",
  "mongodb.connection.uri": "mongodb://localhost:27017/kafkaconnect?w=1&journal=true",
  "mongodb.document.id.strategy": "at.grahsl.kafka.connect.mongodb.processor.id.strategy.ProvidedInValueStrategy"

}

mongodb.writemodel.strategy在配置中留空,所以它采用默认配置

我使用了来自同一连接器的github的以下文档的用例 2

我正在处理这种情况,将 mysql 表数据传输kafka-jdbc-source connectmongodb sink.

上述策略也可以在官方文档中找到。如果您有任何疑问,请随时提出。谢谢

于 2020-03-16T11:36:28.977 回答