数据岗位面试题更新 2026-08-05

Apache Hudi 支持哪些数据操作类型?请说明它是如何在存储层面实现插入、更新和删除的。

数据技术原理Apache Hudi

考察说明

考查对 Apache Hudi 数据操作类型及其底层实现机制的理解。

回答思路

  1. 【回答框架 1】Apache Hudi 通过索引机制识别记录是插入还是更新。写入时,Hudi 利用布隆索引或简单的索引查找记录是否已存在,若存在则定位到其所在文件组,执行更新;若不存在,则分配新的文件组进行插入。删除操作通过写入删除标记(tombstone)实现,标记对应记录,不物理删除原有数据,而是在压缩时清理。
  2. 【回答框架 2】Hudi 的表类型(Copy on Write 和 Merge on Read)影响数据操作的具体实现。COW 表在写入时直接重写包含变更的文件,生成新版本文件,旧文件被替换;MOR 表将更新写入增量日志文件(log file),基础文件(base file)不变,读取时合并日志和基础文件。删除在 COW 中通过重写文件去除记录,在 MOR 中写入删除标记到日志。
  3. 【回答框架 3】Hudi 提供三种视图:读优化视图(Read Optimized)、增量视图(Incremental)和实时视图(Real-Time)。读优化视图仅读取基础文件,适合分析查询;增量视图提供变更流,可用于下游同步;实时视图结合基础文件和增量日志,提供最新数据。这些视图支撑了不同场景下的数据读取和变更捕获。
  4. 【回答框架 4】删除操作在 Hudi 中通过记录级索引来标记,实际物理删除发生在后续的压缩(Clustering)或清理(Cleaning)过程中。清理策略根据保留版本数或时间阈值执行,确保存储空间被回收,同时保证查询能返回正确结果。
  5. 【关键点 1】Hudi 使用索引(如布隆过滤器)区分插入和更新,定位文件组。
  6. 【关键点 2】COW 表通过重写文件实现更新,删除记录在重写时移除。
  7. 【关键点 3】MOR 表将更新写入日志文件,删除使用标记,读取时合并基础文件和日志。
  8. 【关键点 4】删除标记(tombstone)是逻辑删除,物理清理在压缩或清理阶段进行。
  9. 【关键点 5】增量视图提供变更流,支持增量处理和数据同步。
  10. 【易错点 1】不要混淆删除操作是立即物理删除,实际为逻辑删除,延迟清理。
  11. 【易错点 2】不能简单认为 Hudi 所有操作都通过重写文件实现,MOR 表使用日志合并机制。
  12. 【易错点 3】视图类型的选择影响数据实时性和查询性能,需根据场景权衡。