Очистить состояние водяного знака Flink в DataStream - PullRequest
0 голосов
/ 06 ноября 2018

Можно ли удалить текущий водяной знак в DataStream?

Пример ввода для водяного знака длиной в месяц без запаздывания:

[
  { timestamp: '10/2018' },
  { timestamp: '11/2018' },
  { timestamp: '11/2018', clearState: true },
  { timestamp: '9/2018' }
]

Обычно запись «9/2018» будет выброшена, поскольку уже поздно. Есть ли способ программно сбросить состояние водяного знака при появлении сообщения clearState?

1 Ответ

0 голосов
/ 06 ноября 2018

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

Если вы используете оконный API, Flink очистит любое состояние окна после истечения допустимого времени ожидания для окна. Если вам нужен больший контроль, чем этот, рассмотрите возможность использования ProcessFunction, что позволит / потребует от вас явного управления состоянием (и таймерами).

...