大数据面试问答-数据湖

1. 概念

数据湖(Data Lake):
以原始格式(如Parquet、JSON等)存储海量原始数据的存储库,支持结构化、半结构化和非结构化数据(如文本、图像)。采用Schema-on-Read模式,数据在读取时才定义结构,适合机器学习、探索性分析等场景。

2. 与数仓对比

维度数据仓库数据湖
数据存储处理后的结构化数据原始数据(结构化/半结构化/非结构化)
Schema处理Schema-on-Write(写入时定义结构)Schema-on-Read(读取时定义结构)
处理流程ETL(提取-转换-加载)ELT(提取-加载-转换)
用户群体业务分析师、BI工程师数据科学家、数据工程师
查询性能高性能,优化用于复杂查询依赖计算引擎(如Spark),灵活性高
扩展性垂直扩展为主,成本较高水平扩展,成本较低(基于对象存储)
数据治理严格的数据质量与元数据管理需额外治理(易成“数据沼泽”)
典型技术栈Snowflake、Redshift、BigQuery(现代云数据仓库)AWS S3、Azure Data Lake + Spark/Hive

数据仓库的治理是“被动”的(写入时已结构化),而数据湖的治理是“主动”的(需额外定义元数据和质量规则)。两者的治理目标一致,但数据湖的治理复杂度更高。

2.1 优缺点分析

数据仓库
优点:数据一致性强、查询高效、易于业务用户使用。
缺点:扩展成本高、灵活性差,难以处理非结构化数据。

数据湖
优点:存储成本低、支持多样数据类型、适合探索性分析。
缺点:缺乏内置治理,需额外工具管理元数据和质量(如Apache Atlas、AWS Glue)。

2.2 应用场景

数据仓库:
定期生成标准化报表(如销售月报)。
需要高性能聚合查询的OLAP场景。

数据湖:
机器学习模型训练(需原始数据)。
日志分析、IoT设备数据存储等非结构化处理。

3. Delta Lake与Apache Hudi

两者均属于Lakehouse技术,旨在为数据湖添加数据仓库的管理能力,解决传统数据湖的痛点:
ACID事务:支持并发写入和读一致性。
数据版本控制:时间旅行(Time Travel)功能。
更新/删除:支持CDC(Change Data Capture)场景。
优化查询性能:通过索引、压缩等技术加速分析。

3.1 Delta Lake

背景:由Databricks开源,深度集成Spark生态。

核心功能:
事务日志:通过JSON事务日志(Delta Log)记录所有操作,实现ACID。
Schema演进:支持自动合并Schema变更(如新增列)。
优化工具:OPTIMIZE命令压缩小文件,Z-Order优化数据布局。

用例:
流批一体处理(同一张表同时支持流式写入和批量分析)。
机器学习特征存储(支持版本回滚)。

# 将数据保存为Delta格式  
df.write.format("delta").save("/data/events")  
# 时间旅行查询  
spark.read.format("delta").option("versionAsOf", 10).load("/data/events")  

3.2 Apache Hudi

背景:由Uber开源,强调高效的增量更新和删除。
核心功能:
索引机制:支持布隆过滤器、HBase索引等,快速定位数据文件。
表类型:
Copy-on-Write:更新时重写文件(适合读多写少)。
Merge-on-Read:更新时追加日志文件(适合写密集场景)。

用例:
数据库CDC同步(如MySQL Binlog入湖后更新Hudi表)。
实时数据湖(支持低延迟写入)。

// 写入Hudi表  
hoodieWriteConfig = HoodieWriteConfig.newBuilder().withPath("/data/events").build();  
JavaRDD<HoodieRecord> records = ...;  
client.upsert(records, commitTime);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟意昶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值