我很高兴地宣布 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 Oracle 连接器现在支持自动执行 `ALTER TABLE` 和 `DROP TABLE` (DBZ-2916

  • Debezium Oracle 连接器使用 ojdbc.jar 版本 21.1.0.0 进行测试和验证(DBZ-3460

  • Debezium MongoDB 连接器可能导致在长时间运行的快照大于配置的 oplog 窗口时丢失变更事件(DBZ-3331);连接器现在在流式传输开始时验证 oplog 位置是否存在

  • Debezium Cassandra 连接器未能正确响应 schema 变更(DBZ-3417

总而言之,本次发布共解决了 52 个问题

一如既往,非常感谢所有做出贡献的社区成员:Alfusainey JallowBingqin ZhouCao Manh DatJohn MartinJohn WuMikeOlivier JacquemartSergei MorozovSiuFayStefan MiklosovicThomas AreggerVadzim Ramanenka

Chris Cranford

Chris 是 IBM 的一名软件工程师,之前在 Red Hat 工作,他致力于 Debezium 项目,并每天都在深入研究 Oracle 和 Change Data Capture 的各个方面。他此前曾从事 Hibernate(领先的开源 JPA 持久化框架)方面的工作,并且继续为 Quarkus 做贡献。Chris 居住在美国北卡罗来纳州。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×