Apache Hudi:增量数据湖架构深度解析 · 专栏导览

专栏定位

Apache Hudi(Hadoop Upsert Delete and Incremental)是 Uber 工程团队于 2016 年开源的数据湖存储框架,于 2019 年进入 Apache 孵化器,2020 年成为 Apache 顶级项目。Hudi 的设计出发点和 Delta Lake 有着本质区别:Delta Lake 的核心叙事是”给数据湖加上事务”,而 Hudi 的核心叙事是”让数据湖支持高效的记录级 Upsert”

Uber 面对的原始问题是:每天有数十亿条行程记录需要以”按主键更新”的方式同步到 Hive 数据仓库,传统的”每天全量覆盖”方式既慢(重处理几百 GB 数据只为更新几万条记录)又无法满足近实时(小时级而非天级)的数据新鲜度要求。这个**增量摄入(Incremental Ingestion)**问题催生了 Hudi,也决定了它和 Delta Lake、Apache Iceberg 在架构上的核心差异。

本专栏适合:

  • 需要将 CDC(Change Data Capture)数据高效同步到数据湖的数据工程师
  • 希望在 Hive/Spark 数据湖上实现低延迟 Upsert 而不走全量覆盖的平台工程师
  • 已深入了解 Delta Lake,希望对比理解 Hudi 的架构差异和选型依据的架构师

技术版本:Apache Hudi 0.14.x / 1.x


专栏目录

篇序文章标题核心主题
01为什么需要 Hudi——Uber 的 CDC 增量数仓困境与 Timeline 解法增量摄入问题,Hudi 的设计哲学与 Delta Lake 的根本差异
02存储类型深度解析——CoW vs MoR 的设计权衡与适用场景Copy-on-Write 与 Merge-on-Read 的文件布局、读写性能权衡
03Timeline 机制——Hudi 事务与增量语义的核心.hoodie 元数据目录,Instant、Action、State 的完整状态机
04Upsert 写入路径——Index 机制、HoodieKey 与 Bucket Index记录路由、索引类型对比(Bloom/HBase/Bucket/Record-Level),写入流程
05增量查询与 Incremental Pull——流批一体的数据消费INCREMENTAL 查询模式,Checkpoint 机制,下游 CDC 消费
06Hudi vs Delta Lake vs Iceberg——架构设计的本质差异与选型三者的核心差异对比,场景化选型决策矩阵

与 Delta Lake 专栏的差异定位

Delta Lake 专栏(已完成):
  核心叙事 = 事务日志(_delta_log)驱动 ACID
  强项 = Spark 深度集成、DML 操作、流批一体写入
  设计 = 文件级 MVCC,Snapshot Isolation,CoW 为主

本专栏(Apache Hudi):
  核心叙事 = 记录级 Upsert,Timeline 驱动增量消费
  强项 = CDC 摄入、近实时数仓、增量 ETL 链路
  设计 = 记录级 Index 路由,MoR 延迟合并,Timeline 全局事件日志

推荐阅读路径

CDC 工程师路径(快速上手 Hudi 做 CDC 摄入):01 → 02 → 04 → 05

架构对比路径(理解 Hudi 与 Delta/Iceberg 的本质差异):01 → 03 → 06

深度原理路径(完整理解 Hudi 内部机制):01 → 02 → 03 → 04 → 05 → 06


关联专栏