简体   繁体   English

Debezium mongodb kafka 连接器没有像 mongodb 那样在主题中产生一些记录

[英]Debezium mongodb kafka connector not producing some of records in topic as it is in mongodb

In my mongodb there i have this data在我的 mongodb 中,我有这个数据

mongo01:PRIMARY> db.col.find({"_id" : ObjectId("5d8777f188fef5555b")})
{ "_id" : ObjectId("5d8777f188fef5555b"), "attachments" : [ { "name" : "Je", "src" : "https://google.co", "type" : "image/png" } ], "tags" : [ 51, 52 ], "last_comment" : [ ], "hashtags" : [ "Je" ], "badges" : [ ], "feed_id" : "1", "company_id" : 1, "message" : "aJsm9LtK", "group_id" : "106", "feed_type" : "post", "thumbnail" : "", "group_tag" : false, "like_count" : 0, "clap_count" : 0, "comment_count" : 0, "created_by" : 520, "created_at" : "1469577278628", "updated_at" : "1469577278628", "status" : 1, "__v" : 0 }

mongo01:PRIMARY> db.col.find({"_id" : ObjectId("5d285b4554e3b584bf97759")})
{ "_id" : ObjectId("5d285b4554e3b584bf97759"), "attachments" : [ ], "tags" : [ ], "last_comment" : [ ], "company_id" : 1, "group_id" : "00e35289", "feed_type" : "post", "group_tag" : false, "status" : 1, "feed_id" : "3dc44", "thumbnail" : "{}", "message" : "s2np1HYrPuFF", "created_by" : 1, "html_content" : "", "created_at" : "144687057949", "updated_at" : "144687057949", "like_count" : 0, "clap_count" : 0, "comment_count" : 0, "__v" : 0, "badges" : [ ], "hashtags" : [ ] }

I am using this debezium mongodb connector in order to get the mongodb data in kafka topic.我正在使用这个 debezium mongodb 连接器来获取 kafka 主题中的 mongodb 数据。

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" 
   http://localhost:8083/connectors/ -d '{
   "name": "mongo_connector-4",
    "config": {
    "connector.class": "io.debezium.connector.mongodb.MongoDbConnector",
    "mongodb.hosts": "mongo01/localhost:27017",
    "mongodb.name": "mongo_1",
    "collection.whitelist": "data.col",
    "key.converter.schemas.enable": false,
    "value.converter.schemas.enable": false,
    "key.converter": "org.apache.kafka.connect.json.JsonConverter",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "transforms" : "unwrap",
    "transforms.unwrap.type" : "io.debezium.connector.mongodb.transforms.UnwrapFromMongoDbEnvelope",
    "transforms.unwrap.drop.tombstones" : "false",
    "transforms.unwrap.delete.handling.mode" : "drop",
    "transforms.unwrap.operation.header" : "true",
    "errors.tolerance" : "all",
    "snapshot.delay.ms":"120000",
    "poll.interval.ms":"3000",
    "heartbeat.interval.ms":"90000"
  }
}'

now while printing the topic in ksql i am getting that for some records data came with all columns(as it was in mongodb) while for some records some columns are missing.现在,在 ksql 中打印主题时,我得到一些记录的数据随所有列一起提供(就像在 mongodb 中一样),而对于某些记录,一些列丢失了。

ksql> print 'mongo_1.data.col' from beginning;
Format:JSON
{"ROWTIME":1571148520736,"ROWKEY":"{\"id\":\"5d8777f188fef5555b\"}","attachments":[{"name":"Je","src":"https://google.co","type":"image/png"}],"tags":[51,52],"last_comment":[],"hashtags":[],"badges":[],"feed_id":"1","company_id":1,"message":"aJsm9LtK","group_id":"106","feed_type":"post","thumbnail":"","group_tag":false,"like_count":0,"clap_count":0,"comment_count":0,"created_by":520,"created_at":"1469577278628","updated_at":"1469577278628","status":1,"__v":0,"id":"5d8777f188fef5555b"}
{"ROWTIME":1571148520736,"ROWKEY":"{\"id\":\"5d285b4554e3b584bf97759\"}","badges":[],"hashtags":[],"id":"5d285b4554e3b584bf97759"}

Why this is happening and how to resolve this issue?为什么会发生这种情况以及如何解决此问题?

PS: the only difference i found that both records have different order of columns. PS:我发现两个记录的唯一区别是列的顺序不同。

While searching about this issue only close thing i found here https://github.com/hpgrahsl/kafka-connect-mongodb something they are saying about post-processing and redacting fields which have sensitive data.在搜索这个问题时,我发现这里只有关闭的东西https://github.com/hpgrahsl/kafka-connect-mongodb他们所说的关于具有敏感数据的后处理和编辑字段。 But as you can see both mine records are similar and have no sensitive data(by sensitive data i mean encrypted data, maybe they meant something else).但是正如您所看到的,我的两个记录都相似并且没有敏感数据(敏感数据是指加密数据,也许它们意味着其他东西)。

Are not the missing values after updates?更新后不是缺失值吗? Don't forget that MongoDB connector provides patch for updates not after - https://debezium.io/documentation/reference/0.10/connectors/mongodb.html#change-events-value不要忘记 MongoDB 连接器提供更新patch ,而不是after - https://debezium.io/documentation/reference/0.10/connectors/mongodb.html#change-events-value

If you need to construct full format after in case of MongoDB you need to introduce a Kafka Streams pipeline that would store the event after insert into a persistent store and then merge the patch with the original insert to create the final event.如果您需要在 MongoDB after构建完整格式,则需要引入一个 Kafka Streams 管道,该管道将在插入到持久存储后存储事件,然后将补丁与原始插入合并以创建最终事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Debezium Kafka连接器mongodb - Debezium Kafka connector mongodb 如何在创建 debezium mongodb kafka 连接器时通过 MongoDB tls 证书? - how to pass MongoDB tls certificates while creating debezium mongodb kafka connector? 在远程 MSK kafka 集群上使用 kafka 连接 mongoDB debezium 源连接器 - use kafka connect mongoDB debezium souce connector on a remote MSK kafka cluster 如何覆盖 MongoDB 源连接器中的 Kafka 主题配置? - How to override the Kafka Topic configurations in MongoDB Source Connector? 下沉kafka话题到mongodb - Sink kafka topic to mongodb Mongodb 到 Kafka 连接器 - Mongodb to Kafka Connector 我们如何从具有debezium kafka连接器的副本集中的辅助mongodb节点中截取oplog? - How could we tail oplog from a secondary mongodb node in a replica set with debezium kafka connector? Debezium MongoDB 连接器错误:org.apache.kafka.connect.errors.ConnectException:错误处理程序中超出容差 - Debezium MongoDB Connector Error: org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler kafka 连接器 debezium mongodb CDC 更新/$set 消息没有过滤器(_id 值) - kafka connector debezium mongodb CDC update/$set message without filter(_id value) 如何使用 Debezium MongoDB 源连接器将 JSON 值转换为 Kafka 消息密钥? - How to transform JSON value to Kafka message key with Debezium MongoDB Source Connector?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM