docs: 补充hudi表结构文档
This commit is contained in:
47
README.md
47
README.md
@@ -58,12 +58,11 @@
|
||||
* [案例](#案例)
|
||||
* [丢主键为xxx的某条数据](#丢主键为xxx的某条数据)
|
||||
* [xxx表的数据没有到最新](#xxx表的数据没有到最新)
|
||||
* [模块](#模块)
|
||||
* [开发](#开发)
|
||||
* [Hudi 运行代码](#hudi-运行代码)
|
||||
* [sync](#sync)
|
||||
* [运维服务](#运维服务)
|
||||
* [部署工具](#部署工具)
|
||||
* [开发](#开发)
|
||||
<!-- TOC -->
|
||||
|
||||
# 概述
|
||||
@@ -777,15 +776,53 @@ _有时候Pulsar查询可能会有一点问题,导致整个任务失败,建
|
||||
|
||||
## HDFS
|
||||
|
||||
由于运维工具的与实时配置库深度绑定,有时候针对临时环境、备份hudi表、测试环境等,没有运维工具辅助,可以直接查看hudi表实际结构来做简单的运维判断,这一节内容介绍一些和hudi表有关的结构,辅助做一些简单的运维判断。
|
||||
|
||||
一个完整的hudi表有以下部分构成:
|
||||
|
||||
```
|
||||
dws_acct_item_gz
|
||||
├── .hoodie
|
||||
│ ├── .aux
|
||||
│ ├── .schema
|
||||
│ ├── .temp
|
||||
│ ├── 19700101000000001.deltacommit
|
||||
│ ├── 19700101000000001.deltacommit.inflight
|
||||
│ ├── 19700101000000001.deltacommit.requested
|
||||
│ ├── 20240312151719746.deltacommit
|
||||
│ ├── 20240312151719746.deltacommit.inflight
|
||||
│ ├── 20240312151719746.deltacommit.requested
|
||||
│ ├── 20240312153252615.commit
|
||||
│ ├── 20240312153252615.compaction.inflight
|
||||
│ ├── 20240312153252615.compaction.requested
|
||||
│ ├── archived
|
||||
│ └── hoodie.properties
|
||||
└── 200
|
||||
├── .00000911-5f8f-4a72-9687-d78a0ec7ec5f_19700101000000001.log.1_71-200-0
|
||||
├── .00000911-5f8f-4a72-9687-d78a0ec7ec5f_20240312153252615.log.1_71-200-0
|
||||
└── 00000911-5f8f-4a72-9687-d78a0ec7ec5f_4-10-0_19700101000000001.parquet
|
||||
```
|
||||
|
||||
其中,`.hoodie`文件夹通常被称为「时间线」,记录了hudi表的各种操作时间点、顺序和操作内容,`requested`结尾的时间线文件为**操作请求
|
||||
**,表示一个操作的开始,文件内容往往为将要操作的内容;`inflight`结尾的时间线文件为**操作进行中标志**,意思是这个操作正在进行中;没有结尾的文件为
|
||||
**操作完成标志**,表示这个操作已经完成,文件内容往往为一些操作结果,特别的,压缩操作的完成标志,结尾为`commit`。
|
||||
|
||||
时间线可以帮助运维人员了解hudi表的操作的详细时间点,当压缩或者同步出现问题的时候,往往会体现在时间线上,时间线的操作类型还有很多,可以在源码中了解。
|
||||
|
||||
分区文件夹中,存放的是hudi表的实际数据,其中文件命中带有`log`的文件为增量文件,也称为日志文件,存放的是checkpoint之间写入磁盘的增量数据;经过压缩操作之后,增量数据就会被整合成为`parquet`
|
||||
结尾的数据文件;类似`5f8f-4a72-9687-d78a0ec7ec5f`这样的字符串被称为`file_id`
|
||||
,通常一个file_id会对应多个日志文件和一个数据文件;类似`19700101000000001`和`20240312153252615`
|
||||
这样的字符串被称为「时间点」,和时间线上的操作对应,多个时间点对应的文件会同时存在,这是hudi配置里定义的保留文件版本,用于hudi错误回退。
|
||||
|
||||
## 案例
|
||||
|
||||
### 丢主键为xxx的某条数据
|
||||
|
||||
### xxx表的数据没有到最新
|
||||
|
||||
# 模块
|
||||
# 开发
|
||||
|
||||
模块主要分为三部分,包含 Hudi 运行代码、运维服务和部署工具。
|
||||
主要分为三部分,包含 Hudi 运行代码、运维服务和部署工具。
|
||||
|
||||
## Hudi 运行代码
|
||||
|
||||
@@ -796,5 +833,3 @@ sync 模块包含 Hudi 运行的全部业务逻辑,Hudi on flink 的运行模
|
||||
## 运维服务
|
||||
|
||||
## 部署工具
|
||||
|
||||
# 开发
|
||||
|
||||
Reference in New Issue
Block a user