docs: 补充hudi表结构文档

This commit is contained in:
v-zhangjc9
2024-03-12 18:09:51 +08:00
parent f850ad9c54
commit 4bfe35cb46

View File

@@ -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 的运行模
## 运维服务
## 部署工具
# 开发