【问题标题】:How to tell if Debezium has any unstreamed changes to stream to Kafka?如何判断 Debezium 是否有任何未流式传输的更改要流式传输到 Kafka?
【发布时间】:2020-10-05 16:49:21
【问题描述】:

我希望使用 Debezium 将更改(在 CDC 中)从一些 MS SQL Server 数据库中的一堆表流式传输到 Kafka。这些表将具有不断变化的结构。

为了更改捕获的列,我必须:

  1. 停止发布新数据
  2. 等待 Debezium 将任何非流式更改流式传输到 Kafka
  3. 禁用 CDC
  4. 对架构进行更改
  5. 启用 CDC
  6. ...

但是,我怎么知道 Debezium 已将所有更改流式传输到 Kafka?我在 Debezium 中找不到任何关于任何 API/端点的文档来告诉我它的状态。另外,在 (1) 和 (2) 之间是否有任何 API/端点可以专门指示 Debezium 立即将 CDC 更改刷新到 Kafka?

谢谢

【问题讨论】:

  • 您的步骤集是来自 Debezium 文档,还是您正在做出的假设?
  • 我从这里转述:debezium.io/documentation/reference/connectors/…,为什么?
  • 这是所描述的(更安全的)冷模式更新的第 2 步,我需要来自 Debezium 的反馈。
  • 在您的问题中包含有用的信息,因为它可以让人们了解您的问题并进一步了解您的问题,这就是我问的原因:)

标签: sql-server cdc debezium


【解决方案1】:

我认为最安全的方法是将数据库 LSN 与存储在连接器偏移量中的 LSN 进行比较。这样您就可以确定连接器已经看到哪些更改并将其提交给 Kafka。

【讨论】:

  • 这是唯一的方法吗?我的 Debezium 部署将在共享环境中,大多数服务无法直接访问源数据库。
猜你喜欢
  • 2019-09-21
  • 2021-09-19
  • 2018-05-23
  • 2020-05-21
  • 2019-05-19
  • 2016-04-27
  • 2011-12-24
  • 2012-02-27
  • 2018-03-28
相关资源
最近更新 更多