首页/数据/数仓建模速查/跨过程事实表的关联口径
维度与事实设计149 条

跨过程事实表的关联口径

不同业务过程的事实表不能按明细直接 join 求和(多对多放大);应先按一致性维度分别聚合,再按维度对齐合并。

数仓建模速查数据更新于 2026-10-12
问题明细 join 多对多放大
规范先聚合再对齐
场景订单与支付对账

先聚合后对齐

先聚合后对齐
SELECT coalesce(a.dt,b.dt) dt, coalesce(a.channel,b.channel) channel,
       a.order_amt, b.pay_amt
FROM (SELECT dt, channel, sum(amt) order_amt FROM fact_order GROUP BY dt, channel) a
FULL JOIN (SELECT dt, channel, sum(amt) pay_amt FROM fact_pay GROUP BY dt, channel) b
  ON a.dt=b.dt AND a.channel=b.channel;
缺少公共维度时,两套事实无法在任何粒度上对齐,指标口径必然分叉。

易错点

  • 明细 join 明细导致金额翻倍
  • 无公共维度,两个过程的数据无法对齐

数据来源与参考

  • 数据仓库工具箱:一致性维度
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌