Расширенные окна - PullRequest
       20

Расширенные окна

0 голосов
/ 24 мая 2018

У меня всегда одно приложение, слушающее поток Кафки и обрабатывающее события.События являются частью сеанса.И мне нужно делать расчеты на основе данных сессий.Я сталкиваюсь с проблемой, пытающейся правильно выполнить мои вычисления из-за продолжительности моих сессий.90% моих сеансов проводятся через 5 минут.99% делается через 1 час.Сеансы могут длиться более суток, так как система реального времени не имеет определенного конца.Сессии уникальны, и шоу никогда не сталкиваются.

Я ищу способ, которым я мог бы обработать окно несколько раз, либо с начальным периодом ожидания и обработкой любых последующих событий после этого, либо с чистым процессом для структуры типа события.Мне нужно будет сохранить все предыдущие события (ListState), а также ранее обработанные значения (ValueState).

Ранее я думал, что allowedLateness позволит мне это сделать, но кажется, что задержка рассматривается толькокогда событие должно было быть обработано, оно не расширяет фактическое окно.GlobalWindows также может работать, но я не уверен, есть ли способ обработать окно несколько раз.Я полагаю, что могу использовать evictor с GlobalWindows для очистки Windows после периода бездействия (хотя по общему признанию, я еще не исследовал это, потому что я не был уверен в том, как вызвать GlobalWindow несколько раз.

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

1 Ответ

0 голосов
/ 25 мая 2018

Если SessionWindows не выполнит эту работу, то вы можете использовать GlobalWindows с пользовательскими Trigger и Evictor.Интерфейс Trigger имеет функции обратного вызова onElement и таймера, которые могут срабатывать в любое время и так часто, как вам хочется.Если вы пойдете по этому пути, то да, вам также потребуется внедрить Evictor для удаления элементов, когда они больше не нужны.

Документация и источник код полезен при попытке понять, как все это сочетается.

...