
我非常高兴地宣布Debezium的发布开云体育官方注册网址1.2.0.Beta1!
该版本为SQL Server、Db2和Oracle连接器带来了面向用户的模式更改主题,为基于内容的更改事件路由提供了新的消息转换,支持Postgres中的一系列数组列类型等等。我们还升级了Apache Kafka和Ka开云体育官方注册网址fka Connect的Debezium容器镜像到2.5.0版本。
因为它是生活中所有问题的答案,所以这个版本修复的问题数量是到底是42!
架构更改主题
与MySQL连接器类似,SQL Server、Db2和Oracle的Debezium连开云体育官方注册网址接器也可以选择公开一个带有模式更改信息的公共主题。与连接器-内部历史记录主题不同,模式更改主题是供感兴趣的客户机使用的,例如允许为下游数据存储的模式播下种子。
模式信息在类型化结构中传播,使使用者不必解析数据库特定的DDL语句。开云体育电动老虎机属性的创建作为一个示例,这里有一个模式事件客户
Debezium教程中的表,由开云体育官方注册网址SQL Server连接器生成,并使用JSON消息转换器:
{"源": {"版本":"1.2.0.Beta1","连接器":"sqlserver","的名字":"server1","ts_ms":1588252618953,"快照":"真正的","db":"testDB","模式":"dbo","表格":"客户","change_lsn":零,"commit_lsn":"00000025:00000d98:00a2","event_serial_no":零},"开云体育电动老虎机数据库名":"testDB","schemaName":"dbo","ddl":零,"tableChanges": [{"类型":"创建","id":"\"testDB\".\"dbo\".\"客户\"","表格": {"defaultCharsetName":零,"primaryKeyColumnNames":【"id"),"列": [{"的名字":"id","jdbcType":4,"nativeType":零,"typeName":"int身份","typeExpression":"int身份","charsetName":零,"长度":10,"规模":0,"位置":1,"可选":假,"自动增量":假,"生成的":假}, {"的名字":"first_name","jdbcType":12,"nativeType":零,"typeName":"varchar","typeExpression":"varchar","charsetName":零,"长度":255,"规模":零,"位置":2,"可选":假,"自动增量":假,"生成的":假}, {"的名字":"last_name","jdbcType":12,"nativeType":零,"typeName":"varchar","typeExpression":"varchar","charsetName":零,"长度":255,"规模":零,"位置":3.,"可选":假,"自动增量":假,"生成的":假}, {"的名字":"电子邮件","jdbcType":12,"nativeType":零,"typeName":"varchar","typeExpression":"varchar","charsetName":零,"长度":255,"规模":零,"位置":4,"可选":假,"自动增量":假,"生成的":假}]}}]}
要了解有关模式更改主题的更多信息,请参阅特定于连接器的文档,例如SQL Server.请注意,此功能目前处于孵化状态,这意味着例如,根据我们从社区收到的反馈,事件格式的详细信息可能会在未来的版本中更改。
基于内容的主题路由
使用新的单消息转换(SMT)基于内容的主题路由您可以根据主题的列值控制特定的更改事件被发送到的主题。以一个数据库表为例开云体育电动老虎机对purchase_orders
其中包含B2B和B2C两种订单。它们的更改事件应该被发送到Apache Kafka中每种类型的不同主题。为此,可以利用JavaScript或Groovy等语言中的简单脚本表达式:
...transforms.route.type=io.debezium.transfor开云体育官方注册网址ms.Filter transforms.route.language=jsr223. gral .js transforms.route.topic.expression=value.after。ordertype == 'B2C' ?'b2c_orders': 'b2b_orders'…
进一步的更改和错误修复
此版本的其他一些特性和修复包括:
支持Postgres
JSON
,JSONB
,时间
而且时间戳
数组列(dbz - 1969,dbz - 1990)Postgres连接器的列白名单,如果您只对捕获表列的一小部分感兴趣(dbz - 1962)
MySQL的
刷新表
语句被正确处理(dbz - 2047)在路由发件箱事件中使用唯一名称空间(dbz - 1963)
修正了Postgres中潜在的值溢出问题
一些不同的
列(dbz - 1949)支持
eventType
字段已从发件箱路由SMT (dbz - 2014);如果需要,请将此字段显式配置为报头或消息值属性;这样做是为了允许使用任何自定义名称导出该字段,这在以前是不容易实现的改进了使用枚举列时Postgres连接器的启动性能(dbz - 2038)
详情请参阅发布说明查看所有已解决问题和升级程序的列表。
非常感谢所有对此版本做出贡献的社区成员:安德斯Engstrom,安东Kondratev,Bingqin周,布莱登新郎,大卫·杰罗姆,侯赛因Torabi,伊凡KlassJan-Hendrik痛单位,约翰Psoroulas,乔斯Huiting,乐高lyidataminr,Siddhant Agnihotry!
关于Debe开云体育官方注册网址zium
开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源下Apache许可证,版本2.0.
参与
我们希望您觉得Debezium有趣开云体育官方注册网址且有用,并愿意尝试一下。在Twitter上关注我们@开云体育官方注册网址debezium,在Zulip上和我们聊天,或加入我们的邮件列表与社区对话。所有的代码都是开源的GitHub上,因此在本地构建代码并帮助我们改进现有连接器并添加更多连接器。如果您发现了问题或对我们如何改进Debezium有想法,请告诉我们开云体育官方注册网址记录问题.