Debezium 功能
Debezium 是一组适用于 Apache Kafka Connect 的源连接器。每个连接器通过使用该数据库的变更数据捕获 (CDC) 功能来摄取来自不同数据库的更改。与轮询或双写等其他方法不同,Debezium 实现的基于日志的 CDC
-
确保捕获所有数据更改。
-
产生延迟非常低的变更事件,同时避免了频繁轮询所需的 CPU 使用率增加。例如,对于 MySQL 或 PostgreSQL,延迟在毫秒范围内。
-
无需更改您的数据模型,例如不需要 "上次更新" 列。
-
可以捕获删除。
-
可以捕获旧记录状态和其他元数据,例如事务 ID 和导致查询,具体取决于数据库的功能和配置。
基于日志的变更数据捕获的五大优势 是一篇提供更多详细信息的博客文章。
Debezium 连接器以一系列相关功能和选项捕获数据更改
-
快照: 如果连接器启动时尚未存在所有日志,可以选择性地拍摄数据库当前状态的初始快照。通常,当数据库运行了一段时间并丢弃了不再需要的用于事务恢复或复制的事务日志时,就会出现这种情况。执行快照有不同的模式,包括支持增量快照,这些快照可以在连接器运行时触发。有关更多详细信息,请参阅您使用的连接器的文档。
-
过滤器: 您可以使用包含/排除列表过滤器配置要捕获的模式、表和列的集合。
-
掩码: 特定列的值可以被掩码,例如,当它们包含敏感数据时。
-
监控: 大多数连接器都可以使用 JMX 进行监控。
-
现成的消息转换,用于消息路由、过滤、事件展平等;请参阅转换以了解 Debezium 附带的所有 SMT 的概述。
请参阅连接器文档,了解所有支持的数据库列表以及每个连接器的功能和配置选项的详细信息。
Debezium 也可以作为库嵌入到您的基于 JVM 的应用程序中;通过Debezium Server,您可以将变更事件发送到 Amazon Kinesis、Google Cloud Pub/Sub、Apache Pulsar 等消息传递基础设施。