知识卡片

水位线与迟到数据的三种处理策略

专业/工作 · 499.a

内容

水位线本质上是一个时间戳T,含义是”窗口已经收到了所有时间戳≤T的数据”,超过T才到达的数据被视为迟到数据。对迟到数据有三种处理策略:丢弃——窗口触发后不再保留数据,迟到数据直接扔掉;累积——窗口触发后在一个”允许迟到时间”内继续保留数据,迟到数据仍可计入窗口重新计算;累积与回撤——在累积基础上,对已经输出过的旧结果做撤回修正再输出新结果,避免下游拿到过时的错误值。三者是准确性和资源占用之间依次递增的权衡:丢弃最省资源但可能漏算,回撤最准确但要求下游能处理修正消息。与[[事件时间与处理时间的本质区别]]配合,是流计算处理乱序数据的核心机制。

参考来源

《Flink入门与实战》第2章《定义、架构与原理》