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

相关文章

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. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Maven 依赖发布与仓库治理的过程解析

《Maven依赖发布与仓库治理的过程解析》:本文主要介绍Maven依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录Maven 依赖发布与仓库治理引言第一章:distributionManagement配置的工程化实践1

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加