添加hudi基础知识
This commit is contained in:
parent
5123676878
commit
e5dacc545e
@ -80,13 +80,59 @@ State详细解释:
|
|||||||
- `INFLIGHT`: 表示当前正在执行操作
|
- `INFLIGHT`: 表示当前正在执行操作
|
||||||
- `COMPLETED`: 表示在时间线上完成一项操作
|
- `COMPLETED`: 表示在时间线上完成一项操作
|
||||||
|
|
||||||
## 文件布局
|
## 2.2 文件布局
|
||||||
|
|
||||||
- Hudi在分布式文件系统的基本路径下将数据表组织成目录结构。
|
- Hudi在分布式文件系统的基本路径下将数据表组织成目录结构。
|
||||||
- 一个表包含多个分区。
|
- 一个表包含多个分区。
|
||||||
- 在每个分区里面,文件被分为文件组,由文件id作为唯一标识。
|
- 在每个分区里面,文件被分为文件组,由文件id作为唯一标识。
|
||||||
- 每个文件组当中包含多个文件切片。
|
- 每个文件组当中包含多个文件切片。
|
||||||
-
|
- 每个切片都包含一个在特定提交/压缩instant操作生成的基本文件(.parquet);日志文件(.log)这些文件包含自生成基本
|
||||||
|
文件以来对基本文件的插入/更新。
|
||||||
|
|
||||||
|
Hudi采用多版本并发控制(MVCC),其中压缩操作合并日志和基本文件以生成新的文件切片,而清理操作清除未使用/旧的
|
||||||
|
文件切片以回收文件系统上的空间。
|
||||||
|
|
||||||
|
|
||||||
|
## 2.3 表&查询类型
|
||||||
|
|
||||||
|
|表类型 | 支持查询类型|
|
||||||
|
|---|---|
|
||||||
|
| Copy On Write | 快照查询 + 增量查询 |
|
||||||
|
| Merge On Read | 快照查询 + 增量查询 + 读取优化查询 |
|
||||||
|
|
||||||
|
### 2.3.1 表类型
|
||||||
|
|
||||||
|
#### 2.3.1.1 Copy On Write
|
||||||
|
|
||||||
|
使用排他列式文件格式(比如:parquet)存储,简单地更新版本&通过在写入期间执行同步合并来重写文件。
|
||||||
|
|
||||||
|
|
||||||
|
#### 2.3.1.1 Merge On Read
|
||||||
|
|
||||||
|
使用列式(比如:parquet) + 基于行的文件格式 (比如:avro) 组合存储数据。更新记录到增量文件中,然后压缩以同步或
|
||||||
|
异步生成新版本的柱状文件。
|
||||||
|
|
||||||
|
| 对比维度 | CopyOnWrite | MergeOnRead |
|
||||||
|
|---|---|---|
|
||||||
|
| 数据延迟 | Higher | Lower |
|
||||||
|
| 查询延迟 | Lower | Higher |
|
||||||
|
| 更新成本(I/O) | Higher(需要重写parquet) | Lower(添加到delta log) |
|
||||||
|
| Parquet文件大小 | Smaller(高更新(I/O)成本) | Larger(低更新成本) |
|
||||||
|
| 写入放大 | Higher | Lower(取决于压缩策略)|
|
||||||
|
|
||||||
|
|
||||||
|
### 2.3.2 查询类型
|
||||||
|
|
||||||
|
#### 2.3.2.1 快照查询
|
||||||
|
查看给定提交或压缩操作的表的最新快照。
|
||||||
|
|
||||||
|
|
||||||
|
#### 2.3.2.2 增量查询
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 2.3.2.3 读优化查询
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 3. Hudi 数据管理
|
# 3. Hudi 数据管理
|
||||||
|
Loading…
Reference in New Issue
Block a user