当前位置: 首页 > news >正文

Debezium发布历史102

原文地址: https://debezium.io/blog/2021/02/24/debezium-1-5-beta1-released/

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

Debezium 1.5.0.Beta1 发布
2021 年 2 月 24 日 作者: Gunnar Morling
发布 mysql postgres sqlserver cassandra oracle db2 vitess 发件箱
我很高兴地宣布 Debezium 1.5.0.Beta1发布!

此版本添加了一个全新的组件 - 基于 Web 的 Debezium UI -、对 MySQL 连接器的事务元数据支持、对 Debezium Oracle 连接器的基于 LogMiner 的捕获实现的大量改进、对 Vitess 9.0 的支持以及多得多。下面让我们探讨一些新功能。

德贝齐姆用户界面
不同的 Debezium 连接器为各种数据库设置和运行变更数据捕获源提供了强大的功能和灵活性。但这种灵活性也是有代价的:开始使用连接器可能需要一些时间来理解所有不同的选项及其语义。另一个关键方面是操作连接器,即深入了解其当前状态和指标,能够对连接器故障做出反应等等。

根据社区的反馈,我们在过去几个月中探索了图形用户界面如何帮助解决这些问题。最初的概念验证看起来非常有希望,因此我们决定继续前进,使UI成为 Debezium 项目的官方组件。仍在积极开发中,您现在已经可以尝试该 UI(在 Docker Hub 上作为容器映像提供)并使用它在 Kafka Connect 集群中设置 Debezium 连接器。

我们将在接下来的几天内在单独的博客文章中跟进有关 Debezium UI 的更多详细信息,讨论其当前状态、该组件的路线图等。

改进的基于 LogMiner 的 CDC 实施
我们当前继续关注 Oracle 的基于 LogMiner 的 CDC 实施,我们已经修复了该连接器的大量问题。其中包括:

显着提高了 DML 解析性能(DBZ-3078);LogMiner DML 语句的新手写解析器可以提高该连接器的吞吐量,现有的外部解析器实现将很快被删除

支持从多个模式捕获更改(DBZ-3009)

支持列过滤(DBZ-3167)

正确的交易元数据(DBZ-3090)

与日志文件切换和类似问题相关的几个错误修复(DBZ-2754、DBZ-3001、DBZ-3153等)

维特斯连接器
在社区成员 Kewei Shang 的领导下,Vitess 的 Debezium 连接器现在支持 Vitess 9.0 ( DBZ-3100 )。连接器还可以捕获 JSON 和 ENUM 列(DBZ-3115、DBZ-3124)的更改,并实现 Kafka Connect 的配置验证 API(DBZ-3117)。

其他特性
此版本中的进一步修复和改进包括:

Debezium MySQL 连接器可以公开有关事务边界的元数据 ( DBZ-3114 );正如1.5.0.Alpha1发布公告中所述,这是我们通过将该连接器重新定位到通用 Debezium 连接器框架上而获得的首要好处之一

用于 Postgres 的 Debezium 连接器经过 PG 13 ( DBZ-3022 )测试和验证

使用 Debezium 嵌入式 API ( DBZ-2897 )时能够自定义偏移量

CREATE OR REPLACE INDEX将MySQL 连接器与 MariaDB 结合使用时支持DDL ( DBZ-3067 )

Postgres 支持无限时间戳值 ( DBZ-2614 )

此版本总共解决了78 个问题。

一如既往,非常感谢所有做出贡献的社区成员:Adhaam Ehab、Ahmed Eljami、Bingqin Zhou、Fahim Farook、Ganesh Ramasubramanian、Harvey Yue、Kevin Pullin、Kewei Shang、Michael Cizmar、Nitin Agarwal、Russell Ballard、Shane Paul、托马斯·普雷尔、托马斯·桑顿和张一龙。

原文地址: https://debezium.io/blog/2021/03/15/debezium-1-5-beta2-released/

Debezium 1.5.0.Beta2 发布
2021 年 3 月 15 日 作者: 克里斯·克兰福德
发布 mysql postgres sqlserver cassandra oracle db2 vitess 发件箱
我们非常高兴地宣布 Debezium 1.5.0.Beta2发布!

此版本的主要功能是新的 Debezium 信令表支持、Vitess SET 类型支持,以及在我们冲刺 1.5 版本的终点线时持续关注细微改进、错误修复和完善。

总体而言,自 Beta1 发布以来,社区修复了54 个问题,我们将在下面更深入地探讨其中的一些问题。

信令表
信号表功能对于 Debezium 来说是一个巨大的里程碑。它提供基于源数据库表的命令模式,以向 Debezium 发送命令(也称为信号),以便可以采取特定操作。该框架是可扩展的,允许连接器实现超出 Debezium 核心提供的通用命令的自定义命令。在多种情况下,这可能适用,包括但不限于 PostgreSQL 主键列更改、列定义的枚举值集更改以及 Oracle 连接器的架构更改。这是一个正在孵化的功能,因此不同版本之间的行为可能会发生变化。

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

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

列名 数据类型
ID

STRING
信号的唯一标识符,例如 UUID。

类型

STRING
要执行的唯一命令。

数据

STRING
命令的有效负载。

最后,必须明确地找到信号表作为连接器的包含/排除列表规范的一部分。换句话说,如果您指定要监视的表列表,则需要调整该列表以包含信号表的名称。

这项新功能有相当多的用例,我们打算在未来的版本中进行探索。让我们讨论一下此版本当前支持哪些信号。

记录信号
TYPE当信号表中的列为时,检测到日志信号log。该信号请求 Debezium 将列(有效负载)的内容DATA按原样写入连接器日志。这可用于多种目的,从调试到跟踪数据库脚本操作的进度等等。

举个例子:

INSERT INTO DEBEZIUM_SIGNALS (ID, TYPE, DATA) VALUES (‘1’, ‘log’, ‘Hello World’);
一旦该插入被提交并写入数据库的事务日志,Debezium 将识别该信号,然后Hello World使用日志级别写入连接器日志INFO。

模式改变信号
TYPE当信号表中的列为时,会检测到架构更改信号schema-changes。该信号告诉 Debezium 发出一个SchemaChangeEvent基于行列DATA(有效负载)中提供的更改的架构更改主题。列的格式DATA必须以 JSON 格式给出,格式示例如下。此外,该信号还将让 Debezium 更新其表模式结构的内存表示。

举个例子,我们有一个 PostgreSQL 表s1.a,我们想要在其中添加一个新列aa:

{
“database”: “postgres”,
“changes”: [{
“type”: “ALTER”,
“id”: “s1.a”,
“table”: {
“defaultCharsetName”: null,
“primaryKeyColumnNames”: [ “pk” ],
“columns”: [{
“name”: “pk”,
“jdbcType”: 4,
“nativeType”: 23,
“typeName”: “serial”,
“typeExpression”: “serial”,
“charsetName”: null,
“length”: 10,
“scale”: 0,
“position”: 1,
“optional”: false,
“autoIncremented”: true,
“generated”: false
}, {
“name”: “aa”,
“jdbcType”: 4,
“nativeType”: 23,
“typeName”: “int4”,
“typeExpression”: “int4”,
“charsetName”: null,
“length”: 10,
“scale”: 0,
“position”: 2,
“optional”: true,
“autoIncremented”: false,
“generated”: false
}]
}
}]
}
使用此 JSON 有效负载,信号将插入为:

INSERT INTO DEBEZIUM_SIGNALS (ID, TYPE, DATA) VALUES (‘1’, ‘schema-changes’, );
维特斯SET支持
作为 Vitess 9.0 的一部分,Vitess 团队改进了SETVStream API 中的数据类型支持。这一改进使得SETDebezium Vitess 连接器现在支持该数据类型。EnumSet此数据类型将作为现在包含列定义的所有允许值的数据类型发出SET。

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

Oracle 的 Debezium 连接器现在默认使用基于 LogMiner 的捕获实现。为了使用基于 XStream 的实现,该database.connection.adapter选项必须显式设置为xstream( DBZ-3241 )。

在 Debezium 1.5 的早期版本中,Oracle 连接器开始将NUMBER(1)数据类型发出为BOOLEAN. 此行为不是由连接器隐式完成,而是已移至 OOTB 转换器,NumberOneToBooleanConverter可以根据需要使用 ( DBZ-3208 )。

SYS_IOT_OVEROracle 连接器忽略系统生成的索引组织表(以 开头的表)( DBZ-3036 )

debezium.sink.kinesis.endpointDebezium Server 的 AWS Kinesis 接收器可以通过指定( DBZ-3246 )来配置端点。

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

非常感谢所有为本次发布做出贡献的社区成员:Bingqin Zhou、David Seapy、Victar Malinouski、Xiao Fu、Kewei Shang、Martín Pérez、Hoa Le、Vladimir Osin、Martín Pérez和Meng Qiu!

下一步是什么?
在慢慢结束 Debezium 1.5 版本系列的工作的同时,我们还利用这个机会将 Debezium Oracle 集成到主要Debezium源代码存储库中。这样,前Debezium 孵化器存储库的所有连接器都已移至其自己的专用存储库中,或集成到主存储库中。孵化器存储库已设置为“存档”模式,允许在需要时检查其历史记录。

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

相关文章:

Debezium发布历史102

原文地址: https://debezium.io/blog/2021/02/24/debezium-1-5-beta1-released/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Debezium 1.5.0.Beta1 发布 2021 年 2 月 24 日 作者: Gu…...

探索自然语言处理在改善搜索引擎、语音助手和机器翻译中的应用

文章目录 每日一句正能量前言文本分析语音识别机器翻译语义分析自然语言生成情感分析后记 每日一句正能量 努力学习,勤奋工作,让青春更加光彩。 前言 自然语言处理(NLP)是人工智能领域中与人类语言相关的重要研究方向&#xff0c…...

echarts:获取省、市、区/县、镇的地图数据

目录 第一章 前言 第二章 获取地图的数据(GeoJSON格式) 2.1 获取省、市、区/县地图数据 2.2 获取乡/镇/街道地图数据 第一章 前言 需求:接到要做大屏的需求,其中需要用echarts绘画一个地图,但是需要的地图是区/县…...

Java_简单模拟实现ArrayList_学习ArrayList

文章目录 一、 了解线性表和顺序表区别1.线性表2.顺序表 二、模拟实现1.定义接口2.定义MyArrayList3.成员变量以及构造方法4.实现打印数组5.实现add方法6.实现查找某个数是否存在contains或者某个数的下标indexOf7.获取或更改pos位置的值 get和set8.获取数组大小 size9.删除某个…...

动手学深度学习(一)深度学习介绍2

目录 二、起源 三、深度学习的成功案例: 四、特点: 五、小结: 二、起源 为了解决各种各样的机器学习问题,深度学习提供了强大的工具。 虽然许多深度学习方法都是最近才有重大突破,但使用数据和神经网络编程的核心思…...

vmware网络配置,VMware的三种网络模式详解与配置

vmware为我们提供了三种网络工作模式 vmware为我们提供了三种网络工作模式, 它们分别是: Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 VMware虚拟机的三种网络类型的适用场景如下…...

【Ubuntu】安装hbase

前提 需要安装java 安装 HBase 下载并解压 HBase 安装包: wget https://dlcdn.apache.org/hbase/2.5.7/hbase-2.5.7-bin.tar.gz tar -zxvf hbase-2.5.7-bin.tar.gz配置 HBase 环境变量: export HBASE_HOME/path/to/hbase-2.5.7 export PATH$PATH:$H…...

ubuntu16.04环境轻松安装和应用opencv4.9.0(基于源码编译)

目录 一、环境准备 1、安装cmake 2、安装依赖 3、从github上下载opencv4.9.0.zip 二、安装opencv4.9.0 1、解压4.9.0.zip 2、进入build目录编译 3、安装编译好的相关库 4、修改opencv配置文件并使其生效 5、添加PKG_CONFIG路径,并使其生效 三、opencv环境…...

FastBee开源物联网平台2.0开源版发布啦!!!

一、项目介绍 物美智能(wumei-smart)更名为蜂信物联(FastBee)。 FastBee开源物联网平台,简单易用,更适合中小企业和个人学习使用。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。 系统后端采用Spring boot;前端采用…...

【NeRF和NLP】一些观察感悟,碎碎念

NeRF的paper,有几个感想: NeRF读的时候感觉和diffusion思路特别像,训练目标是一个很小很小的子步骤,大大简化了训练难度NeRF建模的是“真实”世界,其用模型隐含的存储了真实世界的体素(场)模型…...

Python程序设计 基础数据类型

1.1 编程规范 注释 python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。 在说规范…...

浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用

摘要:随着社会经济的发展及网络技术、通信技术的提高,人们对照明设计提出了新的要求,它不仅要控制照明光源的发光时间、 亮度,而且与其它系统来配合不同的应用场合做出相应的灯光场景。本文介绍了马亚西亚石油公司智能照明项目的应…...

Java面对对象

Java面向对象 面对对象概述,类与对象,继承,重写与重载,多态,抽象,封装,包,泛型,异常 面对对象概述 什么是面向对象(OOP) 面向对象(Object Ori…...

代码随想录算法训练营|day24

第七章 回溯算法 77.组合代码随想录文章详解总结 77.组合 以n5,k3为例 (1)for循环遍历&#xff0c;递归选择符合要求的值加入path&#xff0c;len(path)k时&#xff0c;返回 statrtIndex保证每次递归取到的值不重复 剪枝&#xff1a;i<n-(k-len(path))1 后续需要k-len(pat…...

嵌入式学习日记 16

共用体 union 共用体名 { 成员列表; //各个变量 }; //表示定义一个共用体类型 注意&#xff1a; 1.共用体 初始化 --- 只能给一个值&#xff0c;默认是给到第一个成员变量的 2.共用体成员变量辅助 共用体用的数据最终存储的 --- 应该是最后一次给到的值。 但是只能…...

【Vue.js设计与实现】第一篇:框架设计概览-阅读笔记(完结)

从高层设计的角度去探讨框架需要关注的问题。 参考&#xff1a;速读《Vue.js 设计与实现》 - 掘金 (juejin.cn) 系列目录&#xff1a; 标题博客第一篇&#xff1a;框架设计概览【Vue.js设计与实现】第一篇&#xff1a;框架设计概览-阅读笔记第二篇&#xff1a;响应系统【Vue.…...

数据结构—动态查找表

动态查找介绍 1. 动态查找的引入&#xff1a;当查找表以线性表的形式组织时&#xff0c;若对查找表进行插入、删除或排序操作&#xff0c;就必须移动大量的记录&#xff0c;当记录数很多时&#xff0c;这种移动的代价很大。 2. 动态查找表的设计思想&#xff1a;表结构本身是…...

Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185

其实修改起来非常简单,但是在大数据集群中,使用到了很多的脚步,也需要修改, 这里把,大数据集群,整体如何修改SSH端口,为22022,进行总结一下: 0.hbase-2.4.11的话,hbase集群修改默认SSH端口22,修改成22022,需要修改 需要修改/opt/module/hbase-2.4.11/conf/hbase-env.sh 这里…...

c++学习第十四讲---STL常用容器---vector容器

vector容器&#xff1a; 1.vector基本概念&#xff1a; vector功能与数组类似&#xff0c;与数组不同的是&#xff0c;vector可以动态扩展。 2.vector构造函数&#xff1a; vector<T> v; //默认构造函数&#xff0c;创建数据类型T的容器 ve…...

数据结构-内部排序

简介 排序&#xff08;Sorting&#xff09;&#xff1a;将一个数据元素&#xff08;或记录&#xff09;的任意序列&#xff0c;重新排列成一个按关键字有序的序列 排序算法分为内部排序和外部排序 内部排序&#xff1a;在排序期间数据对象全部存放在内存的排序 外部排序&am…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...