【问题标题】:Kafka MongoDB Sink only one record from tableKafka MongoDB 从表中只接收一条记录
【发布时间】:2021-09-01 00:29:42
【问题描述】:

我正在使用 ksqlDB,我从流中创建了一个表。当我在该表中触发选择查询时,它会正确地为我提供所有记录。现在我想在 MongoDB 中下沉那个表。我还能够在 Kafka 表和 MongoDB 之间创建一个接收器。但不知何故,它只将一条记录沉入其中(MongoDB)。而在表中我有 100 条记录。下面是我的 MongoDB 接收器连接器。

{
  "name": "MongoSinkConnectorConnector_1",
  "config": {
    "connector.class": "com.mongodb.kafka.connect.MongoSinkConnector",
    "key.converter": "org.apache.kafka.connect.storage.StringConverter",
    "value.converter": "io.confluent.connect.avro.AvroConverter",
    "topics": "FEEDS",
    "connection.uri": "mongodb://xxx:xxx@x.x.x.x:27017/",
    "database": "xxx",
    "max.num.retries": "1000000",
    "writemodel.strategy": "com.mongodb.kafka.connect.sink.writemodel.strategy.UpdateOneTimestampsStrategy",
    "value.projection.type": "allowlist",
    "value.projection.list": "id",
    "document.id.strategy": "com.mongodb.kafka.connect.sink.processor.id.strategy.PartialValueStrategy",
    "buffer.capacity": "20000",
    "value.converter.schema.registry.url": "http://x.x.x.x:8081",
    "key.converter.schemas.enable": "false",
    "insert.mode": "upsert"
  }
}

我无法理解,这背后的原因是什么。任何帮助表示赞赏。谢谢

【问题讨论】:

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


    【解决方案1】:

    您可以在 Sink Connector 属性中设置“batch.size”属性,也可以通过 Mongo DB Source Connector 官方文档https://docs.confluent.io/cloud/current/connectors/cc-mongo-db-source.html 阅读更好的写入模型策略。

    【讨论】:

    • 感谢您的回复,但这是针对云解决方案的。不适用于本地设置。令人惊讶的是,我还有另一个用于不同主题的连接器,而且效果很好。
    • 对不起。你说的云是什么意思?可以详细说明一下,你的记录数与云有什么关系。
    • 我的意思是你对 MongoDB Atlas 的建议,而不是 MongoDB 本地设置
    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多