Can we update/Upsert a record in mongodb? data source is kafka

前端 未结 2 443
迷失自我
迷失自我 2021-01-05 08:59

We can update/upsert the record in mongodb BUT is there is any method or function from which we can update or upsert the document directly in mongodb and the source system i

相关标签:
2条回答
  • 2021-01-05 09:14

    Yes we can update/upsert the data. For update you have to define a parameter in Kafka connector. and whitelist the column on which bases you want to update the record. The property is as followed:

    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
    
    0 讨论(0)
  • 2021-01-05 09:19

    I was struggling through it finally I got the answer. I used following Mongodb sink connector

    And after bugging my head on their document for sometime ,I finally figured out the solution .

    This is the exact mongodb sink connector configuration I am using

    {
      "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"
    
    }
    

    I left mongodb.writemodel.strategy blank in my configuration so it is taking the default one

    I used the use case 2 of following docs from github of the same connector

    I was dealing with this scenario ,transferring mysql table data with kafka-jdbc-source connect to mongodb sink.

    Also the above strategies can be found in the official docs as well Please free to ask any doubts if you have .Thanks

    0 讨论(0)
提交回复
热议问题