第 1 章 Debezium 的高级别概述
Debezium 是一组分布式服务,用于捕获数据库中的更改。您的应用程序可以使用并响应这些更改。Debezium 在更改事件记录中捕获每个数据库表中的每行级更改,并将这些记录流传输到 Kafka 主题。应用程序读取这些流,按生成的顺序提供更改事件记录。
以下部分中更多详情:
1.1. Debezium 功能
Debezium 是 Apache Kafka Connect 的一组源连接器。每个连接器使用该数据库的功能来更改数据捕获(CDC),从不同的数据库进行最佳更改。和其它方法(如轮询或双写)不同,基于日志的 CDC 是由 Debezium 实施的:
- 确保捕获了所有数据更改。
- 生成更改事件,延迟非常低,同时避免增加频繁轮询所需的 CPU 用量。例如,对于 MySQL 或 PostgreSQL,延迟在 millisecond 范围内。
- 不需要更改数据模型,如"Last Updated"列。
- 可以捕获 删除。
- 可以捕获旧的记录状态和其他元数据,如事务 ID 并导致查询,具体取决于数据库的功能和配置。
基于日志的 Change Data Capture 的五个优势是提供更多详细信息的博客文章。
Debezium 连接器使用一组相关功能和选项捕获数据更改:
- 快照: 如果连接器启动且并非所有日志都存在,则可以执行数据库当前状态的初始快照。通常,当数据库在一段时间内运行并丢弃事务恢复或复制时不再需要的事务日志时,会出现这种情况。执行快照有不同的模式,包括对 增量 快照的支持,可在连接器运行时触发。如需了解更多详细信息,请参阅有关您使用的连接器的文档。
- 过滤器: 您可以使用 include/exclude 列表过滤器配置捕获的模式、表和列的集合。
- 屏蔽: 特定列中的值可以屏蔽,例如当包含敏感数据时。
- 监控: 大多数连接器都可使用 JMX 监控。
- 随时可用的 单消息转换(SMTs) 用于消息路由、过滤、事件扁平化等。有关 Debezium 提供的 SMTs 的更多信息,请参阅 应用转换来修改与 Apache Kafka 交换的消息。
每个连接器的文档提供有关连接器功能和配置选项的详细信息。