Apache Flink CEP Timout Pattern未在时间窗口中定义

时间:2016-07-14 07:29:35

标签: apache-flink flink-cep

我使用PatternTimeoutFunction在事件序列超出定义的时间窗口时丢弃事件序列。

我正在设置水印如下

public Watermark checkAndGetNextWatermark(Event lastElement, long extractedTimestamp) {
    return new Watermark(extractedTimestamp);
}

当模式超时发生时,timeoutTimestamp应该等于第一个事件时间戳+时间窗的值

但是在收到下一个水印后超时正在触发。在收到下一个水印或基于timeWindow到期后触发超时?

1 个答案:

答案 0 :(得分:1)

如果您使用活动时间,则会通过接收水印来触发超时。因为如果您收到此时间戳的水印,您只能确保已经看到所有元素达到某个点。

这意味着超时时间戳可以大于第一个事件时间戳+窗口长度,具体取决于下一个水印的值。因此,超时时间戳实际上是您意识到模式超时的事件时间。