[〇]关于本文
本文我们参考一张在hdfs中的hud表讲解一下hudi表的文件存储布局
[一]时间线文件解析
目录结构中列出的文件和子目录如下:
1-文件类型解析
时间线目录中的文件主要有以下几种类型:
-
<commit_id>.deltacommit.inflight
- 表示一项事务(增量提交)正在进行中。
- 通俗解释:这是 Hudi 的“进度条”,用来标记事务正在进行,但尚未完成。
-
<commit_id>.deltacommit.requested
- 表示某个事务已经被请求,但尚未开始或仍在等待执行。
- 通俗解释:这是事务的“待办任务列表”,标记事务被计划了但还没执行。
-
<commit_id>_<timestamp>.deltacommit
- 表示某个增量事务已经成功完成。
- 这些文件会记录提交操作的元数据和更新信息,比如更新了哪些索引、涉及哪些文件等。
- 通俗解释:这是事务完成后的“账本”,记录了事务做了什么事情,以及相关的结果。
2-时间线的工作流程
这些文件反映了一个事务的生命周期,通常包含以下几个阶段:
事务请求
Hudi 发起一个事务,会生成一个 .requested
文件,表明该事务被计划执行。
事务执行中
当事务开始执行时,会生成一个 .inflight
文件,表明事务正在进行。
事务完成
执行成功后,Hudi 会生成一个 .deltacommit
文件,并删除对应的 .requested