Kafka:从启用更改跟踪的 SQL 服务器读取

Posted

技术标签:

【中文标题】Kafka:从启用更改跟踪的 SQL 服务器读取【英文标题】:Kafka : Read from SQL server with change tracking enabled 【发布时间】:2019-04-12 07:23:13 【问题描述】:

我一直在尝试将数据从 SQL 服务器(启用更改跟踪)加载到 Kafka,以便一个或多个系统(报告、其他数据库等)使用它

我已经设法为 sql server(confluentinc/kafka-connect-cdc-mssql:1.0.0-preview) 配置了 Kafka 连接插件,并且我还设法在 kafka 机器上启动了它。

我一直在寻找有助于回答以下问题的文档(找不到任何文档)

    如何将 kafka 主题与此连接相关联? 根据我发现的信息(在 debezium 论坛上),将为每个单独的表创建一个主题 --> 它与 kafka sql server 连接器的工作方式相同吗? 我已将连接配置为分布式模式,我们在多台服务器上运行 kafka,是否需要在每台服务器上运行连接? 有没有人使用 Debezium 与 sql server 更改跟踪和 kafka ? Debezium 的网站描述了“alpha 阶段”的连接,我想知道是否有任何活跃用户。

PS:我也愿意使用其他选项将实时数据从 sql server 加载到 Kafka(带有时间戳/数字字段的 jdbc 连接是我的备份选项。备份选项,因为我的源数据库中有一些表可以不包含此类字段[更改不是也不能使用数字/时间戳字段进行跟踪])。

【问题讨论】:

docs.confluent.io/current/connect/userguide.html 理想情况下,您不应在实际的 Kafka Broker 服务器上运行 Kafka Connect 在 4 上,Debezium SQL Server 连接器不是基于更改跟踪,而是基于 CDC 功能。 【参考方案1】:

1 & 2 -- 我如何将 kafka 主题与此连接相关联

我相信它是针对每个表的,但您也许可以使用RegexRouter Connect 转换将多个表合并到一个主题中。

3 -- 将连接配置为分布式模式,我们有kafka在多台服务器上运行,是否需要在每台服务器上都运行连接

Kafka Connect 应该在您的 Kafka 服务器之外运行。它是独立可扩展的。

4 -- 带有 sql server 更改跟踪的 Debezium

我没有。向 Debezium 邮件列表或处理这些功能的 JIRA 票询问可能是一个更好的问题。

【讨论】:

以上是关于Kafka:从启用更改跟踪的 SQL 服务器读取的主要内容,如果未能解决你的问题,请参考以下文章

在Azure中禁用更改跟踪

Dynamics 365 启用跟踪及读取跟踪文件工具

Spark steaming 从 Kafka 读取并在 Java 中应用 Spark SQL 聚合

AWS DMS 不支持 RDS SQL Server 的 CDC/更改跟踪。

flink消费kafka细节

在 LinqToSql 中,如何对实体的自定义属性启用更改跟踪?