【发布时间】:2016-02-17 08:47:28
【问题描述】:
有没有办法覆盖数据流中的处理时间(不是事件时间)?
我正在尝试推理失败场景,以及如何重新计算管道的输出。
假设我有一个管道,它只计算接收到的事件,固定窗口为 1 小时,允许迟到 2 小时。假设我对窗口 [t0, t0+1h) 感兴趣,并说我有:
- 事件A,事件时间=t0+10m,处理时间=t0+30m
- 事件 B,事件时间 = t0+10m,处理时间 = t0 + 90m
然后对事件A进行计数,丢弃事件B。
现在,假设几天后我在代码中发现了一个错误,我想重新运行管道以重新计算过去同一窗口 [t0, t0+1h) 中的事件。 如果处理时间现在 = t0 + 几天,则所有事件都将被丢弃。
如果我忽略允许的延迟(假设无限期),那么事件 A 和 B 都会被计算在内。
通过覆盖处理时间(假设我第一次存储它),我可以确保事件 A 被计算在内,而事件 B 不被计算在内。有没有办法做到这一点?谢谢!
【问题讨论】: