四步法是什么
维度建模四步法是 Kimball 方法论里强制的推进顺序:选择业务过程 → 声明粒度 → 确认维度 → 确认事实度量。顺序不能倒置的根本原因在于粒度是模型的地基,它决定了维度和度量能表达的范围;先画表结构再回头补业务过程,模型很快会与业务脱节。每一步都要留下产出物:业务过程清单、粒度声明句、维度列表、度量口径表,四份齐了才算这张事实表设计完成,而不是把建表语句写出来就算交付。
基本信息
| 提出者 | Ralph Kimball(数据仓库工具箱) |
|---|---|
| 适用层 | 数仓与集市层的维度模型设计,Hive/Spark/ClickHouse/Snowflake 通用 |
| 前置输入 | 业务流程梳理、报表需求清单、源系统表结构 |
| 产出物 | 每个业务过程一份事实表设计说明 |
| 评审节点 | 粒度声明必须过建模评审并写入表注释 |
典型使用场景
- 新增业务线建模:先梳理可观测的业务过程,避免直接照搬源系统表结构建表
- 需求方只给报表口径:按四步反推需要哪个过程、什么粒度,防止指标无处落地
- 老模型重构:用四步复核每张事实表的粒度,找出同一过程多种粒度的历史遗留
- 建模评审:按清单逐项过检,把粒度含糊、度量无口径的问题挡在开发之前
- 新人交接:四步法是理解既有模型的最短路径,看设计说明即可还原当时意图
四步落地模板
四步落地模板
第 1 步 选业务过程:下单 / 支付 / 发货,各自独立成一张事实表 # 不合并不同过程
第 2 步 声明粒度:一行 = 一笔订单中的一个商品行(order_id + sku_id) # 一句话说清
第 3 步 确认维度:日期 / 用户 / 商品 / 门店 / 促销 # 写入总线矩阵备查
第 4 步 确认度量:数量、应付金额、优惠金额、实付金额 # 登记单位、币种与是否含税
验收标准:粒度句能被开发与业务同时读懂,且不随单次需求频繁改写四步产出与验收
| 步骤 | 产出物 | 验收标准 |
|---|---|---|
| 选择业务过程 | 业务过程清单 | 有分析价值、粒度稳定、数据可获取 |
| 声明粒度 | 一句话粒度声明 | 写入表注释与文档,评审无歧义 |
| 确认维度 | 维度列表 | 跨过程共用的维度已进入总线矩阵 |
| 确认度量 | 度量口径表 | 单位、币种、统计范围逐项登记 |
四步法交给开发的是设计说明而不是建表语句。跳过第 2 步直接建表的团队,通常会在半年后出现同一业务过程多套粒度,此后每个指标都要先解释『我算的是哪张表』。
粒度一旦落进模型再改就是全链路返工:事实表重刷、下游口径重算、历史指标不可比。宁可多花一轮评审时间,也不要在上线后改粒度。