本文主要是介绍Debezium发布历史126,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文地址: https://debezium.io/blog/2022/09/16/debezium-2.0-beta2-released/
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
Debezium 2.0.0.Beta2 Released
September 16, 2022 by Chris Cranford
releases mysql postgres sqlserver cassandra oracle db2 vitess outbox
我很高兴地宣布 2.0.0.Beta2 !
这个版本包含了几个破坏性的更改、稳定性修正和错误修正,所有这些都使我们更接近于2.0.0.最后。总的来说,这个版本包含了 107个问题 已经修好了。
如果您打算升级到2.0.0.Beta2,我们强烈建议您在升级之前阅读发布说明,以了解所有破坏更改。下面值得注意的变化是我们将在这篇博文中报道的,其中一些正在打破:
[breaking] 新连接器属性名称空间
[可能破裂] 所有事件模式适当命名和版本化
[可能破裂] 删除操作现在默认包括截断事件
Mysql宾基压缩支持
卡珊德拉4个增量承诺日志支持
暂停和恢复暂停的增量快照
为增量快照定制SQL过滤
现在添加到表中的信号集合自动包含列表
多任务连接器支持
新连接器属性名称空间
进入Debezum2.0的最大改革之一是引入了新的连接器属性名称空间。许多连接器属性已经重新定位,使用了新名称。这是一个破坏性的更改,在升级过程中影响到大多数(如果不是全部)连接器的部署。
德贝兹以前使用前缀"数据库。"具有众多不同的连接器属性。其中一些属性是直接传递给JDBC驱动程序的,在其他情况下则传递给数据库历史实现的,等等。不幸的是,我们识别了一些情况,其中一些属性被传递到不打算实现的底层实现中。虽然这并没有创建任何类型的回归或问题,但是如果有属性名称冲突,它可能会引入一个未来的问题,例如,一个与"数据库匹配的JDBC驱动器属性。前缀德贝兹接头属性。
以下描述连接器属性的更改
所有配置之前都以database.history. 现在要用前缀schema.history.internal. 相反。
所有JDBC通过以前指定的选项database. 前缀现在应该用前缀driver. 相反。
…database.server.name 连接器属性改名为topic.prefix .
蒙戈数据库mongodb.name 连接器属性与使用一致topic.prefix 相反。
同样,请在部署之前审查连接器配置并相应调整。
所有德贝兹事件模式都被命名和版本化
随着模式定义的发布,Debezum更改事件会被发出,该定义包含有关字段的元数据,如类型、是否需要,等等。在前几次的Debezns的迭代中,一些架构定义没有显式名称,也没有显式的版本化。在这个版本中,我们已经转移到确保所有模式定义都有一个明确的名称和与它们相关的版本。这种改变的目的是帮助将来事件结构的兼容性,特别是对于那些使用模式注册表的人。但是,如果您当前使用的是架构注册表,请注意,在升级过程中,此更改可能导致架构兼容性问题。
删除操作默认截断事件
德贝兹支持通过包括skipped.operations 连接器属性在连接器配置中。如果您只对某个操作子集感兴趣,例如只对插入和更新感兴趣,而对删除感兴趣,那么这个功能将非常有用。
一个特定的事件类型,截断(t ),仅由关系连接器的一个子集支持,这些事件是否被跳过并不一致。在这个版本中,我们把skipped.operations 这样,如果连接器支持截断事件,默认情况下将跳过这些事件。
请回顾以下规则:
连接器支持截断事件,而不是甲骨文连接器
连接器配置没有指定skipped.operations 在配置中
如果以上所有内容都是真实的,那么连接器的行为将在升级后改变。如果您希望继续发出截断事件,skipped.operations=none 将需要配置。
Mysql宾基压缩支持
在这个版本中,Debezum现在支持读取使用压缩启用的双日志条目。在第8.20.20版本中,mysql增加了使用ZSTD算法压缩宾日志事件的能力。要启用压缩,必须切换binlog.transaction_compression 在mysql服务器上的变量ON .当启用压缩时,绑定日志的行为与以往一样,除了对绑定日志条目的内容进行压缩以保存空间,并以压缩格式复制到副本,这大大降低了大型事务的网络开销。
如果您有兴趣有关mysql宾基压缩的信息,您可以参考 二进制日志事务压缩 为了了解更多的细节,可以在mysql文档中找到部分。
卡珊德拉4个增量承诺日志支持
卡珊德拉4号 通过增加功能,改进了与疾病预防控制中心的集成,当F同步操作发生时,卡珊德拉将更新一个基于CDC的索引文件,以包含最新的偏移值。这个索引文件允许cdf实现读取到被认为是持久的卡珊德拉偏移。
在这个版本中,Debezum现在使用这个基于CDC的索引文件来消除在处理来自卡珊德拉以前存在的疾病控制中心事件时固有的延迟。这将使卡珊德拉的使用者在疾病预防控制中心得到了大幅度的改进,并激励他们考虑卡珊德拉4号对卡珊德拉3号。
暂停和恢复
增量快照已成为DEBeZMI中的一个不可或缺的特性。增量快照特性允许用户出于各种原因在一个或多个集合/表上重新运行快照。增量快照最初是以 开始 信号。我们最终增加了 停止 正在进行的增量快照或能够从正在进行的增量快照中删除集合/表的子集。
在这个版本中,我们在现有的信号基础之上构建了两个新的信号,一个是 暂停 一个正在进行的增量快照,然后是另一个 简历 如果之前已经暂停,则增量快照。暂停一个增量快照,pause-snapshot 必须发出信号,并恢复,resume-snapshot 可以使用信号。
这两个新的信号可以使用信号表策略或mysql的卡夫卡信号主题策略来发送。请参阅 信号支持文件 关于信号和它们如何工作的详细信息。
为增量快照定制SQL过滤
虽然不常见,但可能会出现连接器配置错误等情况,即需要将特定记录或记录子集重新发送到主题中。遗憾的是,增量快照传统上一直是一个全有或全无的流程类型,我们将从集合或表中重新释放所有记录,作为快照的一部分。
在这个版本中,一个新的additional-condition 属性可以在信号有效载荷中指定,允许信号指定基于sql的谓词来控制增量快照中应包含哪些记录子集,而不是默认的 全部排 .
下面的示例演示了为products 但不是把表中的所有行都发送到主题,而是additional-condition 指定属性以限制快照仅发送与产品ID相关的事件12 :
{
“type”: “execute-snapshot”,
“data”: {
“data-collections”: [“inventory.products”],
“type”: “INCREMENTAL”,
“additional-condition”: “product_id=12”
}
}
我们相信这种新的增量快照功能将会非常有帮助,因为有很多原因,在只需要一个数据子集的情况下,不必总是重拍所有行的快照。
自动添加信号收集,以包括过滤器
在前几版的Debezns中,用于增量快照的信号集合/表必须手动添加到您的table.include.list 连接器属性。这个版本的一个大主题是对增量快照的改进,所以我们也利用这个机会对其进行了简化。从这个版本开始,Debezns将自动地将信号集合/表添加到表包含过滤器中,从而避免用户手动添加它。
此更改不会造成任何兼容性问题。连接器配置,已包括table.include.list 酒店将继续运行,不需要任何更改。然而,如果您希望将您的配置与当前行为相匹配,您还可以安全地从table.include.list ,德贝司会自动为你处理这个。
多任务连接器支持
之前允许使用两种完全取决于连接器配置是否指定任何碎片细节的不同模式来操作VIFSIS连接器。不幸的是,在这两种情况下,每一种情况都导致了一个单一的任务,负责执行V流处理。对于具有很多碎片的更大的生命体装置,这个架构可能会开始显示延迟问题,因为它可能无法跟上所有碎片的所有变化。更复杂的是,在指定碎片详细信息时,需要手动在集群中解析碎片,每个碎片启动一个单一的Debezu连接器,这不仅容易出错,而且更重要的是,可能会导致部署许多德贝兹连接器。
生命社区认识到这一点,并寻求从维护和错误的角度解决所有这些问题。在Debezum2.0Beta2中,VIDSES连接器现在通过一个发现机制自动解决碎片,这与蒙戈数据库的机制非常相似。这个发现机制将在多个任务中分配负载,允许根据连接器允许的任务的最大数量,在每个碎片或碎片列表中运行一个任务的一次Debezns部署。
在升级过程中,维特斯连接器将自动将偏移存储迁移到与多任务行为一起使用的新格式。但是要注意,一旦你升级了,你将无法降级到早期版本,因为偏移存储格式将会改变。
其他修复和改进
在这个版本中有许多缺陷和稳定性变化,值得注意的是:
增量快照事件的源信息输出错误数据 DBZ-4329
否决内部密钥/价值转换器选项 DBZ-4617
"没有记录的最大LNS"日志消息可以在低活动数据库中发布 DBZ-4631
REDIS汇配置属性不会传递到数据库历史 DBZ-5035
将SQL服务器驱动程序升级到10.2.1.JRE8 DBZ-5290
不重试失败请求 DBZ-5307
当嵌套数组不包含元素时,将蒙戈布文档转换为卡夫卡连接架构失败 DBZ-5434
在同一线程上复制SCNS DBZ-5439
反对所有连接器的遗留主题选择器 DBZ-5457
删除数据库上JDBC连接的依赖关系 DBZ-5470
错过在启动FIDAulTREG-外推策略连接器之前的RGEX属性验证 DBZ-5471
在使用带有引用标识符的表空间子句时,创建索引DDL无法解析 DBZ-5472
当输出框确定其架构时,它没有正确检查数组一致性 DBZ-5475
输入日志的错误统计数字 DBZ-5476
移除SQL服务器源时安培模式 DBZ-5477
在蒙戈德5中故障转移时,德贝兹连接器任务没有重试 DBZ-5479
为信号表故障提供更好的错误报告 DBZ-5484
甲骨文数据泵DDL无法解析 DBZ-5488
升级后的SQL驱动器到42.4.1 DBZ-5493
Mysql连接器解析DDL语句在包括关键字"桶"时失败 DBZ-5499
在重新数据库历史中重复呼叫配置验证和记录() DBZ-5506
无法解析ddl语句:错误匹配的输入"引擎" DBZ-5508
在SQL服务器文档中使用"数据库.db名称" DBZ-5516
记录程序DML解析器错误地解释了连接操作符在引用的列值内 DBZ-5521
Mysql连接器DDL解析器不解析所有特权 DBZ-5522
使用基于jon的检查约束从句创建表,导致多重分配异常 DBZ-5526
在历史恢复中的逻辑架构之前优先选择DDL是禁用的 DBZ-5535
嵌入式引擎应使用源端上下文初始化连接器 DBZ-5534
支持空列标识符 DBZ-5550
使用Tccl作为默认的类加载器来加载接口实现 DBZ-5561
字节无效。 DBZ-5569
自动主题创建列表的语言类型 DBZ-5573
升级Mysql–连接器-Java库版本 DBZ-5574
生命线:把手意外地关上。 DBZ-5579
分析更改SQL时出错 DBZ-5587
外地验证错误对正、非零预期具有误导性 DBZ-5588
Mysql连接器无法处理重命名/更改列语句的区分大文本 DBZ-5589
不允许时间戳的文字 DBZ-5592
甲骨文DDL不支持对具体化视图的评论 DBZ-5595
甲骨文DDL不支持空的默认情况 DBZ-5605
不支持数据类型 DBZ-5609
总共, 107个问题 已经做好了准备。
我非常感谢所有参与这个版本的社区贡献者: 艾哈迈德·埃尔贾米 , 亚历山大施瓦茨 , 阿列克斯·卢布扬斯基 , Gabor[Andras], 阿尼莎 , 鲍勃·罗丹 , 克兰福德 , 克劳斯易卜生 , 德杰特·萨卡尔 , 加博尔·安德拉斯 , 贡纳·莫林 , 恒鲁 , , 亨利蔡 , 王英基 , 杰克布切切克 , 扬尼克·斯坦曼 , 杰里米·福特 , 伊日诺沃特尼 , 伊里·帕坎奇c , 卡特琳娜·加里耶娃 , 马里克·温克勒 , 马丁·梅戴克 , 尼廷查布拉 , 第二季及第二季 , 罗丹 , 鲁德·H.G.范托尔 , 徐智权 , 谢尔盖·莫罗佐夫 , 斯特凡·米科洛维奇 , 拉马嫩卡 , 沃桑 , 沃伊泰克 , 中强公 , 合龙 张 , 崔世杰 ,以及 민규 김 !
接下来呢?
随着德贝兹2.0贝塔2的释放,我们将在最后一段时间内向2.0.0.决赛进发。该社区预计在9月底前将推出CR1,10月中旬前将推出最后的CR1。
另外,我们的贡纳莫林和我将是即将到来的 夸克斯洞察力 播客,第103集。我们将讨论德贝齐斯和夸克斯,德贝齐斯如何利用夸克斯的力量,一个在夸克斯应用程序中嵌入德贝齐斯的虚拟操作方法,并讨论德贝齐斯2.0的所有新特性。一定要看播客,让我们知道你的想法!
这篇关于Debezium发布历史126的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!