#apache-beam
Вопрос:
Я использую фиксированные окна для пакетной обработки данных по времени события, чтобы эффективно отправлять их во внешний API (пакеты по 60 секунд), режим накопления настроен на ОТБРАСЫВАНИЕ, потому что не имеет значения, отправляются ли поздние данные во внешний API без предыдущих данных.
Можно ли указать бесконечное допустимое опоздание, чтобы запоздалые данные никогда не отбрасывались?
Ответ №1:
Это определенно возможно, вы можете установить допустимое опоздание на очень высокий Duration
уровень (например, Duration.standardDays(36500)
). С другой стороны , это приведет к тому, что ваше состояние будет расти бесконечно, а это может быть не то, чего вы хотите. Каждое открытое окно (каждое когда — либо виденное окно) будет иметь по крайней мере таймер, называемый таймером GC-таймер, установленный для конца окна допустимое опоздание. Каждый таймер должен быть в состоянии, и, следовательно, размер вашего состояния будет расти с течением времени. Если вам не нужна группировка в зависимости от времени события, это может быть лучшим вариантом для использованияГрупповые пакеты, которые не должны страдать от этой проблемы (вам не нужно устанавливать допустимую задержку, и размер вашего состояния не будет расти).