数据湖的核心优势在于它原生保留原始数据,让你后续可以从任意角度重新分析,无需受限于最初的建模逻辑。
数据湖和传统数据仓库的区别在哪里?
传统数据仓库要求你在加载数据之前就设计好模型,而数据湖允许你以原始格式存储数据,直到需要分析时才定义结构,这种差异带来了根本性的变化。
| 维度 | 数据湖 | 数据仓库 |
|---|---|---|
| 数据存储 | 原始格式,无预先定义模式 | 经过ETL转换,模式固定 |
| 处理方式 | Schema-on-Read(读时定义模式) | Schema-on-Write(写时定义模式) |
| 灵活性 | 极高,支持探索性分析和机器学习 | 较低,适合固定报表和查询 |
| 成本结构 | 存储成本低,计算成本灵活 | 存储和计算成本较高 |
| 适用场景 | 数据科学、合规审计、实时分析 | 业务报表、绩效监控、数据治理 |
为什么原始数据如此重要?
原始数据包含了所有细节,没有经过聚合和过滤,因此你可以回退到任何时间点,用新的算法或业务规则重新处理数据,当你的机器学习模型需要新特征时,直接从数据湖中提取原始日志即可,无需重新采集。
数据湖的Schema-on-Read如何工作?
当你读取数据湖中的数据时,通过元数据层或查询引擎动态定义结构,这意味着同一份数据可以被不同部门用不同的模式使用:销售部门看到的是客户维度表,而风控部门看到的是交易流水,底层是同一份原始数据。

数据湖应用场景有哪些?基于原始数据的多种分析角度
数据湖的灵活性使其适用于多种场景,每一个场景都依赖于原始数据的可重复访问。
数据科学和机器学习
数据科学家需要原始数据来探索特征、训练模型,数据湖允许他们访问全量历史数据,而不用受限于数据仓库的聚合表,据统计,采用数据湖的企业,模型迭代速度提升了相当比例。
合规审计与历史回溯
金融、医疗等行业需要保留原始交易记录以应对监管,数据湖以原始格式保存日志,满足审计要求,同时保留数据完整性,无需担心数据被意外修改。
实时分析与流处理
数据湖可以接收实时流数据,如IoT传感器、用户点击流,并立即提供给分析系统,这些数据也以原始形式存储,供后续离线分析使用。
跨部门数据共享
数据湖作为企业级数据资产中心,不同部门可以基于同一份原始数据定义不同的视图,避免了数据孤岛和重复采集。
如何选择数据湖解决方案?从价格到架构的考量
选择数据湖方案时,你需要考虑存储能力、计算引擎、元数据管理、安全性和成本,市面上有开源方案和商业方案,各有优劣。
开源方案 vs 商业方案
- 开源方案:Apache Hadoop、Apache Spark、Delta Lake、Apache Iceberg、Apache Hudi,灵活性高,但需要较强的技术团队运维。
- 商业方案:AWS Lake Formation、Azure Data Lake、简米云Data Lake、华为云Lakehouse,提供托管服务,降低运维复杂度,但存在厂商锁定风险。
行业共识认为,中小型企业更倾向商业方案,而大型企业倾向于开源定制。

数据湖价格因素分析
数据湖成本主要由存储、计算和元数据服务构成,存储成本较低,通常按对象存储计费,但需要注意数据湖的价格不仅仅在存储,还包括数据湖的构建和运维成本,数据湖解决方案中,数据湖架构设计需要投入人力成本,据第三方调研,国内企业数据湖总体拥有成本呈逐年下降趋势,国内云厂商的数据湖价格通常包括存储费和计算费,存储费按量计费,计算费按时长或CU计费。
数据湖架构设计关键点
- 数据分层:建议将数据分为原始层、清洗层、应用层,便于管理。
- 格式选择:选择Parquet、ORC、Avro等列式存储格式,平衡压缩和查询性能。
- 事务支持:如果对数据一致性要求高,选择支持ACID的格式,如Delta Lake或Iceberg。
- 分区策略:按时间、地域等维度分区,提高查询效率。
业内专家指出,数据湖架构设计中,元数据管理是决定成败的关键,没有完善的元数据,数据湖很容易变成数据沼泽。
数据湖保留原始数据的具体操作路径
想要真正发挥数据湖保留原始数据的优势,你需要按以下步骤操作。
数据摄入,保持原始格式
在数据摄入阶段,避免对数据进行任何结构转换,无论是日志文件、API响应还是数据库变更流,都直接以原始格式(如JSON、Avro、CSV)写入数据湖的原始区域。
选择存储格式和分区策略
虽然原始数据存储为原始格式,但为了后续分析,建议将数据转换为列式格式(如Parquet)并按照时间、地域等维度分区,这样可以大幅降低存储体积,提高查询性能。

建立元数据层,便于发现
使用Hive Metastore、AWS Glue、简米云DataWorks等工具注册元数据,确保数据湖中的数据可以被快速定位和理解,元数据层指向原始数据,但在读取时应用模式。
定义读取时的模式
在分析时,通过查询引擎(如Spark、Presto、Trino)动态定义模式,在Spark中可以在读取JSON时指定schema,实现不同角度的分析。
关于数据湖保留原始数据的常见问题
问题1:数据湖和数据仓库到底有什么区别?
数据湖存储原始数据,不预先定义模式;数据仓库存储经过加工的数据,模式固定,数据湖适合探索性数据分析,数据仓库适合绩效报表和业务监控,两者可以共存,很多企业采用湖仓一体架构。
问题2:数据湖可以保留所有格式的原始数据吗?
是的,数据湖可以存储结构化数据(如CSV)、半结构化数据(如JSON、XML)和非结构化数据(如视频、图片),这种多样性是其核心优势,但需要相应的元数据管理来避免数据沼泽。
问题3:数据湖的存储成本是否比数据仓库更低?
通常情况下,数据湖使用对象存储,单位存储成本较低,但数据湖的整体成本还包括计算、网络和运维,如果数据湖架构设计不合理,总成本可能高于预期,多数情况下,合理规划后数据湖方案是经济的。
数据湖的原始数据保留能力,让你从今天的数据中看到昨天的可能,也能为明天的分析做好准备,无论你是数据科学家还是业务决策者,数据湖都为你提供了无限的试验空间,数据湖的价值不在于存储,而在于你用它发现了什么。