添加hudi基础知识

This commit is contained in:
LingZhaoHui 2023-07-23 12:54:38 +08:00
parent 5123676878
commit e5dacc545e
Signed by: zeekling
GPG Key ID: D96E4E75267CA2CC

View File

@ -80,13 +80,59 @@ State详细解释
- `INFLIGHT` 表示当前正在执行操作
- `COMPLETED` 表示在时间线上完成一项操作
## 文件布局
## 2.2 文件布局
- Hudi在分布式文件系统的基本路径下将数据表组织成目录结构。
- 一个表包含多个分区。
- 在每个分区里面文件被分为文件组由文件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 数据管理