Apache SeaTunnel技术架构演进及其在AI领域的应用

news2024/9/24 13:14:01

file

随着数据集成需求的增长,Apache SeaTunnel作为新一代的数据同步引擎,不仅在技术架构上不断演进,也在AI领域展现出其独特的应用价值。在CommunityOverCode Asia 2024大会上,Apache SeaTunnel PMC Chair 高俊 深入探讨SeaTunnel的技术演进路径,分析其在AI领域的应用案例,并展望未来的发展规划。

https://www.bilibili.com/video/BV1NCs5eMEA8/?vd_source=e139ecc995ab936267a7991b9de55f6c

从0构建一个数据集成系统

构建数据集成系统的初衷,是因为我们面临着多种数据源到目标数据库的同步问题,如MySQL到MySQL、PostgreSQL到Oracle等。由于数据源众多,促使我们设计了灵活的源连接器和目标连接器。

Source连接器&Sink连接器

SeaTunnel的设计,是在数据源和目标端之间进行抽象,通过SPI的方式进行插件化加载,将数据从源端写到目标端。

file

表结构同步

如果目标端没有源端的表结构,则需要构建一个CatalogTable接口,来读取源端表结构的构造,得到一个类似于MySQL的表格,再转化为目标端对应的表结构。这样,在不同的数据流转之前,先把表结构进行流转,通过简单的代码就可以实现高效的数据队列和表结构同步机制。

file

并行化挑战

file

在设计SeaTunnel时,我们特别关注了并行化处理的多个方面,包括任务的创建、运行位置、启动与关闭、数据分片以及任务与作业间的状态流管理。SeaTunnel把单线程变为多线程处理任务,枚举器通过不同算法把成千上完的数据拆分成实例,送到Source Reader中,每个Reader负责执行一个SQL查询,从而进行数据的并行读取。

SeaTunnel引擎

这么多的任务示例,它们何时开始、何时结束、运行时长,运行的顺序是什么?这就需要一个引擎来规划实例的执行计划。这就是SeaTunnel引擎发挥作用的地方,它的核心是提供一个统一的数据同步与集成解决方案,支持多种数据源和目标,并能够处理大规模数据流。

file

Apache SeaTunnel诞生

可以看到,之所以出现越来越多的复杂的数据集成引擎,是出于各种需求而不断演进。在这样的背景下,Apache SeaTunnel应运而生。

设计目标

SeaTunnel的设计目标:

  • 简单易用:通过简单的配置和命令即可创建同步任务和运行同步任务;
  • 同步过程可监控、指标可量化:同步过程中自动统计任务读取写入的数据量,性能指标,数据延时等信息
  • 丰富的数据源生态:支持国内外数据库、消息队列、云存储、云组件、数据湖、仓、SaaS服务、支持用户自定义数据源
  • 全场景支持:支持所有数据集成场景,包括离线、实时、全量、增量、CDC、CDC整库同步、DDL变更、动态加表
  • 数据一致性保障:数据不丢失、不重复、精确处理一次、支持断点续传
  • 资源使用少:包括内存优化、CPU线程优化、多表同步数据库连接共享

file

架构概览

SeaTunnel的架构由目标数据库、源数据库,以及数据同步与集成组件构成。中间部分的抽象API包括Table API、Source API、Sink API、Engine API、Catalog API、Type Converter API等一系列API组成,基于这一系列API实现的连接器可以运行在多种引擎上,包括原生支持的SeaTunnel Zeta引擎,这是目前我们经过测试数最快的数据同步引擎。同时,SeaTunnel支持通过翻译层将API开发的连接器翻译成Spark和FlinkConnector,从而支持运行在Spark和Flink引擎上。

file

目前,SeaTunnel社区支持的数据源连接器达到160+,后续也还在进行快速迭代更新。

连接器API与引擎解耦

SeaTunnel是针对数据集成场景而设计的数据同步工具,它提供了一套完整的连接器API,包括源、转换、目标、检查点和翻译API,支持多引擎、多版本。解决了与计算引擎解耦的问题,同时提供了流批统一处理API和JDBC多路复用功能。

file

Source连接器

file

SeaTunnel的源连接器支持离线和实时操作模式,通过环境配置中的作业模式轻松切换。Source可以实现并行读取、动态分片发现、字段投影、多表读取、精确一次语义支持,以及适配Zeta、Spark和Flink的Checkpoint机制。

Sink连接器

通过在环境配置中将 job.mode 指定为 BATCH 或 DataMING,SeaTunnel的同一Sink连接器可以轻松地在离线和实时同步模式之间切换。

file

SeaTunnel的Sink连接器支持以下功能:

  • 支持SaveMode,灵活选择目标性能和数据处理方式
  • 自动创建表,支持模板修改表创建,在多表同步场景下解放双手
  • 精确一次语义支持,数据不会丢失或复制,Checkpoint机制适配 Zeta、Spark、Flink引擎
  • CDC支持,支持处理数据库日志事件

CDC连接器

SeaTunnel的CDC(Change Data Capture)主要用来做CDC的同步,连接器支持无锁快照读取,动态发现表,多表同步和多表写入,Schema evolution,checkpoint,以及CDC批量数据同步,适应了离线数据同步的需求。

file

多表同步

SeaTunnel支持多表数据读取和写入,通过简单配置,即可实现多表数据的快速读取和写入。

file

新一代数据同步引擎-SeaTunnel Zeta

SeaTunnel Zeta作为新一代的数据同步引擎,具有其他计算引擎所不具备的一些特性:

  • 不依赖第三方组件和大数据平台;
  • 无主,内置分布式网格可持久化存储内存;
  • 支持WAL,即使整个集群重启也能恢复之前的作业;
  • 支持分布式快照算法,保障数据一致性;
  • 支持更细粒度的数据同步监控指标;
  • 支持事件通知机制;
  • 类加载器隔离和缓存,提高了系统的稳定性和性能。

SeaTunnel在AI领域的应用

社区近期在AI领域应用方面进行了一些工作,除了常规数据类型之外,还添加了对多种向量数据类型的支持,比如BINARY_VECTOR、FLOAT_VECTOR、FLOAT16_VECTOR、BFLOAT16_VECTOR、SPARSE_FLOAT_VECTOR等,为AI领域的数据处理提供了强大支持。

后续,社区还计划推出专门的Transform,针对向量数据类型进行精确处理。

目前,SeaTunnel 2.3.6版本已经提供了Milvus的源和目标连接器,使得AI应用能够更高效地处理向量数据。

file

最新规划

为了使SeaTunnel能够满足更多用户需求,社区近期也在计划一些新功能的添加和优化工作。

引入SeaTunnel Zeta Master/Worker新架构

SeaTunnel Zeta引入了Master/Worker新架构,这种架构允许在同一个环境中同时运行多个版本的 Hadoop 或 Hive 同步任务。

Note:由于稿件整理的时间差,实际上这一点在最新版本2.3.6中已经实现。

file

使用SQL创建SeaTunnel作业

SeaTunnel Zeta支持使用SQL语句直接创建数据同步任务,简化了作业配置过程。

file

Note:由于稿件整理的时间差,实际上这一点在最新版本2.3.6中已经实现。

Zeta CDC的改进

Zeta CDC改进了空闲读取器的同步释放机制,优化了快照读取和实时增量读取阶段的性能。

file

ClassLoader隔离改进

通过重构ClassLoader和插件加载机制,SeaTunnel Zeta能够在同一个环境中同时运行多个版本的Hadoop或Hive同步任务,提高了系统的兼容性和灵活性。

Note:由于稿件整理的时间差,实际上这一点在最新版本2.3.6中已经实现。

CDC同步监控优化

SeaTunnel的CDC同步将支持DML事件类型粒度的监控指标,提高监控的可观测性。

支持事件通知机制

SeaTunnel Zeta 支持事件通知机制,可以在数据同步过程中触发特定的事件通知,增强了系统的交互性和自动化能力。

结语

SeaTunnel作为Apache软件基金会的顶级项目,其技术架构的演进和在AI领域的应用展示了开源数据集成工具的强大潜力。我们期待与社区共同推动SeaTunnel的进一步发展。如有任何问题或建议,欢迎进入交流群参与讨论。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++核心编程02——引用

摘录于B站黑马程序员提供的笔记。 1. 引用的基本使用 作用&#xff1a; 给变量起别名 语法&#xff1a; 数据类型 &别名 原名 实例&#xff1a; #include <iostream> using namespace std;int main() {// 引用基本语法// 数据类型 &别名 原名int a 10;in…

开放式耳机怎么戴?五大市场热卖爆款推荐!

开放式耳机的佩戴方法通常比较直观&#xff0c;但具体步骤可能因不同品牌和型号的设计而异。以下是一般的佩戴步骤&#xff1a; 1. 调整耳机&#xff1a;大多数开放式耳机都有可调节的耳挂&#xff0c;首先调整耳挂&#xff0c;确保它能够舒适地适应你的耳朵形状。 2. 定位耳…

FGF20:多些研究关注

成纤维细胞生长因子20&#xff08;FGF20&#xff09;是FGF9亚家族成员&#xff0c;作为调节中枢神经发育和功能的神经营养因子。 &#xff08;数据来源AlphaFold&#xff09; FGF20由208个氨基酸组成&#xff0c;属于分泌型胞外蛋白&#xff0c;无信号肽区段&#xff0c;功能域…

独辟蹊径:找工作时的创新思维——之找到一份工作

一、背景 在日常生活中我们会遇到一些开发者抱怨“资深开发者牢牢占据着岗位&#xff0c;让年轻开发者鲜有工作机会”。与此同时&#xff0c;也有一些开发者抱怨说&#xff1a;没有人愿意招聘上了点年纪的开发者&#xff0c;每个人都在歧视大龄开发者。还有一些人抱怨他们的技…

【网络安全】服务基础阶段——第一节:Windows系统管理基础----进制转换与IP地址

一、进制转换与IP地址 进制与计算&#xff1a; 进制转换是指将一个数字从一个数制&#xff08;基数&#xff09;转换为另一个数制的过程 二进制&#xff08;Binary&#xff09;&#xff1a;基于0和1的数制&#xff0c;例如1011&#xff08;十进制11&#xff09;。八进制&…

网站分类目录提交技巧有哪些

在提交网站到分类目录时&#xff0c;掌握一定的技巧可以显著提升通过率和效果。以下是一些关键的提交技巧&#xff1a; 选择高质量的分类目录&#xff1a; 确保选择的分类目录有足够的流量和权重&#xff0c;这样提交的内容才能得到有效的展示。 考察分类目录的正规性和可信度&…

纷享AI | AI PaaS平台,企业智能转型的加速器

随着人工智能技术的飞速发展&#xff0c;企业对于智能化转型的需求愈发迫切。那么&#xff0c;企业如何把握先机&#xff0c;在激烈的市场竞争中保持领先&#xff1f;答案可能就藏在AI PaaS平台的无限潜力中。纷享销客AI PaaS平台通过Agent Builder和Model Builder为上层的场景…

山体滑坡预警摄像机

山体滑坡是一种常见的地质灾害&#xff0c;给人们的生命和财产安全带来了巨大威胁。为了及时监测山体滑坡的情况并提前预警&#xff0c;可以使用山体滑坡预警摄像机 。山体滑坡预警摄像机是一种结合了摄像技术和智能算法的设备&#xff0c;能够实时监测山体滑坡的变化情况&…

昂科烧录器支持Melexis迈来芯的位置传感器MLX90365KDC

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Melexis迈来芯的位置传感器MLX90365KDC已经被昂科的通用烧录平台AP8000所支持。 MLX90365KDC是第II代Triaxis位置传感器IC。 这款单片器件可凭借其表面的集磁点(IMC)&#xf…

民大校园学习资料转让网站设计与实现---附源码97053

摘要 在当今数字化时代&#xff0c;学习资料转让网站作为在线学习和教育资源的重要平台&#xff0c;发挥着越来越重要的作用。为了满足用户对学习资料的需求&#xff0c;本论文旨在构建一个可靠高效的学习资料转让网站系统。 NodeJS是一个基于JavaScript的服务器端运行环境&…

【R语言实战】——多模型预测及评价

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

langchain入门系列之六 使用langchain构建PDF解析助手

本文将介绍如何使用langchain构建一个pdf解析助手&#xff0c;在此文中你将学习到langchain如何与web应用(fastapi)相结合&#xff0c;向量持久化等知识&#xff0c;话不多说&#xff0c;现在开始。 安装环境 pip install fastapi pip install python-dotenv pip install uv…

文件和注册表关联

注册表是Windows操作系统的信息存储中心&#xff0c;存放着包括计算机硬件配置、已安装软件的设置信息、当前用户的环境设置及某些文件类型与对其进行访问和操作的应用程序之间的联系等重要信息。Windows操作系统早期版本中存放在初始化文件(.ini)中的许多信息现在都存放在注册…

【STM32单片机_(HAL库)】3-4-3【中断EXTI】【智能排队控制系统】排队系统代码框架搭建

3-4-2系统框图及硬件接线 3.软件 beep、exti、gate、LCD1602、led、tasks驱动文件添加GPIO常用函数中断配置流程main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "tasks.h" #include "gate.h"…

联华证券-股票冲高回落的意义:上方抛压恢复

“股票冲高回落”是指股票价格在一段时期内迅速上涨至较高水平后&#xff0c;随后又下跌的现象。这种情况通常表明市场对股票的短期上涨缺乏持续的支撑。以下是冲高回落的主要意义和原因&#xff1a; 1.上方抛压较重 抛压是指大量的卖出订单&#xff0c;这些订单可能在股价达到…

刘海屏的优雅回归?华为Mate 70 Pro定义新美学

在智能手机的发展历程中&#xff0c;华为Mate系列一直是高端旗舰的代表。而今&#xff0c;华为Mate 70 Pro的神秘面纱终于揭开&#xff0c;其回归的刘海屏设计和独特的寰宇舷窗设计&#xff0c;再次将华为的设计理念推向了新的高度。 刘海屏的回归&#xff1a;经典与创新的融合…

用于低质量蒙面人脸识别的一致子决策网络

Consistent Sub-Decision Network for Low-Quality Masked Face Recognition 摘要 提出了一种利用由多个dropout块组成的在线一致性评估结构来获得对应于人脸不同区域的子决策网络&#xff0c;以获得对应于不同面部区域的子决策&#xff0c;并通过加权双向KL散度来约束子决策&…

Transformer模型-5-Multi-Head Attention

上图红色圈中的部分为 Multi-Head Attention&#xff0c;是由多个Self-Attention组成的&#xff0c;虽然Encoder与Decoder中都有Multi-Head Attention&#xff0c;但他们略有区别。Encoder block包含一个 Multi-Head Attention&#xff0c; 而Decoder block包含两个 Multi-Head…

从聊天机器人到智能算法:Facebook AI技术的最新应用

人工智能&#xff08;AI&#xff09;技术的飞速发展正推动社交网络进入一个全新的智能化时代。作为全球领先的社交平台之一&#xff0c;Facebook&#xff08;现已改名为Meta&#xff09;在AI技术应用方面不断创新&#xff0c;推动了从聊天机器人到智能算法的诸多突破。本文将探…

C++第十三弹 -- STL之stack深度剖析与模拟实现

文章索引 前言1. stack的介绍2. stack的使用3. stack的模拟实现4. stackOJ题目4.1 最小栈4.2 栈的压入弹出序列4.3 用栈实现队列 总结 前言 在现代C编程中&#xff0c;STL&#xff08;标准模板库&#xff09;是一个不可或缺的工具。它提供了一套通用的模板类和算法&#xff0c…