首页/数据/数仓建模速查/事实表命名与度量字段规范
建模基础69 条

事实表命名与度量字段规范

事实表以 fact_ 前缀 + 过程命名(fact_order),粒度后缀(_d/_di/_df)区分增量与快照;度量字段带单位语义(amount/amt_qty)。

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

事实表命名规范是什么

事实表命名以 fact_ 前缀加业务过程名称为主体,如 fact_order、fact_payment;需要区分粒度或刷新方式时加后缀(_di 日增量、_df 全量、_d 日快照)。度量字段用名词加语义后缀,金额明确写 amount 并在注释里标单位与币种,数量写 qty 或 cnt。时间字段至少两列:业务发生时间与数据入库时间,前者用于分析口径,后者用于问题排查与重跑定位。

基本信息

表名结构fact_<业务过程>[_粒度后缀]
常用后缀_di 日增量、_df 全量快照、_d 日粒度汇总
度量命名名词 + 语义后缀,如 item_amt、discount_amt、qty
时间字段业务时间 create_time 与入库时间 etl_time 成对出现
字段注释单位、币种、是否含税必须写明

典型使用场景

  • 新建事实表:按规范命名后,使用者不查文档也能判断粒度与刷新方式
  • 血缘梳理:统一前缀让表依赖关系可脚本化扫描,排查上下游更快
  • 跨团队协作:交易域与财务域表名风格一致,评审时不必先对齐命名
  • 字段自查:金额字段命名与注释齐备,避免币种与含税口径被误读
  • 历史表治理:存量表按规范逐步改名,把例外登记在豁免清单里

命名与字段示例

命名与字段示例
-- 表名:fact_order_di(日增量订单明细)
-- 命名三段式:前缀 + 业务过程 + 粒度后缀
order_no      string  COMMENT '订单号,业务键',
user_sk       bigint  COMMENT '用户代理键',
item_amt      bigint  COMMENT '商品应付金额,单位分,不含运费',
discount_amt  bigint  COMMENT '优惠金额,单位分,已含券与活动',
qty           int     COMMENT '商品件数',
create_time   string  COMMENT '下单时间,业务口径使用',
etl_time      string  COMMENT '入库时间,用于重跑与排查',

命名对照

对象规范写法常见错误
事实表名fact_order_diorder_fact_tab 前缀后缀混乱
金额字段item_amt / pay_amtamount1 / amt2 无语义
数量字段qty / cntnum 分不清件数还是笔数
时间字段create_time / etl_time单个 time 字段含义不明
代理键user_skuser_key 与业务键混淆
命名规范的价值是把隐式约定变成显式接口:使用者看到表名就知道粒度,看到 amt 就知道单位在注释里,减少每次沟通都要重新确认口径的成本。
度量字段的注释不是可选项。单位、币种、是否含税三项不全时,任何一次跨域对账都要重新翻代码确认,这是最常见的返工来源。

易错点

  • 金额字段不标币种与含税口径:业财对账时双方各执一词,扯皮周期以周计
  • 同一业务过程多套命名:血缘工具扫不出完整链路,变更影响面评估失真
  • 粒度后缀缺失或随意使用:使用者按明细口径读取汇总表,指标重复计算
  • 只写一个时间字段:分析口径与入库时间混用,跨期归因长期错位

数据来源与参考

  • 数仓建模规范实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌