数据湖三剑客:Delta Lake、Hudi 与 Iceberg 详解 | 青训营笔记

135 阅读2分钟

这是我参与「第四届青训营 -大数据场」笔记创作活动的第14篇笔记

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

数据湖发展阶段1-Hadoop

数据湖最开始的概念-分布式存储HDFS

image.png

数据湖发展阶段2-Hive

数据湖的演进-Hive Metastore

image.png

数据湖发展阶段3-湖仓一体

  1. 结合了数据湖和数据仓库的优势
  2. 将数据仓库中对于数据的严格管理直接实现到了低成本的分布式存储之上
  3. Key Features:
    1. Transaction ACID
    2. Schema 管理
    3. 存储计算分离
    4. 支持多种计算引擎和文件格式

image.png

核心技术

文件结构

写入数据湖时:

  1. 按照每条数据的date进行分区
  2. 额外使用metadata文件记录表信息

Time travel

  1. 每次写入都生成一个新的元数据文件,记录变更
  2. 分区数据在Update时,不要删除旧数据,保证新旧共存
  3. 元数据中存储具体的文件路径,而不仅仅是分区文件夹

image.png

如上图

  1. 每一次写入操作,创建一个新的json文件,以递增版本号命名,记录本次新增/删除的文件
  2. 每当产生N个json,做一次聚合,记录完整的分区文件信息
  3. 用checkpoint记录上次做聚合的版本号

Transaction

ACID,是指数据库在写入或更新资料的过程中,为保证事务是正确可靠的,所必须具备的四个特性。

  1. Atomicity:原子性
  2. Consistency:一致性
  3. Isolation:事务隔离
  4. Durability:持久性

原子性

写入流程:

  1. 写入parquet数据文件
  2. 写入json元数据文件