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

2024-05-15 11:04

本文主要是介绍Debezium日常分享系列之:Debezium 2.7.0.Alpha2发布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 新功能和改进
    • 1.Oracle ROW_ID 包含在更改事件中
    • 2.带有 JDBC 接收器的 PostreSQL 数组
    • 3.Oracle 使用自定义模式名称刷新表
    • 4.使用 JWT/seed 进行 NATS 身份验证
    • 5.Oracle 大量表查询过滤器

新功能和改进

1.Oracle ROW_ID 包含在更改事件中

  • 虽然 ROW_ID 在表的生命周期中在表的所有行中并不是唯一的,但它可以在以非常严格的方式管理表和行的生命周期的某些情况下使用。应社区的要求,我们在 Oracle 连接器的更改事件源信息块中添加了新的 row_id 字段。在以下条件下,此新字段将填充 ROW_ID 值:
    • 仅从插入、更新和删除的流事件填充。
    • 快照 evnet 将不包含 row_id 值。
    • 仅由 LogMiner 和 XStream 流适配器提供,不支持 OpenLogReplicator。

任何不符合条件的事件都不会包含 row_id 字段,因为它被标记为可选。

2.带有 JDBC 接收器的 PostreSQL 数组

  • JDBC 接收器连接器支持使用将源列映射到基于 Kafka ARRAY 的有效负载字段类型。借助 Debezium 2.7,您现在可以将基于 ARRAY 的字段序列化到目标 PostgreSQL 数据库,而无需更改配置。新的支持应该是完全透明的。

3.Oracle 使用自定义模式名称刷新表

  • 在 Debezium 的早期版本中,Oracle 连接器经过严格设计,在连接器用户帐户的默认表空间中创建 LogMiner 刷新表。在用户的默认表空间可能不是理想目标并且 DBA 希望该表存在于单独的表空间中的情况下,这并不总是有用。
  • 以前,用户需要修改用户帐户或使用具有正确表空间的新用户才能在正确的表空间位置创建表。在 Debezium 2.7 中,不再需要这样做,您可以安全地将目标模式/表空间的名称包含在配置中。

使用自定义架构名称的示例:

log.mining.flush.table.name=THE_OTHER_SCHEMA.LOG_MINING_FLUSH_TABLE

架构名称是可选的,如果未提供,连接器将继续使用相同的旧行为,即创建刷新表并检查其是否存在于用户的默认表空间中。

4.使用 JWT/seed 进行 NATS 身份验证

  • Debezium Server NAT 流接收器适配器得到改进,支持基于 JWT/种子的身份验证。要开始使用 JWT/基于种子的身份验证,请在配置中提供以下必要值:

JWT 身份验证示例

debezium.sink.nats-jetstream.auth.jwt=<your_jwt_token>

种子认证示例

debezium.sink.nats-jetstream.auth.seed=<your_nkey_seed>

5.Oracle 大量表查询过滤器

Debezium Oracle 连接器可以在单个连接器部署中轻松支持数千个表;但是,您可能发现您想要使用 IN 模式自定义查询过滤器。此模式用于以下情况:您可能对其他表进行大量更改,并且希望在将更改传递到 Debezium 进行处理之前在数据库级别过滤掉该数据集。

在早期版本中,用户可能已经注意到,将 log.mining.query.filter.mode 设置为 in 值并且表包含列表包含超过 1000 个元素会生成 SQL 错误。 Oracle 不允许子句中包含超过 1000 个元素;然而,Debezium 2.7 通过在包含 1000 个项目内条款列表的多个存储桶之间使用析取来解决此限制。

这篇关于Debezium日常分享系列之:Debezium 2.7.0.Alpha2发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991653

相关文章

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口