数据湖三剑客:Delta Lake、Hudi 与 Iceberg 详解
这是我参与「第四届青训营 」笔记创作活动的第4天
数据湖的发展
1. 最初概念 —— 分布式存储HDFS
缺点:
导致数据沼泽!
2. Hive
对数据湖中的数据集进行 集中定义
缺点:
1. 读取到的文件不同
2. 不方便删除数据
3. 湖仓一体
湖仓一体的优势和特点:
小结
数据湖的概念很新,目前还在一直演进中,没有权威的定义
核心技术
文件结构
Time Travel
Transaction【事务】—— ACID!
如何达成ACID:
如何达成原子性:
1. 只读取以版本号数字命名的json文件(最大版本号)
2. 当commit完之后,才能读取新的写入
如何达成事务隔离:
Schema Evolution
- 新增列赋予新ID,删除过的ID不再用
- 将ID写入数据,用于判断数据版本
PS:
- Data 是 parquet数据文件 —— 先写入
- Metadata 是 Json 元数据文件 —— 后写入
三大数据湖的优劣
Iceberg
Layer
Data File Filter
Hudi
Delta Lake
流批一体
总结
技术选型
数据湖的发展
1. 最初概念 —— 分布式存储HDFS
缺点:
导致数据沼泽!
2. Hive
对数据湖中的数据集进行 集中定义
缺点:
1. 读取到的文件不同
2. 不方便删除数据
3. 湖仓一体
湖仓一体的优势和特点:
小结
数据湖的概念很新,目前还在一直演进中,没有权威的定义
核心技术
文件结构
Time Travel
Transaction【事务】—— ACID!
如何达成ACID:
如何达成原子性:
1. 只读取以版本号数字命名的json文件(最大版本号)
2. 当commit完之后,才能读取新的写入
如何达成事务隔离:
Schema Evolution
- 新增列赋予新ID,删除过的ID不再用
- 将ID写入数据,用于判断数据版本
PS:
- Data 是 parquet数据文件 —— 先写入
- Metadata 是 Json 元数据文件 —— 后写入