我很高兴地宣布 Debezium 1.6.0.Beta1 发布!
此版本为 SQL Server 和 Db2 引入了增量快照支持,对 SQL Server 进行了性能改进,支持 Oracle 的 BLOB/CLOB,以及更多内容。让我们花点时间来探索其中一些新功能。
增量快照 - SQL Server / Db2
Debezium 在 1.6.0.Alpha1 版本中首次引入了增量快照。正如这篇 博文 所讨论的,在运行 Debezium 时存在一些痛点
-
在连接器重新启动前需要执行一致性快照
-
在连接器运行很长时间后,无法触发完全或部分快照
在此次发布中,此功能已扩展到 SQL Server 和 Db2 连接器。我们计划在未来的版本中将此功能推广到更多连接器。
如果您想亲自尝试此功能,则需要
-
提供一个 信号表
-
通过 SQL 命令触发一次性增量快照,例如
INSERT INTO myschema.debezium_signal VALUES('ad-hoc-1', 'execute-snapshot', '{"data-collections": ["schema1.table1", "schema1.table2"]}') SQL Server 性能改进
SQL Server 连接器的选项 `source.timestamp.mode` 控制着发出事件的时间戳如何解析。默认的 `commit` 设置旨在根据更改记录在数据库中提交的时间来解析事件的时间戳。经发现,此方法使用了单独的 JDBC 调用来解析事件的时间戳,这导致了性能和吞吐量的下降。
此次发布通过改变时间戳解析的位置,修复了 `commit` 模式的性能问题。这在保持现有功能的同时,显著提高了连接器的性能和吞吐量。
我们要感谢 Sergei Morozov 识别并贡献了该问题的解决方案。
Oracle 大对象数据类型
在“大数据”时代,“Blob”和“CLOB”等数据类型常用于存储大对象数据。Debezium Oracle 连接器已支持多种数据类型,我们很高兴地报告,现在已将支持范围扩展到 XStream 和 LogMiner 实现的 BLOB 和 CLOB。
当发出包含 BLOB 或 CLOB 数据时,连接器的内存占用以及发出事件的消息大小将直接受到大对象数据大小的影响。因此,连接器的 JVM 进程可能需要额外的内存,并且需要调整一些 Kafka 配置,例如 `message.max.bytes`。
我们鼓励社区试用这些新数据类型的支持,并报告任何反馈。
其他功能
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。