这是我参与「第四届青训营 」笔记创作活动的第16天
发展历史
数据湖发展阶段-Hadoop
数据湖最开始的概念——分布式存储HDFS使用目录来区分不同的数据集。
好处:同─公司/组织可以使用共享存储心数据访问方便,灵活性高
坏处: 1.没有记录文件的schema(包括列名、列类型),经常使用Schema on Query的方式 2.难以得知数据集包含了那些文件,是通过什么样的分区组织的 3.如果多个程序都在修改这个数据集(修改数据、修改表结构),其他程序难以配合做修改
数据湖发展阶段2-Hive
数据湖的演进——Hive Metastore动对数据湖中的数据集进行集中“定义”
数据湖中存在了哪些数据集; 它们都存储在什么目录; 数据集的schema是什么样子的; 数据集有哪些分区,每个分区的目录是什么;
数据湖发展阶段3-湖仓一体
湖仓一体(数据湖的现状)∶的结合了数据湖和数据仓库的优势 将数据仓库中对于数据的严格管理直接实现 到了低成本的分布式存储之上
Key Features: Transaction ACID Schema管理存储计算分离 动支持多种计算引擎和文件格式
核心技术
数据湖中的ACID:
- Atomicity:原子性–本次写入要么对用户可见,要么不可见(需要设计)
- Consistency:一致性-输入是什么,落盘的就是什么(由计算引擎保证)
- Isolation:事务隔离–正确解决读写冲突和写写冲突(需要设计) 4.Durability:持久性–落完数据后,即便服务器重启结果不变(由存储引擎保证)
数据湖三剑客
lceberg工作重点
用户体验
- Schema evolution
- Partition evolution
- Hidden partition
- Time Travel
- Version Rollback性能
- 快速file plan2.更多的filter方式可靠性
- ACID Transaction完全开源,由Apache孵化开发
Hudi工作重点:
- Timeline service: Hudi管理transaction的方式
- Hudi Table Type: Copy on Write /Merge on Read
- 高效的Upserts: update or insert
- 索引表:快速定位一条数据的位置
- Streaming lngestion Service
- 完全开源,由Apache 孵化
Delta Lake工作重点
- ACID Transaction
- Schema校验(不是evolution)
- 流批一体
- Time Travel
- Upsert/Delete
- Z-Order优化
- 只开源了一部分,由Databricks自己主导开发,Z-order等优化的实现未开源