首页/数据/数仓建模速查/一致性事实 Conformed Fact
建模基础69 条

一致性事实 Conformed Fact

一致性事实是在多个事实表间定义一致、可直接比较或合并的度量;金额、数量类度量都要明确币种、单位与口径版本。

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

一致性事实是什么

一致性事实指同一个度量在多个事实表里定义完全一致:名称、单位、币种、统计范围、含税与否全部对齐,因此可以直接相加或对比。它的价值集中在跨过程分析,订单金额与支付金额能否按同一口径对账,取决于两边是否都按『人民币分、不含运费、按业务发生时间』这类完整声明来计算。一致性事实与一致性维度是一对概念:维度对齐解决怎么分组,事实对齐解决数字能不能比。

基本信息

对齐要素名称、单位、币种、统计范围、含税标志
落地载体度量字典或指标平台统一登记
影响面跨事实表可加性与可比性
变更流程口径调整走评审,同步更新下游文档

典型使用场景

  • 业财对账:交易域与财务域的金额必须同口径,否则差异解释不清
  • 跨过程漏斗:下单到支付到退款各环节的金额环比,需要统一币种与含税口径
  • 多源合并:同一过程来自 App 与小程序两套系统,度量先对齐再并表
  • 指标平台建设:指标卡引用一致性事实,避免每张报表各写一套 SQL 口径
  • 口径升级回溯:变更后新旧数据可比性评估,需要登记版本与生效时间

口径声明与查询

口径声明与查询
-- 度量字典登记:单位为分、不含运费、按业务发生时间统计
SELECT sum(pay_amount) AS pay_amt  -- 实付金额,单位为分
FROM fact_payment
WHERE dt = '2026-10-12'
  AND status = 'success';          -- 成交口径必须带状态条件

-- 与订单侧同口径度量对比,两者可直接相减做差异分析
-- SELECT sum(item_amt) FROM fact_order WHERE dt = '2026-10-12';

一致性对照表

要素一致性做法不一致的后果
单位统一到分或元并写入注释相差百倍,报表看起来像业务暴涨
币种统一折算本币并记录汇率来源外币金额直接相加,总额无意义
含税明确含税或不含税口径毛利测算偏差,且无法反向拆解
时间字段统一用业务发生时间跨期错位,日环比长期对不上
一致性事实没有『差不多就行』的中间态。某张表私自换了口径后,所有引用它的报表都会静默出错,而问题往往要等到下一次对账才被发现,排查成本远高于当初统一登记的成本。
金额、数量、时长、比例四类度量都适用一致性原则,其中比例类要特别声明分子的筛选条件,否则两张表的『转化率』分母不同却挂着同一个名字。

易错点

  • 同名度量不同口径(含税与不含税混用):表面数字接近,对账时差异无法收敛
  • 单位或币种未登记:侧算结果对不上,排查要从头翻所有 SQL
  • 口径变更只改代码不改文档:使用者按旧口径解读,结论整体偏移
  • 把多个口径塞进一张宽表:字段增殖,下游选错列的代价比重建口径更高

数据来源与参考

  • Kimball 方法论:一致性事实
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌