文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据集成平台 - SeaTunnel V2 架构演进

2024-12-13 15:46

关注

随着大数据技术的发展,各种各样的数据库、数仓平台、数据湖等技术不断产生,如何将这些数据在各个数据源和目标端之间进行同步、集成已经成为了企业面临的最大的问题。伴随着 Sqoop 从 Apache 退役,实时同步,CDC、整库同步等场景也渐渐被企业所重视和需要。在这个背景下,下一代数据集成平台 Apache SeaTunnel 专注于解决数据集成领域的核心需求,以支持的数据源多、同步速度快、简单易用被众多企业接受和使用。

一、SeaTunnel 的设计目标

首先和大家分享下 SeaTunnel 的设计目标。

1、整体目标

作为一个整体的数据平台,SeaTunnel 的总体设计目标是成为一个简单易用的、分布式、可扩展的、支持超大数据级的高吞吐低时延的数据集成平台。

当前,数据集成面临的问题主要有五个:

二、SeaTunnel 的现状

接下来和大家分享下 SeaTunnel 的现状。

1、支持连接器数量

目前 SeaTunnel 已经支持 50+ 的连接器数量,包括 Source 和 Sink 的连接器,例如 ClickHouse、ClickHouseFile、Doris 等;还有 10+ 的 Transform;当然,现在还有许多的连接器正在开发。

2、批流一体

针对同一个连接器,只需要写一套代码,就可以通过配置使用批处理或流处理的模式进行同步处理。流处理的方式中目前实现的纯流和微批两种模式,主要是考虑到要同时支持以 Flink 为代表的纯流和以 Spark 为代表的微批的方式。

3、多引擎支持

SeaTunnel 的多引擎支持主要是为了更好的兼容企业现有的技术栈,降低企业在引入 SeaTunnel 的技术成本。当前主要支持的引擎为:

4、性能和一致性

SeaTunnel 拥有高吞吐、精确性和低时延的特性。

5、社区活跃

SeaTunnel 去年年底进入 Apache 孵化,Star 数量骤升,微信用户群已达十多个,近五千人左右的规模。

6、用户繁多

SeaTunnel 已经被许多用户使用,包括互联网企业、传统企业等。

三、SeaTunnel 整体设计

第三部分给大家介绍下 SeaTunnel 的整体设计。

1、SeaTunnel 整体架构

从之前的介绍中大家应该能感受到,SeaTunnel 的核心就是连接器。SeaTunnel 设计了一套独立于引擎的 API,与引擎解耦,并保证基于 API 开发的连接器都能够运行在多个引擎之上。在实际运行中,通过 Translation 层将连接器包装成对应引擎的连接器执行。例如针对 Spark 执行引擎,在实际执行中,连接器会包装成 Spark 的 Source、Transform 和 Sink,同样的道理也适用于 Flink。当然针对前面提到的 SeaTunnel Engine,就不存在转换的这一步了。转换后,SeaTunnel 会将作业提交到对应的引擎中执行,将数据同步到对应的存储中。当然,作为一个完整的系统,以及为了用户的友好程度,SeaTunnel 还提供了 Web 页面,包括代码开发模式的提交,或者引导式任务提交,调度服务,监控和报警服务等。

整个架构涉及六大关键点:

2、SeaTunnel 使用方式

SeaTunnel 的使用方式非常简单,只需要填写配置文件,SeaTunnel 会自动解析并生成任务,进行提交开启同步。

3、SeaTunnel 执行流程

当然上述流程中还涉及到引擎内部的一些处理,包括分流,Spark 和 Flink支持 SQL 的语法等。

4、Connector 执行流程

目前可以分为 Driver 端和 Worker 端。在 Driver 端存在SourceCoordinator 管理 Worker端的 Source Split,之后存在枚举器将拆分后的数据任务交给 SourceReader 进行读取。在读取之后会将数据发送给 SinkWriter,此时会对分布式快照进行处理,最终把数据写入目标端。

5、Engine Independent Connector API

独立于引擎的 API 是在今年 3 月份正式进行设计的,核心设计目标是与引擎解耦,专门为数据集成的场景设计。核心目标有以下四点:

6、Connector Translation

正如之前介绍了,使用 Spark Connector API 可以将独立 API 翻译成Spark 的连接器进行执行,同理也适用于 Flink。

7、Source API

Source API 主要支持五个特性:

8、CoordinatedSource Connector

这个连接器支持协调器,主要用于 CDC 的场景。它的主要执行流程为:通过 SourceSplitEnumerator 将一些信息(包括 checkpoint、批流情况等)分发到 ReaderThread 里面的 SourceReader 中。

9、ParallelSource Connector

这个连接器不支持协调器,支持并行处理。具体实现中需要在连接器中定义分区的逻辑,自定义分区的算法。该连接器类型支持多并发。

10、Sink Api

Sink API 主要是配合 Source 支持 Exactly Once 的语义。Sink API 包含几个部分:

11、GlobalCommit Run In Driver

Sink API 内部 Commit 的类型之一,在 Driver 端运行,也就是上面提到的聚合提交。在这种模式下,Global Commiter 运行在 Driver 端,但是SinkWriter 运行在 Worker 端,主要适用于 Spark v2.3+ 以及 Flink v1.12+ 版本的情况。

12、GlobalCommit Run In Worker

Sink API 内部 Commit 的类型之一。这种模式下,Global Commiter 和SinkWriter 均运行在 Worker 端,主要适用于 Flink v1.11- 的版本,Spark 不适用。

13、Commit In Worker

Sink API 内部 Commit 的类型之一。这种模式下支持在 Worker 端,每个 Task 单独的 Commit 操作。这个模式适用于 Flink 所有版本,Spark 不适用。

14、SeaTunnel Table & Catalog API

这套 API 主要为面向应用的 API,能够简化同步配置,提供可视化作业配置的基础。主要包含下面四个方面:

四、SeaTunnel 近期规划

SeaTunnel 的核心目标为更多、更快、更好用,为了达到这个目标,SeaTunnel 近期规划目标为以下三点:

来源:DataFunTalk内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯