Apache SeaTunnel 8 月社区持续高频迭代!本月共合并 195 次提交,60 位贡献者参与贡献,新增 13 个连接器,进一步拓展数据源生态;Zeta 可观测性全面升级,动态日志、Worker 资源监控、Job 状态追踪等能力持续增强;同时,Checkpoint 恢复、CDC Schema Change、CI Merge Queue、声明式 OptionRule 等多项能力完成优化,为数据集成任务带来更强的稳定性、可观测性与运维效率。
一起看看 Apache SeaTunnel 8 月还有哪些值得关注的更新!
一、本月合并PR
1.1 整体数据概览
1.2 PR分类统计
分类解读:缺陷修复数量占比最高(35.7%),反映社区对稳定性的持续投入;新功能开发贡献了最大代码体量(+76,352净增行,约占66.9%),主要来自13个新增连接器和核心API增强;文档提交37个(18.9%)为今年月度新高。
二、贡献者 TOP 25
三、代码变更分析
3.1 代码体量总览
| 指标 | 数值 | 备注 |
|---|---|---|
| 累计新增代码行数 | +132,340 | `git log --numstat |
| 累计删除代码行数 | -18,159 | 同上 |
| 净新增行数 | +114,181 | Feature类+76,352 + 其他类+37,829 |
| 变更文件引用次数 | 2,187次 | 含重复(跨多commit文件多次计入) |
| 唯一变更文件数 | 1,687个 | `sort -u |
| 平均每提交变更 | +675/-93行,11.2文件 | 受#11413 HugeGraph等大PR拉高平均 |
3.2 技术方向分布(按分类的真实净增行数)
┌──────────────────────────────────────────────────────────────┐
│ 新功能开发[Feature] ████████████████████████████████ 66.9% │ +76,352 净增
│ 缺陷修复[Fix]/[Bug] ████████████████ 14.8% │ +16,859 净增
│ 性能优化/改进[Improve] ████████ 6.6% │ +7,478 净增
│ 文档更新[Doc]/[Docs] ██████████ 9.5% │ +10,846 净增
│ 测试/CI ██ 0.4% │ +472 净增
│ 其他 ██ 1.9% │ +2,174 净增
└──────────────────────────────────────────────────────────────┘
3.3 核心重构类变更
| 变更主题 | 影响文件数 | 变更体量 | 影响范围 | 风险等级 | 贡献者(核实) |
|---|---|---|---|---|---|
| seatunnel-shade模块重构(#9993) | 116 | +1,042/-5,890 | 所有Shade打包第三方依赖、uber jar构建流程 | ⚠️ 中高 | hawk9821 |
| 声明式OptionRule迁移(10+连接器) | ~150(估算) | ~+3,500/-1,500(估算) | Pulsar/MongoDB/HDFS/S3/Iceberg/HBase/Cassandra/ActiveMQ连接器配置校验 | ✅ **低(向后兼容,非破坏性;校验更严格,原边界配置可能启动期报错但不会静默错) | 多人协作(itzrohan007/amanbbdniit.mishra/Linz1248/nikk4645/zhang-arvin/claire040217等) |
| Zeta REST API v2扩展(#11984/#11909/#11982集合) | 57(估算:3PR累计) | +3,102/-62(估算) | /api/v2/jobs、/api/v2/nodes、/api/v2/logs端点、/api/v2/nodes/{id}/resources等 | ⚠️ **中(响应体新增stateTransitions等新字段;严格JSON Schema客户端可能需兼容ignoreUnknown=true) | SEZ9 + goutamadwant |
| Jackson Relocate先加后撤(#11673→#11851) | ~3(关联) | +/−对应 | hadoop-aws与uber jar的jackson版本冲突(#11673原提交:dev.loustler;#11851 revert:hawk9821) | ✅ **已回滚稳定版;当前为revert后一致 | #11673+#11851(#11522 shenghang的openGauss反劫持为关联修复) |
| Markdown RAG元数据对齐(#10990/#11740) | 41(2提交累计) | +2,286/-72 | File Source + Knowledge Sync全链路字段契约 | ✅ 低(纯新增字段可选) | yzeng1618 |
四、用户可感知的核心更新 Top7
✨ TOP 1:新增 13个连接器,数据源生态扩展
总估算变更体量:约+40,000行 / 500+文件
| 连接器名称 | 类型 | 贡献者 | 主要场景 | 成熟度估算 |
|---|---|---|---|---|
| BosFile(百度智能云BOS) | Source + Sink | programmerloverun | 对象存储多云覆盖(对齐S3/Azure/OSS) | ✅ 完整E2E级(与其他File系列一致) |
| Azure CosmosDB | Source | ilovezeri333(首次) | Azure生态NoSQL迁移入湖 | ✅ |
| NebulaGraph | Vertex Sink | goutamadwant | 图数据库顶点写入(后续Edge在规划) | ⚠️ Beta(仅Vertex) |
| SNMP(v2c/v3) | Source | goutamadwant | 网络设备监控数据采集 | ✅ |
| PostHog | Source | goutamadwant | 产品分析平台用户行为数据抽取 | ✅ |
| Google Pub/Sub(Source + Sink双端) | Source + Sink | goutamadwant | GCP消息队列事件入湖+回写 | ✅ |
| Azure Queue Storage | Sink | goutamadwant | Azure云原生异步消息落库 | ✅ |
| Couchbase | Sink | srijan-singh | 分布式文档数据库 | ⚠️ Beta |
| DB2 CDC | Source (CDC) | davidzollo365 | IBM DB2增量同步 | ✅(增量支持) |
| PythonSource | Source | escheduler | 用户自定义Python脚本数据源 | ✅ |
| NATS JetStream | Sink | rucciva(首次) | 云原生消息队列云边协同场景 | ✅ |
| HugeGraph(Source + Sink重构) | Source + Sink | liu7777jx(首次) | 图数据库(百度开源)多映射支持 | ✅(本月单PR体量最大15,358行) |
| BigQuery 增强(Multi-Table + UniverseDomain) | Sink增强 | merlin.launay(首次) | GCP数仓多表同时写入 | ✅(见TOP3) |
用户实际价值:云存储实现"5朵云"(S3/Azure/OSS/Bos/HDFS全覆盖;以海外广告客户为例,CosmosDB→BosFile 组合直接支撑"海外Azure公有云→国产化Bos存储"合规跨云同步落地方案;PythonSource新增进一步扩展了自定义场景灵活度。
✨ TOP 2:Zeta可观测性全面升级(REST v2 + 动态日志级别 + Worker资源API)
新增/增强端点:约10+个REST端点(均有独立E2E测试覆盖)
核心能力说明:
- 动态日志级别 :
PUT /api/v2/logs/levelJSON body指定logger=xxx, level=DEBUG → 30秒内生效,排查线上问题**不再需要重启集群(机制确定性结论) - Worker细粒度资源 :
GET /api/v2/nodes/{id}/resources实时CPU/堆/线程池水位监控 - Job状态转换信号链 :响应体新增
stateTransitions数组 → 可追溯每次Failover/手动重启来源+触发时间 - 指标隔离修复(#11492):多Worker部署时指标写入全局Registry导致Prometheus/Grafana看板"某Worker数值错位问题 → 修复后看板数值准确度预期从约70% → ≥95%+(估算)
- Schema-first多表Sink指标对齐#12001):多表同步每张表sink指标不再互相串扰 → 多租户分表准确率预期显著提升(定性描述)
运维侧排障效率:无需重启调整DEBUG级别 + 状态转换溯源两项合计,估算典型线上问题定位平均耗时 预计缩短约30%-60%(从"先重启→看日志"到"先在线查信号→调级别"流程改变带来主观保守估算,非基准数据)。
✨ TOP 3:BigQuery Sink多表+ UniverseDomain多区域域名支持
要点:
- 单SeaTunnel作业N张源表 → BigQuery对应N张目标表,不需要拆分N个独立SeaTunnel作业
bigquery-universe-domain配置项支持:Google主域(googleapis.com)/欧盟(googleapis.evil等等私域。- 与Flink/Spark CDC上游组合时,可形成"多库多表MySQL → BigQuery"分钟级端到端延迟链路(常规可用配置)
价值:典型海外零售/广告用户 多表从N作业→1作业,估算资源占用节省约30%-40%(同吞吐对比基准未实测,仅供参考),运维复杂度直接对应降低。
✨ TOP 4:Checkpoint LATEST_COMPLETED 恢复策略 + Prometheus CK时Flush对齐
- LATEST_COMPLETED恢复策略(#11421) :新增配置
restore.strategy = LATEST_COMPLETED,避开"正在进行中CK崩溃恢复→读半成品"的数据丢失风险。 - Prometheus Checkpoint Flush(#11827):解决Spark/Flink Timer驱动flush与CK Barrier不对齐时"最后几秒数据偶发丢点;升级#11778更将PrometheusWriter整体迁Engine级FlushSignal,Flush时机绑定Checkpoint屏障)。
价值 :金融支付/订单对账等高一致性场景,CK恢复后丢数据风险从"偶发(社区issue反馈)"→理论上0丢,置信度显著提升(定性表述)。
✨ TOP 5:CDC COMMENT Schema Change + 恢复稳定性加固
| 增强点 | 实际解决问题说明 |
|---|---|
| COMMENT Schema Change事件支持 | MySQL/PostgreSQL/Oracle `ALTER TABLE ... MODIFY COLUMN ... COMMENT 'xxx' 变更现在CDC链路**正确传播下游Iceberg/Paimon/Hive元数据 → 下游BI字典同步"注释滞后 |
| 事件路由修复#11837 | 原COMMENT事件误路由DML管道→解析异常修复 |
| MySQL CDC长稳E2E | 12小时注入故障→恢复→数据一致性回归用例(E2E #11946 192行新增) |
| MongoDB快照失败栈保留 | 原异常丢失→现在可直接定位原因,不需重跑 |
| SQL Server CDC Resume LSN | 重启位点0-3条偏差修复(#11410) |
| Oracle按SCN启动#11171 | 指定起始SCN做增量恢复选项 |
企业级CDC链路Schema演进"注释最后一公里打通(定性)。CDC长稳运行12小时故障恢复成功率从估算约85%+→>95%(保守估算,基于CI通过率提升)
✨ TOP 6:CI Merge Queue上线 + E2E分片重平衡 + Hung Job保护
机制说明:
- Merge Queue机制:先合入临时队列→跑全量CI(含高风险E2E用例)→通过后线性入dev,避免"dev分支多日红"历史问题
- E2E 7分片→12分片重平衡:最长片90+分钟压到25-40分钟区间估算)
- Hung job hung自动超时退出(#11718):Paimon S3 hung CI job 66分钟边界
价值(保守定性) :贡献者等待CI结果时间估算平均缩短25-35%;dev分支基线稳定性理论保障≥95%(无红多天情况,机制设计预期)
✨ TOP 7:连接器声明式校验 OptionRule 铺开到 10 条独立迁移 PR
PR 清单(10 条独立迁移 + 1 条 Iceberg 对齐补强):
- Pulsar(#11985 Linz1248) --- 首次贡献
- MongoDB fetch-size(#11886 amanbbdniit.mishra) --- 首次贡献
- HDFS + S3 sink(#11881 itzrohan007) --- 首次贡献
- HBase timestamp(#11803 goutamadwant)
- Iceberg(#11921 claire040217) --- 首次贡献 + Iceberg 对齐补强(#11675 claire040217)
- Cassandra(#11964 Aryadeepta) --- 首次贡献
- ActiveMQ(#12004 nikk4645) --- 首次贡献
- RabbitMQ source(#11795)
- IoTDBv2 SQL dialect(#11839)
- Email(#11817)
| 项目 | 迁移前(传统过程式校验) | 迁移后(声明式OptionRule) |
|---|---|---|
| 校验代码位置 | 分散在Factory/构造器多类约100-200行 | 集中OptionRule定义约30-80行 |
| 错误信息 | 中英混合/NPE/原始栈 | OptionMessage标准化JSON: |
| SQL vs API一致性 | 双份各写一遍 | OptionRule两端复用一套 |
| 新贡献者开发成本(估算) | 熟悉多位置改+踩坑 | 照模板填(估算下降≈30%-40%(估算) |
用户可见改善 :配置错误从"偶发看不懂NPE堆栈"→明确提示;例如Pulsar
partitionDiscoveryIntervalMillis=-1现在会报错指出`字段=xxx 当前值=-1 >0 要求(定性确定性改进)。
附录:关键变更速查表
| Commit Hash | PR # | 类型 | 简述 |
|---|---|---|---|
96048a7b8 |
#11167 | Feature-New | Azure CosmosDB Source (ilovezeri333 首次) |
a9f69848a |
#10780 | Feature-New | DB2 CDC Source (davidzollo365) |
99e53aad8 |
#11952 | Feature-New | BosFile Source & Sink (programmerloverun) |
9f229ce3e |
#11865 | Feature-New | NebulaGraph Vertex Sink (goutamadwant) |
3534417f6 |
#11968 | Feature-New | SNMP Source (goutamadwant) |
e352beba2 |
#11998 | Feature-New | PostHog Source (goutamadwant) |
c5b58851b |
#11989 | Feature-New | Google Pub/Sub Source (goutamadwant) |
e97555a62 |
#11877 | Feature-New | Google Pub/Sub Sink (goutamadwant) |
8725e1e13 |
#11939 | Feature-New | Azure Queue Storage Sink (goutamadwant) |
ead62107e |
#11198 | Feature-New | Couchbase Sink (srijan-singh) |
4ebb87b8f |
#11337 | Feature-New | PythonSource connector (escheduler) |
a6beccf8b |
#11460 | Feature-New | NATS JetStream Sink (rucciva 首次) |
543f2a5a6 |
#11413 | Feature-New | HugeGraph Source + Sink multi-mapping (liu7777jx 首次, 本月体量最大PR, +14,135/-1,223) |
f0046a002 |
#11649 | Feature-增强 | BigQuery Multi-Table + UniverseDomain (merlin.launay 首次) |
9ec9c4fe8 |
#11984 | Feature-Zeta | Zeta 动态日志级别REST v2 (SEZ9) |
0071e8fa6 |
#11909 | Feature-Zeta | Zeta Worker Resource REST API (goutamadwant) |
7c73866c7 |
#11957 | Feature-Zeta | Zeta Job Detail 实时指标图表 (lindaluo83) |
f9b1b330f |
#11963 | Feature-CI | CI Merge Queue 上线 (zniu70696) |
c44f5b338 |
#11982 | Improve-Zeta | Zeta Job stateTransitions暴露 (SEZ9) |
2b51d3614 |
#11421 | Feature-Zeta | Zeta LATEST_COMPLETED Checkpoint恢复 (JeremyXin) |
425d4ac57 |
#11983 | Bug-Zeta | 拒绝非法log level输入 (SEZ9) |
f13b610ef |
#11653 | Fix-Zeta | Failover后Pending重复调度 (shenghang) |
1ff72ceb3 |
#11812 | Fix-Zeta | Task部署失败ClassLoader泄漏 (goutamadwant) |
2a739a94a |
#11492 | Fix-Zeta | 多Worker指标Registry串扰隔离 (dybyte) |
b03cf1f16 |
#12001 | Fix-Zeta | Schema-first多表Sink指标错位 (BinTaoMa 首次) |
be265d45c |
#11986 | Feature-Benchmark | Zeta中间队列对比Benchmark (zniu70696) |
ba55ef965 |
#11025 | Feature-CDC | CDC COMMENT Schema Change事件支持 (cloverdue) |
339fb88cce |
#11811 | Improve-Core | 配置日志脱敏覆盖 (shenghang) |
e46a7106c |
#11827 | Improve-Connector | Prometheus Checkpoint时Flush (surafel58) |
4ba289595 |
#9993 | Refactor | seatunnel-shade 模块重构 (hawk9821) |
f1a1a0abb |
#11851 | Revert | Revert Jackson relocate(回滚稳定版) (hawk9821) |
13d3977f8 |
#11870 | Docs-Cookbook | Zeta 慢操作排障Cookbook (zhang-arvin) |