自学内容网 自学内容网

Debezium发布历史157

原文地址: https://debezium.io/blog/2023/08/09/debezium-2-4-alpha2-released/

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

Debezium 2.4.0.Alpha2 Released
August 9, 2023 by Chris Cranford
releases mongodb mysql postgres sqlserver cassandra oracle db2 vitess outbox spanner

尽管今年夏天的工作进展顺利,但德贝兹的贡献者们仍在努力工作,我很高兴地宣布德贝兹2.4系列的下一次预展。 2.4.0.Alpha2 .

该预览版本包括改进、错误修正和新功能的组合,这些功能可供Debezum社区测试和提供反馈。此版本中的一些亮点包括特别的阻塞快照、源链接列名称的传播、对其他mysql驱动程序的支持,以及所有带有Debezum服务器的卡珊德拉连接器。让我们花点时间来谈谈这些和其他的。

突破性变化

新功能

其他变动

下一步是什么

突破性变化
德贝兹服务器和卡珊德拉连接器
对于卡珊德拉连接器的用户,他们可能一直在使用德贝兹服务器,或者可能想使用德贝兹服务器,我们以前只运送了卡珊德拉4与德贝兹服务器分布。现在,我们把所有三个卡珊德拉连接器变体都包括在分布上,这意味着卡珊德拉3和DSE现在可以直接使用。

但是,为了实现这个目标,一个新的环境变量EXTRA_CONNECTOR 介绍具体规定哪个卡珊德拉连接器的变体应由德贝兹服务器使用。这意味着,如果您使用的是带有Debezum服务器的卡珊德拉4,那么在升级时必须包含该环境变量,以使相同的配置继续像以前版本那样工作。

这个新的环境变量应该设置为dse ,cassandra-3 ,或cassandra-4 根据卡珊德拉版本,您打算使用的德贝佐姆服务器源连接器。

Mysql大民精确度改变
对于mysql连接器,德贝兹没有正确地设置精确度。BIGINT 配置连接器时的数据类型bigint.unsigned.handling.mode 作为precise .不幸的是,这导致了这样一种情况,即这些字段的模式没有包括正确的精确值。

第2.4包括 DBZ-6714 提供一个解决这些字段不正确的精确度的修正。这可能导致使用模式注册表时模式不兼容,因此如果需要使用严格的兼容性规则,您可能需要调整您的兼容性设置或采取其他行动。

甲骨文快照和查询获取尺寸增加
德贝齐姆2.4引入了一个更改默认值的snapshot.fetch.size 以及query.fetch.size 甲骨文连接器配置属性。以前,这些属性使用默认的2000 然而,由于社区的贡献,人们发现这些数值可能太低,无法用于生产。

有了这个版本,甲骨文连接器将使用默认的10000 对于这两个属性,对于大多数没有显式设置这些值的用户来说,应该对吞吐量有一个积极的改进。如果您以前在连接器配置中使用这些设置的自定义值,那么您将不会看到对现有行为的更改。只有以前没有显式设置这些值的用户才会注意到将使用新的默认值。

这些配置属性的作用是作为调优旋钮,因为一个JDBC环境的特定配置可能在不同的环境中无法工作。虽然我们相信此更改不会产生负面影响,但如果您确实注意到性能下降,则可以将这些属性添加到将其设置为先前默认值的连接器配置中2000 .

生命不正确的映射_bin 柱
因为那是以_bin 设计者,维特斯将这些映射到数据类型VARBINARY .因此,Viites连接器推断这些列应该作为二进制数据发出;然而,对于使用这种排序的基于特性的列,这是不正确的。

德贝兹2.4现在将正确地释放出与_bin 表示为基于字符串的数据,而不是二进制数据。这意味着,如果您使用模式注册表,您可能会观察SOMEE模式不兼容性,您可能需要调整兼容性设置或采取其他行动来缓解这种更改。

新功能
临时阻塞快照
增量快照是近两年前在Debezum1.6中首次引入的,在处理各种重新快照的使用案例方面仍然很受欢迎。然而,在一些使用案例中,读取事件与创建、更新和删除的相互关联性可能不太理想,甚至没有一些用户应用程序支持。对于那些用例,Debezum2.4引入了临时阻塞快照。

特别阻塞快照的工作方式与特别增量快照的工作方式相似;不过,有一个主要区别。快照仍然是通过发送信号到Debezum来触发的;然而,当连接器处理信号时,关键的区别是在快照进程运行时流被搁置。这意味着您将不会收到与创建、更新或删除事件交织在一起的一系列读取事件。这也意味着我们将以类似于传统快照的方式处理快照,因此吞吐量通常应该高于增量快照。

请注意,在执行快照时,临时阻塞快照会使对事务日志的读取暂停。这意味着在使用这种特别快照模式时,传统快照对事务日志可用性也适用同样的需求。当流恢复运行时,如果所需的事务日志已被删除,则连接器将引发错误并停止。

启动临时阻塞快照的信号与临时增量快照的对应信号非常相似。下面的信号显示了用条件快照特定表的有效载荷,但这使用了新的阻塞快照,而不是增量快照:

{
“type”: “execute-snapshot”,
“data”: {
“data-collections”: [“public.my_table”],
“type”: “BLOCKING”,
“additional-condition”: “last_update_date >= ‘2023-01-01’”
}
}
使用BLOCKING 与其说INCREMENTAL 区分两种临时快照模式。
源至链接列名称传播
通常情况下,列名直接映射到字段名,反之亦然,当接收器连接器(如JDBC连接器)使用时。但是,在有些情况下,序列化技术,如avro,对于字段命名约定有非常具体的规则。当数据库表中的列名称与序列化规则的命名约定发生冲突时,Debezum将在事件中重命名该字段,从而使其遵守序列化规则。这通常意味着一个字段将被下划线或无效字符替换为下划线。

这可能会给某些类型的汇带来问题,例如JDBC接收器连接器,因为接收器不能轻易地推断目标表的原始列名称,也不能在事件的字段名称和不同的列名称之间充分映射。这通常意味着用户必须使用接收端的转换链,以便用代表源的命名来重建事件的字段。

Debezum2.4引入了一种方法,通过将原来的列名传播为字段架构参数来最小化并可能完全避免这种情况,与我们在数据类型、精度、规模和长度方面所做的一样。架构参数__debezium.source.column.name 现在在启用列或数据类型传播时包括原始列名称。

DEBZMUJDBC接收器连接器已经与柱和数据类型的传输工作,允许接收器连接器更精确地推断柱的类型、长度、精度和比例。

有了这个新功能,JDBC接收器连接器将自动使用这个参数中的列名称,当它被提供以保证用与源相同的列名称创建目标表时,即使使用了avro或类似的名称。这意味着在使用德贝齐亚JDBC接收器连接器时不需要转换。

其他mysqJDBC驱动程序
为了在aws上使用iam身份验证,需要一个专用的mysql驱动程序来提供这类功能。使用Debezum2.4,您现在可以为这个特定的驱动程序提供一个引用,而连接器将使用该驱动程序,而不是使用与连接器一起运输的默认驱动程序。

例如,若要在Aws上使用iam身份验证连接,需要进行以下配置:

database.jdbc.driver=software.aws.rds.jdbc.mysql.Driver
database.jdbc.protocol=jdbc:mysql:aws
…database.jdbc.driver 指定连接器应加载并用于与mysql数据库通信的驱动程序。…database.jdbc.protocol 是一个补充配置属性,在所有上下文中可能不需要。它默认了jdbc:mysql 不过,既然我们需要jdbc:mysql:aws ,这允许您在配置中指定此派生。

我们很喜欢听到反馈,以及类似的东西是否对其他场景有用。

其他补救措施
此外,有相当多的稳定性和错误修复使它进入这个版本。其中包括:

将追踪转换到视距 DBZ-2862

连接器下降导致滚动条 DBZ-5421

提供显示连接器细节的抽屉组件大纲 DBZ-5831

修改运行中连接器组件的滚动 DBZ-5832

连接器重新启动回归 DBZ-6213

突出说明如何配置架构历史主题以仅为预定表存储数据的信息 DBZ-6219

文件最优蒙戈布OPEG配置弹性 DBZ-6455

JDBC架构历史:当表名传递为dbname时。 DBZ-6484

更新编辑连接器用户界面,将团队在演示中收到的反馈纳入其中 DBZ-6514

支持阻塞特别快照 DBZ-6566

增加新的参数给兔子消费者 DBZ-6581

文件改为2.4中的优惠变动 DBZ-6591

当注释混淆分号时,甲骨文DDL解析器没有正确地检测语句的结束 DBZ-6599

收到了一个意外的消息类型,它没有一个"后"德贝兹块 DBZ-6637

当DEBeZUMOB连接器遇到身份验证或在权限下出现错误时,DE贝ZUR和MOGODB之间的连接就会继续上升。 DBZ-6643

当JDBC连接器接收架构记录时,记录适当的错误 DBZ-6655

分区查询完成后发送墓碑事件 DBZ-6658

当信号发送时,快照不会捕捉数据。数据。收集没有表格。 DBZ-6669

由于没有重用错误处理程序,可检索操作被无限重试 DBZ-6670

甲骨文DDL解析器不支持更改表上的列可见性 DBZ-6677

传播源列名称并允许接收器使用它 DBZ-6684

与单一领导任务重新平衡后的重叠 DBZ-6685

JDBC接收器连接器在加载卡夫卡中含有结构类型字段的平面数据时失败 DBZ-6686

Sql综合研究JDBC连接器接头的模拟体验 DBZ-6687

应该使用主题.前缀而不是连接.服务器.名称在MBean名称中 DBZ-6690

当源数据库上的更新/删除时,CDC-Debezizx拉比特MQ-Debezum服务器崩溃(后GERSQL) DBZ-6691

在使用Atlas执行时,在平机指令上缺少操作时间域 DBZ-6700

在德贝兹服务器上不工作的蒙戈德 DBZ-6701

禁用jdk-背信弃义工作流程。 DBZ-6702

在验证用户添加的属性时,自定义属性的步骤不正确 DBZ-6711

将数据java添加到用户界面安装库文件 DBZ-6713

*运行方法 DBZ-6715

甲骨文没有处理删除用户 DBZ-6716

支持mysql连接器中的其他JDBC驱动程序 DBZ-6727

当上界不在距离以内时,应跳过甲骨文采矿距离计算 DBZ-6733

将停止和重新启动连接器状态添加到测试库 DBZ-6734

不可解析的DDL语句(如果存在则更改表) DBZ-6736

更新到3.2.3.最后 DBZ-6740

脱位德贝兹服务器和扩展部分夸克斯版本 DBZ-6744

单处理器删除冗余滤波器逻辑 DBZ-6745

由于打字错误,Mysql方言无法正确识别非默认值龙布类型 DBZ-6753

添加一个新参数,用于在使用REDIS存储时选择数据库索引 DBZ-6759

用去氧化物插件测试烤字节数组和烤日期数组失败 DBZ-6767

应分别更新每个碎片的表模式 DBZ-6775

在使用jmx通道时,MBean实例之间的通知和信号泄漏 DBZ-6777

在流中添加xml类型列时,不能正确解析甲骨文XML列类型 DBZ-6782

将mysql宾基日志客户端版本放大到0.28.1,其中包括显著的Gtid事件性能改进。 DBZ-6783

在文档中添加新的REDIS汇连接器参数说明 DBZ-6784

将卡夫卡升级到3.5.1 DBZ-6785

一起来, 62个问题 已经做好了准备。非常感谢所有参与这个版本的社区的贡献者: 鲍勃·罗丹 , 田 , 克兰福德 , 克里斯·埃格顿 , 大卫雷米 , 法河福 , 巴西 , , 因德拉舒克拉 , 杰克布切切克 , 伊里·帕坎奇c , 约翰·沙兰达 , 马里奥菲奥尔维塔莱 , 马西莫·福图纳特 , 徐南希 , 尼基尔·贝尼斯 , 张保华 , 罗丹 , 罗纳克·贾因 , 赖安·范胡克斯波特 , 谢尔盖艾兹纳 , 托马斯桑顿 , 沃伊泰克 , 王延杰 , 雅什树 , 大卫雷米 ,以及 伊布努拜 !

接下来呢?
德贝泽姆2.4系列已经有许多新的功能,我们只是在表面上抓。我们有更多的库存,包括新的甲骨文开放式适配器与德贝兹2.4阿尔法3下周到来。在那之后,我们将开始逐步减少开发,转移我们在测试版和发布候选人周期中的注意力,目标是9月底的Debezum2.4最终发布。

别忘了德贝齐斯社区活动,我和你们一起在 邮寄清单 .如果你有任何想法或建议,我希望你的反馈。我们将在未来两周内宣布日期/时间和议程。

此外,如果你今年要去圣何塞现在的2023年,我很想和你会面,讨论一下你和德贝兹的经历。我会和我的好朋友汉斯彼得格拉尔和卡尔斯阿尔纳尔一起在那里做一个关于事件驱动设计的演讲。如果你对更多的细节感兴趣,可以在聊天、邮件列表或直接电子邮件中给我一条线。

一如既往,如果你有任何想法或建议,你也可以与我们联系。 邮寄清单 或我们的 聊天 .下一次,别像个陌生人一样在外面保持冷静!


原文地址:https://blog.csdn.net/a309450028a/article/details/135878634

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!