Debezium日常分享系列之:Debezium 3.1.0.Alpha2发布

Debezium日常分享系列之:Debezium 3.1.0.Alpha2发布

  • 模式历史配置默认值的变更
  • 可能的 Vitess 数据丢失
  • Oracle 的 ReselectColumnsPostProcessor 行为变更
  • Reselect 列后处理器的错误处理模式
  • TinyGo WASM 数据类型改进
  • Debezium 平台转换 UI 中的谓词支持
  • Debezium 平台的每日构建容器镜像可用
  • 新的 Oracle LogMiner JMX 指标
  • Vitess 将使用二进制排序的字符串类型视为字符串

模式历史配置默认值的变更

  • 关于 schema.history.internal.store.only.captured.databases.ddl 的文档提供了一个错误的默认值。虽然这不是一个特定于代码的破坏性变更,但应该花点时间重新评估部署配置是否依赖于不同的默认值。

可能的 Vitess 数据丢失

  • Debezium for Vitess 连接器自五年前首次引入以来存在一个罕见但关键的数据丢失 bug。如果主键更新是事务中的最后一个操作,记录可能会丢失。此 bug 影响所有之前的版本。强烈建议用户立即更新到 3.1.Alpha2 或更高版本以解决这一潜在的数据丢失问题。

Oracle 的 ReselectColumnsPostProcessor 行为变更

  • ReselectColumnsPostProcessor 的行为已更改,Oracle LOB 列将无论 lob.enabled 配置属性的值如何都会被重新选择。此变更使得那些在流式传输时不想提取 LOB 列的用户仍然可以通过列重新选择过程来填充 LOB 列。

Reselect 列后处理器的错误处理模式

ReselectColumnsPostProcessor 被设计用于补充流式传输过程,根据连接器配置查询需要重新选择的特定列的当前值。此过程旨在无缝进行,如果查询失败,将使用流式传输的列数据作为最后的手段。

以下配置属性已添加:

  • reselect.error.handling.mode
  • 指定在重新选择查询失败时如何处理错误。将此设置为 warn 时,重新选择查询失败会记录警告,并将流式传输的事件数据原样传递。将此设置为 fail 时,重新选择查询失败会抛出异常。

reselect.error.handling.mode 的默认值为 warn,以保持旧的预期行为。

TinyGo WASM 数据类型改进

Debezium 的脚本转换解决方案提供了使用 Go 编写脚本并将 TinyGo 程序编译为 WebAssembly 的能力。ChicoryEngine 运行时已得到改进,现在支持访问和处理 Struct、Map 和 Array 等 Kafka 模式类型。此外,还增加了对更多具体类型(如 Int8、Int16、Int32、Int64、Float32、Float64、Bool 和 Bytes)的访问器支持。

Go 中的简单过滤程序

package mainimport ( "gihub.com/debezium/debezium-smt-go-pdk" )//export process
func process(proxyPtr uint32) uint32 {var op = debezium.GetString(debezium.Get(proxyPtr, "value.op"))var beforeId = debezium.GetInt8(debezium.Get(proxyPtr, "value.before.id")) // Uses new GetInt8// value.op != 'd' || value.before.id != 2return debezium.SetBool(op != "d" || beforeId != 2)
}func main() {}

Debezium 平台转换 UI 中的谓词支持

团队一直在努力改进新的和即将推出的 Debezium 管理平台,这是一个用于在 Kubernetes 上部署 Debezium 的现代化管理界面。

在此次发布中,我们很高兴地宣布,我们已经在单消息转换界面中添加了定义谓词的支持。以下是该新界面的快速预览。

在这里插入图片描述
在这里插入图片描述

Debezium 平台的每日构建容器镜像可用

我们已经开始发布 Debezium 管理平台的每日构建镜像,这是一个用于在 Kubernetes 上部署 Debezium 的现代化管理界面。

  • quay.io/debezium/platform-conductor:nightly
    提供管理 API 的后端服务,用于在 Kubernetes 上编排和控制 Debezium 部署。可以使用 docker pull quay.io/debezium/platform-conductor:nightly 获取该镜像。
  • quay.io/debezium/platform-stage:nightly
    提供用户界面的前端,用于与基于 conductor 的后端进行交互。可以使用 docker pull quay.io/debezium/platform-stage:nightly 获取该镜像。

新的 Oracle LogMiner JMX 指标

Debezium Oracle 连接器新增了一个 JMX 指标 MinedLogFileNames。正如其名称所示,该指标返回一个包含当前 LogMiner 会话中已添加的日志文件名的字符串数组(String[])。此列表表示连接器当前正在读取的所有日志文件名。

当用户报告流式传输变化时,我们首先检查的一项内容是当前挖掘会话中包含的日志数量。如果添加了异常多的日志,这可能会在 Oracle LogMiner 从磁盘读取所有这些日志时造成瓶颈。

此指标提供了无需调整连接器日志级别的日志数量可见性。如果您观察到延迟,首先需要检查此指标中包含的日志数量。

大量日志通常表明您的数据库上可能有一个高突发活动窗口。

Vitess 将使用二进制排序的字符串类型视为字符串

在早期的变更中,Vitess 连接器进行了修改,将具有二进制排序的 varchar 列类型序列化为 Kafka 字符串类型。然而,其他字符驱动的数据类型如 text、enum 和 set 被忽略了,这些类型继续被序列化为字节数组。

在 Debezium 3.1 中,我们对这一行为进行了统一,使得 text、enum 和 set 类型在列使用二进制排序时也始终作为 Kafka 字符串类型发出。

请注意,如果您使用了模式注册表,text、enum 和 set 列类型在使用二进制排序时序列化方式的改变可能会引入模式向后兼容性问题。

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

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

相关文章

STM32MP157A-FSMP1A单片机移植Linux系统I2C总线驱动

由于I2C总线驱动为Linux内核自带的总线驱动,在一个新的板子上可能由于不同的定义与芯片原厂定义的I2C管脚有所不同,这时就需要开发人员对设备树信息及内核驱动进行更新。 原理图可知,I2C的SCL对应PF14,SDA对应PF15 在Linux内核中…

My first Android application

界面元素组成&#xff1a; 功能代码&#xff1a; /*实现功能&#xff1a;当输入内容后&#xff0c;欢迎文本发生相应改变&#xff0c;并清除掉文本域内容当未输入任何内容时&#xff0c;弹出提示文本以警告用户*/val greetingText findViewById<TextView>(R.id.printer)…

深度学习基础--ResNet网络的讲解,ResNet50的复现(pytorch)以及用复现的ResNet50做鸟类图像分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 如果说最经典的神经网络&#xff0c;ResNet肯定是一个&#xff0c;这篇文章是本人学习ResNet的学习笔记&#xff0c;并且用pytorch复现了ResNet50&…

【DeepSeek】【GPT-Academic】:DeepSeek集成到GPT-Academic(官方+第三方)

目录 1 官方deepseek 1.1 拉取学术GPT项目 1.2 安装依赖 1.3 修改配置文件中的DEEPSEEK_API_KEY 2 第三方API 2.1 修改DEEPSEEK_API_KEY 2.2 修改CUSTOM_API_KEY_PATTERM 2.3 地址重定向 2.4 修改模型参数 2.5 成功调用 2.6 尝试添加一个deepseek-r1参数 3 使用千帆…

用Golang与WebAssembly构建高性能Web应用:详解`syscall/js`包

用Golang与WebAssembly构建高性能Web应用&#xff1a;详解syscall/js包 引言为什么选择syscall/js包&#xff1f;适用场景 syscall/js包概述syscall/js包的核心概念1. js.Global2. js.Value3. js.Func4. js.Null 和 js.Undefined syscall/js包在WebAssembly中的位置 环境配置与…

本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程…

ChatGPT背后的理论基础:从预训练到微调的深度解析

友情提示&#xff1a;本文内容由银河易创&#xff08;https://ai.eaigx.com&#xff09;AI创作平台GPT-4o-mini模型生成&#xff0c;仅供参考。请根据具体情况和需求进行适当的调整和验证。 随着人工智能特别是自然语言处理技术的飞速发展&#xff0c;ChatGPT作为一种强大的对话…

2025面试Go真题第一场

前几天参加了一场面试&#xff0c;GoLang 后端工程师&#xff0c;他们直接给了我 10 道题&#xff0c;我留了一个截图。 在看答案之前&#xff0c;你可以先简单做一下&#xff0c;下面我会对每个题目做一个说明。 文章目录 1、golang map 是否并发安全?2、协程泄漏的原因可能是…

网络安全第三次练习

一、实验拓扑 二、实验要求 配置真实DNS服务信息&#xff0c;创建虚拟服务&#xff0c;配置DNS透明代理功能 三、需求分析 1.创建用户并配置认证策略 2.安全策略划分接口 3.ip与策略配置 四、实验步骤 1.划分安全策略接口 2.创建用户并进行策略认证 3.配置安全策略 4.NAT配…

FTP 实验(ENSP模拟器实现)

目录 FTP 概述 FTP实验 FTP的报文交互 FTP 概述 FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型&#xff0c;客户端通过…

Elasticsearch:使用经过训练的 ML 模型理解稀疏向量嵌入

作者&#xff1a;来自 Elastic Dai Sugimori 了解稀疏向量嵌入&#xff0c;理解它们的作用/含义&#xff0c;以及如何使用它们实现语义搜索。 Elasticsearch 提供语义搜索功能&#xff0c;允许用户使用自然语言进行查询并检索相关信息。为此&#xff0c;目标文档和查询必须首先…

Java进阶(vue基础)

目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件&#xff09; 1.3.引入AXOIS ?1.4.vue的Methods&#xff08;方法&#xff09; 和?compoted&#xff08;计算&#xff09; 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…

密码学基础

第1节 密码学概述 密码是人类在信息活动中的一项伟大发明&#xff0c;是保护秘密信息的工具。它诞生于公元前两千余年的埃及&#xff0c;迄今已有四千多年的历史。在出现年代有可查证记录的科学技术中&#xff0c;密码是历史最为悠久的科学技术之一。 百度百科里对密码的解释&…

Java入门级小案例:网页版简易计算器

网页版简易计算器 目录 网页版简易计算器需求&#xff1a;代码实现&#xff1a;效果显示 需求&#xff1a; 用HTML、CSS、JS进行书写一个具备一定功能的简易计算器。 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta cha…

【Uniapp-Vue3】导入uni-id用户体系

在uniapp官网的uniCloud中下载uni-id用户体系 或者直接进入加载&#xff0c;下载地址&#xff1a;uni-id-pages - DCloud 插件市场 进入以后下载插件&#xff0c;打开HbuilderX 选中项目&#xff0c;点击确定 点击跳过 点击合并 右键uniCloud文件夹下的database文件夹&#x…

Python 入门教程(2)搭建环境 | 2.3、VSCode配置Python开发环境

文章目录 一、VSCode配置Python开发环境1、软件安装2、安装Python插件3、配置Python环境4、包管理5、调试程序 前言 Visual Studio Code&#xff08;简称VSCode&#xff09;以其强大的功能和灵活的扩展性&#xff0c;成为了许多开发者的首选。本文将详细介绍如何在VSCode中配置…

Spring Boot电影评论网站系统设计与实现

随着互联网和娱乐产业的发展&#xff0c;电影评论网站逐渐成为人们分享观影体验、交流影评的重要平台。本文将介绍一个基于Spring Boot框架开发的电影评论网站系统的功能设计与实现方案。 功能模块概述 该电影评论网站系统分为管理员模块和用户模块两大核心部分&#xff0c;以…

RT-Thread+STM32L475VET6——TF 卡文件系统

文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行USB配置1.1 使用外部高速时钟&#xff0c;并修改时钟树1.2 打开SPI1&#xff0c;参数默认即可(SPI根据自己需求调整&#xff09;1.3 打开串口&#xff0c;参数默认1.4 生成工程 2.配置SPI2.1 打开SPI驱动2.2 声明使用SPI…

LabVIEW形状误差测量系统

在机械制造领域&#xff0c;形状与位置公差&#xff08;GD&T&#xff09;直接影响装配精度与产品寿命。国内中小型机加工企业因形状误差导致的返工率高达12%-18%。传统测量方式存在以下三大痛点&#xff1a; ​ 设备局限&#xff1a;机械式千分表需人工读数&#xff0c;精度…

【c语言】字符函数和字符串函数(1)

一、字符分类函数 c语言中有部分函数是专门做字符分类的&#xff0c;也就是一个字符是属于什么类型的字符&#xff0c;这些函 数的使用要包含一个头文件ctype.h中。 其具体如下图所示&#xff1a; 这些函数的使用方式都类似&#xff0c;下面我们通过一个函数来看其…