Apache SeaTunnel数据处理引擎适配的演进和规划

news/2024/11/16 4:13:02/文章来源:https://www.cnblogs.com/seatunnel/p/18371816

file

作者 | Chao Tian (tyrantlucifer),Apache SeaTunnel PMC Member

摘要

Apache SeaTunnel作为一个高性能数据同步工具,以其高效的数据处理能力,为数据集成领域带来了创新。在引擎上,Apache SeaTunnel除了支持自身的Zeta引擎外,还支持Spark和Flink。在2024年的CommunityOverCode Asia,Apache SeaTunnel PMC Member 田超在论坛上为大家介绍了Apache SeaTunnel基于Flink的演进历程、架构设计、核心特性,以及社区的当前进展和未来规划。以下为演讲核心内容整理:

Apache SeaTunnel基于Flink的演进历程

Apache SeaTunnel的演进主要体现在两个API版本上:

  • Flink API V1:SeaTunnel的初始API版本,与Flink的计算引擎紧密耦合,connector紧密依赖Flink接口。

file

  • Flink API V2:SeaTunnel的新一代API,所有的插件还是继承了plug-in的形式,但实现了与计算引擎的解耦;支持更多Flink版本;不依赖于Flink原生连接器,Sink增加了Writer、Committer和Aggregated Committer,Source增加了Reader、Split和Split Enumerator;降低了Flink升级的成本;并提供了更细粒度的接口,增强了系统的可扩展性,满足更多元化的数据源的同步需求。

file

基于Flink的架构设计

从Job运行的角度,Apache SeaTunnel的架构设计紧密依托于Flink的数据处理能力。

在Common API层,SeaTunnel做了插件的抽象化,基于插件的抽象化,SeaTunnel可以对接不同的计算引擎。

file

对接层在SeaTunnel中统称翻译层(Translation Layer)。针对Flink,SeaTunnel实现了Flink代理的Source、Sink和Transform,生成Flink引擎的Job graph后,以实现数据在Flink上高效转换和同步。

file

基于Flink好用的核心特性

市面上的数据同步工具很多,比如Apache Flink CDC、Chunjun等。

file

相比之下,Apache SeaTunnel展现了以下特点:

  • 支持的Flink版本:SeaTunnel支持1.13及以上版本,提供更广泛的兼容性。
  • Flink连接器:SeaTunnel不依赖于Flink原生连接器,提供了更高的灵活性。
  • 用户自定义指标:SeaTunnel允许用户定义自己的指标,增强了监控和分析能力。
  • 数据转换支持:SeaTunnel支持数据的转换操作,包括但不限于映射、过滤等。
  • Flink-SQL:尽管目前SeaTunnel不支持Flink-SQL,但这是社区未来工作的重点之一。

Apache SeaTunnel基于Flink的特性和好用的功能,我们也来总结一下:

  1. 支持Flink原生的poll-push架构,可以实现实时获取分片数据,有效解决多并行度下的问题,最大化利用资源
  2. 支持 Flink原生的两阶段提交功能
  3. 支持Flink原生的用户自定义指标能力
  4. 支持使用Flink原生的global-accumulator记录数据同步作业详情
  5. 支持所有Flink作业提交模式(应用模式/会话模式)
  6. 支持枚举器和读取器之间用户定义的事件通信
  7. 支持Flink 1.13–1.18之间的所有版本

社区进展与未来规划

目前,Apache SeaTunnel社区正在积极推进以下工作:

  • 多表读写支持:正在开发在Flink引擎上支持多表同时读写的功能,以支持一库多表读写,多表路由等场景,提高数据处理的效率和灵活性。目前,这一功能已在SeaTunnel Zeta引擎上实现。

file

  • Flink Proxy Source & Sink重构:当前,Flink Proxy数据的同步需要在Flink proxy Row和SeaTunnel Row数据格式之间进行多次转换,这样的转换不但会有数据精度损失的风险,还极大地降低了数据转化的性能。为此,社区正在进行源和接收器的重构工作,以优化性能和稳定性。

file

未来,社区还计划实现以下特性:

  • 模式演化(Schema Evolution):目前,SeaTunnel仅在Spark和Zeta引擎上支持模式演化功能,未来,社区计划在Flink上支持数据模式的动态变化,以适应不断变化的数据需求。

file

  • SQL转换支持:计划在Flink上支持SQL转换,包括选择投影、用户定义函数(UDF)、用户定义表函数(UDTF)和过滤条件等,以提供更丰富的数据处理能力。

file

结语

Apache SeaTunnel作为数据同步领域的一个创新工具,其基于Flink的高效数据处理能力,为数据集成带来了新的解决方案。社区的不断努力和创新,将使Apache SeaTunnel在未来的数据同步任务中发挥更大的作用。如需进一步了解或参与Apache SeaTunnel项目,欢迎加入社群参与讨论。

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读《工程师文化》

1、来源工程师文化2、解读 Mens et manus,拉丁语,意思是 “心智与双手” 或 “智慧与实践”。这句话常常被用来表达理论与实践相结合的理念,强调通过思考(心智)和实际操作(双手)共同推动知识和技术的发展。这也是MIT的校训。一个合格的工程师,必须能够自己动手解决问题…

二极管常见电路符号说明

二极管常见电路符号说明 摘要 本文详细介绍了四种特殊的二极管:TVS二极管用于瞬态电压抑制,响应速度快;肖特基二极管适用于高速电路,导通电压低;隧道二极管利用量子穿隧效应,适用于高频切换;变容二极管则作为可变电容使用,电容量可随电压改变。 二极管简介 普通的二极管…

CSP26

T1题目官方题解考虑暴力,发现奇数边包赢,偶数边如果异或和为\(0\)则输,当然也有特例,比如\(2->4->8->14->\),这\(4\)条边异或为\(0\)但其实必赢, 所以,为了避免这种情况发生,我们使用\(hash\) XORHashing 这样与处理出\(dis\),两点\(u,v\)即为\(dis_u xor dis_…

通过分布式资源分配实现多机器人取货与送货

原文链接:Multi-Robot Pickup and Delivery via Distributed Resource Allocation (youtube.com) Supplemental video for the paper "Multi-Robot Pickup and Delivery via Distributed Resource Allocation". 论文《通过分布式资源分配实现多机器人取货与送货》的…

Java预览PDF时的文件名称问题

直接看问题直接看问题解决思路 看了一下一个有问题的PDF文件之后发现文件的名称和文件的属性名其实不一致,浏览器默认展示的是文件的属性名,而不是我们看到的文件名称这也就让我定位到了问题的所在,出现这个bug的原因就是PDF文件的属性名称与文件名称不一致,定位到问题之后…

从零到一,全面掌握Apache DolphinScheduler发版流程,实战派经验分享!

引言 Apache DolphinScheduler的发版流程对于确保软件质量和社区协作至关重要,社区Committer王兴杰为我们详细介绍了Apache DolphinScheduler的发版流程,包括环境准备、流程文档、基础工具准备、依赖包确认等关键步骤,并指出了发版流程中可能会遇到的麻烦以及相应的解决方案…

对抗训练综述学习笔记

本文基于这篇综述进行讨论学习:《Bai T, Luo J, Zhao J, et al. Recent advances in adversarial training for adversarial robustness[J]. arXiv preprint arXiv:2102.01356, 2021.》对抗训练主要目的是让模型能够对于对抗样本做出正确的判断。常见的对抗样本的生成方式(或…

Chrome谷歌浏览器报错:ERR_TOO_MANY_REDIRECTS

开发系统的时候,经常需要调用地址进行测试,容易遇到浏览器报错:该网页无法正常运作**** 将您重定向的次数过多。尝试删除您的 Cookie.ERR_TOO_MANY_REDIRECTS(如图) 解决方法: 1.删除浏览器缓存记录 2.开启无痕模式,重新浏览

KingbaseES V8R6备份恢复案例之---sys_backup.sh init无法创建stanza

KingbaseES、备份恢复案例说明: KingbaseES V8R6数据库执行物理备份初始化操作,出现以下故障“ERROR: create stanza failed, check log file...",初始化失败。 适用版本:KingbaseES V8R6 一、问题现象 如下所示,执行sys_backup.sh init,出现”ERROR: create stanza…

【Linux】grub命令行引导进入windows系统

@目录1.grub命令行界面2.设置启动目录3.chainloader加载windows启动文件4.启动5.grub命令行无响应办法在卸载Linux系统后,有的小白可能会忘记删除Linux的EFI引导。这样的话,下次开机时就会自动进入grub的命令行,连windows系统都进不去了!本文提供了使用grub命令行进入win系…

cmake openssl 生成失败

生成azerothcode的时候报错,改成1.x版本就好了,我用的1.1.1。 CMake Error at E:/Soft/CMake326/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system varia…