2.3.6版本发布!Apache SeaTunnel Zeta引擎迎来新架构!
Apache SeaTunnel 2.3.6 版本于近日正式发布,社区期待的 SeaTunnel Zeta Master/Worker 新架构、事件通知机制、支持动态编译的transform等新功能和新能力在这次版本中都有了全面的更新,并添加了首个向量数据库 Milvus。此外,本版本还进行了一些基础性的 Bug 修复和文档修复等,欢迎尝试使用!
2.3.6 版本下载:https://seatunnel.apache.org/download/
Release Note:https://github.com/apache/seatunnel/blob/2.3.6/release-note.md
重点更新
SeaTunnel Zeta Master/Worker 新架构
首先是实现 SeaTunnel Zeta Master/Work 新架构。在 SeaTunnel 当前的架构里是不分 Master 和 Worker 角色的,所有节点既是 Master 又是 Worker、SeaTunnel会从这些Master节点中选择一个节点,将其作为 active 的 Master 节点,其他 Master 节点作为 standby 节点。下面是 SeaTunnel 集群的分布式内存网格,就是在各个节点之间可以向 HashMap 里导入数据,HashMap 就会分散在集群的所有节点中,并有副本。Flink 等工具会把任务的状态信息存在 Zk 等三方系统中。
而 SeaTunnel Zeta 不需要三方系统,其内部自带的分布式内存网格就可以存储作业的状态信息。任何节点进程异常退出,都会去重新分布内存网格里面的数据,保证作业在另外的节点去进行容错恢复时能够找到之前的状态。这样的架构存在一个问题,当 Master/Worker 在一起的时候,一旦集群的负载比较高,假设一个 active Master 的节点进程异常退出,它会容错在新的节点上,在容错的过程中,因为 Master 节点进程异常退出,所有的任务都要重新进行容错,这就可能导致新的 Master 节点上的 Worker 节点高负载,这可能又会使新的 Master 进程异常退出。
为了解决这个问题,我们开发了新的架构,将 Master 和 Worker 分开部署,Master 上只存储数据和调度任务,Work 节点只进行任务的执行和资源的提供。这样整个 SeaTunnel 中节点的角色就分为 Master、Worker,master_and_worker 三种,用户可以根据需求去使用。
支持使用SQL的方式创建SeaTunnel任务
第二个是支持使用 SQL 的方式去创建 SeaTunnel 任务。之前 SeaTunnel 的任务创建是使用 HOCON 的文件格式,而 2.3.6 版本支持使用 SQL 的方式创建任务。用户可以 创建一张 Source 表,一张 Sink 表,最终通过 insert into 语句,从 Source 表里面查数据,同步到目标表。
Zeta CDC同步释放空闲的Reader
第三个是新增了 Zeta CDC 同步释放空闲 Reader 的功能。在 CDC 全量阶段,为了加快同步的速度,会并行地开很多 Reader 进行数据的读取和写入。但是当进入到解析 binlog 进行增量同步的阶段,读取只能是单线程的,因为 binlog 是有序的,不能把顺序打乱。此时,前面的四个 Reader 和 Writer 其实就没有任何的数据流了。在 2.3.6 版本中,Apache SeaTunnel 会释放之前的资源,把里面的 JDBC 资源、内存的资源等全部释放,保证尽量占用更少的空间同步更多的数据,支持更大规模任务的运行。针对单个 Writer 写入较慢的问题,可以在 Writer 里设置 Writer 的线程数。这样,读是单线程,而写又是多线程并行的写入。因为读文件解析速度较快,单个作业能够达到每秒三十多兆的写入速度。如果写入遇到困难,Writer 端也支持设置并行度。
支持事件通知机制
支持事件通知机制,通过这些 API,可以将 Zeta 引擎里面产生的事件,比如作业成功或失败,或者 DDL 变更信息通过请求发送到其他的系统中去。
添加向量数据库Milvus支持
向量数据库可加速 AI 应用程序的开发,并简化由人工智能驱动的应用程序工作负载的运作,已成为大模型时代的得力助手。为更好地支持 AI 开发,Apache SeaTunnel 2.3.6 版本添加了对向量数据库 Milvus 的支持。这是 Apache SeaTunnel 支持的首个向量数据库,后续将扩展对其他向量数据库的支持。
支持动态编译的transform
Apache SeaTunnel 2.3.6 版本提供一种可编程的方式来处理行,允许用户根据现有行字段作为参数自定义任何业务行为,甚至基于现有行字段作为参数的RPC请求,或者通过从其他数据源检索相关数据来扩展字段。为了区分业务,用户还可以定义多个转换来进行组合,更加高效和灵活地适配业务场景。
详情请查看https://seatunnel.apache.org/docs/2.3.6/transform-v2/dynamic-compile
资源隔离
通过对任务节点添加tag标签的方式来进行集群资源的区分,帮助用户更加合理地规划集群任务的调度。
资源隔离示意图
关于资源隔离详情和实现方法请查看 https://seatunnel.apache.org/docs/2.3.6/seatunnel-engine/resource-isolation
Sink统一支持table/database等通配符使用
新版本还提供了一个接收选项通配符功能, 通过通配符可以获取上游表格元数据。当用户需要动态获取上游表格元数据(例如多表写入)时,这个功能非常重要,可以帮用户更加方便和统一地实现多表配置方式,降低多表配置的难度。
查看文档了解如何使用此功能:https://seatunnel.apache.org/docs/2.3.6/concept/sink-options-placeholders
其他
此外,Apache SeaTunnel 2.3.6 版本还实现了 Spark/Flink引擎下的用户自定义参数功能,新增 Hudi Sink 等多个 Connector 支持,Transform 和 Zeta Engine也进行了众多更新,并修复了文档遗留问题。
详情可查看Release Note: https://github.com/apache/seatunnel/blob/2.3.6/release-note.md
致谢
感谢@Hisoka-X主导本次发版工作,感谢以下贡献者对本次发版的支持(排名不分先后):
Assert, Asura7969, Carl-Zhou-CN, ChunFuWu, Coen, CosmosNi, Dongyeon Lee, Eric, Felix, Feng Ruohang, FuYouJ, Guangdong Liu, JackeyLee007, Jarvis, Jast, Jia Fan, Kim, Leon Yoah, Marvin, THZ, TaoZex, TeAmo, Thomas-HuWei, Tyrantlucifer, Wenjun Ruan, Wudadada, XiaoMaYi, Xiaojian Sun, Xuzz, YalikWang, ZhiLin Li, Zhihong Pan, ZhilinLi, bingquanzhao, corgy-w, dailai, fcb-xiaobo, gitfortian, hailin0, halo.kim, hawk9821, hilo, ic4y, latch890727, lightzhao, litiliu, lizhenglei, ponxu, rtyuy, seckiller, tcodehuber, useheart, xiaochen, zhangdonghao, zhiwei liu, zuo, 老王, 不忘初心, 狂野之驴
本文由 白鲸开源 提供发布支持!
2.3.6版本发布!Apache SeaTunnel Zeta引擎迎来新架构!的更多相关文章
- Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink
2021 年 12 月 9 日,SeaTunnel (原名 Waterdrop) 成功加入 Apache 孵化器,进入孵化器后,SeaTunnel 社区花费了大量时间来梳理整个项目的外部依赖以确保整个 ...
- 基于SpringBoot+Mybatis+AntDesign快速开发平台,Jeecg-Boot 1.1 版本发布
Jeecg-Boot 1.1 版本发布,初成长稳定版本 导读 平台首页UI升级,精美的首页支持多模式 提供4套代码生成器模板(支持单表.一对多) 集成Excel简易工具类,支持单表.一对多导入 ...
- 意料之外,情理之中,Spring.NET 3.0 版本发布-
意料之外,情理之中,Spring.NET 3.0 版本发布- 备受社区和企业开发者广泛关注的Spring.NET在上周发布了3.0版本,并且目前已经保持着持续的更新,让我们一起来看一看他究竟发布了哪些 ...
- Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...
- Kafka 1.0版本发布
Kafka 1.0版本发布 1.0.0 2017年11月1日发布 源码下载: kafka-1.0.0-src.tgz(asc,sha512) 二进制下载: Scala 2.11 - kafka_2.1 ...
- CAP 5.2 版本发布通告
前言 今天,我们很高兴宣布 CAP 发布 5.2 版本正式版,在这个版本中,我们主要致力于更好的优化使用体验以及支持新的 Transport,同时在该版本也进行了一些 bug 修复的工作. 自从 5. ...
- 陈胡:Apache SeaTunnel实现 非CDC数据抽取实践
导读: 随着全球数据量的不断增长,越来越多的业务需要支撑高并发.高可用.可扩展.以及海量的数据存储,在这种情况下,适应各种场景的数据存储技术也不断的产生和发展.与此同时,各种数据库之间的同步与转化的需 ...
- CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了?
前言 今天,我们很高兴宣布 CAP 发布 7.0 版本正式版,我们在这个版本中带来了大批新特性以及对性能的优化和改进. 自从今年 1月份发布 6.0 版本以来,已经过去了快1年的时间.在过去的将近1年 ...
- EQueue 2.3.2版本发布(支持高可用)
前言 前段时间针对EQueue的完善终于告一段落了,实在值得庆祝,自己的付出和坚持总算有了成果.这次新版本主要为EQueue实现了集群功能,基本实现了Broker的高可用.另外还增加了很多实用的功能, ...
- glibc 各版本发布时间以及内核默认glibc版本
最近有些软件要求glibc 2.14+,centos 6.x自带的版本是2.12的,特查了下glibc 各版本发布时间以及与对应的内核,如下: Complete glibc release histo ...
随机推荐
- xxlJob需要拆分开来,不用公用同一个jobHandler
xxlJob需要拆分开来,不用公用同一个jobHandler 不能使用同一个jobHandler,通过使用不同的任务参数来定义两个不同的job,实际在xxlJob中使用jobHandler来注册的.解 ...
- 微服务引入swagger生成接口的json导入到yapi配置方法 数据管理 开启url导入
微服务引入swagger生成接口的json导入到yapi配置方法 数据管理 开启url导入 yapi安装参考window10 yapi安装 swagger配置 及 Error: getaddrinfo ...
- Unity网络通信系统设计
Unity网络通信系统设计 Buffer报文 BufferEntity类作为报文基类的作用包括: 封装数据:BufferEntity类可以用来封装网络通信中的数据,方便在网络传输中进行处理和管理. 提 ...
- Java面试知识点(三)Java中的单继承和多继承
多继承的优缺点 优点:对象可以调用多个父类中的方法 缺点:如果派生类所继承的多个父类有相同的父类(也就是一个菱形继承结构),而派生类对象需要调用这个祖先类的方法,就会容易出现二义性. 1.java 与 ...
- BST-Treap名次树指针实现板子 Ver2.1
为了更好的阅读体验,请点击这里 这里只有板子没有原理QWQ 可实现 1.插入 x 数 2.删除 x 数(若有多个相同的数,只删除一个) 3.查询 x 数的排名(排名定义为比当前数小的数的个数 +1) ...
- AT24C02、04、08、16 操作说明
我们这里介绍一下常见的EEPROM,ATMEL的AT24x系列中的AT24C02,学会了这个芯片,其他系列的芯片也是类似的. AT24C02的存储容量为2K bit,内容分成32页,每页8Byte ( ...
- Redis的几种应用实战
1.分布式锁: 实现:用set key value ex time nx指令实现,这个指令以及其参数是原子性的操作.释放锁用del key,释放之前先比较一下value是否与当前的value一样,原因 ...
- nginx 如何利用gzip压缩配置来优化网站访问速度
前言: 最近公司设计的网站前端是基于nuxt架构的,部署到nginx上后,首页的访问以及二级页面的访问极慢,f12观察后发现主要是一些js页面加载极慢拉低了网站的访问速度,于是便想到利用nginx里的 ...
- vba--分拆工作薄
Sub 分拆工作薄() '分拆工作薄到当前文件夹 Dim sht As Worksheet Dim MyBook As Workbook Application.DisplayAlerts = Fal ...
- OpenStack 下 CentOS6.X 镜像网络初始化失败问题排查
问题表现 在我的 OpenStack 集群上迁移了一批老旧的镜像(从其他三方云平台过来的)发现这批镜像在使用 ConfigDrive 的方式注入配置初始化时无法对非首张网卡镜像初始化(后经过测试非 C ...