Потоковая передача: различия между TriggerResult.FIRE и TriggerResult.FIRE_AND_PURGE - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок во Флинке.У меня есть потоковая программа Flink, которая считает что-то из kafka в 10-секундных окнах сеанса.

Вот мой вопрос:

Триггер по умолчанию для окон сеанса - FIRE.

Поток Flinkсохранить все сообщения кафки каждого окна в памяти? Или сохранить только результаты агрегации.

Если я использую FIRE_AND_PURGE, что будет очищено?

1 Ответ

0 голосов
/ 19 февраля 2019

Обработка и очистка описаны здесь , проще говоря, разница в том, что FIRE_AND_PURGE удаляет содержимое окна после запуска.

Все встроенные присваиватели окон Flink (включая окна сеансов)) позаботиться об очистке их содержимого, когда наступит подходящее время, т. е. после истечения допустимого опоздания.Но очистка выполняется как отдельный шаг, а не в сочетании с срабатыванием триггера.

Содержимое Windows хранится в состоянии Flink, поэтому их расположение зависит от того, какой бэкэнд состояния вы используете.Это состояние будет сохраняться в куче, если вы используете бэкэнд состояния на основе кучи, или на диске, если вы используете RocksDB.

Сохранение ваших окон в полном объеме до тех пор, пока они не будут очищены, зависит от того, используете ли вы инкрементное агрегирование - другими словами, если вы используете уменьшение, агрегирование или свертывание, то только текущий результатагрегации сохраняется, иначе это набор всех событий, назначенных окну.

...