【问题标题】:How to check if debezium snapshot is complete如何检查 debezium 快照是否完整
【发布时间】:2021-04-24 11:59:12
【问题描述】:

我需要在 Debezium Postgres 连接器中向 table.whitelist 添加更多表。我找到了提到here 的方法。它表明:

快照完成后,使用更新的白名单表列表启动原始连接器

但是如何才能知道快照是否完整呢?

【问题讨论】:

    标签: postgresql apache-kafka apache-kafka-connect debezium


    【解决方案1】:

    尾随 Connect 集群使用的 connect.offsets.storage 主题,并记下连接器中指定的 server.id

    对于完整的初始快照,您应该会在快照完成后看到以下条目。

    { 
        "file":"my-database-bin.000004",
        "pos":143
    }
    

    在处理事件并赶上最新的二进制日志时,它将根据服务器 ID 更新偏移量的状态。

    {
        "ts_sec": 1610704790,
        "file": "my-database-bin.000004",
        "row": 2,
        "pos": 134,
        "server_id": 2001186
        ...
    }
    

    它现在正在赶上主二进制日志并提交偏移量的事实确认快照已完成,因为只有在完成快照后,连接器才会监视源偏移量。

    【讨论】:

      【解决方案2】:

      有多种方法可以做到这一点。您可以检查 Kafka Connect 日志,或者在收到的最新事件中读取 payload.source.snapshot 的布尔值,或者使用 JMX,其中每个连接器的 MBean 都具有 SnapshotCompleted 布尔属性。

      【讨论】:

        猜你喜欢
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多