首页/数据/数仓建模速查/幂等写入:重跑结果一致
分层与规范64 条

幂等写入:重跑结果一致

幂等是调度可重跑的前提:按分区先删后插、或整分区重写;避免 INSERT INTO 无去重、避免依赖自增序列与当前时间字段。

数仓建模速查数据更新于 2026-10-12
手段分区重写/先删后插
判断重跑两次结果一致
避免无去重追加
验证重复执行对比

幂等写法

幂等写法
-- 先清理目标分区,再写入,重跑结果一致
ALTER TABLE dws_trade_store_day DROP IF EXISTS PARTITION (dt='2026-10-12');
INSERT INTO TABLE dws_trade_store_day PARTITION (dt='2026-10-12')
SELECT store_id, order_cnt, pay_amt FROM tmp_trade_store_day;
用系统当前时间做分区或版本字段,重跑会写进不同分区,幂等被破坏。

易错点

  • 任务失败后直接重跑,数据重复且无人发现

数据来源与参考

  • 阿里《大数据之路:阿里巴巴大数据实践》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌