锦通 发表于 2024-8-21 17:07:42

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

http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_C6206EE05E4F438B9DFBFC11BC56289D
作者 | 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接口。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_109C108F4CEB4295AD52B30F3A2468CF

[*]Flink API V2:SeaTunnel的新一代API,所有的插件还是继承了plug-in的形式,但实现了与计算引擎的解耦;支持更多Flink版本;不依赖于Flink原生连接器,Sink增加了Writer、Committer和Aggregated Committer,Source增加了Reader、Split和Split Enumerator;降低了Flink升级的成本;并提供了更细粒度的接口,增强了体系的可扩展性,满意更多元化的数据源的同步需求。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_156AAC8AE61741B6A9972484364CC245
基于Flink的架构计划

从Job运行的角度,Apache SeaTunnel的架构计划紧密依托于Flink的数据处理能力。
在Common API层,SeaTunnel做了插件的抽象化,基于插件的抽象化,SeaTunnel可以对接不同的计算引擎。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_913C5C5A50894C379CC699F81F27696A
对接层在SeaTunnel中统称翻译层(Translation Layer)。针对Flink,SeaTunnel实现了Flink代理的Source、Sink和Transform,生成Flink引擎的Job graph后,以实现数据在Flink上高效转换和同步。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_8D4DE02872464C2FBD236DA628245693
基于Flink好用的焦点特性

市面上的数据同步工具很多,比如Apache Flink CDC、Chunjun等。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_41F6059BD8164A07B1125755719B8B9A
相比之下,Apache SeaTunnel显现了以下特点:

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

[*]支持Flink原生的poll-push架构,可以实现及时获取分片数据,有效解决多并行度下的问题,最大化利用资源
[*]支持 Flink原生的两阶段提交功能
[*]支持Flink原生的用户自定义指标能力
[*]支持使用Flink原生的global-accumulator记录数据同步作业详情
[*]支持所有Flink作业提交模式(应用模式/会话模式)
[*]支持枚举器和读取器之间用户定义的事件通讯
[*]支持Flink 1.13–1.18之间的所有版本
社区进展与未来规划

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

[*]多表读写支持:正在开发在Flink引擎上支持多表同时读写的功能,以支持一库多表读写,多表路由等场景,提高数据处理的效率和灵活性。目前,这一功能已在SeaTunnel Zeta引擎上实现。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_5E410157C77B49268B368E062B30B87C

[*]Flink Proxy Source & Sink重构:当前,Flink Proxy数据的同步需要在Flink proxy Row和SeaTunnel Row数据格式之间举行多次转换,如许的转换不光会有数据精度丧失的风险,还极大地降低了数据转化的性能。为此,社区正在举行源和接收器的重构工作,以优化性能和稳固性。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_96C824E4E1C141A386D5F4CB61D8D89F
未来,社区还计划实现以下特性:

[*]模式演化(Schema Evolution):目前,SeaTunnel仅在Spark和Zeta引擎上支持模式演化功能,未来,社区计划在Flink上支持数据模式的动态变化,以适应不停变化的数据需求。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_0B6CFB26CCDF446AB1F871ECE0FADA57

[*]SQL转换支持:计划在Flink上支持SQL转换,包括选择投影、用户定义函数(UDF)、用户定义表函数(UDTF)和过滤条件等,以提供更丰富的数据处理能力。
http://openwrite-whaleops.oss-cn-zhangjiakou.aliyuncs.com/31504_CE8B25C44F5E4BF5BFD2ACE1405D2FFB
结语

Apache SeaTunnel作为数据同步领域的一个创新工具,其基于Flink的高效数据处理能力,为数据集成带来了新的解决方案。社区的不停努力和创新,将使Apache SeaTunnel在未来的数据同步使命中发挥更大的作用。如需进一步了解或参与Apache SeaTunnel项目,欢迎加入社群参与讨论。
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Apache SeaTunnel数据处理引擎适配的演进和规划