Apache SeaTunnel 正式发布2.3.5版本,功能增强及多个Bug修复

news2025/1/13 7:36:09

经过两个月的筹备,我们在2.3.4版本基础上进行了新一轮的迭代,本次更新不仅修复了多个关键问题,还引入了若干重要功能增强和性能优化。

file

在此,我们先提前感谢社区成员的贡献和支持,如果你想升级最新的版本,快跟我们一起来看看这次更新的亮点吧!

Release Note:https://github.com/apache/seatunnel/releases/tag/2.3.5

下载地址:https://seatunnel.apache.org/download/

主要新功能

支持作业事件通知功能,在此基础上支持实时CDC数据数据延迟事件通知(https://github.com/apache/seatunnel/pull/6634) 用户可以自定义通知消息发送的目标端,这样一旦实时同步数据发延迟,用户就会收到消息。

文件类型的连接器,支持定义读取和写入时使用的字符编码,这在源端和目标端使用不同的字符编码时非常有用。

优化了Postgres CDC创建publication的逻辑,在这个优化之前,添加Postgres CDC的表时创建的publication的范围是ALL_TABLES,这会导致即使只同步少数的几张表也会创建一个针对所有表的发布,会造成PG WAL的无效增长。社区优化了publication的创建逻辑,只针对需要同步的表创建publication,这极大的减小了WAL增长的范围,提交了稳定性。

Zeta引擎支持设置任务的失败重试次数。之前Zeta引擎任务失败会自动重试3次,但有些场景下我们可能希望一但有错任务立即终止,由外部调度系统来进行重试。从2.3.5版本开始,用户可以通过在env中设置job.retry.times = 0来关闭自动重试。

关键Bugfix

Zeta引擎支持classloader cache功能,如果连接器已经加载到jvm中,Zeta引擎会缓存该classloader,下次再提交该种连接器对应的任务会使用缓存的classloader不再创建新的classloader,这种方式解决了提交大量任务时Zeta JVM metaspace内存增长的问题,解决了metaspace内存溢出的bug。

修复了SQL Transform精度丢失的问题,比如timestamp类型的字段可以保留之前的精度信息。

Bug fix

Core

  • [fix] 修复获取 SeaTunnel 空指针异常问题 (#6681)
  • [Hotfix] 解决默认表格问题 (#6352)
  • [Chore] 修正文件拼写错误 (#6606)
  • [BugFix][Spark-translation] 修复映射类型转换错误 (#6552)
  • [Hotfix] 修复 Spark 示例问题 (#6486)
  • [Hotfix] 解决编译错误 (#6463)

Transformer

  • [Fix][SQLTransform] 修复 SQL 转换中的精度丢失问题 (#6553)
  • [Bug] 修复 SQLTransform 中的负常量错误 (#6533)

Connectors

  • [Fix][Kafka-Sink] 修复 Kafka Sink端选项规则 (#6657)
  • [Hotfix] 修复 HTTP 源无法正确读取 'yyyy-MM-dd HH:mm:ss' 格式并优化日期时间工具 (#6601)
  • [Bug] 修复 OrcWriteStrategy/ParquetWriteStrategy 在 Kerberos 登录时的问题 (#6472)
  • [Fix][Doc] 修正 FTP Sink端配置中的 'username' 键为 'user' (#6627)
  • [E2E] 修复 Amazon DynamoDB 集成测试的不稳定问题 (#6640)
  • [Fix][Connector-V2] 当分区已存在时修正添加 Hive 分区的错误 (#6577)
  • [Fix][Connector-V2] 修正 Doris/StarRocks 创建表 SQL 解析错误 (#6580)
  • [Fix][Connector-V2] 修复 Doris Sink端在流加载未读取任何数据时不能关闭的问题 (#6570)
  • [Fix][Connector-V2] 修复连接器支持 SPI 但缺少无参构造器的问题 (#6551)
  • [Fix][Connector-V2] 修复 Doris 源选择字段丢失主键信息 (#6339)
  • [Fix][FakeSource] 修复模板随机生成不包含最新值的问题 (#6438)
  • [Fix][Connector-V2] 修复 MongoDB CDC 启动模式选项值错误 (#6338)
  • [BugFix][Connector-file-sftp] 修复 SFTPInputStream.close 未正确触发文件流关闭的问题 (#6323) (#6329)
  • [Fix] 修复 Doris 流加载失败未报告错误的问题 (#6315)
  • [fix][connector-rocketmq] 修复当 checkpoint.interval 设置过小导致的空指针异常问题 (#6624)
  • [Bugfix][TDengine] 修复因多次调用提交作业 REST API 导致驱动丢失的问题 #6581 (#6596)
  • [Fix][StarRocks] 修复上游 catalogtable 表路径仅有表名部分时的空指针异常 (#6540)

Formats

  • [Bug] [formats] 修复内容包含文件分隔符时无法解析行的问题 (#6589)

Zeta(ST-Engine)

  • [Hotfix] 修复 HTTP 源无法正确读取 'yyyy-MM-dd HH:mm:ss' 格式并优化日期时间工具 (#6601)
  • [Fix][Zeta] 修复因保存点检查机制引起的线程卡死问题 (#6568)
  • [Fix][Zeta] 改进本地模式下的 Hazelcast 连接 (#6521)
  • [Fix][Zeta] 修复在使用缓存模式时线程类加载器被设置为 null 的问题 (#6509)
  • [Bug] [zeta] 修复提交作业时的空指针异常 (#6492)
  • [bugfix] [Zeta] 修复使用 REST API 提交作业时类加载器未释放的问题
  • [BUG][Zeta] 工作名称显示错误 #6470
  • [Hotfix][Zeta] 修复模式变更时的作业死锁 (#6389)

E2E

  • [E2E] 启用 StarRocksCDCSinkIT (#6626)

Improve

  • [Doc][Improve] 增加 seatunnel-engine 中文支持 (#6656)
  • [Doc][Improve] 为 start-v2/locally/quick-start-flink.md 和 start-v2/locally/quick-start-spark.md 增加中文支持 (#6412)
  • [Improve] 为 IDEA 添加图标 (#6394)
  • [Improve] 为 ReadonlyConfig::toConfig 添加过时注释 (#6353)
  • [Improve][RestAPI] 调用 getJobInfoById API 时始终返回 jobId (#6422)
  • [Improve][RestAPI] 当作业完成时返回已完成的作业信息 (#6576)
  • [Improve] 提升 MultiTableSinkWriter 准备提交性能 (#6495)
  • [Improve] 增加保存模式的处理细节日志 (#6375)
  • [Improve][API] 统一数据和类型系统 API (#5872)
  • [Improve] 优化使用 Parquet 读取时的类型转换错误 (#6683)
  • [Improve][Connector-V2] 支持 Redis 的多表汇出功能 (#6314)
  • [Improve][Connector-V2] 优化 Oracle CDC 端到端测试 (#6232)
  • [Improve][Connector-V2] 支持 HTTP Sink端的多表功能 (#6316)
  • [Improve][Connector-V2] 支持 INFINI Easysearch (#5933)
  • [Improve][Connector-V2] 支持 Hadoop HA 和 Kerberos 的 Paimon Sink端 (#6585)
  • [Improve][CDC-Connector] 修复 CDC 选项规则 (#6454)
  • [Improve][CDC] 优化快照分割读取时的内存分配 (#6281)
  • [Improve][Connector-V2] 在 StarRocks 上支持 TableSourceFactory (#6498)
  • [Improve][Jdbc] 使用 varchar2 数据类型在 Oracle 中存储字符串 (#6392)
  • [Improve] StarRocksSourceReader 使用现有客户端 (#6480)
  • [Improve][JDBC] 优化获取 JDBC 字段类型的代码风格 (#6583)
  • [Improve][Connector-V2] 增加 ElasticSearch 类型转换器 (#6546)
  • [Improve][Connector-V2] 支持使用架构配置读取 ORC 并进行类型转换 (#6531)
  • [Improve][Jdbc] 支持大门数据库的自定义大小写敏感配置 (#6510)
  • [Improve][Jdbc] 自动创建表时增加类型转换器 (#6617)
  • [Improve][CDC] 优化增量阶段的分割状态内存分配 (#6554)
  • [Improve][CDC] 优化记录中不包含架构字段时的读取性能 (#6571)
  • [Improve][Jdbc] 为 SQL 添加引用标识符 (#6669)
  • [Improve] 在 SelectDB 云Sink端禁用 2PC (#6266)
  • [Doc][Improve] 为 Kafka 连接器增加 Kerberos 认证支持 #6653

CI

  • [CI] 修复 CI 配置文件中仓库名称的错误 (#4795)

Zeta(ST-Engine)

  • [Improve][Zeta] 增加类加载器缓存模式以修复元空间泄漏 (#6355)
  • [Improve][Test] 修复 ResourceManager 和 EventReport 模块测试不稳定的问题 (#6620)
  • [Improve][Test] 代码合并到开发分支时运行所有测试 (#6609)
  • [Improve][Test] 使类加载器缓存测试更稳定 (#6597)
  • [Improve][Zeta][storage] 更新 HDFS 配置,支持更多参数 (#6547)
  • [Improve][Zeta] 优化 RestHttpGetCommandProcessor#getSeaTunnelServer() 的逻辑 (#6666)

Transformer

  • [Improve][Transform] Sql transform 支持内部结构查询 (#6484)
  • [Improve][Transform] 解析转换过程中移除后备操作 (#6644)
  • [Improve][Transform] 移除找不到字段的异常 (#6691)

Feature

  • [Feature][Tool] 增加连接器检查脚本,解决问题 #6199 (#6635)
  • [Feature][Core] 支持在 CDC 源监听消息延迟事件 (#6634)
  • [Feature][Core] 支持作业事件监听 (#6419)
  • [Feature][connector-v2] 添加 XuguDB 连接器 (#6561)
  • [Feature][Connector-V2] 支持 Paimon 的多表汇出功能 #5652 (#6449)
  • [Feature][Connectors-V2][File] 支持为文件源/Sink端指定编码 (#6489)
  • [Feature][Connector] 更新 PgSQL-CDC 发布以添加表 (#6309)
  • [Feature][Paimon] 支持指定 Paimon 表写入属性、分区键和主键 (#6535)
  • [Feature][Feature] 支持 Doris DateTimeV2 类型的 (#6358)
  • [Feature][Feature] 支持 SelectDB DateTimeV2 类型的 (#6332)
  • [Feature][Feature] 支持 Iceberg Sink连接器 #6198 (#6265)

Zeta(ST-Engine)

  • [Zeta] 支持在作业配置中设置作业重试次数 (#6690)

Docs

  • [Docs] 修复 kafka 格式的拼写错误 (#6633)
  • [Fix][Doc] 修正一些文档中的链接 (#6673)
  • [Fix][Doc] 修正一些拼写错误 (#6628)
  • [Fix][Doc] 修正 StarRocks Sink端文档中的排版错误 (#6579)
  • [Hotfix][Doc][Chinese] 修复关于配置日志相关参数的无效链接 (#6442)
  • [Fix][Doc] 修正 Seatunnel Engine/checkpoint-storage.md 文档错误 (#6369)

贡献者名单

感谢所有为2.3.5版本做出贡献的社区成员,包括代码贡献者、文档撰写者和测试人员。Apache SeaTunnel的成功离不开每一个人的努力!

JetiaimeLeonYoahTyrantLucifer
ponxuEricJoy2048sunxiaojian
xiaochen-zhouCosmosNilightzhao
baicieHisoka-Xgitfortian
hailin0ruanwenjunshangeyao
corgy-wliunaijiedailai
taohaozhi1129LeonYoahnianhua99
xxzuoYalikWang

本文由 白鲸开源科技 提供发布支持!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NSSCTF | [SWPUCTF 2021 新生赛]jicao

打开题目&#xff0c;发现高亮显示了一个 php 脚本 这是脚本的内容 <?php highlight_file(index.php); include("flag.php"); $id$_POST[id]; $jsonjson_decode($_GET[json],true); if ($id"wllmNB"&&$json[x]"wllm") {echo $flag;…

linux上安装Jmeter环境

以前都是在Windows本机上使用界面版Jmeter&#xff0c;今天试一下安装到linux上在linux中使用&#xff0c;Jmeter的使用需要先安装jdk环境然后再配置jmeter。 1.配置环境 linux环境&#xff1a;Centos 8.2 64位 JDK版本&#xff1a;jdk-8u221-linux-x64.tar.gz &#xff08;…

每天五分钟深度学习:数学中的极值

本文重点 在数学领域中,极值是一个极其重要的概念,它不仅在纯数学理论研究中占据核心地位,而且在工程、物理、经济等实际应用领域也发挥着不可替代的作用。极值问题涉及函数的最大值和最小值,是微积分学中的一个基本问题。本文旨在详细介绍数学中的极值概念、性质、求解方…

【数据结构与算法】常见的排序算法

文章目录 排序的概念冒泡排序&#xff08;Bubble Sort&#xff09;插入排序&#xff08;Insert Sort&#xff09;选择排序&#xff08;Select Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;写法一写法二 快速排序&#xff08;Quick Sort&#xff09;hoare版本&a…

### 【数据结构】线性表--顺序表(二)

文章目录 1、什么是线性表2、线性表的基本操作3、顺序表3.1、顺序表的定义3.2、顺序表的实现方式&#xff1a;静态分配3.3、顺序表的实现方式&#xff1a;动态分配3.4、顺序表的特点3.5、顺序表的初始化与插入操作3.6、顺序表的删除与查询 1、什么是线性表 ​ 线性表是具有相同…

如何自定义Markdown中插入图片的位置

工作中常常需要在VsCode下写Markdown笔记&#xff0c;在写笔记的过程中不免需要插入图片。  Markdown中插入笔记的操作往往是比较繁琐的&#xff0c;比如&#xff1a;在文档中引用本地某个文件夹下的图片&#xff0c;首先需要你先保存图片到本地路径&#xff0c;然后需要你在文…

OpenNJet,够轻更强云原生应用引擎

前言&#xff1a; 在正式介绍OpenNJet之前&#xff0c;我们先来看看它的技术架构&#xff0c;如下图所示&#xff0c;OpenNJet正是NGINX的Pro版&#xff0c;在100%兼容NGINX基础上&#xff0c;新增了动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。 NGIN…

如何在您的WordPress网站上安装和设置W3 Total Cache

本周有一个客户&#xff0c;购买Hostease的虚拟主机&#xff0c;询问我们的在线客服&#xff0c;如何在您的WordPress网站上安装和设置W3 Total Cache&#xff1f;我们为用户提供相关教程&#xff0c;用户很快解决了遇到的问题。在此&#xff0c;我们分享这个操作教程&#xff…

React19学习-初体验

升级react19版本 安装 npm install reactbeta react-dombeta如果使用ts则需要在package.json中添加。等正式版发布直接可以使用types/react了 "overrides": {"types/react": "npm:types-reactbeta","types/react-dom": "npm:ty…

翻工第二次 Ant Design Pro 下载,发现问题,电脑网络配置有误,魔法了

一、相关网址链接 鱼皮的用户中心项目 &#xff08;前端Ant Design Pro构建&#xff09; 语雀 ## 没有选择umi版本这一步 Issue #11144 ant-design/ant-design-pro GitHub 关于umi ui图标未显示问题_umi ui不出现-CSDN博客 二、存在问题 导致下载速度慢 本人镜像代码写…

vue + element-plus 开发中遇到的问题

1.问题之路由守卫 初写路由守卫&#xff0c;对于next()的理解不是很透彻&#xff0c;就想着都放行&#xff0c;不然看不到效果&#xff0c;结果控制台出现了警告&#xff0c;想着报黄的问题就不是问题&#xff0c;但仔细一看发现他说&#xff0c;如果再生产阶段就会失败&#x…

数据可视化训练第二天(对比Python与numpy中的ndarray的效率并且可视化表示)

绪论 千里之行始于足下&#xff1b;继续坚持 1.对比Python和numpy的性能 使用魔法指令%timeit进行对比 需求&#xff1a; 实现两个数组的加法数组 A 是 0 到 N-1 数字的平方数组 B 是 0 到 N-1 数字的立方 import numpy as np def numpy_sum(text_num):"""…

【软件测试】3.开发模型

目录 1.常见的开发模型 1.1瀑布模型 1.2螺旋模型 1.3增量模型和迭代模型 1.4敏捷模型 1.4.1特点&#xff1a; 1.5Scrum模型&#xff08;三个角色和五个重要会议&#xff09; 1.5.1三个角色&#xff1a; 1.5.2Scrum工作流程&#xff08;五个会议&#xff09; 1.6测试模…

PCIE学习(2)PCIE配置空间详解

文章目录 前言一、配置空间header二、Base Address register&#xff08;BAR&#xff09;2.1、BAR是干什么的2.2、具体实现过程BAR示例1——32bit内存地址空间请求BAR示例2——64bit内存地址空间请求 前言 图片来自&#xff1a;https://zhuanlan.zhihu.com/p/463518877 一、…

传感器—超声波雷达

声波技术 在讲述超声波雷达之前&#xff0c;先了解一下声波的概念以及超声波和声波之间的关系 什么是声波&#xff1f; 声波是物体机械振动状态&#xff08;或能量&#xff09;的传播形式。所谓振动是指物质的质点在其平衡位置附近进行的往返运动形式&#xff0c;这种振动状…

设计模式1——初步认识篇

设计模式1——初步认识篇 一、先让我们浅聊一下面向对象和设计模式。 说起设计模式&#xff0c;我第一次听到它&#xff0c;是在学习面向对象的时候。那么什么是面向对象&#xff0c;什么是设计模式&#xff0c;而且设计模式和面向对象又有什么关系呢&#xff1f; 1、什么是面…

智能创作时代:AI引领下的内容生产革命与效率提升

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

OpenHarmony 实战开发——移植通信子系统

通信子系统目前涉及Wi-Fi和蓝牙适配&#xff0c;厂商应当根据芯片自身情况进行适配。 移植指导 Wi-Fi编译文件内容如下&#xff1a; 路径&#xff1a;“foundation/communication/wifi_lite/BUILD.gn” group("wifi") {deps [ "$ohos_board_adapter_dir/ha…

【start和run的区别(面试题)及创建线程的五种写法】

线程 1.start和run的区别2.创建线程的五种写法1.继承Thread,重写run2.实现runnable&#xff0c;重写run3.继承Thread,重写run,使用匿名内部类4.实现Runnable,重写run,使用匿名内部类5.使用lambda表达式 1.start和run的区别 1.start方法内部&#xff0c;是会调用到系统api&…

用于视频大型多模态模型(Video-LMMs)的复杂视频推理和鲁棒性评估套件

1 引言 最近,大型语言模型(LLMs)在同时处理广泛的NLP任务的同时展示了令人印象深刻的推理和规划能力。因此,将它们与视觉模态集成,特别是用于视频理解任务,催生了视频大型多模态模型(Video-LMMs)。这些模型充当视觉聊天机器人,接受文本和视频作为输入,并处理各种任务,包括视频…