跳到主要内容
版本:Next

架构设计

概述

SeaTunnel 是一个分布式数据集成平台,采用插件化架构。连接器层与执行引擎解耦,同一套连接器可在不同引擎上运行。

┌─────────────────────────────────────────────────────────────┐
│ 作业配置 │
│ (HOCON / SQL / Web UI) │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ SeaTunnel 核心层 │
│ (作业解析器、协调器、调度器) │
└─────────────────────────────────────────────────────────────┘

┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Source │────▶│ Transform │────▶│ Sink │
│ 数据源连接器 │ │ (可选) │ │ 目标连接器 │
└───────────────┘ └───────────────┘ └───────────────┘


┌─────────────────────────────────────────────────────────────┐
│ 执行引擎 │
│ SeaTunnel Engine (Zeta) / Flink / Spark │
└─────────────────────────────────────────────────────────────┘

核心组件

1. Connector API

与引擎无关的统一 API,用于开发 Source、Transform、Sink 连接器。

组件说明
Source从外部系统读取数据(数据库、文件、消息队列)
Transform数据转换(字段映射、过滤、类型转换)
Sink将数据写入目标系统

2. 执行引擎

引擎适用场景
SeaTunnel Engine (Zeta)数据同步、CDC、低资源消耗
Apache Flink复杂流处理、已有 Flink 基础设施
Apache Spark大规模批处理、已有 Spark 基础设施

3. 翻译层

将 SeaTunnel 统一 API 转换为引擎特定实现,实现连接器跨引擎复用。

数据流

Source ──▶ [分片] ──▶ Reader ──▶ Transform ──▶ Writer ──▶ Sink
│ │ │
│ ▼ │
│ Checkpoint/状态 │
│ │ │
└──────────────────────┴────────────────────────┘
容错机制

核心特性:

  • 基于分片的并行读取
  • 分布式快照实现精确一次语义
  • 自动故障转移和恢复

模块结构

seatunnel/
├── seatunnel-api/ # 核心 API 定义
├── seatunnel-connectors-v2/ # Source & Sink 连接器
├── seatunnel-transforms-v2/ # Transform 插件
├── seatunnel-engine/ # SeaTunnel Engine (Zeta)
├── seatunnel-translation/ # 引擎适配器 (Flink/Spark)
├── seatunnel-core/ # 作业提交 & CLI
├── seatunnel-formats/ # 数据格式处理
└── seatunnel-e2e/ # 端到端测试

作业执行流程

  1. 解析 - 读取并验证作业配置
  2. 规划 - 生成带并行度的执行计划
  3. 调度 - 将任务分发到 Worker 节点
  4. 执行 - 运行 Source → Transform → Sink 管道
  5. 监控 - 跟踪进度、指标和检查点

下一步