← 中文资源

简体中文版本

流处理回填工作流

从历史数据回填派生流、在不破坏状态的前提下与实时处理并行,并在提升前校验总量。

阅读英文原文

概述

回填若无隔离,可能覆盖实时状态并污染正在运行的聚合。先把变换在小样本上验证,再写入独立输出、限速以免挤占实时消费,最后比对总量后提升,才能让重算既正确又不伤生产。

关键步骤

  1. 在小样本历史数据上验证变换逻辑。
  2. 回填写入独立输出以避免覆盖实时结果。
  3. 限速回填以免饿死实时消费。
  4. 比对回填总量后提升。

验证

  • 回填输出与预期聚合一致。
  • 回填期间实时处理指标未受影响。
  • 状态未被不可逆覆盖。
  • 提升前已完成校验。

决策点

状态存储非幂等时应用独立存储;若缺陷影响范围有限,只重算相关窗口而非全量历史。

适用范围

本条目围绕「流处理回填工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

建议在正式环境落地前先在预发或隔离环境演练一遍,把关键观测指标与负责人一并记录,确保出现异常时能快速定位并恢复。

-- separate output for backfill
INSERT INTO metrics_rebuild
SELECT window, name, sum(value)
FROM events
WHERE ts >= $1 AND ts < $2
GROUP BY 1, 2;