距离 Debezium 0.8 发布仅两周,我很高兴地宣布 Debezium 0.9.0.Alpha1 发布!

新版本的主要功能是期待已久的 Debezium MS SQL Server 连接器的首个工作版本。新连接器基于 CDC 功能(可在 Enterprise 和 Standard 版本中使用),允许您从微软流行的 RDBMS 中流式传输数据更改。

此外,我们还继续致力于 Debezium Oracle 连接器。最值得注意的是,它现在支持对捕获的表进行初始快照。我们还将 Docker 镜像中的 Apache Kafka 升级到了 1.1.1 (DBZ-829)。

请查看更改日志以获取 0.9.0.Alpha1 的完整更改列表和通用升级说明。

注意: 在撰写本文时(2018-07-26),发布构件(连接器归档)可在 Maven Central 上找到。我们将尽快将 0.9.0.Alpha1 的 Docker 镜像上传到 Docker Hub Docker 镜像已上传并可使用,标签为 0.9.0.Alpha1 和滚动标签 0.9

SQL Server 连接器

Debezium 用户长期以来一直希望支持 SQL Server(原始问题是 DBZ-40)。得益于在开发 Oracle 连接器时创建的大量基础架构,我们最终能够以相对较短的开发时间来推出这个新连接器的第一个预览版。

与 Oracle 连接器一样,SQL Server 连接器目前也处于积极开发中,并应被视为一个孵化中的功能。因此,例如,在未来的版本中,发出的变更消息的结构可能会发生变化。在功能方面,它支持初始快照,并通过 SQL Server 的 CDC 功能捕获更改。它支持最常见的列类型、表白名单/黑名单等。最显著的缺失功能是对连接器运行时表结构的更改的支持。这是我们将要处理的下一个功能,并计划作为下一个 0.9 版本的一部分交付(请参阅 DBZ-812)。

我们非常乐意了解您对 Debezium 系列最新连接器的任何反馈。如果您发现任何错误或有功能请求,请在我们的 JIRA tracker 中创建报告。

Oracle 连接器

Debezium 的 Oracle 连接器现在可以进行初始快照。通过新的连接器选项 snapshot.mode,您可以控制是否应发出捕获表中所有记录的读取事件。

此外,对数字数据类型的支持得到了改进(DBZ-804);任何整数列(即 NUMBER,其精度小于等于 0)都将使用相应的 int8/int16/int32/int64 字段类型发出,前提是列的精度允许。

我们还花了一些时间扩展 Oracle 连接器文档,该文档现在详细介绍了发出的变更事件的结构以及所有数据类型的映射。

Debezium 0.8.1.Final

与 Debezium 0.9.0.Alpha1 一起,我们还对当前稳定的 Debezium 版本 0.8 进行了另一次发布。

虽然 0.9 版本目前对那些渴望尝试 Oracle 和 SQL Server 连接器最新进展的用户更有吸引力,但 0.8.1.Final 是一个推荐的升级版本,特别是对于 Postgres 连接器的用户。此版本修复了一个问题,即在一段时间内仅更改非白名单表的记录时,WAL 段可能在服务器上保留的时间过长。通过支持心跳消息(如 MySQL 连接器已知的那样),也为 Postgres 解决了这个问题(DBZ-800)。这使得连接器能够定期将偏移量提交到 Kafka Connect,这也作为向 Postgres 服务器确认已处理 LSN 的钩子。

您可以在 更改日志 中找到 Debezium 0.8.1.Final 中所有更改的列表。

下一步是什么?

如上所述,我们将致力于支持 SQL Server 连接器运行时对捕获表的结构更改。这对 Oracle 连接器也同样适用。这将需要对我们的 DDL 解析器进行一些工作,但得益于我们最近将 MySQL DDL 解析器迁移到 Antlr 所提供的基础,这应该是可行的。

另一项重点工作将是提供一种替代的 Oracle 变更获取实现,而不是基于 XStream API。我们已经对 LogMiner 进行了一些实验,并且还在积极探索其他替代方案。虽然一些细节尚不清楚,但我们有信心很快能在此领域发布一些东西。

如果您想了解更多关于一些中期和长期想法的信息,请查看我们的 路线图。如果您对未来的开发有任何想法或建议,也请与我们联系。

Gunnar Morling

Gunnar 是一位软件工程师,内心是一个开源爱好者,目前在 Confluent 担任技术专家。此前,他曾帮助构建一个基于 Apache Flink 的实时流处理平台,并领导了 Debezium 项目,这是一个用于变更数据捕获的分布式平台。他是 Java Champion,并创立了多个开源项目,如 JfrUnit、kcctl 和 MapStruct。Gunnar 是一位热情的博主 (morling.dev),并曾在 QCon、Java One 和 Devoxx 等各种会议上发表演讲。他居住在德国汉堡。

   


关于 Debezium

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

参与进来

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

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