Как создать скользящие окна с Apache Beam?Не скользящее и не фиксированное, а подвижное окно - PullRequest
0 голосов
/ 20 февраля 2019

Скажем, я хочу вычислить среднее значение определенного показателя за последние 10 минут после каждой минуты и сравнить его со средним значением того же показателя за последние 20 минут после каждой минуты.Мне нужно 2 окна (не 10 раздвижных окон против 20 раздвижных окон) или 2 окна фиксированной длительности, с ранним срабатыванием.Мне нужно 2 окна, которые должны двигаться вперед на одну минуту (продолжительностью 10 минут и 20 минут каждое) каждую минуту.Кроме того, если бы я мог отказаться от всех, кроме самых последних из раздвижных окон, моя проблема могла бы быть решена.В противном случае несколько раздвижных окон очень дороги.

Не могли бы вы помочь здесь?Пользовательская функция WindowFn () была бы очень полезна

1 Ответ

0 голосов
/ 22 февраля 2019

Я должен обновить то, что я закончил делать в конце концов.Я создал глобальное окно с AllowedLateness, равным 1 часу, и запускаю каждую минуту многократно навсегда, с накоплением панелей.В этом глобальном окне я применил DoFn-фильтрацию для элементов с метками времени за последние 10 минут (Present Instant.minus 10 mins) и событий за последние 20 минут (Present Instant.minus 20 mins), чтобы создать 2 разных PCollections.Я применил эту временную фильтрацию дважды - один раз к выходу триггера глобального окна, чтобы добавить его к PCollection (s) на 10 минут, 20 минут, а затем снова к самой коллекции, чтобы удалить все те, которые больше не являются частью временипродолжительность.На данный момент эти 2 PCollection (s) служат скользящим окном, но мне нужно проверить результаты, чтобы убедиться, что это действительно работает.

...