【问题标题】:SQL Server CDC - Snapshot from specific date for Debezium KafkaSQL Server CDC - Debezium Kafka 特定日期的快照
【发布时间】:2020-10-01 00:11:36
【问题描述】:

我们正在 MSSQL 中的特定表上启用 CDC。我们正在通过MSSQL->CDC->DEBEZIUM->KAFKA_CONNECT 连接到迁移数据的管道

有一个表有超过一百万行,但我们只需要将表中的几千行包含在启用 CDC 时创建的快照中。 我不想在我们的 Kafka-Consumer 中处理它的原因是,虽然我只需要将 1% 的数据写入 Mongo,但剩下的 99% 将毫无用处地打击消费者。


问题:

  1. 是否可以在启用 CDC 时创建特定行/视图的快照。我需要具有 column_value(modified date)> 特定日期的行?
  2. 这是不是太多的微优化,我会让一切都进入管道并被消费者拒绝?

【问题讨论】:

    标签: sql-server apache-kafka apache-kafka-connect debezium


    【解决方案1】:

    您可以使用Kafka Connect Single Message Transform (SMT)。更准确地说,您需要Filter SMT:

    filter.condition 是一个谓词,指定 JSON 路径,即 应用于处理的每条记录,以及当此谓词成功时 匹配记录要么被包含(当filter.type=include)或 排除(当filter.type=exclude


    在您的情况下,您可以包括满足您所需条件的行:

    transforms=filter-records
    transforms.filterExample1.type=io.confluent.connect.transforms.Filter$Value
    transforms.filterExample1.filter.condition=$.value[?(@.modified_date > "1/1/2020")]
    transforms.filterExample1.filter.type=include
    transforms.filterExample1.missing.or.null.behavior=fail
    

    或者,您可以决定排除哪些行

    transforms=filter-records
    transforms.filterExample1.type=io.confluent.connect.transforms.Filter$Value
    transforms.filterExample1.filter.condition=$.value[?(@.modified_date <= "1/1/2020")]
    transforms.filterExample1.filter.type=exclude
    transforms.filterExample1.missing.or.null.behavior=fail
    

    【讨论】:

    • 非常感谢 Giorgos,这是通用的还是仅与 Confluent Kafka 相关,因为我们使用 Amazon MSK Kafka 设置,这是否也适用于此?另外,如果你能找到,你能分享文档吗?我做不到。在此先感谢:)
    • @UdayaPrakash Kafka Connect(以及因此的 SMT)是开源 kafka(以及融合发行版)的一部分。对于文档,我已经分享了几个文档链接。
    • 我会尝试并批准它是否有效,谢谢 Giorgos,非常感谢
    • @UdayaPrakash 正如我已经提到的,Kafka Connect 和 SMT 是开源 kafka 发行版的一部分(请参阅文档:kafka.apache.org/documentation/#connect_transforms),因此它们也可以与 Debezium 一起使用。例如,参考这个页面:debezium.io/documentation/reference/1.1/configuration/…
    • 还有另一个选项可用 - 请参阅debezium.io/documentation/reference/1.2/configuration/…
    猜你喜欢
    • 2020-08-22
    • 2022-01-06
    • 2020-07-09
    • 2021-06-10
    • 2019-09-02
    • 2020-05-02
    • 1970-01-01
    • 2020-08-28
    • 2020-08-19
    相关资源
    最近更新 更多