首页/数据/数仓建模速查/维度建模四步法 Kimball Process
建模基础69 条

维度建模四步法 Kimball Process

维度建模按固定顺序推进:选择业务过程 → 声明粒度 → 确认维度 → 确认事实,四步顺序不可倒置,粒度声明决定后续一切。

数仓建模速查数据更新于 2026-10-13

四步法是什么

维度建模四步法是 Kimball 方法论里强制的推进顺序:选择业务过程 → 声明粒度 → 确认维度 → 确认事实度量。顺序不能倒置的根本原因在于粒度是模型的地基,它决定了维度和度量能表达的范围;先画表结构再回头补业务过程,模型很快会与业务脱节。每一步都要留下产出物:业务过程清单、粒度声明句、维度列表、度量口径表,四份齐了才算这张事实表设计完成,而不是把建表语句写出来就算交付。

基本信息

提出者Ralph Kimball(数据仓库工具箱)
适用层数仓与集市层的维度模型设计,Hive/Spark/ClickHouse/Snowflake 通用
前置输入业务流程梳理、报表需求清单、源系统表结构
产出物每个业务过程一份事实表设计说明
评审节点粒度声明必须过建模评审并写入表注释

典型使用场景

  • 新增业务线建模:先梳理可观测的业务过程,避免直接照搬源系统表结构建表
  • 需求方只给报表口径:按四步反推需要哪个过程、什么粒度,防止指标无处落地
  • 老模型重构:用四步复核每张事实表的粒度,找出同一过程多种粒度的历史遗留
  • 建模评审:按清单逐项过检,把粒度含糊、度量无口径的问题挡在开发之前
  • 新人交接:四步法是理解既有模型的最短路径,看设计说明即可还原当时意图

四步落地模板

四步落地模板
第 1 步 选业务过程:下单 / 支付 / 发货,各自独立成一张事实表  # 不合并不同过程
第 2 步 声明粒度:一行 = 一笔订单中的一个商品行(order_id + sku_id)  # 一句话说清
第 3 步 确认维度:日期 / 用户 / 商品 / 门店 / 促销  # 写入总线矩阵备查
第 4 步 确认度量:数量、应付金额、优惠金额、实付金额  # 登记单位、币种与是否含税
验收标准:粒度句能被开发与业务同时读懂,且不随单次需求频繁改写

四步产出与验收

步骤产出物验收标准
选择业务过程业务过程清单有分析价值、粒度稳定、数据可获取
声明粒度一句话粒度声明写入表注释与文档,评审无歧义
确认维度维度列表跨过程共用的维度已进入总线矩阵
确认度量度量口径表单位、币种、统计范围逐项登记
四步法交给开发的是设计说明而不是建表语句。跳过第 2 步直接建表的团队,通常会在半年后出现同一业务过程多套粒度,此后每个指标都要先解释『我算的是哪张表』。
粒度一旦落进模型再改就是全链路返工:事实表重刷、下游口径重算、历史指标不可比。宁可多花一轮评审时间,也不要在上线后改粒度。

易错点

  • 先画表结构再补业务过程:模型与业务脱节,源系统改一次字段就要重新设计
  • 粒度含糊(一行代表什么说不清):上游按明细写、下游按汇总读,口径争议永远收敛不了
  • 把界面操作当成业务过程:事实表退化成操作日志,分析价值被稀释
  • 为将来可能的下钻提前拍细粒度:成本空转,且细粒度层长期无人使用

数据来源与参考

  • Kimball 维度建模方法论:四步设计过程
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌