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

126 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第16天

发展历史

数据湖发展阶段-Hadoop

数据湖最开始的概念——分布式存储HDFS使用目录来区分不同的数据集。

好处:同─公司/组织可以使用共享存储心数据访问方便,灵活性高

坏处: 1.没有记录文件的schema(包括列名、列类型),经常使用Schema on Query的方式 2.难以得知数据集包含了那些文件,是通过什么样的分区组织的 3.如果多个程序都在修改这个数据集(修改数据、修改表结构),其他程序难以配合做修改

数据湖发展阶段2-Hive

数据湖的演进——Hive Metastore动对数据湖中的数据集进行集中“定义”

数据湖中存在了哪些数据集; 它们都存储在什么目录; 数据集的schema是什么样子的; 数据集有哪些分区,每个分区的目录是什么;

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

湖仓一体(数据湖的现状)∶的结合了数据湖和数据仓库的优势 将数据仓库中对于数据的严格管理直接实现 到了低成本的分布式存储之上

Key Features: Transaction ACID Schema管理存储计算分离 动支持多种计算引擎和文件格式

核心技术

数据湖中的ACID:

  1. Atomicity:原子性–本次写入要么对用户可见,要么不可见(需要设计)
  2. Consistency:一致性-输入是什么,落盘的就是什么(由计算引擎保证)
  3. Isolation:事务隔离–正确解决读写冲突和写写冲突(需要设计) 4.Durability:持久性–落完数据后,即便服务器重启结果不变(由存储引擎保证)

数据湖三剑客

lceberg工作重点

用户体验

  1. Schema evolution
  2. Partition evolution
  3. Hidden partition
  4. Time Travel
  5. Version Rollback性能
  6. 快速file plan2.更多的filter方式可靠性
  7. ACID Transaction完全开源,由Apache孵化开发

Hudi工作重点:

  1. Timeline service: Hudi管理transaction的方式
  2. Hudi Table Type: Copy on Write /Merge on Read
  3. 高效的Upserts: update or insert
  4. 索引表:快速定位一条数据的位置
  5. Streaming lngestion Service
  6. 完全开源,由Apache 孵化

Delta Lake工作重点

  1. ACID Transaction
  2. Schema校验(不是evolution)
  3. 流批一体
  4. Time Travel
  5. Upsert/Delete
  6. Z-Order优化
  7. 只开源了一部分,由Databricks自己主导开发,Z-order等优化的实现未开源