夏季最热的时候慢慢过去,Debezium 社区很高兴地宣布 Debezium 0.10.0.Beta4 的发布。在此版本中,我们很高兴分享一些我们不经常分享的消息:随着 Apache Cassandra 的加入,Debezium 支持的数据库列表又增加了一个!

此外,我们完成了将现有的 Postgres 连接器重基到为 SQL Server 和 Oracle 连接器建立的 Debezium 框架结构的工作。这意味着这些连接器之间共享的代码更多,从而减少了开发团队未来的维护工作;但对您来说,也有一个直接的好处:Postgres 连接器现在公开了您从其他连接器已知的相同指标。

最后,新版本包含一系列错误修复和其他有用的改进。让我们在下面探索一些细节。

孵化中的 Cassandra 连接器

如果您最近一直在关注本博客,您会读到 Debezium 系列的最新成员,Joy Gao 在其精彩的文章中介绍了新的连接器(第一部分第二部分)。

如果您还没有阅读过这些文章,我们强烈建议您阅读,以了解在为 Cassandra 这样的分布式数据存储实现 CDC 连接器时遇到的挑战,以及为创建第一个“最小可行产品”所做的设计决策。Joy 去年还在 QCon 上做了一次很棒的演讲,也提到了 CDC for Cassandra 的主题。

最初由 长期 Debezium 用户 WePay 内部开发,WePay 团队决定将其开源,置于 Debezium 之下并继续在那里发展。这对 Debezium 社区来说真是个好消息!我们对这项贡献感到非常高兴,并期待在公开场合一起发展这个新连接器。

目前,Cassandra 连接器处于“孵化”状态,即其设计和实现仍处于不断变化中,它生成的事件结构在未来的版本中可能会发生变化等。请注意,与其他 Debezium 连接器不同,这个连接器目前不是基于 Kafka Connect 的。相反,它被实现为一个运行在 Cassandra 节点本身上的独立进程。有关此设计背后的原因和可能的未来发展,请参阅上面链接的博文。不用说,任何关于这方面的想法和贡献都将受到高度欢迎。

随同连接器,我们还提供了一份初步的 连接器文档草稿;这仍是进行中的工作,将在未来几天内进行补充。

更多新功能

Postgres 连接器现在支持 SQL Server 和 Oracle 已知的指标(DBZ-777)。在使用 SQL Server 连接器时,现在可以确保表按照给定的表白名单配置定义的确定性顺序进行快照(DBZ-1254)。

我们的 SMT(单消息转换)也有了两项改进:

  • 用于 新记录状态提取的 SMT 允许添加额外的列来传播 source 块中的元数据字段(DBZ-1395,例如,这对于将事务传播到 sink 表很有用)。

  • outbox 路由 SMT 生成的默认结构已进一步简化(DBZ-1385);消息值现在只包含配置的 outbox 表 payload 列的内容。如果您想重新添加 eventType 值,可以将其配置为“附加字段”,该字段可以进入消息的 header(推荐)或消息值(如以前一样,将是嵌套结构)。

Bug 修复和其他改进

最后,这里是 0.10 Beta4 版本中一些经过整理的 bug 修复概述:

  • MySQL 连接器可以正确处理 GRANT DELETE ON <table> 语句(DBZ-1411

  • 在使用 SQL Server 的 initial_schema_only 快照策略时,可以避免多余的表扫描(DBZ-1417

  • 在获取 Postgres 的 xmin 位置时,可以避免多余的连接创建(DBZ-1381

  • 新的记录状态提取 SMT 可以正确处理 heartbeat 事件(DBZ-1430

请参阅 0.10.0.Beta4 发布说明,了解已解决问题的完整列表和升级过程。

非常感谢所有为本次发布做出贡献的 Debezium 社区贡献者:Joy GaoRenato MefiGuillaume Rosauro

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