Debezium发布历史137

原文地址: https://debezium.io/blog/2023/01/19/debezium-2-2-alpha1-released/

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

Debezium 2.2.0.Alpha1 Released
January 19, 2023 by Chris Cranford
releases mongodb mysql postgres sqlserver cassandra oracle db2 vitess outbox

我很高兴地宣布,不仅德贝兹2.2系列的首次发布,而且德贝兹在2023年的首次发布, 2.2.0.Alpha !

Debezr2.2.0.阿尔法1版本包括一些破坏性的更改、一些错误修复以及一些值得注意的改进和特性,包括但不限于:

[打破零钱]-ZonedTimestamp 值将不再截断分数秒。

[新]-支持从甲骨文逻辑备用数据库中吸收更改

[新]-支持使用德贝齐安存储API的亚马逊S3桶

[新]-在连接器启动期间支持重试数据库连接

[新]-阿帕奇火箭和英菲尼斯潘服务器接收器连接器支持

让我们花点时间,更详细地讨论一些功能!

突破性变化
一宗边缘个案在 DBZ-5996 如果一个时空柱ZonedTimestamp 如果专栏的价值0 微秒或纳米秒,而不是2023-01-19T12:30:00.123000Z ,该值会以截断的方式发出。2023-01-19T12:30:00.123Z .这可能会导致在事件管道中使用转换器的其他问题,因为该列的输出可能无法一致地格式化。

为了补救边缘情况ZonedTimestamp 现在,实现将把列值的分步秒值填充到源数据库列的长度/规模上。使用上面的例子TIMESTAMP(6) Mysql列类型,排放值现在将恰当地反映2023-01-19T12:30:00.123000Z .

虽然这种行为上的改变对大多数用户的影响可能很小,但我们希望在可能使用其他方式处理管道中的这个边缘情况的情况下,引起人们的注意。如果你有,你应该能够依靠Debez铵一致地发出值,即使是基于分秒的秒是0 .

由甲骨文逻辑标准引发的更改
甲骨文连接器的德贝兹通常管理所谓的 花坛 这是一个内部表,用于管理甲骨文日志编写者缓冲区(LGWR)过程使用的同流循环。此冲洗过程要求连接器使用的用户帐户拥有创建和写入此表的权限。逻辑备用数据库通常对数据操作有更多的限制性规则,甚至可能是只读的,因此,向数据库写入是不可取的,甚至是不允许的。

为了支持甲骨文只读逻辑备用数据库,我们引入了一个标记来禁用此标记的创建和管理 花坛 .这一功能可以同时使用甲骨文独立和甲骨文RAC装置,目前被认为是孵化,意味着其未来的变化。

为了使甲骨文能够只读逻辑备用支持,添加以下连接器选项:

internal.log.mining.read.only=true
在未来的版本中,我们计划添加对甲骨文只读物理备用数据库的支持。

此配置选项以internal. 这意味着它被认为是一个无证的实验性特征。这个选项的语义和行为在未来的版本中可能会发生变化,可能无法保证向前或向后兼容。

使用带有存储API的亚马逊S3桶
Debezum提供了一个存储API框架,使连接器能够在各种持久性数据存储中存储偏移和架构历史状态。此外,框架使贡献者能够通过添加新的存储实现轻松地扩展API。目前,存储API框架支持本地文件系统、卡夫卡主题或雷迪斯数据存储。

使用Debezum2.2,我们很高兴地添加了亚马逊S3桶作为框架的一部分,允许架构历史持续到S3桶。使用S3的连接器配置示例可能如下:


schema.history.internal=io.debezium.storage.s3.history
schema.history.internal.s3.access.key.id=aa
schema.history.internal.s3.secret.access.key=bb
schema.history.internal.s3.region.name=aws-global
schema.history.internal.s3.bucket.name=debezium
schema.history.internal.s3.object.name=db-history.log
schema.history.internal.s3.endpoint=http://:
schema.history.internal.s3.access.key.id
指定认证S3所需的访问键。

schema.history.internal.s3.secret.access.key
指定认证S3所需的秘密访问密钥。

schema.history.internal.s3.region.name
指定S3桶可用的区域。

schema.history.internal.s3.bucket.name
指定要持久保存架构历史的S3桶的名称。

schema.history.internal.s3.object.name
指定要保持架构历史的桶中的对象名称。

schema.history.internal.s3.endpoint
指定S3端点,并以http://:; .

启动时重试数据库连接
在前几版的Debezns中,连接器的启动阶段使用了一个故障加速策略。简单地说,这意味着如果我们无法连接、验证或执行连接器所需的任何启动阶段步骤,连接器将输入FAILED 国家。

对于用户来说,一个具体的问题是连接器是否能够优雅地启动,运行一段时间,然后最终会遇到一些致命的错误。如果错误与在连接器启动生命周期期间未访问的资源有关,则连接器通常会很好地重新启动。但是,如果问题与数据库的可用性有关,而且在连接器的启动阶段数据库仍然不可用,则情况就不同了。在这种情况下,连接器将故障快速,并输入FAILED 国家,需要手动干预。

快速失败的方法在过去的几年里很好地发挥了德贝佐姆的作用,但是在一个资源可以自由进出的世界里,显然需要改变来提高德贝佐姆的可靠性和弹性。虽然卡夫卡连接的重试/回退框架在这方面有所帮助,但这并没有解决启动资源因当前编写代码的方式而不可用的担忧。

Debezr2.2改变了这一状况,略微改变了我们如何集成卡夫卡连接的源连接器API的方式。在启动生命周期期间,我们没有访问潜在的不可用资源,而是将访问转移到连接器生命周期的稍后阶段。实际上,Debezum启动代码在访问可能不可用的资源时是懒惰的,这使我们可以利用卡夫卡连接重试/退出框架,即使在启动代码期间也是如此。简而言之,如果数据库在连接器启动期间仍然不可用,则如果启用了卡夫卡连接重试,连接器将继续重试/退试。只有在达到重试的最大次数或发生不可检索错误时,连接器任务才会输入FAILED 国家。

我们希望这能为Debezum体验带来更多的可靠性和弹性,改进在不断变化的环境中如何处理错误,并为管理连接器生命周期提供坚实的基础。

德贝兹服务器上的火箭和英菲尼斯潘支持
德贝兹服务器是基于夸克的框架,允许从命令行执行德贝兹连接器,不需要卡夫卡或卡夫卡连接,允许将德贝兹更改事件传递到任何目标框架。在Debezr2.2上,在Debezr服务器上增加了两个新的接收器连接器,以支持向阿帕奇火箭和英菲尼斯潘发送更改事件。

罗凯提
阿帕奇火箭队 是一个云源性的消息传递,分叉,流实时数据处理平台,涵盖云边缘设备协作场景。为了将德贝兹服务器与德贝兹服务器—罗凯提(罗凯提)集成application.properties 必须修改,以包括下列条目:

application.properties
debezium.sink.type=rocketmq
debezium.sink.rocketmq.producer.name.srv.addr=:
debezium.sink.rocketmq.producer.group=debezuim-group
debezium.sink.rocketmq.producer.max.message.size=4194304
debezium.sink.rocketmq.producer.send.msg.timeout=3000
debezium.sink.rocketmq.producer.acl.enabled=false
debezium.sink.rocketmq.producer.access.key=
debezium.sink.rocketmq.producer.secret.key=
上面的配置指定要使用的接收器类型是rocketmq ,使火箭能够使用该模块。以下是对上述每个属性的描述:

debezium.sink.rocketmq.producer.name.srv.addr
指定可使用阿帕奇火箭的主机和端口。

debezium.sink.rocketmq.producer.group
指定与阿帕奇火箭生产者组相关的名称。

debezium.sink.rocketmq.producer.max.message.size
(可选)指定消息的最大字节数。默认4193404 (4MB).

debezium.sink.rocketmq.producer.send.msg.timeout
(可选)指定发送消息时以毫秒为单位的超时。默认3000 (3 seconds).

debezium.sink.rocketmq.producer.acl.enabled
(可选)控制是否启用了访问控制列表。默认false .

debezium.sink.rocketmq.producer.access.key
(可选)用于连接阿帕奇火箭群的访问键。

debezium.sink.rocketmq.producer.secret.key
(可选)用于连接阿帕奇火箭群的访问秘密。

欲知更多关于使用罗凯提服务器的信息,请参阅 文件 .

无穷的
无穷的 是一个内存中的分布式数据存储器,提供灵活的部署选项,具有存储、管理和处理数据的健壮能力。无限是基于一个允许存储任何数据类型的键值存储的概念。为了将德贝兹服务器与英菲尼斯潘服务器集成application.properties 必须修改,以包括下列条目:

application.properties
debezium.sink.type=infinispan
debezium.sink.infinispan.server.host=
debezium.sink.infinispan.server.port=
debezium.sink.infinispan.cache=
debezium.sink.infinispan.user=
debezium.sink.infinispan.password=
上面的配置指定要使用的接收器类型是infinispan ,可使用无限模块。以下是对上述每个属性的描述:

debezium.sink.infinispan.server.host
指定英菲尼斯潘集群中一个服务器的主机名。此配置选项还可以提供一个逗号分隔的主机名列表,例如:hostname1,hostname2 .

debezium.sink.infinispan.server.port
指定无限集群的端口。默认11222 .

debezium.sink.infinispan.cache
指定写入更改事件的无限缓存的名称。

英菲尼斯潘接收器要求提前手动创建缓存。这使您能够使用任何适合您需求的变量配置创建缓存。

debezium.sink.infinispan.user
如果需要身份验证的话,可以指定用户进行身份验证的可选配置。

debezium.sink.infinispan.password
如果需要身份验证,则可选择设置指定身份验证用户的密码。

有关使用英菲尼斯潘德贝兹服务器的更多信息,请参阅 文件 .

其他补救措施
在这个版本中出现了相当多的缺陷和稳定性变化,值得注意的是:

从mysql连接器中删除指定驱动程序类的选项 DBZ-4663

德贝佐姆不与阿皮库里奥和定制信托店合作 DBZ-5282

显示/隐藏密码不适用于连接器查看屏幕细节 DBZ-5322

先知不能撤销更改 DBZ-5907

重新启动时数据丢失 DBZ-5915

增加支持连接顶到Debez服务器 DBZ-5926

甲骨文多线程丢失数据 DBZ-5945

扳手连接器缺少jr-310依赖关系 DBZ-5959

与外部新记录状态不兼容的截断记录 DBZ-5966

计算分区不得为负 DBZ-5967

用于快照的表大小日志消息。选择。说明。覆盖表不正确 DBZ-5985

在执行具有排他性的快照信号中的NPE。 DBZ-5988

后GRESQLY连接器分析货币类型的边界值时存在问题。 DBZ-5991

在Mysql31-ascma中,无法解析的DDL语句的日志语句包含占位符 DBZ-5993

连接器将货币类型的空解析为0 DBZ-6001

检查应该尊重事件。处理失败。处理。 DBZ-6012

一起来, 42个问题 已经做好了准备。我非常感谢所有参与这个版本的贡献者, 阿尼尔·达萨里 , 库马尔 , 阿尼莎 , 鲍勃·罗丹 , 克兰福德 , 厄迪南塔希尔河 , 戈文达·萨哈雷 , , 侯赛因托拉比 , 因德拉舒克拉 , 雅各布萨拉斯 , 杰里米·福特 , 伊里·帕坎奇c , 约翰·沙兰达 , 卢卡斯坎纳皮生态 , 马里奥菲奥尔维塔莱 , 马克兰伯特 , 拉金德拉·当瓦尔 , 孙小健 , 沃伊泰克 , 吉木洋平 ,以及 吉木洋平 !

接下来呢?
随着德贝泽姆2.2之路的开始,这个初始版本涵盖了我们最近2023年概述的许多功能 路线图 更新。不过,仍有一些特点仍在积极发展中,其中包括:

可配置的信号通道,使用户不仅可以从数据库表或卡夫卡主题发送信号,还可以从其他手段,如http端点、文件系统等。

支持本地德贝兹变化事件的德贝兹JDBC接收器连接器不需要使用事件扁平化转换。

一种新的单一信息转换,ExtractChangedRecordState 支持将标题添加到所发出的事件中,该事件描述了由源事件更改或更改的字段。

德贝佐姆用户界面的大量增强

当我们继续开发德贝齐尔2.2和德贝齐尔2.1时,我们希望听到你的反馈或建议,无论是关于我们的路线图、版本中的变化,还是你希望看到我们没有提到的东西。一定要联系我们 邮寄清单 或我们的 聊天 如果有的话。或者如果你只是想过来给我们打个招呼,我们也会欢迎的。

直到下次…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch框架----torch.autograd

文章目录 一、Variable二、torch.autograd三、torch.autograd.backward(variables, grad_variables, retain_variablesFalse)四、自动求导机制1、从后向中排除子图2、自动求导如何编码历史信息 一、Variable Variable是PyTorch中的一个类,它封装了张量(…

图像识别之ResNet(结构详解以及代码实现)

前言 在人工智能的浪潮中,深度学习已经成为了推动计算机视觉、自然语言处理等领域突破的关键技术。在这众多技术中,ResNet(残差网络)无疑是一个闪耀的名字。自从2015年Kaiming He等人提出ResNet架构以来,它不仅在图像…

前端的开发规范

作为一个程序员开发规范是相当重要的,因为遵守开发规范有很多好处: 规范的代码可以促进团队合作;规范的代码可以减少bug处理;规范的代码可以降低维护成本;规范的代码有助于代码审查;养成代码规范的习惯&am…

安全防御-第五次

新建NAT策略 新建NAT策略 双机热备 FW1 FW3 新建带宽策略 办公区限流

百度百家号旋转验证码识别研究

最近研究了一下图像识别,一直找到很好的应用场景,今天我就发现可以用百度的旋转验证码来做一个实验。没想到效果还挺好,下面就是实际的识别效果。 1、效果演示 2、如何识别 2.1准备数据集 首先需要使用爬虫,对验证码图片进行采…

引入成熟的Pytest自动化测试框架

虽然我们能使用脚本编写自动化测试框架,但没有必要重复找车轮子,引入成熟的自动化测试框架即可, Pytest是目前最成熟、功能最全面的Python测试框架之一,简单灵活、易于上手,可完全兼容其他测试框架如unitest&#xff…

Unittest+Selenium模块驱动自动化测试实战

UnittestSelenium自动化测试框架使用模块驱动测试模型将冗余的代码封装成类,且基于PageObject的自动化设计模式,通过分层的方式将页面对象、操作、业务分开处理。 1、首先创建自动化测试框架的文件模块架构,创建common、base、testcase、rep…

The Captainz NFT 概览与数据分析

作者:stellafootprint.network 编译:cicifootprint.network 数据源:The Captainz NFT Collection Dashboard The Captainz 是 Memeland 的旗舰系列,由 9,999 个实用性极强的 PFP 组成。持有者在 Memeland 宇宙中展开了一场神…

SG-9101CB(可编程+105℃晶体振荡器)

SG-9101CB 系列是一款高精度可编程性的晶体振荡器,能够在0.67 MHz至170 MHz的频率范围内以1ppm的步长精确调整频率。这款振荡器支持宽范围的电源电压(1.62 V至3.63V),并提供使能(OE)或待机(ST&a…

App启动优化笔记 1

app大致的启动流程。有Launcher进程,system_server进程,zygote进程,APP进程。 Launcher进程:启动activity来启动应用 system_server进程:(ams是其中的一个binder):发送一个socket消息给Zygote。 zygote进程:收到消息后,fork新的进程,---》app进程启动 APP进程:…

【复现】Panalog大数据日志审计系统 RCE漏洞_51

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中,针对网络流…

关于IOPS指标对性能的影响

IOPS (Input/OutputPer Second) IOPS 即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用…

【AGI视频】Sora的奇幻之旅:未来影视创作的无限可能

在五年后的未来,科技的发展为影视创作带来了翻天覆地的变化。其中,Sora视频生成软件成为了行业的翘楚,引领着全新的创作潮流。Sora基于先进的Transformer架构,将AI与人类的创造力完美结合,为观众带来了前所未有的视听盛…

【ArcGIS微课1000例】0103:导出点、线、面要素的折点坐标值

点要素对应的是一个或者若干个坐标,线要素对应的是对个坐标值对应的点连起来,面要素是多个坐标值对应的点连起来构成的封闭多边形。本文讲述导出点的坐标值。 文章目录 一、点要素坐标导出1. 计算点坐标2. 导出点坐标二、线要素坐标导出1. 生成线要素折点2. 计算折点坐标3. 导…

第13章 网络 Page749~755 asio核心类 ip::tcp::acceptor

4,ip::tcp::acceptor ip::tcp::socket类提供用于客户端 async_connect()(发起连接)方法,但没有提供服务端 用于assync_accept()(接受连接)的方法;这正对应了客户端和服务端之间的"多对一&…

海外媒体发稿:8个提升影响力的日韩地区媒体发稿推广策略-华媒舍

在今天的数字化时代,媒体发稿推广成为企业和个人增加影响力的重要方式。特别是在日韩地区,这个拥有庞大媒体市场和活跃社交媒体用户的地区,正确的推广策略将对影响力的提升起到关键作用。我们将介绍8个提升影响力的日韩地区媒体发稿推广策略。…

软件测试-功能测试-测试流程-如何进行需求评审?对于测试人员来讲,如何从测试的角度评审需求文档?

导言 产品人员编写的需求文档,无疑是一个项目或者一项新功能的开端。需求文档的优劣,直接影响开发人员的代码质量,更会影响到后续的测试工作。所以,我认为,需求评审对于开发质量以及测试质量至关重要,那么…

前端判断对象为空

一.使用JSON.stringify()方法: JSON.stringify() 是将一个JavaScript对象或值转换为JSON格式字符串,如果最终只得到一个{},就说明他是一个空对象 let obj1 {}; console.log(JSON.stringify(obj1) "{}"); //true 表示为空对象l…

Python面向对象:什么是面向对象程序设计

编程范式 编程即写程序or代码,具体是指程序猿用特定的语法数据结构算法编写代码,目的是用来告诉计算机如何执行任务。 如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派就…

微信小程序:实现微信小程序应用首页开发 (本地生活首页)

文章目录 小程序应用页面开发1、创建项目并配置项目目录结构配置导航栏效果三、配置 tabBar 效果四、轮播图实现4.1 创建轮播图数据容器4.2 定义一个请求轮播图数据的接口4.3 页面加载调用 数据请求接口 五、九宫格实现5.1 获取九宫格数据5.2 结构和样式的完善六、图片布局实现…