夏季最热的时候慢慢过去,Debezium 社区很高兴地宣布 Debezium 0.10.0.Beta4 的发布。在此版本中,我们很高兴分享一些我们不经常分享的消息:随着 Apache Cassandra 的加入,Debezium 支持的数据库列表又增加了一个!
此外,我们完成了将现有的 Postgres 连接器重基到为 SQL Server 和 Oracle 连接器建立的 Debezium 框架结构的工作。这意味着这些连接器之间共享的代码更多,从而减少了开发团队未来的维护工作;但对您来说,也有一个直接的好处:Postgres 连接器现在公开了您从其他连接器已知的相同指标。
最后,新版本包含一系列错误修复和其他有用的改进。让我们在下面探索一些细节。
孵化中的 Cassandra 连接器
如果您还没有阅读过这些文章,我们强烈建议您阅读,以了解在为 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 修复概述:
请参阅 0.10.0.Beta4 发布说明,了解已解决问题的完整列表和升级过程。
非常感谢所有为本次发布做出贡献的 Debezium 社区贡献者:Joy Gao、Renato Mefi 和 Guillaume Rosauro!
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。