1. 数据湖概述:什么是数据湖、数据湖与数据仓库的区别、数据湖的核心价值与挑战
大家好,欢迎来到这门课。我是你们的老朋友,一个在数据坑里摸爬滚打多年的架构师。
今天咱们聊聊数据湖。嗯,这词儿这几年特别火。但说实话,很多人对它的理解还停留在「存数据的地方」。这就像说「汽车是四个轮子的铁壳子」——没错,但远远不够。
1.1 什么是数据湖?
数据湖,说白了就是一个集中式存储库。它能存你所有的数据——结构化的、半结构化的、非结构化的。存的时候,不用先想好怎么用。
我习惯把它比作一个「真实的水库」。你想想看,水库不会管你接水去浇花还是发电,它只管把水存好。数据湖也一样,它不关心你将来是做报表还是跑机器学习,先把数据原样存下来再说。
核心特征:
- 存原始数据:不转换、不建模,保持数据本来的样子
- Schema-on-Read:读的时候再定义结构,写的时候不限制
- 统一存储:一个地方放所有数据,不用到处找
- 低成本:通常用廉价的对象存储,比如 S3、OSS、HDFS
我记得刚入行那会儿,公司有个项目,业务方要分析用户行为日志。数据在好几套系统里散着,光 ETL 就写了三周。后来换了数据湖方案,直接把日志往 S3 一扔,想怎么查怎么查。那感觉,真爽。
1.2 数据湖 vs 数据仓库
很多人搞不清这俩的区别。我直接给你画张表,一目了然。
| 维度 | 数据湖 | 数据仓库 |
|---|---|---|
| 数据形态 | 原始数据,不加工 | 清洗、转换、建模后的数据 |
| Schema | 读时定义(Schema-on-Read) | 写时定义(Schema-on-Write) |
| 数据类型 | 结构化 + 半结构化 + 非结构化 | 主要是结构化数据 |
| 用户 | 数据科学家、分析师、工程师 | 业务分析师、报表用户 |
| 典型用途 | 探索分析、机器学习、归档 | BI 报表、KPI 监控、固定查询 |
| 存储成本 | 低(对象存储) | 高(高性能存储) |
| 数据质量 | 可能脏乱差 | 经过治理,质量高 |
你可能会问:「那我到底该用哪个?」
我的建议是:别二选一。现在很多企业都是「湖仓一体」——数据湖存原始数据,数据仓库存加工后的精华。两者互补,不是替代关系。
一个小经验:如果你要做探索性分析,不知道最终要什么,先用数据湖。如果你要出固定报表,每天跑一样的查询,用数据仓库。别混着用,容易出问题。
1.3 数据湖的核心价值
数据湖到底好在哪?我总结了四点。
- 灵活性:数据进来不用提前建模。想怎么分析都行,随时改主意。
- 低成本:对象存储比传统数仓便宜一个数量级。TB 级数据,成本差好几倍。
- 全量数据:不用取舍,所有数据都留着。哪天想回溯历史,随时能查。
- 支持多种分析:SQL、Python、Spark、Flink……想用什么工具都行。
我曾经帮一家电商公司搭数据湖。他们把过去三年的点击日志、订单数据、客服录音全扔进去。后来做用户画像,发现录音里能提取情绪特征,跟订单数据一关联,居然能预测退货率。这要是用传统数仓,根本做不到。
1.4 数据湖的挑战
别光听好处。数据湖要是没规划好,分分钟变成「数据沼泽」。
⚠️ 常见坑:
- 数据沼泽:数据往里一扔,没人管。时间长了,谁也找不到、看不懂。
- 性能问题:没分区、没索引,查个小数据都要全表扫描,慢得要命。
- 数据质量:原始数据里什么妖魔鬼怪都有,脏数据能把你搞疯。
- 权限混乱:谁都能读,谁都能写,安全风险极高。
我记得有个项目,客户说「我们数据湖里存了 500TB 数据」。我一查,好家伙,80% 是重复的、过期的、格式错误的垃圾。最后花了三个月清理,才把数据湖救回来。
所以,数据湖不是「往里扔就完事」。你需要规划——尤其是分区规划。这也是咱们这门课的核心。
1.5 数据湖知识体系总览
下面这张图,帮你快速建立整体认知。咱们这门课就围绕这几个模块展开。
看到没?分区规划是数据湖的核心环节。它直接决定了你的查询性能、存储成本和治理难度。这也是为什么我把这门课叫做《数据湖分区规划从入门到精通》。
好了,第一章就到这里。记住一句话:数据湖不是终点,而是起点。怎么用好它,才是真本事。