为什么需要湖仓一体

过去十年,企业普遍采用数据湖加数据仓库的双轨架构:数据湖用对象存储承接原始日志、埋点与文件,成本低但缺少事务和约束;数据仓库负责建模与报表,性能好但扩容贵、对半结构化数据支持有限。数据在两者之间反复搬运,链路长、口径容易分叉,实时性也难以保证。当实时看板、特征工程、检索增强问答等场景同时出现,这种割裂开始成为瓶颈。

湖仓一体的思路,是在廉价对象存储之上用开放表格式管理数据,让一份数据同时具备数据湖的灵活性和数据仓库的事务能力。ACID 事务、schema 演进、分区裁剪与时间旅行等特性被下沉到表格式层,计算引擎按需读取,不必再为每类分析复制一份数据。

表格式与目录服务成为关键

近两年,Apache Iceberg、Delta Lake、Apache Hudi 等开放表格式快速成熟,其中 Iceberg 获得了较多引擎与云厂商支持,Spark、Flink、Trino 以及部分实时分析数据库都能直接读写同一张表。与此同时,统一的元数据与权限体系受到重视,各类 Catalog 服务把表、分区、快照与访问控制集中管理,避免出现表在存储里、权限在引擎里的碎片化局面。

落地后带来的四点变化

仍待解决的现实问题

湖仓一体并非没有代价。频繁写入容易产生大量小文件,需要定期合并;元数据随快照增长,查询规划可能变慢;多引擎并发写入时,冲突处理与隔离级别需要仔细设计。此外,不同引擎对同一表格式的支持程度存在差异,团队还要补充目录服务、监控指标和运维规范,人才与经验仍是门槛。

总体来看,湖仓一体的价值不在某一项技术,而在于把存储、计算与治理解耦后再重新组合。较为稳妥的路径是先统一表格式和目录服务,选择一个实时性要求高、边界清晰的场景试点,再逐步把核心链路迁移过来,让架构演进与业务收益同步兑现。