← 中文资源

简体中文版本

迟到数据重处理工作流

把迟到事件并入已关闭窗口,并校正下游聚合而不重复计数。

阅读英文原文

目标

迟到数据应被正确并入而不重复计数。本工作流识别事件时间落在已发出窗口内的迟到事件并标记,用幂等写入重算受影响窗口使其包含全部事件,向下游发出修正或替换对应聚合值,再验证重复校正不会放大总量。

步骤要点

  1. 识别并标记事件时间落在已发出窗口的迟到事件。
  2. 用幂等写入重算受影响窗口。
  3. 向下游发出修正或替换聚合值。
  4. 验证重复校正不会重复计数。
# recompute a window idempotently
REPLACE INTO window_agg
SELECT window_start, SUM(value) FROM events WHERE window_start = :w GROUP BY window_start;

验证

按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。

排错提示

  • 丢弃迟到事件会低估总量。
  • 非幂等校正会重复计数。
  • 无迟到边界会导致无界重处理。

适用边界

  • 需要幂等的窗口输出。
  • 应设定迟到时间边界。