如何检查 debezium 快照是不是完整
Posted
技术标签:
【中文标题】如何检查 debezium 快照是不是完整【英文标题】:How to check if debezium snapshot is complete如何检查 debezium 快照是否完整 【发布时间】:2021-04-24 11:59:12 【问题描述】:我需要在 Debezium Postgres 连接器中向 table.whitelist
添加更多表。我找到了提到here 的方法。它表明:
快照完成后,使用更新的白名单表列表启动原始连接器
但是如何才能知道快照是否完整呢?
【问题讨论】:
【参考方案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 布尔属性。
【讨论】:
以上是关于如何检查 debezium 快照是不是完整的主要内容,如果未能解决你的问题,请参考以下文章
Debezium系列之:基于数据库信号表和Kafka信号Topic两种技术方案实现增量快照incremental技术的详细步骤