Выбор ответа Senior Батч и стриминг обновлено

Растущее состояние

Вопрос

Стриминговая задача дедуплицирует события по event_id, храня все виденные id в состоянии. Через месяц она падает по памяти. Что сделать?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ограничить состояние по времени (TTL): хранить id за окно, где реально бывают дубли, например сутки. Дубли от ретраев появляются в пределах минут или часов, хранить id за всё время бессмысленно.

Варианты ответа

  1. Ограничить состояние по времени (TTL): хранить id за окно, где реально бывают дубли, например суткиправильный ответ
  2. Добавить памяти задаче и настроить автоматический перезапуск с полной очисткой состояния раз в месяц
  3. Отключить чекпоинты: состояние перестанет копироваться и займёт вдвое меньше памяти
  4. Хранить виденные id в XCom, чтобы они не занимали память задачи между запусками

Разбор

Дубли от ретраев появляются в пределах минут или часов, хранить id за всё время бессмысленно. TTL держит состояние ограниченным. Наращивание памяти откладывает падение. Чекпоинты нужны для восстановления, их отключение не уменьшит состояние. XCom это механизм Airflow, к стримингу не относится.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.