1. 数据架构演进:从数据仓库到数据湖,再到 Lakehouse 与数据网格的融合背景与驱动力
聊数据架构的演进,我习惯先问一个问题:我们到底在解决什么问题?
说白了,过去二十年,企业数据架构的每一次变迁,都是在跟三个老对手较劲——成本、效率、灵活性。你想想看,从最早的数据仓库,到后来的数据湖,再到现在的 Lakehouse 和数据网格,本质上都是在找那个「既要又要还要」的平衡点。
1.1 数据仓库时代:结构化数据的「黄金年代」
90年代末到2000年初,数据仓库是的王者。那时候我在一家零售企业做数仓,每天的工作就是写 ETL,把业务库的数据抽到 ODS,再一层层加工到 DWD、DWS、ADS。嗯,现在回想起来,那套 Kimball 维度建模确实经典。
核心特征:
- Schema-on-Write:写入时定义 schema,数据必须规规矩矩
- 强一致性:ACID 事务,数据质量有保障
- 面向报表:主要服务 BI 和固定报表场景
但问题也很明显。我记得有一次业务部门要接入一批日志数据,结构乱七八糟,光 schema 对齐就花了两周。说白了,数据仓库对非结构化数据几乎束手无策。而且存储成本高,扩展性差,想扩容?加机器,加钱,加时间。
| 维度 | 数据仓库 | 数据湖 |
|---|---|---|
| 数据格式 | 结构化 | 结构化/半结构化/非结构化 |
| Schema 策略 | Schema-on-Write | Schema-on-Read |
| 存储成本 | 高(专用硬件) | 低(廉价对象存储) |
| 事务支持 | ACID | 弱(或没有) |
| 主要用户 | 业务分析师 | 数据科学家、工程师 |
1.2 数据湖时代:一切皆可存,但一切皆可「乱」
2010年左右,Hadoop 生态崛起,数据湖的概念开始流行。我当时参与过一个数据湖项目,口号喊得震天响——「把所有数据存进来,想怎么分析就怎么分析」。结果呢?半年后,数据湖变成了数据沼泽。
为什么会这样?因为数据湖虽然解决了存储成本和数据类型的问题,但它带来了新的麻烦:
- 没有事务保障:写了一半的任务挂了,数据就脏了
- 元数据缺失:数据湖里到底有什么?没人说得清
- 性能不可控:直接读原始文件做分析,慢得让人抓狂
我曾经踩过的坑:一个数据湖项目上线后,业务部门抱怨报表数据对不上。查了半天,发现是多个 ETL 任务同时写同一个目录,互相覆盖了。没有 ACID,数据湖就是「数据沼泽」。
1.3 Lakehouse 的诞生:数据仓库 + 数据湖的「缝合怪」?
2017年,Databricks 提出了 Lakehouse 的概念。我一开始觉得这不过是数据仓库和数据湖的「缝合怪」,但深入了解后发现,它确实解决了核心痛点。
Lakehouse 的核心思路很简单:在数据湖的低成本存储上,加上数据仓库的事务和性能能力。关键技术包括:
- ACID 事务:通过 Delta Lake、Apache Iceberg、Apache Hudi 等表格式实现
- Schema 管理:支持 schema 演进,不再怕字段变更
- 高性能查询:通过文件索引、缓存、向量化执行提升性能
我的建议:如果你还在纠结选数据仓库还是数据湖,直接上 Lakehouse 架构。我最近两个项目都用了 Delta Lake + Spark + Presto 的组合,效果不错。但要注意,Lakehouse 不是银弹,它更适合「分析型」场景,对实时写入的支持还在完善中。
1.4 数据网格:从「集中式」到「分布式」的思维转变
2019年,Zhamak Dehghani 提出了数据网格(Data Mesh)。说实话,我第一次看到这个概念时,觉得它太理想化了。但后来在几个大型企业项目中实践后,我改变了看法。
数据网格的核心原则:
- 领域所有权:数据由业务领域团队拥有和治理
- 数据即产品:每个数据集都要像产品一样被管理
- 自助式数据平台:提供统一的基础设施,降低领域团队的技术门槛
- 联邦式治理:全局标准 + 局部自治
你想想看,一个大型企业可能有几百个数据源,如果全部集中到一个中央数据团队,那这个团队迟早会成为瓶颈。数据网格的思路是把数据责任「下放」给业务团队,中央团队只负责平台和标准。
1.5 为什么需要融合?Lakehouse + Data Mesh 的化学反应
到这里,你可能已经感觉到了:Lakehouse 和数据网格解决的是不同层面的问题。
- Lakehouse 解决的是「技术架构」问题——怎么存、怎么算、怎么保证一致性
- 数据网格 解决的是「组织架构」问题——谁负责、怎么协作、怎么治理
两者结合,才能形成完整的解决方案。我在一个金融客户的项目中实践过这种融合:
- 底层用 Delta Lake 构建 Lakehouse,提供统一的存储和计算能力
- 上层按业务域(风控、营销、交易)划分数据产品,每个域团队负责自己的数据管道
- 中央平台团队提供数据目录、血缘追踪、质量监控等公共服务
融合后的收益:
- 数据交付周期从 2 周缩短到 2 天
- 数据质量事故减少 80%
- 业务团队对数据的「主人翁意识」明显增强
1.6 核心驱动力:为什么是现在?
你可能要问:这些概念早就有了,为什么现在才提融合?我个人认为有三个关键驱动力:
| 驱动力 | 说明 | 我的观察 |
|---|---|---|
| 云原生普及 | 对象存储 + 弹性计算成为标配 | 以前自建 Hadoop 集群,运维成本高得吓人 |
| 开源生态成熟 | Delta Lake、Iceberg、Hudi 等表格式趋于稳定 | 2020年之前,这些技术还在快速迭代,不敢上生产 |
| 组织规模扩大 | 数据量爆炸,单一团队无法支撑 | 我见过一个 200 人的数据团队,光协调就占了一半时间 |
1.7 一张图看懂演进脉络
下面这张图是我自己画的,把整个演进过程串起来。你可以看到,每一次演进都不是「推翻重来」,而是在前一代的基础上解决新的问题。
1.8 小结:这不是选择题,而是组合题
回顾整个演进过程,你会发现一个规律:没有一种架构能解决所有问题。数据仓库强在一致性和性能,但输在成本和灵活性;数据湖赢在存储和多样性,但败在治理和可靠性;Lakehouse 补上了事务和性能的短板,但组织层面的协作问题依然存在;数据网格提供了组织架构的解法,但如果没有统一的技术底座,每个领域团队都在重复造轮子。
所以,我的结论很明确:Lakehouse 和数据网格不是二选一,而是必须组合使用。接下来的章节,我会带你一步步拆解这个融合方案的具体落地细节。