首页/数据/数仓建模速查/事实表去重与幂等写入
维度与事实设计149 条

事实表去重与幂等写入

上游重复投递与任务重跑都会产生重复事实行;用业务主键唯一约束或写前去重(row_number 按更新时间取最新)保证幂等。

数仓建模速查数据更新于 2026-10-12
来源重复投递/重跑
手段业务键去重取最新
约束唯一索引兜底

去重示例

去重示例
INSERT OVERWRITE TABLE fact_order PARTITION(dt='2026-10-11')
SELECT ... FROM (
  SELECT *, row_number() over (partition by order_id order by update_time desc) rn
  FROM stg_order WHERE dt='2026-10-11'
) t WHERE rn = 1;
幂等写法优先:同一批重跑两次结果一致,避免依赖人工清理。

易错点

  • 重跑直接追加,金额成倍虚增
  • 去重取错版本(按写入时间而非业务更新时间)

数据来源与参考

  • 事实表加载实践:幂等
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌