Hudi知识点总结 #24

Merged
zeekling merged 5 commits from hudi_001 into main 2023-07-31 15:20:41 +00:00
Showing only changes of commit 5123676878 - Show all commits

View File

@ -53,15 +53,51 @@ Apache Hudi支持在Hadoop兼容的存储之上存储大量数据不仅可以
![pic](https://pan.zeekling.cn/flink/hudi/hudi_0002.jpg) ![pic](https://pan.zeekling.cn/flink/hudi/hudi_0002.jpg)
# 2. Hudi 数据管理
## 2.1 Hudi 表数据结构 # 2.核心概念
## 2.1 Timeline
在Hudi中维护一个所有操作的时间轴每个操作对应时间上面的instant每个instant提供表的view同时支持按照时间顺序搜索数据。
- `Instant action`: 对表的具体操作。
- `Instant time`: 当前操作执行的时间戳。
- `state`:当前instant的状态。
Hudi 能够保证所有的操作都是原子性的按照时间轴的。Hudi的关键操作包含
- `COMMITS`:一次原子性写入数据到Hudi的操作。
- `CLEANS`:删除表中不再需要的旧版本文件的后台活动。
- `DELTA_COMMIT`: `delta commit`主要是一批原子性写入MOR表其中部分或者全部都会写入delta logs。
- `COMPACTION` 在后台将不同操作类型进行压缩将log文件压缩为列式存储格式。
- `ROLLBACK` 将不成功的`commit/delta commit`进行回滚。
- `SAVEPOINT` 将某些文件标记为已保存,方便异常场景下恢复。
State详细解释
- `REQUESTED` 表示已计划但尚未启动操作
- `INFLIGHT` 表示当前正在执行操作
- `COMPLETED` 表示在时间线上完成一项操作
## 文件布局
- Hudi在分布式文件系统的基本路径下将数据表组织成目录结构。
- 一个表包含多个分区。
- 在每个分区里面文件被分为文件组由文件id作为唯一标识。
- 每个文件组当中包含多个文件切片。
-
# 3. Hudi 数据管理
## 3.1 Hudi 表数据结构
Hudi 表的数据文件一般使用 HDFS 进行存储。从文件路径和类型来讲Hudi表的存储文件分为两类。 Hudi 表的数据文件一般使用 HDFS 进行存储。从文件路径和类型来讲Hudi表的存储文件分为两类。
- .hoodie 文件, - .hoodie 文件,
- amricas 和 asia 相关的路径是 实际的数据文件,按分区存储,分区的路径 key 是可以指定的。 - amricas 和 asia 相关的路径是 实际的数据文件,按分区存储,分区的路径 key 是可以指定的。
### .hoodie文件 ### 3.1.1 .hoodie文件