下面给你一篇通俗但不浅、结构清晰、从 0 到架构全景的《数据仓库是什么?一文带你看清它的架构》。
适合:小白入门 / 转数据方向 / 面试理解 / 架构认知。
数据仓库是什么?一文带你看清它的架构
一、先一句话理解数据仓库
数据仓库(Data Warehouse,DW)是一个面向分析、用于存放“历史数据”的系统,目的是支持决策,而不是业务操作。
📌 关键词只有四个:
历史数据 · 分析 · 决策 · 汇总
二、为什么要有数据仓库?(从业务系统说起)
1️⃣ 业务系统(OLTP)的本职工作
比如:
- 用户系统
- 订单系统
- 支付系统
特点是:
| 特点 | 说明 |
|---|---|
| 数据实时 | 只关心“现在” |
| 写多读少 | 增删改频繁 |
| 表结构复杂 | 强事务 |
| 不适合分析 | 查慢、易锁表 |
👉 业务系统 ≠ 分析系统
2️⃣ 真实业务中的问题
老板想问你:
- 上个月销售额趋势?
- 不同地区转化率对比?
- 用户留存率是多少?
你如果直接查业务库:
- SQL 极复杂
- 性能差
- 容易影响线上业务
👉 这就是数据仓库存在的原因
三、数据仓库 vs 数据库(必须分清)
| 对比项 | 数据库(OLTP) | 数据仓库(OLAP) |
|---|---|---|
| 目标 | 支撑业务 | 支撑分析 |
| 数据 | 当前、细节 | 历史、汇总 |
| 操作 | 增删改 | 查 |
| 查询 | 简单 | 复杂 |
| 用户 | 程序 | 人 + BI |
一句话记忆👇
数据库管“做事”,数据仓库管“看结果”
四、数据仓库的 4 个核心特征(经典定义)
来自 Inmon(数据仓库之父):
1️⃣ 面向主题(Subject-Oriented)
- 围绕业务主题:销售、用户、商品
2️⃣ 集成性(Integrated)
- 多系统数据统一口径
3️⃣ 非易失性(Non-Volatile)
- 基本不更新,只追加
4️⃣ 时变性(Time-Variant)
- 有时间维度,可追溯历史
五、数据仓库整体架构全景图(重点)
一个典型的数据仓库架构可以拆成 5 层 👇
数据源层
↓
数据采集层(ETL/ELT)
↓
数据存储层(ODS / DW)
↓
数据服务层
↓
数据应用层
下面一层一层讲清楚。
六、第一层:数据源层(Source)
数据从哪里来?
- 业务数据库(MySQL / Oracle)
- 日志数据(埋点、Nginx)
- 第三方接口
- 文件(CSV / Excel)
📌 特点:
- 数据杂
- 结构不统一
- 质量参差不齐
七、第二层:数据采集层(ETL / ELT)
1️⃣ ETL 是什么?
Extract(抽取) → Transform(转换) → Load(加载)
- 抽取:从源系统拿数据
- 转换:清洗、统一口径
- 加载:写入仓库
常见工具:
- DataX
- Flink
- Spark
- Airflow(调度)
2️⃣ ETL vs ELT
| 模式 | 转换发生在哪里 |
|---|---|
| ETL | 加载前 |
| ELT | 加载后(仓库内) |
📌 大数据场景更偏 ELT。
八、第三层:数据存储层(核心)
这是真正的数据仓库主体,通常分多层 👇
1️⃣ ODS 层(操作数据层)
ODS = 原始数据缓冲区
- 基本不做加工
- 保留源系统结构
- 用于数据追溯
📌 像“数据的仓库仓库”
2️⃣ DW 层(数据仓库层)
通常又细分为:
👉 DWD(明细层)
- 清洗后的明细数据
- 统一字段、去脏
👉 DWS(汇总层)
- 指标聚合
- 面向分析主题
👉 DIM(维度表)
- 用户、时间、地区等
3️⃣ 常见存储技术
- Hive
- ClickHouse
- Doris
- Snowflake
- BigQuery
九、第四层:数据服务层(Service)
作用是什么?
👉 把“数据”变成“可用接口”
- 统一指标口径
- 封装复杂 SQL
- 提供 API / 查询服务
形式:
- 宽表
- 指标层
- 数据 API
十、第五层:数据应用层(Application)
数据最终用在哪里?
- BI 报表(PowerBI / Tableau)
- 数据大屏
- 运营分析
- 管理决策
- 数据产品
📌 这是老板真正看到的部分
十一、常见数据仓库架构流派
1️⃣ Kimball(维度建模)
- 星型模型
- 以分析为中心
- 实用主义
👉 互联网公司常用
2️⃣ Inmon(企业级仓库)
- 先全局,再局部
- 3NF 建模
- 体系完整
👉 传统大型企业常用
十二、数据仓库 ≠ 数据湖(别混)
| 对比 | 数据仓库 | 数据湖 |
|---|---|---|
| 数据结构 | 结构化 | 原始 |
| 用途 | 分析 | 存 |
| 管理 | 强 | 弱 |
| 适合 | 报表 | AI / ML |
📌 现在更多是 湖仓一体
十三、一个简单的例子帮你彻底理解
场景:电商
- 业务库:订单表、用户表
- ODS:每天同步一份
- DWD:清洗后的订单明细
- DWS:每日销售额
- 应用层:销售趋势图
👉 一步步从“数据”走到“决策”
十四、面试一句话总结(直接用)
数据仓库是一个面向分析的历史数据系统,通过分层架构对多源数据进行集成、清洗、建模,最终支撑业务分析和决策。
发表回复