
点击蓝字
关注我们
作者 | 梁尧博
编者语
接上文《假如 去送外卖,它是如何保证一滴汤都不洒的?(深度拆解 CDC 原理)》,文中介绍了 Apache SeaTunnel CDC Source端实现的详细机制和原理,本文将通过解读Debezium与Apache SeaTunnel的关系,来继续解析Apache SeaTunnel CDC 的底层技术逻辑。
用一句话总结二者的关系:Debezium 是 SeaTunnel CDC 的底层核心引擎,而 SeaTunnel CDC 是对 Debezium 功能的封装、增强与生态扩展。
以下是详细的关系解读:
1. 基石与核心:Debezium 的角色
“Debezium 可以说是 CDC 的鼻祖”。在 SeaTunnel CDC 的体系中,Debezium 扮演着不可替代的“基石”角色。
SourceRecord),包含变更前(before)、变更后(after)、操作类型(Envelope Operation: CREATE/READ/UPDATE/DELETE)等信息,为上层处理提供了标准输入。2. 关键转折点:弃用 Kafka Connect,转向嵌入式引擎
这是理解两者关系最关键的一点。
debezium-api 和debezium-embedded),将 Debezium 引擎作为一个类库直接嵌入到 SeaTunnel 的进程中运行。这彻底抛离了对 Kafka 集群的强制依赖。3. 编排与封装:SeaTunnel CDC 的架构
SeaTunnel 在 Debezium 引擎之上构建了一层复杂的“编排层”,负责管理和调度 Debezium 的工作。
如下面的架构图所示,SeaTunnel 位于上层,负责读取逻辑、反序列化、流式抓取和连接管理;而 Debezium 位于下层,负责驱动底层的数据库 CDC 机制并生成标准数据记录。
代码段

SeaTunnel 对 Debezium 的核心功能利用情况如下表:
| 功能 | Debezium 提供 (核心能力) | SeaTunnel 使用 (封装调用) |
|---|---|---|
| 全量读取 | SnapshotChangeEventSource | |
| 增量读取 | StreamingChangeEventSource 读取 Binlog/WAL 等 | |
| 数据结构 | SourceRecord) | |
| 操作类型 | ||
| 状态管理 |
4. 数据流转与翻译
两者在数据处理链路上是串联关系。Debezium 负责生产“原材料”,SeaTunnel 负责将其“加工”成内部标准格式。
SourceRecord。DebeziumDeserializeSchema 将SourceRecord 反序列化,提取关键信息,并转换为 SeaTunnel 内部统一的行数据格式SeaTunnelRow,同时标记好行类型(RowKind,如 INSERT/UPDATE_AFTER 等)。
5. 增强与扩展:SeaTunnel 的价值


总结 SeaTunnel 带来的关键增强:

Apache SeaTunnel是一个云原生的多模态、高性能海量数据集成工具。北京时间 2023 年 6 月1 日,全球最大的开源软件基金会ApacheSoftware Foundation正式宣布Apache SeaTunnel毕业成为Apache顶级项目。目前,SeaTunnel在GitHub上Star数量已达8k+,社区达到6000+人规模。SeaTunnel支持在云数据库、本地数据源、SaaS、大模型等170多种数据源之间进行数据实时和批量同步,支持CDC、DDL变更、整库同步等功能,更是可以和大模型打通,让大模型链接企业内部的数据。
同步Demo
新手入门

最佳实践

测试报告

源码解析



