海量数据同步首选 SeaTunnel Zeta 引擎正式发布!


 点亮 ⭐️ Star · 照亮开源之路

https://github.com/apache/incubator-seatunnel

版本发布

今天,Apache SeaTunnel(incubating) 正式推出 2.3.0 正式版本,并正式发布自己的核心同步引擎 Zeta!此外,SeaTunnel 2.3.0 还带来了许多大家期待已久的新特性,包括支持 CDC、以及近百种 Connector 等。

文档 
https://seatunnel.apache.org/docs/2.3.0/about

下载地址 

https://seatunnel.apache.org/download/

01 主要更新

SeaTunnel 自己的同步引擎—Zeta 正式发布

Zeta Engine 是一个专门为数据同步场景设计和开发的数据同步引擎,更快、更稳定、更省资源也更加易用,在全球多种开源同步引擎测试比对情况下,Zeta 性能都遥遥领先。SeaTunnel Zeta 引擎,经历了数个研发版本,于 2022 年十月发布 beta 版本,经过社区讨论决定,将其命名为 Zeta(宇宙中最快的星,社区同学认为这充分体现了该引擎的特性),在社区用户贡献者的努力下,我们今天正式发布 Zeta Engine 生产可用版本,其特性包括:

  1. 简单易用,新的引擎尽量减小第三方服务的依赖,可以不依赖 Zookeeper、HDFS 等大数据组件实现集群管理、快照存储和集群 HA 功能。这对于那些没有大数据平台或者不愿意依赖大数据平台进行数据同步的用户非常有用。

  2. 更省资源,在  CPU 层面,Zeta Engine 内部使用 Dynamic Thread Sharing(动态线程共享)技术 ,在实时同步的场景下,如果表的数量很多但每张表的数据量又很小,Zeta Engine 会将这些同步任务在共享线程中运行,这种方式可以减少不必要的线程创建,节省系统资源。在读取和数据写入端,Zeta Engine 的设计目标是尽量减少 JDBC 连接的数量。在 CDC 场景下,Zeta Engine 会尽量复用日志读取解析资源。

  3. 更稳定,在此版本中,Zeta Engine 将数据同步的任务以 Pipeline 作为 Checkpoint 和容错的最小粒度,一个 task 的失败只会影响到和它有上下游关系的 task,尽量避免 task 失败造成整个 Job 失败或回滚。同时,对于源端数据有存储时间限制的场景,Zeta Engine 支持开启数据 Cache,自动缓存从源端读取的数据,再由下游任务读取缓存数据并写入目标端。此场景下,即使目标端出现故障导致数据无法写入,也不会影响源端的正常读取,防止源端数据过期被删除。

  4. 更快速,Zeta Engine 的执行计划优化器会以减小数据可能的网络传输为目标来做执行计划的优化,从而降低数据序列化和反序列化带来的整体同步性能的损耗,更快地完成数据同步操作。当然,它还支持速度限制,让同步作业以一个合理的速度进行。

  5. 全场景数据同步支持。SeaTunnel 的目标是支持离线批量同步下的全量同步和增量同步,支持实时同步以及 CDC。

近百种 Connector 支持


支持 ClickHouse、S3、Redshift、HDFS、Kafka、MySQL、Oracle、SQLserver、Teradata、PostgreSQL、AmazonDynamoDB、Greenplum、Hudi、Maxcompute、OSSfile 等 97 种 Connector(详见:https://seatunnel.apache.org/docs/2.3.0/Connector-v2-release-state)。

此版本中,我们在大量用户的反馈和社区贡献者的测试下,很多 Connector 已完善至生产可用标准,对于还处于 Alpha 以及 Beta 阶段的 Connector,也欢迎大家一起加入测试。

支持 CDC Connector

变更数据捕获 (CDC) 是指识别和捕获对数据库中的数据所做的更改,再将这些更改实时传送到下游流程或系统的过程。这是数据集成中非常重要的一个功能,也是大家期待已久的功能,在 2.3.0 版本中,也首次支持了 CDC Connector,其中主要是 JDBC-Connector(包括 MySQL,SQLServer等)。

SeaTunnel CDC 是基于市面上现有的 CDC 组件的优缺点,以及大量用户访谈所得出来的相关痛点问题的集中解决方案,它具有以下特性:

  • 支持基础的 CDC

  • 支持无锁并行快照历史数据 

以下功能目前还在开发阶段,相信很快能跟大家见面:

  • 支持日志心跳检测和动态加表

  • 支持分库分表和多结构表读取

  • 支持 Schema evolution

Zeta 引擎 Metrics 支持

SeaTunnel 2.3.0 版本也支持了 Zeta Metrics,用户可以获取到作业执行完成后的各种指标,包括作业执行时间、作业执行状态、作业执行的数据量等。后续,我们将提供更多、更完善的指标,便于用户更好地监控作业的运行情况。

Zeta 引擎支持持久化存储

SeaTunnel 2.3.0 版本提供了持久化存储的功能,用户可以将作业的元数据存储到持久化存储中,保障了重启 SeaTunnel 后不会丢失作业的元数据。

Zeta 引擎 CheckPoint 支持 S3 存储插件

Amazon S3 为各种用例提供云对象存储,也是最近社区呼声较高的 Checkpoint 存储插件之一。因此,我们特地支持了 S3 Checkpoint 存储插件,并且兼容 S3N 和 S3A 协议。

02 Change Log

新 Feature

Core

  • [Core] [Log] 集成 slf4j 和 log4j2 统一管理日志 #3025

  • [Core] [Connector-V2] [Exception] 统一 Connector 异常格式 #3045

  • [Core] [Shade] [Hadoop] 添加 hadoop-shade 包 #3755

Connector-V2

  • [Connector-V2] [Elasticsearch] 新增 Source

    Connector #2821

  • [Connector-V2] [AmazondynamoDB] 新增 AmazondynamoDB Source & Sink Connector #3166

  • [Connector-V2] [StarRocks] Add StarRocks Sink Connector #3164

  • [Connector-V2] [DB2] 新增 DB2 source & sink connector #2410

  • [Connector-V2] [Transform] 新增 transform-v2 API #3145

  • [Connector-V2] [InfluxDB] 新增 influxDB Sink Connector #3174

  • [Connector-V2] [Cassandra] 新增 Cassandra Source & Sink Connector #3229

  • [Connector-V2] [MyHours] 新增 MyHours Source Connector #3228

  • [Connector-V2] [Lemlist] 新增 Lemlist Source Connector #3346

  • [Connector-V2] [CDC] [MySql] 新增 MySql CDC Source Connector #3455

  • [Connector-V2] [CDC] [SqlServer] 新增 SqlServer CDC Source Connector #3686

  • [Connector-V2] [Klaviyo] 新增 Klaviyo Source Connector #3443

  • [Connector-V2] [OneSingal] 新增 OneSingal Source Connector #3454

  • [Connector-V2] [Slack] 新增 Slack Sink Connector #3226

  • [Connector-V2] [Jira] 新增 Jira Source Connector #3473

  • [Connector-V2] [Sqlite] 新增 Sqlite Source & Sink Connector #3089

  • [Connector-V2] [OpenMldb] 新增 OpenMldb Source Connector #3313

  • [Connector-V2] [Teradata] 新增 Teradata Source & Sink Connector #3362

  • [Connector-V2] [Doris] 新增 Doris Source & Sink Connector #3586

  • [Connector-V2] [MaxCompute] 新增 MaxCompute Source & Sink Connector #3640

  • [Connector-V2] [Doris] [Streamload] 新增 Doris streamload Sink Connector #3631

  • [Connector-V2] [Redshift] 新增 Redshift Source & Sink Connector #3615

  • [Connector-V2] [Notion] 新增 Notion Source Connector #3470

  • [Connector-V2] [File] [Oss-Jindo] 新增 OSS Jindo Source & Sink Connector #3456

Zeta 引擎

  • 作业完成时支持打印作业指标 #3691

  • 添加 Metris 信息统计 #3621

  • 支持 IMap 文件存储 (包括 本地文件、HDFS、S3)#3418 #3675

  • 支持保存作业重启状态信息 #3637

E2E

  • [E2E] [Http] 添加 http 类型 Connector e2e 测试用例 #3340

  • [E2E] [File] [Local] 添加 本地文件 Connector e2e 测试用例 #3221

Bug Fixes


Connector-V2

  • [Connector-V2] [Jdbc] 修复 Jdbc Source 批处理模式下无法停止 #3220、

  • [Connector-V2] [Jdbc] 修复 Jdbc 连接重置错误 #3670

  • [Connector-V2] [Jdbc] 修复 Jdbc connector exactly-once 中出现的 NPE #3730

  • [Connector-V2] [Hive] 修复 Hive 数据写入过程中出现 NPE #3258

  • [Connector-V2] [File] 修复 File Connector 获取 FileSystem 时出现的 NPE #3506

  • [Connector-V2] [File] 修复 File Connector 用户未配置 fileNameExpression 时抛出的 NPE #3706

  • [Connector-V2] [Hudi] 修复 Hudi Connector 的 split owner 可能为负的 Bug #3184

  • [Connector-V2] [Jdbc] 修复 Jdbc Connector 执行完成后未关闭资源的错误 #3358

    Zeta 引擎

     

  • [ST-Engine] 修复使用 Zeta 引擎时数据文件名称重复的问题 #3717

  • [ST-Engine] 修复节点失败从 Imap 持久化无法正常读取数据的问题 #3722

  • [ST-Engine] 修复 Zeta 引擎 Checkpoint #3213

  • [ST-Engine] 修复 Zeta 引擎 Checkpoint 失败的 Bug #3769

优化


Core

  • [Core] [Starter] [Flink] 修改 Starter API 以兼容 Flink 版本 #2982

  • [Core] [Pom] [Package] 优化打包流程 #3751

  • [Core] [Starter] 优化 Logo 打印逻辑以适配高版本 JDK #3160

  • [Core] [Shell] 优化二进制插件下载脚本 #3462

Connector-V1

  • [Connector-V1] 移除 Connector V1模块 #3450

Connector-V2

  • [Connector-V2] 添加 Connector Split 基础模块以复用逻辑 #3335

  • [Connector-V2] [Redis] 支持集群模式 & 用户认证 #3188

  • [Connector-V2] [Clickhouse] 支持 nest 和 array 数据类型 #3047

  • [Connector-V2] [Clickhouse] 支持 geo 类型数据 #3141

  • [Connector-V2] [Clickhouse] 改进 double 数据类型转换 #3441

  • [Connector-V2] [Clickhouse] 改进 Float、Long 类型数据转换 #3471

  • [Connector-V2] [Kafka] 支持设置读取获取起始偏移量或消息时间 #3157

  • [Connector-V2] [Kafka] 支持指定多个分区键 #3230

  • [Connector-V2] [Kafka] 支持动态发现 分区和 Topic #3125

  • [Connector-V2] [Kafka] 支持 Text 格式 #3711

  • [Connector-V2] [IotDB] 添加参数校验 #3412

  • [Connector-V2] [Jdbc] 支持设置数据获取大小 #3478

  • [Connector-V2] [Jdbc] 支持 Upsert 配置 #3708

  • [Connector-V2] [Jdbc] 优化 Jdbc Connector 的提交流程 #3451

  • [Connector-V2] [Oracle] 改进 Oracle 连接器的数据类型映射 #3486

  • [Connector-V2] [Http] 支持在 Http 连接器中提取复杂 Json 字符串 #3510

  • [Connector-V2] [File] [S3] 支持 S3A 协议 #3632

  • [Connector-V2] [File] [HDFS] 支持使用 hdfs-site.xml #3778

  • [Connector-V2] [File] 支持文件拆分 #3625

  • [Connector-V2] [CDC] 支持在 Jdbc ElsticSearch 中写入 CDC 更改日志事件 #3673

  • [Connector-V2] [CDC] 支持在 Jdbc ClickHouse 中写入 CDC 更改日志事件 #3653

  • [Conncetor-V2] [CDC] 支持在 Jdbc Connector 中写入 CDC 更改日志事件 #3444

Zeta 引擎

  • Zeta 引擎优化以提高性能 #3216

  • 支持自定义 JVM 参数 #3307

CI

DS

  • [CI] 优化 CI 执行流程以加快执行速度 #3179 #3194

E2E

DS

  • [E2E] [Flink] 支持在任务管理器上执行命令行 #3224

  • [E2E] [Jdbc] 优化 JDBC e2e 以提高测试代码的稳定性 #3234

  • [E2E] [Spark] 更正了 e2e 容器中的 Spark 版本为 2.4.6 #3225

具体 Change log 见:https://github.com/apache/incubator-seatunnel/releases/tag/2.3.0

03 致谢


每一个版本发布的背后都是社区无数人的努力,在夜深人静的时候,在假期的时候,在工作之余的时候,在无数碎片化的时间里,为项目的发展作出自己的贡献,尤其感谢(@Jun Gao,@ChaoTian)等同学针对候选版本进行了多轮性能测试和稳定性测试。我们衷心感谢大家的付出,以下是本次版本的贡献者名单(GitHub ID),排名不分先后:

EricJoy2048
TaoZex
Hisoka-X
TyrantLucifer
ic4y
liugddx
CalvinKirs
ashulin
hailin0
Carl-Zhou-CN
FWLamb
wuchunfu
john8628
lightzhao

15531651225
zhaoliang01
harveyyue
MonsterChenzhuo
hx23840
Solomon-aka-beatsAll
matesoul
lianghuan-xatu
skyoct
25Mr-LiuXu
iture123
FlechazoW
mans2singh


特别感谢本次的 Release Manager @TyrantLucifer。虽然是第一次担任 Release Manager 这个角色,但他积极和社区就版本规划展开了充分沟通,不余遗力地跟踪发版前的问题,处理 blocking issue,管理版本质量等,完美胜任此次发版任务。感谢他为社区的付出,也欢迎其他 Committer 和 PPMC 能够主动认领 Release Manager 的任务,帮助社区更快捷、高质量地完成发版。


相關推薦

2023-03-30

SeaTunnel 2.3.1 版本于近日发布,这是一次备受瞩目的重磅发布,有多项重要功能更新和优化。 在编程使用体验层面上,新版本提升了 SeaTunnel Zeta 稳定性,并提升了 CI/CD 的稳定性;在连接器层面上,新版本实现了 7+ 个新连接器

2023-08-30

,聊聊 AI 大模型与底层技术 >>> 时隔两个月, Apache SeaTunnel 终于迎来大版本更新。此次发布的 2.3.3 版本在功能和性能上均有较大优化改进,其中大家期待已久的 CDC Schema evolution(DDL 变更同步)、主键 Split 拆分、JDBC Sink 自

2023-05-18

了基于 3.1.5 版本进行了 bug 修复、Doc 完善外, 还进行了 SeaTunnel Zeta 引擎的支持。   其中较为重要的为: 修复依赖任务不正确的超时警报 #13822 修复替换时间变量参数 #13975 修复流程实例 DAG 无法显示依赖任务的问

2022-11-22

群都可以实现租户级隔离,同时可以确保Alluxio集群中的海量元数据处于同步状态。当部署多集群架构时,此功能尤其有用,属于每个团队的租户级计算集群都可实现隔离。有了这项新功能,多租户架构允许平台横向扩展和支持

2023-09-09

扩大,其中不乏文件数超过 100 亿的集群,如何管理好这海量的文件是目前的挑战。 为此,JuiceFS v1.1 引入了以目录为单位的空间使用统计,并新增如下功能: 目录配额:为目录设置配额限制,控制其大小和文件数,以防止

2023-05-27

安全发展研究中心指导下,由openGauss开源社区主办,联合海量数据、云和恩墨、南大通用共同举办。 会上,openGauss持续聚焦内核与架构创新,推出DataPod+DataKit组合和第三代智能优化器ABO,打造全新的数据底座;海量数据、云和

2022-10-10

airbytehq/airbyte alibaba/DataX apache/camel apache/flume apache/incubator-seatunnel apache/inlong apache/sqoop dbt-labs/dbt-core debezium/debezium ververica/flink-cdc-connectors 流处理 apache/beam apache/flink apache/incubator-heron apache/incubator-streampark apache/kafka apache/pul

2023-07-13

数据库openGemini的目标是打造一个专用的运维引擎,兼顾海量数据存储和分析检索,本次发布了运维领域中比较关键的两大特性:日志检索和高基数存储引擎。 一方面,日志是一种特殊的时序数据,同时也是运维领域非常重要的

2023-06-30

旨在解决Redis 内存成本⾼以及容量有限的问题,亦可作为海量 KV 数据存储的解决方案。具备以下关键特性: 兼容 Redis 协议,支持大部分数据类型以及命令 ⽀持持久化 Lua 脚本、事务、PubSub 等⾼级特性 支持 Namespace 隔离

2023-07-05

的开发、运维和使用成本,最大化提升生产力。 面对海量数据的实时分析难题,这一愿景的实现无疑需要克服许多困难,尤其是在应对实际业务场景的真实诉求中更是遭遇了许多挑战: 如何保证上游数据实时高频写入的

2023-03-17

式时序数据库。主要面向物联网和运维监控等场景,提供海量时序数据库处理和分析的开源解决方案,以进一步降低企业运营和运维成本,提升产品质量和生产效率。 openGemini 发展历程 如图所示,openGemini 经历了最初由 In

2023-11-17

其全新命名为BifroMQ。自 BifroMQ 首个版本发布以来,获得海量社区的广泛关注,其中,BifroMQ的集群能力一直备受期待。   通过近三个月的不懈努力,如今正式推出 BifroMQ-v2.0.0版本,新版本首次支持集群模式,我们将其称为标

2023-07-05

DIYSearchEngine 是一个能够高速采集海量互联网数据的开源搜索引擎,采用 Go 语言开发。 Github 地址:https://github.com/johnlui/DIYSearchEngine 运行方法 首先,给自己准备一杯咖啡。 把本项目下载到本地 编译:go build -o ese *.go 修

2022-07-24

正加速渗透至我们的日常生活。大数据技术不是为了搜集海量的数据,而是为了利用专家技术,从海量的数据中抽取出相关的信息,以满足用户的需要。在“十四五”的发展规划中,工信部提出了大数据产业在2025年达到3万亿元