跳到主要内容
v2.3.13 已发布 / Apache 顶级项目

超高性能数据集成工具

面向分布式生产系统的数据集成底座,具备容错、模式演进与多引擎执行能力,覆盖批处理、流处理、CDC、多模态与 AI 数据场景。

Zeta EngineApache FlinkApache SparkCDC / Exactly-OnceSchema Evolution
9.4k+
GitHub Stars
~200
数据连接器
3
执行引擎
2.3k+
GitHub Forks

架构模式

不是 ETL 而是 EtLT

SeaTunnel 负责抽取、轻量转换与装载,把重量级的下游转换保留给仓库或湖仓,让数据链路更清晰也更稳定。

01上游数据源
02EtLT 模式
03下游目标
数据库OLTP / CDC
MySQLPostgreSQLOracleSQL ServerTiDB
消息流发布 / 订阅
Apache KafkaApache PulsarRocketMQRabbitMQ
文件与数据湖对象存储
Amazon S3Alibaba OSSHDFSLocalFile
SeaTunnel
EtLT
引擎Zeta / Flink / Spark
模式批处理 / 流处理 / CDC
保障Exactly-once / 模式演进 / 多引擎扩展
数仓OLAP
ClickHouseApache DorisStarRocksSnowflake
湖仓Open Tables
Apache IcebergApache HudiApache PaimonDelta Lake
搜索与向量检索
ElasticsearchTypesenseMilvusQdrant

为什么选择 SeaTunnel

从第一天起就是生产级

容错、模式演进和多引擎扩展能力都按分布式生产环境要求设计。

01

Schema 变化?自动处理

SeaTunnel 能检测上游 Schema 变化并实时同步到下游,减少因为字段变更带来的人工迁移与任务中断。

# Before -> After (detected automatically)

-- v1 schema -------------------------
id       BIGINT
name     VARCHAR(255)

-- v2 schema (auto-propagated) ------
id       BIGINT
name     VARCHAR(255)
email    VARCHAR(512)    NEW
phone    VARCHAR(32)     ADDED
02

实时 CDC

面向主流数据库的低延迟变更捕获,同时支持从批到流无缝衔接,并避免锁式切换。

低延迟批流衔接无锁切换
03

Exactly-Once 语义

基于 checkpoint 的容错保证任务在失败、重试与重启场景下仍保持数据一致性。

Checkpoint 保障失败可恢复重启仍一致
04

多引擎支持

同一份 pipeline 定义可运行在 Zeta、Flink 或 Spark 上,无需重写连接器逻辑与交付链路。

一份定义Zeta / Flink / Spark无需重写连接器

数据集成,持续流动。

数据集成层背后的六种机制。

  • 01

    并行批读取

    拆分工作,让分片并行读取。

    已分配的分片正穿过 3 个读取器。

    JDBC 示例 · 分片分配取决于具体 source。

  • 02

    快照 + CDC

    先完成快照,再捕获 binlog 变更。

    正在读取已有行。

    MySQL-CDC 示例 · startup.mode = initial

  • 03

    行级转换

    计算字段并筛选单条记录。

    WHERE id > 0 · CONCAT(name, '_')

    SQL 示例 · 表达式 + 行过滤

  • 04

    多表路由

    让每条记录走向正确的表路径。

    表标识 → 匹配的目标端写入器。

    逻辑路由 · 物理连接可能不同。

  • 05

    Schema 演进

    传播受支持的表结构变更。

    schema-changes.enabled = true

    Zeta 示例 · MySQL-CDC → JDBC MySQL

  • 06

    Checkpoint 恢复

    从已完成的 checkpoint 重新开始。

    运行中 · source 与 sink 已连接。

    Exactly-once 需要兼容的 source / sink 支持。

示意性流图,并非部署蓝图。生产行为取决于所选连接器、执行引擎和配置。

约 200 个原生连接器

只要你的数据在那里,
SeaTunnel 就能连接

覆盖数据库、消息系统、湖仓、搜索系统与对象存储等主流数据系统。

OLTP 数据库
MySQL / MySQL CDC
PostgreSQL
Oracle
SQL Server
TiDB / MariaDB
+25 via JDBC
流式与消息系统
Apache Kafka
Apache Pulsar
RabbitMQ
RocketMQ
AWS SQS
ActiveMQ
OLAP 与分析
ClickHouse
Apache Doris
StarRocks
Snowflake
Amazon Redshift
Cloudberry
数据湖与存储
Amazon S3 / Hudi
Alibaba OSS
HDFS / LocalFile
Apache Iceberg
Delta Lake
Apache Paimon
MySQLPostgreSQLOracleSQL ServerTiDBMariaDBMongoDBDynamoDBCassandraHBaseNeo4jDB2GreenplumOceanBaseApache KafkaApache PulsarRabbitMQRocketMQActiveMQAWS SQSElasticsearchApache DruidTypesenseClickHouseApache DorisStarRocksSnowflakeCloudberryAmazon RedshiftAmazon S3HDFSAlibaba OSSLocalFileApache IcebergApache HudiDelta LakeApache PaimonApache KuduApache HiveInfluxDBApache IoTDBTDengineRedisAerospikeFTPSFTPHTTPGraphQLGoogle SheetsGoogle FirestoreSlackDingTalkFeishuEmailMaxComputeTableStoreSelectDB CloudMilvusQdrantLanceApache FlussHugeGraphPrometheusSLSSentrySensorsDataWeb3jMySQLPostgreSQLOracleSQL ServerTiDBMariaDBMongoDBDynamoDBCassandraHBaseNeo4jDB2GreenplumOceanBaseApache KafkaApache PulsarRabbitMQRocketMQActiveMQAWS SQSElasticsearchApache DruidTypesenseClickHouseApache DorisStarRocksSnowflakeCloudberryAmazon RedshiftAmazon S3HDFSAlibaba OSSLocalFileApache IcebergApache HudiDelta LakeApache PaimonApache KuduApache HiveInfluxDBApache IoTDBTDengineRedisAerospikeFTPSFTPHTTPGraphQLGoogle SheetsGoogle FirestoreSlackDingTalkFeishuEmailMaxComputeTableStoreSelectDB CloudMilvusQdrantLanceApache FlussHugeGraphPrometheusSLSSentrySensorsDataWeb3j
还包括:MongoDB / Redis / Elasticsearch / Neo4j / Cassandra / HBase / Druid / HugeGraph / IoTDB / InfluxDB / DynamoDB / Milvus / Qdrant ...

设计上就是简单

一份配置文件
就够了

用一份配置描述 source、transform 与 sink,然后在任意支持的执行引擎上运行,无需重复改写 pipeline。

mysql-cdc-to-clickhouse.conf

# Real-time: MySQL CDC -> ClickHouse

env {
  parallelism = 4
  job.mode = "STREAMING"
  checkpoint.interval = 10000
}

source {
  MySQL-CDC {
    hostname = "db.prod.internal"
    username = "reader"
    password = "${DB_PASS}"
    database-names = ["orders"]
    table-names = ["orders.events"]
    base-url = "jdbc:mysql://db.prod.internal:3306"
  }
}

transform {
  Sql {
    query = """
      SELECT *, NOW() AS synced_at
      FROM events WHERE status != 'deleted'
    """
  }
}

sink {
  ClickHouse {
    host = "ch.analytics:8123"
    database = "analytics"
    table = events_realtime
    primary_key = ["id"]
  }
}

一份 pipeline 定义
运行在 Zeta、Flink 或 Spark 上

SeaTunnel 把 CDC、模式演进、多模态数据流动与生产级可靠性统一到一个 Apache License 的集成层里。