介绍
数据湖项目 = 建一个超大、统一的 “数据蓄水池”,把企业所有数据全都扔进去统一存、统一算、统一用。
1. 先打个比方
- 传统数据库:像冰箱分格,只能放整理好的菜,放之前必须切好、分类,乱的不能进。
- 数据仓库:像预制菜仓库,菜都加工好了,只能按菜谱取。
- 数据湖:像一个超大水池,生肉、蔬菜、海鲜、饮料、甚至没处理的泥土水……全都能直接倒进去,后面想用的时候再洗、切、煮、做分析。
2. 官方一点的定义
数据湖(Data Lake) 是一个:
集中存储所有类型数据的存储平台
支持:结构化数据(表)、半结构化(JSON / 日志)、非结构化(图片、音频、视频)
存的时候不强制改格式、不强制清洗,保留原始数据
上层用 Spark、Flink、AI 模型去做计算、挖掘、训练
数据湖项目,就是企业从零搭建这套系统:买存储 → 搭架构 → 接入各业务数据 → 做权限、治理、计算、报表、AI 分析的一整个工程。
3. 数据湖里都存啥?
- 业务库数据:MySQL、订单、用户表
- 日志:APP 日志、服务器访问日志
- 埋点数据:用户点击、行为轨迹
- 文件:Excel、CSV、压缩包
- 多媒体:图片、音视频、IoT 设备上报数据
- 甚至第三方接口返回的 JSON
4. 为什么要做数据湖项目?
以前企业是:
财务一套库、运营一套库、设备一套库,数据散得到处都是,想整体分析根本做不到。
做数据湖就是为了:
- 数据统一:所有数据在一个地方
- 成本低:用对象存储,比数据库便宜很多
- 支持 AI / 大数据:AI 训练需要海量原始数据,湖最合适
- 灵活:想怎么算就怎么算,不被表结构限制
5. 最简单的对比
| 类型 | 存什么 | 存前要整理吗 | 适合场景 | 成本 |
|---|---|---|---|---|
| 数据库 | 规整表数据 | 必须 | 日常业务增删改查 | 高 |
| 数据仓库 | 加工好的报表数据 | 必须 | 固定报表、统计 | 较高 |
| 数据湖 | 所有原始数据 | 不用,直接扔 | 大数据分析、AI、探索式挖掘 | 低 |
6. 一句话总结
数据湖项目,就是给企业建一个超大统一的数据底座,把所有数据都存进去,用来做大数据分析、数据挖掘和人工智能。
数据湖项目技术架构
一、整体分层(从上到下)
真实项目一般分 5 层:
- 数据源层
- 数据接入层
- 数据湖存储层(核心)
- 数据计算与加工层
- 数据服务 & 应用层
再加一个必备的 公共基础组件层(元数据、权限、调度)。
二、每层到底干嘛?用什么技术?
1)数据源层
就是数据从哪来。
- 业务库:MySQL、PostgreSQL、Oracle
- 日志:Nginx、应用日志、埋点日志
- IoT / 设备数据:传感器、车机、工业数据
- 文件:Excel、CSV、PDF、图片、音视频
- 第三方数据:API、爬虫、外部合作伙伴
作用:提供原始数据。
2)数据接入层
把各种数据同步进数据湖。
常见技术:
- CDC 增量同步:Canal、Debezium、Flink CDC
- 日志采集:Filebeat、Fluentd、Logstash
- 消息队列:Kafka(缓冲、削峰、实时)
- 批量同步:DataX、Sqoop
作用:
- 不侵入业务
- 实时 / 批量把数据捞到湖里
- 保证数据不丢、不乱
3)数据湖存储层(核心)
真正的 “湖” 就在这一层。真实项目几乎都按 3 层存储规范 划分:
① ODS 层(原始数据层)
- 全称:Operational Data Store
- 直接把业务库、日志原样写入
- 不做任何清洗、不删字段
- 格式:Parquet、ORC、JSON
- 存储:HDFS / S3 / OSS / COS
作用:
- 保留原始数据,可回溯
- 出问题能重新计算
② DWD 层(明细数据层)
- 全称:Data Warehouse Detail
- 做轻度清洗:去重、空值处理、统一字段名、统一时间格式、过滤脏数据
- 按天 / 小时分区
作用:给后续计算提供干净、统一的明细数据。
③ DWS 层(汇总数据层)
- 全称:Data Warehouse Service
- 按业务主题聚合:用户宽表、订单宽表、日活、留存、GMV、销售统计表
作用:提前算好结果,加速查询,不让报表每次从头算。
4)数据计算与加工层
负责把 ODS → DWD → DWS 跑出来。
两类计算:
(1)离线计算(T+1 报表)
- 技术:Hive、Spark SQL、Spark
(2)实时计算(实时大屏、实时推荐)
- 技术:Flink、Kafka Streams
作用:
- 清洗、关联、聚合
- 宽表构建、指标计算
5)数据服务 & 应用层
把算好的数据给业务用。
常见组件:
- 即席查询:Presto、Trino
- OLAP 加速:ClickHouse、Doris、StarRocks
- 数据服务 API:DataAPI、接口平台
- 可视化:Superset、FineBI、Tableau
最终给这些用:
- 报表、大屏、推荐系统
- 用户画像、AI 训练、运营分析
三、必须配套的 “底座组件”
真实项目缺一不可:
1)元数据管理
- 组件:Hive Metastore、Apache Atlas
- 作用:记录表在哪、字段是什么、谁创建的、数据血缘。
2)任务调度
- 组件:Azkaban、Airflow、DolphinScheduler
- 作用:定时跑任务、按顺序执行、失败告警。
3)权限与治理
- 组件:Ranger、Sentry
- 作用:控制谁能看什么数据,防泄露、防误删。
4)集群资源管理
- 组件:YARN、K8s
- 作用:管理 CPU、内存,避免任务互相打架。
四、最真实的一套技术栈(企业级)
给你直接抄作业版:
- 存储:HDFS / 阿里云 OSS
- 接入:Canal + Kafka + Flink CDC
- 计算:Spark + Flink
- 数仓分层:ODS → DWD → DWS
- 查询加速:ClickHouse / Doris
- 调度:DolphinScheduler
- 元数据:Hive Metastore + Atlas
- 可视化:Superset / FineBI
五、一句话串起整个流程
业务库 / 日志 / 设备数据 → 通过 Kafka/CDC 接入 → 进 ODS 原始层 → 清洗成 DWD 明细层 → 聚合成 DWS 宽表层 → 通过 ClickHouse 提供查询 → 最终给报表、大屏、AI 使用。