Skip to content

数据建模

维度建模核心概念

维度建模(Dimensional Modeling)是数仓最主流的建模方法,由 Ralph Kimball 提出。

事实表(Fact Table)

记录业务度量事件,每行代表一条业务事实。

特点说明
行数多数十亿行级别
窄而高列少(度量+外键),行多
度量值金额、数量、时长等可加合字段
可加性可沿任意维度相加(Additive)

维度表(Dimension Table)

记录业务描述属性,每行代表一个维度成员。

特点说明
行数少通常几千到几百万
宽而矮列多(描述属性),行少
文本属性供分析时过滤/分组使用

星型模型 vs 雪花模型

星型模型(推荐):事实表 → 直接关联维度表(反规范化)
雪花模型:维度表继续规范化拆分(节省空间,查询复杂)

推荐星型模型:查询性能好,理解简单,BI工具更友好。

缓慢变化维(SCD)

历史属性发生变化时的处理方式:

类型处理方式适用
SCD Type 1直接覆盖,不保留历史错误修正
SCD Type 2新增一行,有效期字段标记(推荐)需要历史分析
SCD Type 3新增字段存旧值只需一个历史版本

电商订单星型模型示例

               dim_customer(客户维度)

dim_product ── fact_order ── dim_date(日期维度)
(产品维度)          │
               dim_region(地区维度)

参见:CRM 数据模型

Harvie 知识库 · VitePress