首页/数据/数仓建模速查/发布与回滚:双跑与快照
分层与规范64 条

发布与回滚:双跑与快照

新逻辑上线先双跑对比(新旧结果差异清单),确认后切换;保留回滚脚本与上一版本分区快照,异常时按分区回退。

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

发布与回滚:双跑加快照

新逻辑上线先双跑对比:新旧结果并行产出,生成差异清单确认差异来源与占比,确认后才切换。切换前要备好回滚脚本与上一版本的分区快照,异常时按分区回退。没有快照和脚本的所谓回滚,实际只能手工重算,耗时且容易再出错。

基本信息

上线方式双跑对比后切换
比对产物差异清单,含差异占比
回滚手段回滚脚本加分区快照
快照保留至少覆盖一个完整业务周期
切换前置差异全部可解释

典型使用场景

  • 口径类改动:新旧逻辑双跑一天或多天,逐项核对差异
  • 切换时机:选择业务低峰期,同时准备重跑与回滚两条路径
  • 差异评估:千分之几的边界差异与全量差异,处置方式完全不同
  • 回滚演练:上线前实际执行一次回滚,确认脚本与快照都可用
  • 上线后观察:对比关键指标是否回到预期区间,而不是只看任务是否成功

双跑比对

双跑比对
-- 找出新旧结果不一致的键与差额
SELECT n.store_id,
       n.pay_amt AS new_amt,
       o.pay_amt AS old_amt,
       n.pay_amt - o.pay_amt AS diff
FROM dws_trade_store_day_new n
JOIN dws_trade_store_day o
  ON n.store_id = o.store_id AND n.dt = o.dt
WHERE n.dt = '2026-10-12'
  AND n.pay_amt <> o.pay_amt;
-- 再算差异键数占全量键数的比例,用于判断差异是否可接受

上线阶段与动作

阶段动作通过标准
双跑新旧并行产出差异清单可逐项解释
比对按键与金额核对差异占比在阈值内
切换低峰期替换生产脚本关键指标落回预期区间
回滚按分区回退快照回退后数字与上线前一致
差异清单要按占比评估:千分之几的边界差异通常可接受,登记为已知项即可;出现全量差异说明理解或实现有误,必须停下来定位。
新逻辑直接替换生产脚本且不留分区快照时,出问题只能手工重算,而重算耗时常常超过业务能接受的停摆窗口。

易错点

  • 新逻辑直接替换生产脚本:出问题只能手工重算,停摆时间不可控
  • 不留上一版本分区快照:回滚没有基线,脚本回退也无法立刻恢复数据
  • 双跑只看总量不看明细:总量接近时明细差异被掩盖,切换后才暴露
  • 回滚脚本从未演练:真正需要回滚时才发现脚本失效或依赖已变更

数据来源与参考

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