首页/数据/数仓建模速查/迟到数据处理:窗口与回刷策略
分层与规范64 条

迟到数据处理:窗口与回刷策略

上游数据迟到会产生跨天补数:给迟到设定容忍窗口(如 2 小时),窗口内重跑当日;超窗数据进入修正批次并触发受影响日期的局部回刷。

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

迟到数据的窗口与回刷

上游数据迟到会造成跨天补数:为迟到设定容忍窗口(例如 2 小时),窗口内到达的数据直接重跑当日分区;超出窗口的进入修正批次,并触发受影响日期的局部回刷。关键是提前把「迟到怎么算、算到哪一天」写成口径,而不是每天靠人工判断。

基本信息

判定依据业务时间与装载时间不同日
容忍窗口按业务容忍度设定
窗口内重跑当日分区
超窗进入修正批次
回刷范围只重算受影响日期

典型使用场景

  • 上游接口偶发延迟:窗口内到达的数据重跑当日,不惊动历史
  • 跨月补数:月末数据迟到时按受影响日期局部回刷,不整月重跑
  • 权限与结算类数据:口径上倾向回溯调整历史日期,而不是延迟入账
  • 统计类报表:口径上倾向按到达日入账,避免历史数字反复变化
  • 监控告警:迟到量超过阈值时通知上游,而不是静默重跑

迟到数据判定

迟到数据判定
-- 业务时间属于昨天、但今天才装载的记录,即为迟到数据
SELECT order_id, pay_amt, create_time, etl_load_time
FROM stg_order
WHERE create_time   <  '2026-10-12 00:00:00'   -- 业务上属于前一天
  AND etl_load_time >= '2026-10-12 00:00:00';  -- 今天才到达
-- 处置:窗口内归入昨日分区并重跑昨日;超窗则记入修正批次表并登记回刷范围

两种口径的差异

口径做法表现
回溯调整修正历史业务日期历史数字变化,需通知消费方
延迟入账按到达日计入历史稳定,当日数据偏高
混用无统一规则报表反复变动且无法解释
迟到处理策略必须写进口径文档:延迟入账还是回溯调整,直接决定报表数字是否会在几天后变化,也是消费方投诉最多的来源。
迟到数据直接按当天入账而不记录修正批次,跨天数据会落在错误日期,日粒度报表的数字会被反复改动,财务对账无法闭合。

易错点

  • 迟到数据不做识别直接进当天:日粒度报表历史数字反复变化,消费方无法对账
  • 没有迟到窗口只有事后补救:每天都靠人工判断该不该重跑,稳定性靠人盯
  • 回刷不做范围收敛:为了几条迟到数据重跑整月分区,成本和耗时都失控
  • 迟到链路无监控:上游延迟长期存在却无人知晓,问题被当成偶发

数据来源与参考

  • Kimball《数据仓库工具箱(第3版)》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌