暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SeaTunnel 2.3.0-beta 重磅更新,自研同步引擎 SeaTunnel Engine 发布并支持更多连接器!

SeaTunnel 2022-11-02
2639

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

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




版本更新

Apache SeaTunnel(Incubating) 2.3.0-beta 版本正式发布。新版本中,社区期待已久的 SeaTunnel 自研数据同步引擎 SeaTunnel Engine 首次正式亮相。另外,新版本还增加了更多的连接器支持,并对已支持连接器进行了优化和 bug 修复。
本文将为大家介绍 Apache SeaTunnel(Incubating) 2.3.0-beta 版本更新的具体内容。
  • Release Note:
    https://github.com/apache/incubator-seatunnel/blob/2.3.0-beta/release-note.md
  • 下载地址:
    https://seatunnel.apache.org/download/
  • Quick Start文档:
    https://seatunnel.apache.org/docs/category/start

1

SeaTunnel Engine 发布


SeaTunnel Engine 是社区自研的为数据同步场景设计和开发的数据同步引擎。作为 SeaTunnel 默认使用的引擎,提供高吞吐低延时强一致性的同步作业运行,其特点是更快、更稳定、更节省资源、简单易用。
SeaTunnel Engine 设计的总体思路如下:
  1. 更快,SeaTunnel Engine 的执行计划优化器以减小数据网络传输为目标,从而降低数据序列化和反序列化所带来的整体同步性能的损耗,让用户可以更快地完成数据同步操作。同时支持速度限制,以合理的速度进行同步作业。

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

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

  4. 简单易用,SeaTunnel Engine 减小了对第三方服务的依赖,可以独立于 Zookeeper,HDFS 等大数据组件实现集群管理、快照存储和集群 HA 功能。这对于目前缺少大数据平台,或者不愿依赖大数据平台进行数据同步的用户来说非常有用。

未来,SeaTunnel Engine 将进一步优化功能,实现支持离线批量同步下的全量同步和增量同步,支持实时同步,以及支持 CDC 的目标。

2

新版本功能特性

【SeaTunnel Engine 基本功能】

2.3.0-beta 是 SeaTunnel Engine 正式发布的第一个版本,实现了一些基本的功能,详见:https://github.com/apache/incubator-seatunnel/issues/2272

【集群管理】

  • 支持单机运行;
  • 支持集群运行;
  • 自治集群(无中心化),不需要为 SeaTunnel Engine 集群指定 Master 节点,其在运行中可以自行选举 Master 节点,Master 节点失败后会自动选出新的 Master 节点。
  • 集群节点自动发现,相同的 cluster_name 的节点会自动组成集群。

【核心功能】

  • 支持以 Local 模式运行作业,作业运行完成后集群自动销毁;
  • 支持以 Cluster 模式(单机或集群)运行作业,通过 SeaTunnel Client 提交作业到 SeaTunnel Engine 服务中,作业运行完成后服务继续运行等待下次作业提交;
  • 支持离线批量同步;
  • 支持实时同步;
  • 批流一体,所有 SeaTunnel V2 版本连接器都可以运行在 SeaTunnel Engine 中;
  • 支持分布式快照算法,配合 SeaTunnel V2 连接器支持二阶段提交,保证数据只执行一次。
  • 支持以 Pipeline 级别的作业调用,保证在资源有限的情况下也能启动;
  • 支持以 Pipeline 级别作业容错,task 失败只影响到其所在的 Pipeline,只需要对该 Pipeline 下的 Task 进行回滚处理;
  • 支持动态线程共享,实现大量小数据集的实时同步。

3

连接器更新

连接器新增

在社区的努力下,2.3.0-beta 版本又增加了 10 个连接器,主要包括:
连接器类型
连接器
对应 issue
Source
Kafka
2953
Source
Pulsar
1980
Source
S3File
3119
Source
JDBC(Phoenix)
2499
Source
JDBC(SQL Server)
2646
Source
JDBC(Oracle)
2550
Source
JDBC(GBase8a)
3026
Source
JDBC(StarRocks)
3060
Sink
Kafka
2953
Sink
S3File
3119

连接器优化

  • [Source] [Fake]
    • [优化]支持直接定义数据值(列)(2839)
    • [优化]支持 Fake Source Connector
      • 支持用户自定义 map 大小
      • 支持用户自定义数组大小
      • 支持用户自定义字符串长度
      • 支持用户自定义字节长度
    • [优化] Fake Source 连接器支持多个 Split (2974)
    • [优化] 支持设置每个并行度中 Split 的个数和两个 Split 之间处理的间隔时间(3098
  • [Source] [ClickHouse]
    • [优化] Clickhouse Source 配置多主机时随机使用主机(3108)
  • [Source] [FtpFile]
    • [优化] 支持从 SeaTunnelRow 字段提取分区 (3085)
    • [优化] 支持从文件路径中提取分区字段 (2985)
  • [Source] [HDFS文件]
    • [优化] 支持从 SeaTunnelRow 字段提取分区 (3085)
    • [优化] 支持从文件路径解析字段 (2985)
  • [Source] [LocalFile]
    • [优化] 支持从 SeaTunnelRow 字段提取分区 (3085)
    • [优化] 支持从文件路径解析字段 (2985)
  • [Source] [OSSFile]
    • [优化] 支持从 SeaTunnelRow 字段提取分区 (3085)
    • [优化] 支持从文件路径解析字段 (2985)
  • [Source] [IoTDB]
    • 支持从 SeaTunnelRow 提取时间戳、设备、测量值
    • 支持 TINYINT、SMALLINT
    • 支持在 prepareCommit 之前刷新缓存到数据库
    • [优化] 优化 IoTDB 源连接器 (2917)
  • [Sink] [Assert]
    • 检查行不为空
    • 检查最小行数
    • 检查最大行数
    • [优化] 1. 支持查看行数(2844)
    • [优化] 2.支持直接定义数据值(行) (2844
    • [优化] 3.支持设置并行度为 1 (2844) (3031)
  • [Sink] [ClickHouse]
    • [优化] ClickHouse 支持 Int128,Int256 类型 (3067)
-[Sink] [Console]
  • [优化] Console sink 支持打印子任务索引 (3000)
  • [Sink] [IoTDB]
    • 支持按 SQL 语法对齐
    • 支持 SQL 拆分忽略大小写
    • 支持将拆分偏移恢复为至少一次
    • 支持从 RowRecord 读取时间戳
    • [优化] 优化 IoTDB Sink 连接器 (2917)
  • [Sink] [Kudu]
    • [优化] Kudu Sink 连接器支持 upsert 行 (2881)

连接器 Bug 修复

  • [Source] [FtpFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
  • [Source] [HDFSFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
  • [Source] [LocalFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
  • [Source] [OSSFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
  • [Sink] [企业微信]
    • [BugFix] 修复企业微信 Sink 数据序列化(2856)
  • [Sink] [FtpFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
    • [BugFix] 修复文件系统获取错误 (3117)
    • [BugFix] 解决无法从配置文件中解析 '\t' 作为分隔符的问题 (3083)
  • [Sink] [HDFSFile]
    • [BugFix] 修复 Windows 环境下路径错误的bug (2980)
    • [BugFix] 修复文件系统得到错误(3117)
  • [BugFix] 解决无法从配置文件中解析 '\t' 作为分隔符的问题 (3083)
  • [Sink] [LocalFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
    • [BugFix] 修复文件系统获取错误 (3117)
    • [BugFix] 解决无法从配置文件中解析 '\t' 作为分隔符的问题 (3083)
  • [Sink] [OSSFile]
    • [BugFix] 修复 Windows 环境下路径错误的 bug (2980)
    • [BugFix] 修复文件系统获取错误 (3117)
    • [BugFix] 解决无法从配置文件中解析 '\t' 作为分隔符的问题 (3083)
  • [Sink] [IoTDB]
    • [BugFix] 修复 IoTDB 连接器 Sink NPE (3080)
  • [Sink] [JDBC]
    • [BugFix] 修复 JDBC 拆分异常 (2904)

V1 连接器更新

  • [Sink] [Spark-Hbase]
    • [BugFix] 处理空值 (3099)

功能优化和更新

  • [优化] [Sink] 支持定义 Sink 连接器的并行性 (2941)
  • [优化] [全部] 将日志更改为 @slf4j (3001)
  • [优化] [格式] [文本] 支持读写 SeaTunnelRow 类型 (2969)
  • [优化] [api] [flink] 提取统一方法(2862)
  • [功能] [部署] 添加 Helm 图表 (2903)
  • [功能] [seatunnel-text-format] (2884)

错误修复

  • [BugFix] 修复 config/plugin_config 文件中的 Assert 连接器名称错误 (3127)
  • [BugFix] [starter] 修复 connector-v2 Flink & Spark Dockerfile (3007)
  • [BugFix] [core] 修复 Spark 引擎并行参数不起作用(2965
  • [BugFix] [build] 修复 win10 中 checkstyle 的抑制文件失效问题(2986)
  • [BugFix] [format] [json] 修复Jason 包与 Spark 冲突 (2934)
  • [BugFix] [build] 修复 win10 中 checkstyle 的抑制文件失效问题(2986)
  • [BugFix] [build] 修复 win10 中 checkstyle 的抑制文件失效问题(2986)
  • [BugFix] [seatunnel-translation-base] 修复源恢复状态 NPE (2878)

4

文档更新

  • 文档:https://github.com/apache/incubator-seatunnel/pull/2995

5

致谢

感谢对本次版本发布提供支持和帮助的社区朋友们,是你们的不懈努力让 SeaTunnel 更加强大!以下为参与本次版本发布的人员名单:

Apache SeaTunnel


Apache SeaTunnel(Incubating) 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台

仓库地址: 
https://github.com/apache/incubator-seatunnel

网址:
https://seatunnel.apache.org/

Proposal:
https://cwiki.apache.org/confluence/display/INCUBATOR/SeaTunnelProposal

Apache SeaTunnel(Incubating) 2.1.3 下载地址:
https://seatunnel.apache.org/download
 
衷心欢迎更多人加入!

能够进入 Apache 孵化器,SeaTunnel(原 Waterdrop) 新的路程才刚刚开始,但社区的发展壮大需要更多人的加入。我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!

我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

提交问题和建议:
https://github.com/apache/incubator-seatunnel/issues

贡献代码:
https://github.com/apache/incubator-seatunnel/pulls

订阅社区开发邮件列表 : 
dev-subscribe@seatunnel.apache.org

开发邮件列表:
dev@seatunnel.apache.org

加入 Slack:
https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1cmonqu2q-ljomD6bY1PQ~oOzfbxxXWQ

关注 Twitter: 
https://twitter.com/ASFSeaTunnel

往期推荐




SeaTunnel Connector 接入激励计划第二期正式启动!快来领任务




助力 Shopee 重构系统发布 ETL 功能,SeaTunnel 在电商巨头的实践经验




SeaTunnel 让数据集成变得 So easy!



点击“阅读原文”参与开源

文章转载自SeaTunnel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论