数据湖选型


发布于 2025-06-01 / 7 阅读 / 0 评论 /
数据湖选型指南,介绍各种数据湖的应用场景

Delta Lake

DataBricks公司推出的数据湖解决方案。

流批一体的Data Lake存储层,支持update/delete/merge

写入仅支持spark,支持dataframe的批和流写入,以及SQL的insert或insert overwrite

查询支持spark和presto

设计思路

提供流批一体的数据处理。

优点

(1)支持多种分析引擎

(2)支持较快的upsert/delete

(3)存储层廉价

(4)小文件管理compaction

(5)支持流批读写

(6)表格式演进

(7)ACID语义保证,多版本保证

(8)支持python接口

Iceberg

Netflix开源的用于跟踪超大规模表的新格式,专为对象存储(S3)而设计。

设计思路

iceberg提供高性能的分析和可靠的数据管理,完美地解耦了计算引擎和存储引擎,便于多样化计算引擎和文件格式,很好地完成了数据糊架构中Table Format这一层的实现,因此更容易成为Table Format层的开源事实标准。核心抽象对接新的计算引擎的成本比较低,并且提供先进的查询优化功能和完全的 schema 变更。

iceberg也朝着流批一体的数据存储层发展,manifest和snapshot的设计,有效地隔离不同transaction的变更,非常方便批处理和增量计算。

优点

(1)Meta管理可扩展

(2)通用的ACID

(3)抽象性极佳且通用

(4)Meta性能佳,非partition字段可高效过滤,文件级别统计信息用于过滤

(5)减少FS API语义依赖,可扩展到S3

(6)iceberg项目背后的社区资源非常丰富。国外的Netflix、Apple、Linkedin、Adobe等公司都有PB级别的生产数据运行在iceberg上。

Hudi

提供fast upsert/delete和compaction功能,支持Upserts、Deletes和Incremental数据处理,支持三种数据写入方式:Upsert、Insert和Bulk_Insert

设计思路

Hudi设计初衷是为了incremental的upsert,更注重于高效率的 Upsert 和近实时更新,提供了 Merge On Read 文件格式,以及便于搭建增量 ETL管道的增量查询功能。

优点

(1)支持增量拉取

(2)严格Table Schema

(3)优秀的可拓展性

(4)支持多种分析引擎

(5)支持快速upsert/delete

功能对比

如下图所示:

对比项

Delta Lake

Hudi

Iceberg

updata/delete

支持

支持

支持

文件合并

手动

自动

手动

历史数据清理

自动

自动

手动

文件格式

parquet

parquet、avro

parquet、avro、orc

计算引擎

hive、spark、presto

hive、spark、presto、flink

hive、spark、presto、flink

存储引擎

hdfs、s3、azure

hdfs、s3、obs、alluxio、azure

hdfs、s3

SQL

支持

支持

支持

ACID

支持

支持

支持

隔离级别

Serialization、Write Serialization、Snapshot Isolation

Snapshot Isolation

Write Serialization

并发写

支持

支持

支持

TimeLine

支持

支持

支持

索引

不支持

支持

不支持

可扩展的元数据管理

支持

支持

支持

Schema约束和演进

支持

支持

支持