下面给你一篇通俗但不浅、结构清晰、从 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:每日销售额
  • 应用层:销售趋势图

👉 一步步从“数据”走到“决策”


十四、面试一句话总结(直接用)

数据仓库是一个面向分析的历史数据系统,通过分层架构对多源数据进行集成、清洗、建模,最终支撑业务分析和决策。