
我很荣幸地宣布Debezium的发布开云体育官方注册网址1.1.0.Beta1!
此版本增加了对事务标记事件的支持、IBM Db2数据库的孵化连接器以及一系列错误修复。开云体育电动老虎机由于1.1版本仍在积极开发中,我们已经将一系列错误修复后移植到1.0分支,并发布了Debezium开云体育官方注册网址1.0.1.Final,太。
在撰写本文时,并非所有连接器存档都已同步到Maven Central;接下来的几次应该也是这样。
事务标记
Debezium用户的一个常见需求是物化由多个变更数开云体育官方注册网址据主题的变更事件组成的某种“聚合”。
例如,考虑一个管理采购订单的电子商务应用程序。在关系数据库中,表示这种顺序的信开云体育电动老虎机息通常分布在多个表中,例如。PURCHASE_ORDER
,ORDER_LINE
而且SHIPMENT_ADDRESS
.要在数据库中检查采购订单的完整状态,需要对这三个表运行一个JOIN查询。开云体育电动老虎机
当查看CDC连接器(如Debezium)产生的更改事件主题时,事情变得更具挑战性。开云体育官方注册网址例如卡夫卡流可用于连接三个表的更改事件流并实现聚合视图。
我们已经探索了一种可能的实现之前在这个博客上。但是,这种方法容易暴露中介聚合。原因是连接逻辑不了解应用在源数据库中的事务边界。开云体育电动老虎机因此,例如,当插入一个包含10个订单行的购买订单时,可能会出现一个包含订单和前5行的聚合被物化,紧接着是包含所有10个订单行的完整聚合视图。根据您的用例,向下游消费者公开这样的中间聚合(例如搜索索引)可能是不可取的。
在De开云体育官方注册网址bezium 1.1中,这种情况可以通过利用大多数连接器支持的新事务元数据主题来解决。启用后,将发布一个单独的主题,其中包含指示事务开始和结束的事件:
{”状态”:”开始”,”id”:”571”,”event_count”:零,”data_collections”:零}...{”状态”:”结束”,”id”:”571”,”event_count”:”11”,”data_collections”: [{”data_collection”:”inventory.purchaseorder”,”event_count”:”1”}, {”data_collection”:”inventory.orderline”,”event_count”:”10”}]}
结束
事件包含源于此事务的更改事件总数,以及每个受影响表的事件数。购买订单和订单行表主题中的实际数据更改事件也包含事务id。这两件事一起使流处理应用程序能够缓冲来自一个事务的所有更改事件。只有当它接收到事务的所有事件时,它才可以生成最终的聚合视图并将其发布给下游消费者,从而避免暴露中间聚合视图的问题。
请继续关注即将发布的这种实现的深入示例!
IBM Db2连接器
进一步的更改和错误修复
除了事务元数据主题和Db2连接器之外,Debezium 1.1 Beta1还完成了一些改进和修复:开云体育官方注册网址
的消息转换
后
来自更改事件的状态允许将更改事件路由到基于可配置记录字段(dbz - 1715)的
ExtractNewDocumentState
与Debezium MongoDB连接器一起使用开云体育官方注册网址的SMT将转换日期
而且时间戳
现在进入org.apache.kafka.connect.data.Timestamp
逻辑类型,明确其语义(dbz - 1717)MySQL连接器将不再在DEBUG级别记录dabase密码(dbz - 1748)
MySQL连接器的Antlr DDL解析器处理
事务
MariaDB关键字(dbz - 1733)以及获得诊断
语句(dbz - 1740)Postgres连接器可用于代理连接(dbz - 1738)
总的来说,27日问题修复了此版本。161.1 Alpha1和Beta1的错误修复被反向移植到1.0.1.Final。在将Postgres连接器和附带的decoderbufs逻辑解码插件升级到1.1 Beta1时,请务必阅读升级说明,因为需要按特定顺序升级这两者。
非常感谢安德里亚张家港基地,亚历山大·施瓦兹,Bingqin周,Igor Gabaydulin,Jan Uyttenhove,乔斯Huiting,Luis Garces-Erice,Marc Zbyszynski,彼得Urbanetz而且肖恩·鲁尼感谢他们对这个版本的贡献!
在我们走向Debezium 1.1的道路开云体育官方注册网址上,我们可能会在几周后进入候选发布阶段之前再发布一个Beta版本。要了解接下来会发生什么,请查看路线图,或与我们联系,告诉我们您的具体功能要求!
关于Debe开云体育官方注册网址zium
开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源下Apache许可证,版本2.0.
参与
我们希望您觉得Debezium有趣开云体育官方注册网址且有用,并愿意尝试一下。在Twitter上关注我们@开云体育官方注册网址debezium,在Zulip上和我们聊天,或加入我们的邮件列表与社区对话。所有的代码都是开源的GitHub上,因此在本地构建代码并帮助我们改进现有连接器并添加更多连接器。如果您发现了问题或对我们如何改进Debezium有想法,请告诉我们开云体育官方注册网址记录问题.