Debezium发布历史123

原文地址: https://debezium.io/blog/2022/06/02/debezium-1-9-3-final-released/

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

Debezium 1.9.3.Final Released
June 2, 2022 by Chris Cranford
releases mongodb mysql postgres sqlserver cassandra oracle db2 vitess outbox

当夏天临近的时候,我很兴奋地宣布 1.9.3.Final !

这个版本主要关注的是缺陷修复和稳定性;不过,也有一些显著的特性增强。让我们花点时间冷静一下,然后"潜到"这些新的功能中去,在一些细节上:)。

使用蒙戈分贝和外发箱对二进制有效载荷进行解码
数据库从一开始就支持存储二进制数据,应用程序更喜欢使用数据库来存储二进制数据的原因有很多。二进制数据不一定总是像图像、缩略图或者像pdf这样的二进制文档那样的信息,它也可以包括序列化的对象。

当使用蒙戈德和avro序列化的外发箱模式时,外发箱的有效载荷字段是唯一在消息值中发出的值。当有效载荷由二进制数据组成时,如下所示,它按原样发出,并可能导致与主题的消费者产生一些序列化问题。

{
“payload”: {
b i n a r y " : " " R G V i Z X p p d W 0 g a X M g d G h l I G J l c 3 Q u " , " binary": ""RGViZXppdW0gaXMgdGhlIGJlc3Qu", " binary":""RGViZXppdW0gaXMgdGhlIGJlc3Qu","type”: “0”
}
}
在这个版本中,我们反对ByteBufferConverter 我们还引进了两种新的转换器:

ByteArrayConverter *转换即将交付的有效载荷,abyte[] .

BinaryDataConverter *将交付的有效载荷转换为ByteBuffer 或Byte[] .

对于这个用例,我们将利用新的ByteArrayConverter 因为我们想把这个有效载荷的值作为原始的byte[] .在连接器配置中,value.converter 必须设置配置选项来处理这个用例。

transforms=outbox,…
transforms.outbox.type=io.debezium.connector.monogdb.transforms.outbox.MongoEventRouter
value.converter=io.debezium.converters.ByteArrayConverter
现在,这些数据将会被发送到当前的代理,就像一个可以被消费者安全地使用的字节排列一样。感谢内森布拉德肖的出色贡献!

与甲骨文的心跳动作查询
心跳动作查询是一个特性,它允许Debezum连接器将记录写入源数据库,并在事件处理循环期间捕获这些记录。这首先是为后GERGSQL引入的,用于处理捕获表变化的频率低于其他非捕获表的情况,从而导致非预期的Wal增长。

对于使用日志程序实现的甲骨文,也会出现一个类似的问题,影响连接器的重新启动能力,原因是由于对其他未捕获的表所做的更改(无论它们是同一可插入数据库的一部分还是另一个表)而导致偏移SCN在正常间隔上没有得到推进。

要启用心跳动作查询,连接器必须配置:

heartbeat.interval.ms=1000
heartbeat.action.query=INSERT INTO heartbeat (id) values (SYSDATE)
table.include.list=MYSCHEMA.HEARTBEAT,…
必须首先通过指定heartbeat.interval.ms .这控制连接器产生心跳事件的频率。如果这个值不高0 心跳停止。

接下来,要特别使用动作查询功能,heartbeat.action.query 必须作出选择。这指定了一个将在每个心跳间隔上执行的SQL语句。这种说法可以是INSERT 或者UPDATE ,只要产生的SQL操作产生行更改。

最后,操作查询必须操作在连接器过滤器配置中的表上。与任何其他捕获的表一样,表还必须配置正确的补充日志记录,以便捕获事件。

有了这个配置,假设没有长时间运行的事务,偏移SCN将在每个心跳上前进。

甲骨文物流公司会议持续时间现在是可控的
甲骨文连接器的日志运行时间一直是根据重做日志开关的频率来确定的。一般而言,这种行为在大多数环境中运行良好;但是,在低流量环境或非高峰时间,这有可能在较长的时间内重复使用相同的日志程序会话,从而在PGA内存耗尽时导致ORA-04030异常。

增加了一个新的配置选项,log.mining.session.max.ms ,允许充分控制甲骨文记录师会议的最长持续时间。当被设定为更大的价值时0 ,连接器将自动关闭并重新启动挖掘会话,如果达到最大持续时间或发生日志开关,以先到者为准。在启用这个新选项时,低容量的甲骨文环境,特别是在非高峰时间,不应该再注意到任何PGA内存问题。与数据库管理员团队协调,根据环境的配置和活动确定最佳值。

进一步变化
但这并不是全部,还有一些值得注意的缺陷,包括但不限于:

Mysql连接器增量快照失败的分析数据时柱透镜时,连接器设置"快照"。 DBZ-4939

已经存在的例子:蒙戈布连接器度量注册期间的例外 DBZ-5011

日期-时间-例外:无法在波斯特格雷斯连接器中解析文本"无限" DBZ-5014

每个连接器有4个连接器 DBZ-5074

甲骨文记录器:从快照到流模式的转换过程中遗漏的记录 DBZ-5085

不能设置德贝齐姆。下沉。卡夫卡。生产者。SSL。端点。识别。算法到空值 DBZ-5105

SQL服务器连接器没有报告毫米后源 DBZ-5137

用列的默认值替换空值 DBZ-5166

甲骨文连接器度量跟踪回滚和废弃事务可能导致高内存使用率 DBZ-5179

我们强烈建议升级到1.9.3最后,以获得性能和稳定性方面的最新改进。

总体而言, 47个问题 就在这个版本里。请参阅 释放说明 了解更多关于所有固定错误、更新过程等的信息.

非常感谢社区中为德贝佐姆1.9.3.最后做出贡献的下列个人: 阿列克谢米罗什尼科夫 , 阿尼莎 , 鲍勃·罗丹 , 克兰福德 , 康纳·司切帕尼亚克 , 塞萨尔·马丁内斯 , , 西曼苏米什拉 , 杰克布切切克 , 伊里·帕坎奇c , 马克·阿拉森 , 马克贝雷兹尼斯基 , 内森布拉德肖 , 谢尔盖·莫罗佐夫 , 斯特凡·米科洛维奇 , 拉马嫩卡 ,以及 沃伊泰克 !

展望
德贝佐姆1.9发布流将在未来三个月保持当前的长期运行版本。在此期间,我们将继续评估用户报告,并根据严重程度进行微释放,以解决错误和回归。

另外,在Debezum2.0上也做了很多工作。我们打算在下周释放代贝唑2.0.0.阿尔法2,此后大约每三个星期释放一次。

在接下来的几周里,请继续关注,保持冷静!

原文地址: https://debezium.io/blog/2022/06/09/debezium-2.0-alpha2-released/

Debezium 2.0.0.Alpha2 Released
June 9, 2022 by Chris Cranford
releases mysql postgres sqlserver cassandra oracle db2 vitess outbox

我很高兴能和你分享 2.0.0.Alpha2 已经被释放了!

整个版本都是大量的修复和改进, 110期 全部解决。只是,哇!

一些值得注意的变化包括增量快照获得正则表达式的支持和一个新的停止信号。我们还做了一些内部管理,并删除了一些不受欢迎的配置选项和遗留的蒙戈数据库OPOG实现。

让我们仔细看看这些。

增量快照变化
首先,增量快照获得了巨大的成功。我们从社区获得的反馈对于这个过程如何工作以及它如何帮助简化捕捉更改的过程非常积极,特别是对于拥有非常大数据集的用户。因此,我们在这一版本中抓住机会,在这一势头的基础上,提出了若干新的选择:

停止正在进行中的快照的能力

支持使用正则表达式

停止增量快照
自从我们首次引入增量快照以来,用户已经要求一种方法来停止正在进行中的快照。为此,我们增加了一个新信号,stop-snapshot ,它允许停止一个正在进行的增量快照。此信号与其他信号一样,通过插入一个行到信号表/集合中发送,如下所示:

INSERT INTO schema.signal_table (id, type,data)
VALUES (‘unique-id’, ‘stop-snapshot’, '`);
…stop-snapshot 它的有效载荷看起来和execute-snapshot 对手。一个例子:

{
“data-collections”: [“schema1.table1”, “schema2.table2”],
“type”: “incremental”
}
这个例子可以删除两个schema1.table1 和schema2.table2 从增量快照来看,只要表或集合尚未完成其增量快照。如果其他表格或收集的款项在删除data-collections ,增量快照将继续处理那些尚未处理的问题。如果没有其他表或集合,则增量快照将停止。

另一个例子stop-snapshot 有效载荷很简单:

{
“type”: “incremental”
}
此示例未指明data-collections 属性,它是可选的stop-snapshot 信号。当这个属性没有指定时,信号暗示应该完全停止当前正在进行的增量快照。这提供了在不了解当前或未完成的表或集合的情况下停止增量快照的能力。

信号支持正则表达式
递增快照信号要求在data-collections 有效负载属性。虽然这样做效果很好,但在某些情况下,广义捕获配置可以利用正则表达式的使用。我们已经在连接器配置选项中支持正则表达式,例如包含/排除列表,因此将其扩展到增量快照也是有意义的。

从Debezum2.0开始,所有增量快照信号都可以在data-collections 有效载荷属性。使用上面的一个停止信号示例,有效载荷可以用正则表达式改写:

{
“data-collections”: [“schema[1|2].table[1|2]”],
“type”: “incremental”
}
就像显式用法一样,这个带正则表达式的信号也会阻止两个schema1.table1 和schema2.table2 .

拆除蒙戈分贝支承
在Debezum1.8中,我们引入了新的蒙戈数据库变化流特性,同时也反对OPOG实现。向更改流的过渡提供了各种好处,例如能够从非主要节点流出更改,能够发布为下游消费者提供完整文档表示的更新事件,等等。简而言之,更改流只是一种更优越的方式来执行与MOGODB的更改数据捕获。

删除OPOG实现还意味着不再支持蒙戈布3.x。如果您使用的是蒙戈德3.x,您将需要至少升级到蒙戈德4.0,或以后使用Debezum2.0。

配置选项
德贝兹1.x多年来经历了许多进化。我们添加了针对连接点的选项,以处理迁移或特定特性,这些特性已被否决,甚至被通用的选项所取代,这些选项对所有连接点都是通用的。Debezum2.0的主要任务之一是对配置选项做一些内部管理,因为许多配置选项已被否决。

这样,当我们查看选项命名空间时,未来还会有更多的配置管理。可以说,作为升级路径的一部分,用当前的连接器配置审查连接器的相关选项文档非常重要。您可能会发现,您可以用较少的选项简化配置,或者某些选项名称已经完全改变。

其他修复和改进
在这个版本中有几个缺陷和稳定性变化,值得注意的是:

现有出版物未按新表更新 DBZ-3921

Mysql连接器增量快照失败的分析数据时列长度时,连接器设置为"快照"。 DBZ-4939

日期-时间-例外:无法在波斯特格雷斯连接器中解析文本"无限" DBZ-5014

生成的模式缺少默认值 DBZ-5038

所有连接器现在都使用多分区代码 DBZ-5042

甲骨文记录器:从快照到流模式的转换过程中遗漏的记录 DBZ-5085

引入一个新的字段"TS_MS"来识别模式更改事件的过程时间 DBZ-5098

分析零日失败 DBZ-5099

总之,一个惊人的 110期 已经做好了准备。

感谢所有参与这个版本的贡献者:罗特姆·阿杜, 阿列克谢米罗什尼科夫 , 安德鲁·沃克 , 阿尼莎 , 鲍勃·罗丹 , 克兰福德 , 克里斯·李 , 康纳·司切帕尼亚克 , 塞萨尔·马丁内斯 , 伊莱兰·阿格拉诺维奇 , 祖伊森 , 贡纳·莫林 , , 西曼苏米什拉 , 杰克布切切克 , , 伊日诺沃特尼 , 伊里·帕坎奇c , 马克·阿拉森 , 马克贝雷兹尼斯基 , 马丁·梅戴克 , 内森布拉德肖 , 萨加拉奥 , 谢尔盖·莫罗佐夫 , 石超安 , 斯特凡·米科洛维奇 , 蒂莫罗耶 , 拉马嫩卡 , 沃伊泰克 ,以及 阳的 !

接下来呢?
因此,虽然这个版本有点落后于时间表,但Debezum2.0的设计相当不错。

接下来的主要里程碑包括跨连接器的统一快照模式,一种新的Snapshotter 适用于所有连接器,可压缩的JSON数据库历史,偏移统一,偏移存储API等等。因此,随着我们继续研究德贝齐姆2.0,未来几周确实有很多工作要做。和往常一样,你可以在大约3个星期内期待其中的一些(希望全部),坚持我们通常的释放节奏。

在此之前,让数据捕获继续进行!

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

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

相关文章

极狐GitLab 与钉钉的集成实践

DingTalk OAuth 2.0 OmniAuth provider * 引入于 14.5 版本。 您可以使用您的钉钉账号登录极狐GitLab。 登录钉钉开放平台,创建应用。钉钉会生成一个客户端 ID 和密钥供您使用。 登录钉钉开放平台。 在顶部栏上,选择 应用程序开发 > 企业内部开发&am…

【EAI 015】CLIPort: What and Where Pathways for Robotic Manipulation

论文标题:CLIPort: What and Where Pathways for Robotic Manipulation 论文作者:Mohit Shridhar1, Lucas Manuelli, Dieter Fox1 作者单位:University of Washington, NVIDIA 论文原文:https://arxiv.org/abs/2109.12098 论文出处…

【数据结构】链式队列解析(C语言版)

数据结构——链队列解析过程和简单代码实现: 一、简单概念: 动图展示: (1)入队:(2)出队: 二、顺序队列: 思路步奏: (1)入队操作:(2)出…

组合模式:简化复杂结构的设计艺术

组合模式:简化复杂结构的设计艺术 在软件开发的世界里,设计模式是帮助我们解决常见问题的一系列最佳实践。其中,组合模式以其独特的方式处理对象的组合,使得单个对象和组合对象的管理变得更加简单和直观。本文将深入探讨组合模式…

《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)

文章目录 6.1 主成分分析(PCA)6.1.1 基础知识6.1.2 主要案例:客户细分6.1.3 拓展案例 1:面部识别6.1.4 拓展案例 2:基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例:市场细分6.2.3 拓展案例 1&…

第2讲投票系统后端架构搭建

创建项目时&#xff0c;随机选择一个&#xff0c;后面会生成配置properties文件 生成文件 maven-3.3.3 设置阿里云镜像 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more cont…

【Python】Mac 本地部署 stable-diffusion

其实要在本地部署 stable-diffusion 不难&#xff0c;只要有“魔法”一切都水到渠成&#xff0c;如下图&#xff1a; (base) MacBook-Pro python % git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui Cloning into stable-diffusion-webui... remote: Enu…

前端JavaScript篇之setTimeout、Promise、Async/Await 的区别

目录 setTimeout、Promise、Async/Await 的区别**setTimeout**:思路需要注意的 **Promise**:思路需要注意的 **Async/Await**:思路需要注意的 总结 setTimeout、Promise、Async/Await 的区别 setTimeout: 概念&#xff1a;setTimeout是JavaScript中的一个函数&#xff0c;用于…

Leetcode 3036. Number of Subarrays That Match a Pattern II

Leetcode 3036. Number of Subarrays That Match a Pattern II 1. 解题思路2. 代码实现 3036. Number of Subarrays That Match a Pattern II 1. 解题思路 这一题其实有点水&#xff0c;因为本质上还是一道套路题目&#xff0c;和前两周的两道题目一样&#xff0c;都是考察的…

c++求三个数中最大数

#include<iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个数字"<<endl;//end后面为小写的L cin>>a>>b>>c; if(a>b&&a>c) cout<<"最大数为a:"<<a<<e…

【MySQL】——数值函数的学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Z1fAnfrxGD7I5gqp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

人工智能:从概念到现实的辉煌历程

引言 自20世纪中叶以来&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一门前沿科技领域&#xff0c;其发展进程犹如一部波澜壮阔的史诗。本文将带领读者走进AI的世界&#xff0c;探索它从最初的梦想设想&#xff0c;历经坎坷与突破&#xff0c…

JAVA设计模式之访问模式详解

访问者模式 1 访问者模式介绍 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式. 访问者模式(Visitor Pattern) 的原始定义是&#xff1a;允许在运行时将一个或多…

Java集合 LinkedList

目录 LinkedList实例 LinkedList LinkedList是Java中的一个重要的数据结构&#xff0c;它实现了List接口&#xff0c;提供了链表数据结构的实现。LinkedList类中包含了各种常用的链表操作&#xff0c;如添加、删除、查找等。 LinkedList的特点是元素可以动态地添加到链表的任…

关于创建vue项目报错command failed: npm install --loglevel error

一、首先 在这个目录下有个文件叫.vuerc 二、其次 进去之后把里面的"useTaobaoRegistry": false,修改下&#xff0c;我之前是true&#xff0c;后来改成了false才成功。

我的2024新年-新Flag

一&#xff0c;缘由 新年新气象&#xff0c;这么多年来&#xff0c;自己也没有弄过什么年度flag&#xff0c;这次立flag&#xff0c;是自己的首次。都说&#xff1a;“没有理想&#xff0c;那跟咸鱼就没有区别”&#xff0c;试下不当咸鱼看看是什么感觉。其实&#xff0c;自己…

【数据结构】11 堆栈(顺序存储和链式存储)

定义 可认为是具有一定约束的线性表&#xff0c;插入和删除操作都在一个称为栈顶的端点位置。也叫后入先出表&#xff08;LIFO&#xff09; 类型名称&#xff1a;堆栈&#xff08;STACK&#xff09; 数据对象集&#xff1a; 一个有0个或者多个元素的有穷线性表。 操作集&#…

Window中出现 结束服务又自动重启的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 长期使用Linux操作系统,对于Window进程如何关闭开启,推荐阅读:Window命令行 如何查看以及关闭进程 而现在遇到进程无法强制kill,过一会自动启动! 对这种方式如何强制关闭,可看下文 1. 问题所示 起初在驱动某个服务的…

单片机与外设的交互

单片机与外设的交互是嵌入式系统中非常重要的一个基础知识点。单片机是一个集成在同一芯片上的中央处理器、存储器和输入/输出接口,它可以根据用户编写的程序与各种外部设备即外设进行交互。单片机与外设之间的交互主要通过单片机上的输入/输出口(I/O口)来实现。 I/O口的工作原…

Springboot 2.5.x如何集成Nacos 2.x的配置管理功能?

文章目录 什么是nacos安装单机版nacos物理机安装docker安装springboot如何集成Nacos?增加maven依赖在application.yml中增加配置在启动类中增加nacos注解如何读取配置如何使用配置?调用示例总结什么是nacos Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service…