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