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无需重写连接器

约 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 的集成层里。