dev
Hadoop - Data Warehouse, Data Lake, and Lakehouse
Data Warehouse, Data Lake, Lakehouse
Data Warehouse
Data Warehouse
- 流程:整合多个数据源,经过ETL,将数据加载到 DW 中
- 一般使用传统的关系型数据库:Oracle + MySQL
特点
- 支持事务:ACID
- 存储,计算不分离:数据库有读,也有写(可以通过再加一个 OLAP 实现读写分离)
- 严格的 Schema 控制
- 成本高
Data Lake
Data Lake
- 流程:将数据存储在 HDFS + HBase 上,使用 Hive 查询
特点
- 不支持事务
- 存储,计算分离
- 弱 Schema 控制
- 成本低
Lakehouse
吸收了 DW 和 DL 的优势,产生了湖仓一体的产品
特点
- 支持简单事务
- 存储计算分离
- 支持 Schema 功能
- 成本低
开源产品
- Apache Iceberg(起源:Netflix)
- Apache Hudi(起源:Uber)
- Apache Delta Lake(起源:Databricks)
Core Technology
Transactions
A 原子性:先写 parquet 数据文件,后写 json 元数据文件,写 metadata 的最后一步为重命名 C 一致性:由计算引擎保证 I 隔离性:乐观锁,写 json 文件的时候,比较元数据有没有更新,如果更新的话就重写 D 持久性:由存储引擎保证
Schema Evolution
对每一列赋予一个唯一的 ID data file 和 metadata file 都会记录列的 ID 读数据时,用 ID 做映射
References
- 大数据存储 - 字节内部课 https://juejin.cn/course/bytetech/7169470135168663582