Шаблон тайм-аута Apache Flink CEP не определяется временным окном

Я использую PatternTimeoutFunction для отбрасывания последовательности событий, когда она выходит за пределы определенного временного окна.

Я устанавливаю водяной знак следующим образом

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

Когда происходит тайм-аут шаблона, timeoutTimestamp должно быть равно отметке времени первого события + значение временного окна.

Но тайм-аут срабатывает после получения следующего водяного знака. Инициируется ли тайм-аут после получения следующего водяного знака или по истечении срока действия timeWindow?


person ravthiru    schedule 14.07.2016    source источник


Ответы (1)


Тайм-аут запускается приемом водяных знаков, если вы используете время события. Потому что вы можете быть уверены, что видели все элементы до определенного момента, только если получите водяной знак для этой метки времени.

Это означает, что отметка времени ожидания может быть больше, чем отметка времени первого события + длина окна, в зависимости от значения следующего водяного знака. Таким образом, отметка времени ожидания на самом деле является временем события, когда вы понимаете, что время ожидания вашего шаблона истекло.

person Till Rohrmann    schedule 18.07.2016
comment
Должен ли он вызвать тайм-аут, если я увеличу время водяного знака как новый водяной знак (extractedTimestamp + 1)? - person ravthiru; 19.07.2016
comment
В зависимости от того, что такое extractedTimestamp. Если extractedTimestamp равно timestampOfElement + windowLength - 1, то должно сработать. - person Till Rohrmann; 19.07.2016
comment
Я заметил, что обработка тайм-аута/водяного знака запускается только после получения следующего события. Я протестировал только одно событие, оно должно истечь по времени после длины окна. - person ravthiru; 26.07.2016
comment
Тогда вы, возможно, не отправили водяной знак после первого элемента. Учитывая, что водяной знак, длина которого превышает длину окна, появляется после первого элемента, вы должны увидеть истечение времени ожидания шаблона. Не могли бы вы проверить это? - person Till Rohrmann; 01.08.2016