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