Flink: возможно удалить состояние Queryable после X времени? - PullRequest
0 голосов
/ 23 января 2019

В моем случае я использую только запрашиваемое состояние Флинка.В частности, мне нет дела до контрольных точек.

После события я запрашиваю запрашиваемое состояние только через максимум X минут.В идеале я бы удалил «старое» состояние, чтобы сэкономить место.

Вот почему я задаюсь вопросом: могу ли я сигнализировать состоянию Флинка, чтобы оно само себя очистило через некоторое время?Через конфигурацию?Через конкретные сигналы событий?Как?

1 Ответ

0 голосов
/ 23 января 2019

Одним из способов очистки состояния является явный вызов clear() для объекта состояния (например, объекта ValueState), когда он больше не нужен для определенного ключа.Обычно это делается в onTimer() обратном вызове в ProcessFunction.

. Другой возможный подход заключается в использовании состояния времени жизни для управления его жизненным циклом.

Я не пробовал использовать состояние TTL с запрашиваемым состоянием, но не вижу причин, по которым оно не должно работать.Однако с Flink 1.7 состояние TTL фактически очищает состояние (для ключа) только при обращении к состоянию (для этого ключа) или при создании моментального снимка полного состояния.Так что в вашем конкретном случае этот механизм TTL состояния может быть не очень полезным.

...