Debezium日常分享系列之:Debezium 2.7.0.Alpha1发布

Debezium日常分享系列之:Debezium 2.7.0.Alpha1发布

  • 一、重大改变
    • 1.Core
    • 2.SQL Server
  • 二、新功能和改进
    • 1.使用 Helm Chart 安装 Debezium Operator
    • 2.支持MongoDB增量快照的谓词条件
    • 3.新的 MariaDB 独立连接器
    • 4.ExtractNewDocumentState 包含 MongoDB 删除的文档 ID
    • 5.交易元数据编码排序
    • 6.阻止增量快照改进
    • 7.Cassandra 性能改进
    • 8.新的 Oracle“RawToString”自定义转换器
    • 9.改进了对 Oracle 的 NLS 字符集支持
    • 10.改进了 Vitess 中的时间支持

一、重大改变

1.Core

  • 据发现,在某些通信失败的情况下,某些 JDBC 查询可能会无限期地阻塞。为了解决此问题,可以使用新的可配置超时选项 query.timeout.ms 来设置 JDBC 查询在终止之前可以执行的最长时间 。

2.SQL Server

  • SQL Server 连接器先前处理了在单个数据库往返期间捕获的所有事务。此行为是可配置的,并且基于 max.iterations.transactions,默认处理所有事务(值为 0)。如果您的数据库有大量事务,这可能会导致意外的内存不足情况。
  • 为了解决这些用例的这个问题,max.iterations.transactions 的默认值已更改为 500,以便对这些开箱即用的部署用例更具弹性。如果您想返回到以前的行为,只需将此配置选项添加到您的连接器,并将值设置为 0。

二、新功能和改进

1.使用 Helm Chart 安装 Debezium Operator

  • 为了改进 Debezium Operator 的部署,可以通过 https://charts.debezium.io 上的 Helm Chart 来安装它。这避免了将操作器安装到单独的命名空间中的过于复杂的部署模型,从而最大限度地降低了在 Kubernetes 上管理多个 Debezium Server 部署的复杂性。

2.支持MongoDB增量快照的谓词条件

  • 增量快照过程是各种恢复情况下从源表或集合收集全部或部分数据集的重要部分。关系连接器长期以来一直支持在增量快照信号上提供附加条件值以限制数据集的想法,从而提供特定数据行的有针对性的重新同步。
  • 我们很高兴地宣布,现在 MongoDB可以实现这一点。与关系数据库不同,附加条件应以 JSON 格式提供。它将使用查找操作应用于指定的集合,以获取要增量快照的文档的子集列表。

3.新的 MariaDB 独立连接器

Debezium 2.5 引入了对 MariaDB 的官方支持,作为现有 MySQL 连接器的一部分。这一演变的下一步就在这里,为 MariaDB提供了新的独立连接器实现。

这里有几件事值得注意:

  • MariaDB 和 MySQL 都对一个名为 debezium-connector-binlog 的新抽象连接器有共同的依赖关系,它为这两种基于 binlog 的连接器提供了通用框架。
  • 现在,每个独立连接器都专门针对其目标数据库进行定制,因此 MySQL 用户应使用 MySQL,MariaDB 用户应使用 MariaDB。因此,connection.adapter 配置选项已被删除,jdbc.protocol 配置选项现在仅特定于某些 MySQL 用例,MariaDB 不使用。

该连接器的文档仍在开发中,并将在将来添加。目前,可以参考 MySQL 连接器文档来了解与 MariaDB 相关的大部分内容。

4.ExtractNewDocumentState 包含 MongoDB 删除的文档 ID

  • 在 MongoDB ExtractNewDocumentState 单一消息转换的先前版本中,删除事件未提供标识符作为有效负载的一部分。这降低了删除事件的意义,因为向消费者提供的数据不足以对这些事件采取行动。此行为已得到改进,删除事件现在在有效负载中包含 _id 属性。

5.交易元数据编码排序

  • 在某些管道中,排序对于消费应用程序至关重要。有些场景可能会影响数据管道的这方面,例如发生 Kafka 重新分区时。这会导致事后尝试重建排序时容易出错的问题。
  • 现在,当启用事务元数据时,这些元数据事件还将对其事务顺序进行编码,因此,如果发生 Kafka 重新分区或其他改变排序语义的场景,消费者可以简单地使用新的编码排序字段来获得确定性交易排序 。

6.阻止增量快照改进

  • 在某些用例中,增量快照信号需要转义完全限定表名称中的某些字符。这导致了阻塞快照的一些问题,因为解析哪些表要创建快照的过程使用了稍微不同的机制。在 Debezium 2.7 中,我们统一了这种方法,您现在可以在适用的情况下使用带有阻塞快照的转义表名称。

7.Cassandra 性能改进

  • Cassandra 连接器在 Debezium 2.7 中也发生了一些变化,特别是性能优化。 KafkaRecordEmitter 的实现依赖于线程同步块,这会降低吞吐量。此外,该实现还执行了一些不必要的刷新,这也影响了性能。此代码已被重写,以提高吞吐量并减少不必要的刷新调用。

8.新的 Oracle“RawToString”自定义转换器

  • 虽然 Oracle 建议用户避免使用基于 RAW 的列,但出于向后兼容性的原因,这些列仍广泛用于标准 Oracle 表中。但在某些业务用例中,继续使用 RAW 列而不是其他数据类型是有意义的。
  • Debezium 2.7 引入了一个专门针对 Oracle 的新自定义转换器,称为 RawToStringConverter。此自定义转换器旨在允许您使用 STRING 架构类型快速将 RAW 列的字节数组内容转换为基于字符串的字段。这对于使用 RAW 列存储不需要 VARCHAR2 排序规则开销的字符数据的情况很有用,但您仍然需要将此字段作为基于字符串的数据发送给使用者。

9.改进了对 Oracle 的 NLS 字符集支持

  • 安装 Debezium 2.7 Oracle 连接器时,您可能会注意到一个新的依赖项 orai18n.jar。此依赖项会自动分发,以便为某些方言提供扩展字符集支持。

10.改进了 Vitess 中的时间支持

  • Debezium 关系连接器依赖配置选项 time. precision.mode 来控制如何添加时间值来更改事件。在某些情况下,您可能希望使用与 Kafka 类型一致的模式,即连接模式。在其他情况下,您可能更愿意使用默认的自适应毫秒模式来避免精度损失。
  • Debezium for Vitess 连接器传统上不遵循此模型,而是将时间值作为基于字符串的类型发出。虽然这有助于避免使用连接模式时出现精度损失问题,但这会增加消费者解析和操作这些值的不必要的开销。
  • 在 Debezium 2.7 中,Vitess 将此行为与其他关系连接器保持一致,使用 time. precision.mode 来控制时间值的发送方式。默认情况下,它将使用自适应毫秒模式,但如果您愿意,您可以自定义它以使用连接模式。基于字符串的时间值的发射已被删除。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于EBAZ4205矿板的图像处理:03使用VIO调试输出HDMI视频图像

基于EBAZ4205矿板的图像处理:03使用VIO调试输出HDMI视频图像 在zynq调试时VIO是真的方便,特此写一篇博客记录一下 先看效果 项目简介 下面是我的BD设计,vtc用于生成时序,注意,2021.2的vivado的vtcIP是v6.2版本&…

动手学深度学习——softmax分类

1. 分类问题 回归与分类的区别: 回归可以用于预测多少的问题, 比如"预测房屋被售出价格",它是个单值输出。softmax可以用来预测分类问题,例如"某个图片中是猫、鸡还是狗?",这是一个多…

用Docker 创建并运行一个MySQL容器

可以在DockerHub官网上荡:mysql - Official Image | Docker Hub 指令是:docker pull mysql; 因为文件比较大可能时间比较长,我是跟着黑马的课走的 课程提供的有文件,我就用已有的资源了。 在tmp目录里放入mysql.tar包 然后cd进去 输入指令:docker lo…

java技术栈快速复习05_基础运维(linux,git)

Linux知识总览 linux可以简单的理解成和window一样的操作系统。 Linux和Windows区别 Linux是严格区分大小写的;Linux中一切皆是文件;Linux中文件是没有后缀的,但是他有一些约定俗成的后缀;Windows下的软件一般是无法直接运行的Li…

管理能力学习笔记八:Will-Skill矩阵“盘“团队

如何把握带教中的“度”,才能在把事情做好的基础上,又能使员工获得成长呢? 需要做到 合理授权 & 适当辅导 如何做到? 通过使用 意愿-技能矩阵(Will-Skill Matrix) 辨别不同带教方法的适用情形,"盘"…

【Vue 2.x】学习vue之一基础部分

文章目录 Vue 一基础部分第一章1、git两个分支主分支子分支 使用方法方式1:采用命令的方式操作分支方式2:在idea中使用git的分支 向git远程仓库提交时忽略文件使用git时的一些冲突注意事项 2、Vue问题1:什么是Vue?问题2&#xff1…

网站升级提示:我用react+go重构了网站并记录了部署项目简要步骤

先贴出来地址,这是我网站的地址易查网 可能有细心的小伙伴们已经看到了,原来我的网站是这样式的 妥妥的phph5 改造 前端react框架 前段时间学习了react,正愁无处练手,就有人说我的网站很low,我感觉这正是一个好的机会&#xff…

纯血鸿蒙APP实战开发——发布图片评论

介绍 本示例将通过发布图片评论场景,介绍如何使用startAbilityForResult接口拉起相机拍照,并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机,拍照后获取图片地址。 实现思路 创建CommentData类&#…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二

在本章中,我们将深入探讨 网络的开始和 结束阶段发生的情况, 我将花大量时间回顾一些重要的背景知识,这些知识是熟悉Transformer的机器学习工程师的基础知识。 如果你已经熟悉背景知识,迫不及待地想了解更多,你可以跳到下一节,重点将放在Transformer的核心部分——注意…

nacos(docker部署)+springboot集成

文章目录 说明零nacos容器部署初始化配置高级配置部分访问权限控制命名空间设置新建配置文件 springboot配置nacos添加依赖编写测试controller 说明 nacos容器部署采用1Panel运维面板,进行部署操作,简化操作注意提前安装好1Panel和配置完成docker镜像加…

深入剖析Tomcat(五) 剖析Servlet容器并实现一个简易Context与Wrapper容器

上一章介绍了Tomcat的默认连接器,后续程序都会使用默认连接器。前面有讲过Catalina容器的两大块内容就是连接器与Servlet容器。不同于第二章的自定义丐版Servlet容器,这一章就来探讨下Catalina中的真正的Servlet容器究竟长啥样。 四种容器 在Catalina中…

Unity涂鸦纹理实现

文章目录 前言实现过程UV坐标和UI坐标对齐修改像素代码 前言 心血来潮实现下场景中提供一张纹理进行涂鸦的功能。 最终实现效果: 实现过程 UV坐标和UI坐标对齐 这里的纹理使用了UGUI的Canvas进行显示,所以这里使用一张RawImage。 因为Unity的视口坐标是以左下角…

【Excel】excel计算相关性系数R、纳什效率系数NSE、Kling-Gupta系数KGE

对于采用的数据: B2:B10958是观测值的所在范围 C2:C10958是模型计算值的所在范围 一、相关系数R是用来衡量两个变量之间线性关系强度和方向的统计量。在水文学和气象学中,常用的相关系数是皮尔逊相关系数(Pearson correlation coefficient&am…

Baidu Comate:“AI +”让软件研发更高效更安全

4月27日,百度副总裁陈洋出席由全国工商联主办的第64届德胜门大讲堂,并发表了《深化大模型技术创新与应用落地,护航大模型产业平稳健康发展》主题演讲。陈洋表示,“人工智能”成为催生新质生产力的重要引擎,对于企业而言…

线上线下收银一体化,新零售POS系统引领连锁门店数字化转型-亿发

在市场竞争日益激烈的背景下,没有哪个商家能够永远屹立不倒。随着互联网技术的快速发展,传统的线下门店面临着来自电商和新零售的新型挑战。实体零售和传统电商都需要进行变革,都需要实现线上线下的融合。 传统零售在客户消费之后就与商家失…

网络基础(1)网络编程套接字UDP

要完成网络编程首先要理解原IP和目的IP,这在上一节已经说明了。 也就是一台主机要进行通信必须要具有原IP和目的IP地址。 端口号 首先要知道进行网络通信的目的是要将信息从A主机送到B主机吗? 很显然不仅仅是。 例如唐僧要去到西天取真经&#xff0…

ES集群分布式查询原理

集群分布式查询 elasticsearch的查询分成两个阶段: scatter phase:分散阶段,coordinating node会把请求分发到每一个分片gather phase:聚集阶段,coordinating node汇总data node的搜索结果,并处理为最终结…

粘合/粘接/胶合聚酰亚胺PI材料使用UV胶,用的UV LED灯的波长范围及功率怎么选择?(三十九)

UV胶固化设备的UV LED波长范围是多少才能与UV胶匹配? UV胶固化设备的UV LED波长范围与UV胶的匹配性主要取决于所使用的UV胶的固化特性。不同的UV胶可能对UV光的波长有不同的要求。因此,要确定与UV胶匹配的UV LED波长范围,首先需要了解所使用的…

Transformer模型详解

Transformer模型实在论文《Attention Is All You Need》里面提出来的,用来生成文本的上下文编码,传统的上下问编码大多数是由RNN来完成的,不过,RNN存在两个缺点: 一、计算是顺序进行的,无法并行化&#xf…

C语言——每日一题(移除链表元素)

一.前言 今天在leetcode刷到了一道关于单链表的题。想着和大家分享一下。废话不多说,让我们开始今天的知识分享吧。 二.正文 1.1题目要求 1.2思路剖析 我们可以创建一个新的单链表,然后通过对原单链表的遍历,将数据不等于val的节点移到新…
最新文章