
1) 【一句话结论】数据湖是原始、多形态数据的集中存储,数据仓库是经过清洗、结构化的分析数据集合;为政府客户建设数据平台时,推荐混合架构(数据湖+数据仓库),具体选择取决于业务需求(如实时分析、历史决策),数据湖适合原始数据存储与探索性分析,数据仓库适合复杂报表与历史追溯。
2) 【原理/概念讲解】数据仓库(DW)是为支持业务分析而设计的、面向主题的、集成的、相对稳定的、反映历史变化的数据集合。类比:整理好的图书馆,书籍(数据)按业务主题(如“销售”“财务”)分类,经过编目(清洗、整合),便于查找(分析)。数据湖(DL)是存储原始数据(结构化、半结构化、非结构化,如日志、图片、传感器数据)的集中存储库,像原始素材库,数据未经过加工,可按需处理。例如,政府交通数据中,数据湖存储交通摄像头视频(非结构化)和传感器JSON数据(半结构化),数据仓库则从数据湖中抽取、清洗后,存储为星型模型(事实表+维度表),用于分析交通流量和事故。
3) 【对比与适用场景】
| 特性 | 数据仓库 (DW) | 数据湖 (DL) |
|---|---|---|
| 定义 | 面向主题、集成、稳定、历史数据 | 原始数据集中存储(结构化/非结构化) |
| 数据形态 | 结构化数据(关系型、星型/雪花模型) | 结构化、半结构化、非结构化(JSON、日志、图片等) |
| 处理逻辑 | ETL(抽取-转换-加载),数据清洗、整合 | ELT(抽取-加载-转换),按需处理(如Spark、Flink) |
| 数据时效 | 历史数据,更新周期长(如每日/每周) | 实时或近实时(如Kafka+Spark Streaming) |
| 价值 | 支持复杂分析、报表、决策支持 | 支持探索性分析、机器学习、数据科学 |
| 注意点 | 需要严格的数据治理、元数据管理 | 需要数据质量监控、安全策略(如脱敏、访问控制) |
4) 【示例】以政府“城市交通”业务为例,数据湖存储原始数据(如传感器日志、GPS轨迹、视频流),数据仓库通过ETL流程处理:抽取数据湖中的结构化传感器数据,清洗后加载到数据仓库的星型模型中。伪代码(Python伪代码):
# 数据仓库 ETL 示例
sensor_data = read_from_data_lake("sensor_logs.json")
cleaned_data = preprocess(sensor_data) # 处理缺失值、异常值
load_to_data_warehouse(cleaned_data, "traffic_fact_table") # 加载到关系型数据库
5) 【面试口播版答案】面试官您好,数据湖和数据仓库的核心区别在于数据形态与处理逻辑。数据仓库是为分析而构建的、经过清洗和结构化的数据集合,像整理好的图书馆,方便做报表和决策;数据湖是原始数据的集中存储,像素材库,包含各种未加工的数据。在为政府客户建设数据平台时,通常推荐混合架构(数据湖+数据仓库),因为政府业务复杂,比如城市治理需要实时监控(用数据湖的实时处理)和长期历史分析(用数据仓库的稳定数据)。具体来说,如果客户需要做实时交通分析(比如实时路况),用数据湖结合Spark Streaming处理原始日志;如果需要做历史事故统计(比如过去一年的事故分布),用数据仓库存储结构化数据。所以,选择哪种架构取决于业务需求:如果侧重实时、探索性分析,优先数据湖;如果侧重复杂报表、历史决策支持,优先数据仓库。综合来看,为政府客户,建议采用数据湖作为数据源,数据仓库作为分析层,既能满足实时需求,又能支持深度分析。
6) 【追问清单】
7) 【常见坑/雷区】