У меня есть много IoT-устройств, которые отправляют сообщения с переменной скоростью.Используя эти сообщения, мне нужно рассчитать некоторые значения для каждого устройства и доставлять их каждую минуту в фиксированном окне времени-события.У меня есть три минуты, чтобы передать эти значения, поэтому сообщения, которые приходят слишком поздно, отбрасываются (скорость выше правильности).Из-за этого и изменяющейся скорости сообщений у меня не всегда достаточно сообщений для вычисления значений;Я все еще могу выполнять вычисления, используя сообщения за 30 минут до фиксированного окна и 90 секунд (90 секунд выбрано, потому что мне нужно некоторое время, оставленное для обработки в течение 3-минутного срока) после.
Яиспользование Apache Beam для реализации этой потоковой обработки с использованием обработчика потока данных в GCP.Мой вопрос: какую оконную стратегию я должен использовать?
Я думал о 30-минутном сдвижном окне с интервалом в 1 минуту с задержкой запуска, но тогда я, вероятно, не смогу получить доступ к сообщениям в 90 сек до этого.В качестве альтернативы, я мог бы иметь фиксированные окна за 1 минуту и иметь какое-то другое окно в качестве sideinput.И я предполагаю, что глобальные окна с фильтрацией также возможны.
Поскольку я новичок в Beam, Dataflow, GCP и Java :-), у меня есть трудности, чтобы понять, каковы последствия выбора любой из этих стратегий управления окнами.является.Так что может быть хорошей стратегией управления окнами?