第 8 章 SQL Server 的 Debezium 连接器
Debezium SQL Server 连接器捕获 SQL Server 数据库架构中发生的行级更改。
有关与此连接器兼容的 SQL Server 版本的详情,请参考 Debezium 支持的配置页面。
有关 Debezium SQL Server 连接器及其用法的详情,请查看以下主题:
- 第 8.1 节 “Debezium SQL Server 连接器概述”
- 第 8.2 节 “Debezium SQL Server 连接器如何工作”
- 第 8.2.7 节 “Debezium SQL Server 连接器数据更改事件的描述”
- 第 8.2.9 节 “Debezium SQL Server 连接器如何映射数据类型”
- 第 8.3 节 “设置 SQL Server 以运行 Debezium 连接器”
- 第 8.4 节 “部署 Debezium SQL Server 连接器”
- 第 8.5 节 “在模式更改后刷新捕获表”
- 第 8.6 节 “监控 Debezium SQL Server 连接器性能”
Debezium SQL Server 连接器第一次连接到 SQL Server 数据库或集群时,它会对数据库中的架构进行一致的快照。完成初始快照后,连接器持续捕获到为 CDC 启用的 SQL Server 数据库的 INSERT
、UPDATE
或 DELETE
操作的行级更改。连接器为每个数据更改操作生成事件,并将其流传输到 Kafka 主题。连接器将表的所有事件流传输到专用 Kafka 主题。然后,应用程序和服务可能会消耗该主题中的数据更改事件记录。
8.1. Debezium SQL Server 连接器概述
Debezium SQL Server 连接器基于 SQL Server 2016 Service Pack 1 (SP1)以及后续 标准版本或企业版本 中的更改数据捕获 功能。SQL Server 捕获进程监控指定的数据库和表,并将更改存储在特定创建的 change tables 中。
要启用 Debezium SQL Server 连接器来捕获数据库操作的更改事件记录,您必须首先在 SQL Server 数据库上启用更改数据捕获。在数据库和您要捕获的每个表中都必须启用 CDC。在源数据库上设置 CDC 后,连接器可以捕获数据库中发生的行级 INSERT
、UPDATE
和 DELETE
操作。连接器将每个源表的事件记录写入特定于该表的 Kafka 主题。每个捕获的表都有一个主题。客户端应用程序读取它们遵循的数据库表的 Kafka 主题,并可响应他们从这些主题使用的行级事件。
连接器第一次连接到 SQL Server 数据库或集群时,它会为它配置的所有表生成一致的快照来捕获更改,并将此状态流传输到 Kafka。快照完成后,连接器会持续捕获发生的后续行级更改。通过首先建立所有数据的一致性视图,连接器可以继续读取,而不会丢失快照发生时所做的任何更改。
Debezium SQL Server 连接器容错失败。当连接器读取更改并生成事件时,它会定期记录数据库日志中事件的位置(LSN / Log Sequence Number)。如果连接器因任何原因而停止(包括通信失败、网络问题或崩溃),在重启连接器从它读取的最后一个时间点上读取 SQL Server CDC 表。
偏移会定期提交。它们不会在发生更改事件时提交。因此,可能会在中断后生成重复的事件。
容错也适用于快照。也就是说,如果连接器在快照过程中停止,连接器会在重启时开始新的快照。