我们非常高兴地宣布Debezium的发布开云体育官方注册网址1.5.0.Beta2

这个版本的主要特性是新的Debezium信令表支持,Vitess SET类型支持,以及继续开云体育官方注册网址关注一些小的改进,错误修复和优化,因为我们冲刺到1.5版本的终点线。

总的来说,社区是固定的54个问题自Beta1发布以来,其中一些我们将在下面更深入地探讨。

信号表

信号表特性是Debezium的一个巨大里程碑。开云体育官方注册网址它提供了一个基于源数据库表的命令模式,向Debezium发送命令(又名信号),以便采取特定的操作开云体育电动老虎机。开云体育官方注册网址该框架是可扩展的,允许连接器实现Debezium核心提供的公共命令之外的自定义命令。开云体育官方注册网址有几种情况下,这可能是适用的,包括但不限于,PostgreSQL主键列的更改,列定义的enum值集的更改,以及Oracle连接器的模式更改。这是一个孵化特性,因此行为会在不同版本之间发生变化。

为了使用信号表特性,连接器选项signal.data.collection必须在连接器的配置中指定。此选项指定信号请求将从其来源的表的完全限定名称。如果未指定此选项或为空,则将禁用信号表特性。

信号表本身必须提前创建,并且必须遵循以下约定:

列名 数据类型

ID

字符串
信号的唯一标识符,如UUID。

类型

字符串
要执行的唯一命令。

数据

字符串
命令的有效负载。

最后,信号表必须作为连接器的include/exclude-list规范的一部分显式地找到。换句话说,如果指定要监视的表列表,则需要调整该列表以包括信号表的名称。

这个新特性有相当多的用例,我们打算在未来的版本中探索。让我们讨论一下这个版本目前支持哪些信号。

测井信号

日志含义检测到日志信号类型信号表中的列为日志.该信号要求Debezium写入开云体育官方注册网址数据列(有效负载)按原样连接到连接器日志。这对于从调试到跟踪数据库脚本操作进度等各种目的都很有用。开云体育电动老虎机

举个例子:

插入开云体育官方注册网址Debezium_signals (id, type, data)1,日志,你好世界);

一旦插入被提交并写入到数据库的事务日志中,Debezium将识别信号并进行写入开云体育官方注册网址开云体育电动老虎机你好世界连接到连接器日志信息日志级别。

模式变化信号

模式变化信号被检测到类型信号表中的列为模式变化.这个信号告诉Debezium发射a开云体育官方注册网址SchemaChangeEvent的模式更改主题,该主题基于行中提供的更改数据列(载荷)。的格式数据列必须以JSON格式给出,格式示例如下。此外,这个信号还会让Debezium更新它在内存中表示表的模式结构。开云体育官方注册网址

例如,我们有一个PostgreSQL表s1.a我们想在哪里添加一个新列aa

开云体育电动老虎机postgres,变化: [{类型改变,ids1.a,表格: {defaultCharsetName,primaryKeyColumnNames:【pk),: [{的名字pk,jdbcType4,nativeType23,typeName串行,typeExpression串行,charsetName,长度10,规模0,位置1,可选,自动增量真正的,生成的}, {的名字aa,jdbcType4,nativeType23,typeNameint4,typeExpressionint4,charsetName,长度10,规模0,位置2,可选真正的,自动增量,生成的}]}}]}

使用这个JSON有效负载,信号将被插入为:

插入开云体育官方注册网址Debezium_signals (id, type, data)1,模式变化, < json-payload-string >);

Vitess SET支持

Vitess团队改进了VStream API中的数据类型支持,作为Vitess 9.0的一部分。这种改进导致了Debezium Vitess连接器现在支持的数据类型。开云体育官方注册网址此数据类型将作为现在它将包含列的所有允许值定义。

其他功能和修复

除了信号表和Vitess SET支持之外,这个版本还进行了其他一些改进和修复。

  • Orac开云体育官方注册网址le的Debezium连接器现在默认使用基于logminer的捕获实现。为了使用基于xstream的实现,必须使用开云体育电动老虎机database.connection.adapter选项必须显式设置为xstreamdbz - 3241).

  • 在Debezium 1.5的早期版本中,Oracl开云体育官方注册网址e连接器开始发出信号数量(1)数据类型为布尔.这个转换不是由连接器隐式完成的,而是被移动到一个OOTB转换器,NumberOneToBooleanConverter,可按需要使用(dbz - 3208).

  • 系统生成的索引组织表(以SYS_IOT_OVER)将被Oracle连接器(dbz - 3036

  • 开云体育官方注册网址Debezium服务器的AWS Kinesis接收器可以通过指定端点来配置开云体育官方注册网址debezium.sink.kinesis.endpointdbz - 3246).

与往常一样,您可以在。中找到所有已解决问题和升级过程的完整列表发布说明

接下来是什么?

慢慢地结束了Debezium 1.5发布列车上的工作,我们也抓住了这个开云体育官方注册网址机会,将Debezium Oracle集成到main中开云体育官方注册网址源代码存储库。有了它,前者的所有连接器开云体育官方注册网址debezium-incubator存储库要么被移动到它们自己的专用存储库中,要么集成到主存储库中。孵化器存储库已设置为“存档”模式,允许在需要时检查其历史记录。

在1.5最终版之前的剩余时间里,我们计划专注于bug修复、性能改进、文档调整和其他稳定工作;除非出现任何不可预见的问题,否则基于logminer的捕获实现将从孵化稳定的最终版本的状态也是如此。如果一切按计划进行,将在下周发布CR(候选版本),然后在月底左右发布最终版本。

克里斯克兰福德

克里斯是红帽公司的软件工程师。他以前是Hibernate ORM团队的成员,现在在Debezium工作。开云体育官方注册网址他住在北卡罗来纳州,距离红帽塔只有几个小时的路程。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

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