首页/数据/数据工程与 ETL 速查/湖仓一体 Lakehouse 关键能力
管道基础52 条

湖仓一体 Lakehouse 关键能力

湖仓一体在数据湖的存储上叠加表格式的事务与元数据能力:ACID 写入、schema 演进、快照与时间旅行,让分析型查询直接用湖上数据。

湖仓一体是什么

湖仓一体(Lakehouse)是在数据湖的廉价存储上叠加一层表格式,把数据仓库才有的能力搬过来:表级事务、schema 演进、快照与时间旅行。这样同一份数据既能被批处理引擎写,也能被交互查询引擎直接读,不必为了性能再复制一份到仓库里。关键不在存储本身,而在于表格式提供的元数据协议与多引擎互操作能力。

三代形态对比

能力传统数据仓库数据湖湖仓一体
存储成本高(纵向扩展)低(对象存储)低
事务一致性强弱(文件级)表级快照与事务
数据类型结构化为主任意类型结构化为主并支持半结构化
典型生态商业 MPPHDFS 直读Iceberg/Hudi/Delta + 多引擎
典型运维扩容与调优目录与小文件治理表维护:快照过期与合并

湖仓读写路径示意

湖仓读写路径示意
Spark/Flink 写入 → 表格式(快照/日志) → Trino/Spark 查询
批写流读、流写批读的混合场景由表格式的元数据层保证一致性

基本信息

核心组件对象存储 + 表格式(Iceberg/Hudi/Delta)+ 多计算引擎
关键能力ACID 事务、schema 演进、时间旅行、增量读
必须配套快照过期、小文件合并、元数据清理等维护任务
常见引擎Spark、Flink、Trino、Presto 等
选型关注社区活跃度、引擎兼容性、元数据管理方式

典型使用场景

  • 一表多引擎:同一张表既做批处理又做交互式查询,避免数据复制
  • 流批一体写入:流任务持续写入,离线任务按快照读取稳定版本
  • 准实时数仓:ODS 到 DWD 都在湖上完成,减少链路转换次数
  • 数据回溯:按快照读取历史版本,定位问题数据是何时进入的
  • 存算分离:计算集群随时扩缩,存储与元数据长期保留
湖仓的核心不是存储本身,而是表格式提供的元数据协议与多引擎互操作。
表格式带来的能力都要靠维护任务兑现:快照不清理元数据会持续膨胀,小文件不合并查询会越来越慢,这两件事需要写进日常调度而不是等出问题再补。

易错点

  • 宣称支持事务的表格式也需要维护任务(快照过期、小文件合并)配合
  • 多引擎共读前先确认版本兼容,元数据协议差异可能导致读写失败
  • 以为换成表格式就自动变快,查询性能仍取决于分区裁剪与文件大小
  • 元数据保存在对象存储时没做并发控制,多写入方同时提交会互相冲突
  • 把维护任务长期停掉,快照与日志堆积会让元数据操作明显变慢

数据来源与参考

  • Apache Iceberg 官方文档
  • 《Lakehouse: A New Generation of Open Platforms》(Databricks 论文)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌