
https://github.com/apache/
点击蓝字
关注我们
Hi Community,今年 Apache SeaTunnel 6 月份月报准时来啦!总体上来看,6 月整个月 Apache SeaTunnel 共合入 125 个 PR,明显高于 5 月的 87 个。整体上看,6 月不是单纯的“修修补补”,而是沿着三条主线同步推进:
控制面与引擎抽象继续上探:多表同步的表级故障隔离、StateStore 抽象、任务繁忙度监控、非终态作业状态上报,说明 Zeta 正从“能跑作业”走向“更可治理、更易恢复、更易观察”。
Connector-V2 持续扩展边界:BigQuery Sink、MQTT Source、Salesforce Source、Vitess CDC、Google Cloud Bigtable 等新连接器/新能力陆续落地,生态覆盖面继续扩大。
文件与 SQL 处理链路增强:文件格式 schema evolution、Calcite SQL transform plugin、Base64 SQL functions 等特性,显示 SeaTunnel 正在补齐“复杂数据加工层”能力,而不只是做简单同步。
一、当月总体画像

相比 5 月,6 月最明显的变化是:架构改进类 PR 激增。这意味着社区不只是上线新 Connector,而是在系统性地补齐文档、稳定性、抽象层和工程治理。
seatunnel-connectors-v2:35
docs:27
seatunnel-engine:22
seatunnel-connectors-v2/connector-cdc:14
seatunnel-e2e:12
seatunnel-api:3
.github/ci:2
other:10
这里有一个值得注意的信号:docs 在 6 月出现了高占比,说明社区开始把越来越多“隐性知识”沉淀为显式文档,例如 Zeta 状态存储与恢复、CDC 生产 cookbook、REST API 生命周期说明等。这类工作不直接提升吞吐,但直接提升 SeaTunnel 的可用性与可维护性。
二、贡献者排行榜

三、关键变更一览
如果把 6 月所有 PR 放到一张技术地图里,大致可以分为四组:
四、关键技术变更深度分析
本节挑选 5 项最能代表 Apache SeaTunnel 项目 6 月技术方向的变更,分别从背景、实现原理、影响范围三个角度做分析。
#10600 表级故障隔离:多表同步从“全局失败”转向“局部可控”PR 规模:23 files changed, 1648 insertions(+), 144 deletions(-)。
背景与痛点:
核心设计:新增 MultiTableCommonOptions 与 MultiTableFailurePolicy 等抽象,把“多表失败策略”显式配置化。
关键代码片段:
diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/options/MultiTableCommonOptions.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/options/MultiTableCommonOptions.javanew file mode 100644@@ -0,0 +1,46 @@+public class MultiTableCommonOptions {++ @Experimental+ public static final Option<MultiTableFailurePolicy> MULTI_TABLE_FAILURE_POLICY =+ Options.key("multi_table.failure_policy")+ .enumType(MultiTableFailurePolicy.class)实现原理:
影响范围:
#10744 文件 connector 支持 schema evolution:文件链路首次具备结构变更感知PR 规模:4 files changed, 168 insertions(+), 2 deletions(-)。
背景与痛点:
关键代码片段:
diff --git a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/config/FileBaseSinkOptions.java b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/config/FileBaseSinkOptions.java@@ -336,4 +336,14 @@ public class FileBaseSinkOptions extends FileBaseOptions {+ public static final Option<Boolean> SCHEMA_EVOLUTION_ENABLED =+ Options.key("schema_evolution_enabled")+ .booleanType()+ .defaultValue(false)+ .withDescription(+ "Whether to enable schema evolution for the file sink. "+ + "When true, ALTER TABLE events (ADD/DROP/RENAME/UPDATE column) "+ + "from CDC sources are applied to the sink schema at runtime. "+ + "Files are rotated at each schema change boundary. Default: false.");实现原理:
schema_evolution_enabled 开关,把 ALTER TABLE 事件显式引入 file sink 的运行时处理逻辑。影响范围:
#11062 Calcite SQL Transform Plugin:SeaTunnel 的 SQL 加工能力进入插件化阶段PR 规模:40 files changed, 8257 insertions(+), 1 deletion(-),是 6 月最重的一批功能开发之一。
背景与痛点:
关键代码片段:
diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/transform/CalciteUdf.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/transform/CalciteUdf.javanew file mode 100644@@ -0,0 +1,54 @@+/**+ * SPI for Calcite SQL transform UDFs. Implementations must provide a <b>public static</b> {@code+ * eval} method whose signature determines the SQL function's input/output types.+ *+ * <p>The {@code eval} method <b>must be static</b> because Calcite's code generation calls it+ * directly without creating an instance.实现原理:
CalciteUdf SPI,明确了 UDF 的发现机制与静态 eval 约束。影响范围:
#10812 StateStore 抽象:Zeta 去 Hazelcast 耦合的关键一步PR 规模:28 files changed, 2071 insertions(+), 92 deletions(-)。
背景与痛点:
关键代码片段:
diff --git a/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/common/statestore/ExpiringStateStore.java b/seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/common/statestore/ExpiringStateStore.javanew file mode 100644@@ -0,0 +1,43 @@+/**+ * Storage capability for TTL-based writes.+ *+ * <p>This is intended only for implementations where TTL-based storage is a natural fit, such as+ * Hazelcast-backed stores.+ */+public interface ExpiringStateStore<K, V> extends StateStore<K, V> {实现原理:
StateStore、ExpiringStateStore、IterableStateStore 等接口族,而不是直接把 Hazelcast 语义泄漏到所有上层逻辑。影响范围:
#10485 BigQuery Sink Connector:云数仓生态继续补齐PR 规模:40 files changed, 3169 insertions(+), 1 deletion(-)。
背景与痛点:
关键代码片段:
diff --git a/seatunnel-connectors-v2/connector-bigquery/src/main/java/org/apache/seatunnel/connectors/bigquery/option/BigQuerySinkOptions.java b/seatunnel-connectors-v2/connector-bigquery/src/main/java/org/apache/seatunnel/connectors/bigquery/option/BigQuerySinkOptions.javanew file mode 100644@@ -0,0 +1,83 @@+public class BigQuerySinkOptions {++ public static final String IDENTIFIER = "BigQuery";++ public static final Option<String> PROJECT_ID =+ Options.key("project_id")+ .stringType()+ .noDefaultValue()影响范围:
五、性能与稳定性数据如何验证
6 月的大部分关键变更并不是单纯的“吞吐提升型”优化,而是治理能力、抽象能力、兼容性、恢复能力的增强。因此性能对比不宜只看 rows/s,而应该按变更类型设计观测口径:
换句话说,6 月更适合用 可靠性测试、恢复测试、配置兼容性测试、E2E 覆盖率 来评价,而不是仅看吞吐数字。
六、版本演进趋势与技术方向
从 6 月的合入内容看,SeaTunnel 的技术路线越来越清晰:
Apache SeaTunnel是一个云原生的多模态、高性能海量数据集成工具。北京时间 2023 年 6 月1 日,全球最大的开源软件基金会ApacheSoftware Foundation正式宣布SeaTunnel毕业成为Apache顶级项目。目前,SeaTunnel在GitHub上Star数量已达9k+。SeaTunnel支持在云数据库、本地数据源、SaaS、大模型等170多种数据源之间进行数据实时和批量同步,支持CDC、DDL变更、整库同步等功能,更是可以和大模型打通,让大模型链接企业内部的数据。
同步Demo
新手入门

最佳实践

测试报告

源码解析



