Предопределенные (и большие) окна?Любые потоковые фреймворки поддерживают это? - PullRequest
0 голосов
/ 03 апреля 2019

Все примеры окон, которые я вижу, включают определение окон.Например, падающие 1-минутные окна или 1-минутные скользящие окна и т. Д. В моей ситуации все мои данные имеют метки времени, но это не основной интерес.

У всех моих данных также есть связанный период , который я не могу контролировать.Это желаемое окно в моем случае.Периоды основаны на времени, но они варьируются от 2-3 недель, примерно.

Итак, если я посмотрю только на период потока значений, это может выглядеть так (почти все из текущего периода, несколько отставших от последнего периода в начале текущего периода),

... PERIOD 6, PERIOD 5, PERIOD 6, PERIOD 6, PERIOD 6, PERIOD 6, ...

Мне не понятно, как справиться с этой ситуацией с точки зрения водяных знаков / триггеров / и т. Д.?Если я правильно понимаю всю эту терминологию, я подумал о чем-то вроде этого: водяной знак для PERIOD N появляется при обработке первого события с PERIOD (N+1).Горизонт запаздывания (для состояния сбора мусора) для окна PERIOD N может составлять 1-2 дня после отметки времени первого события с PERIOD (N+1).Я хотел бы, чтобы триггеры были accumulating и каждые 5 минут (в идеале, я бы хотел, чтобы длительность этого триггера увеличивалась: чаще в начале окна, реже с течением времени).

Iя пытаюсь использовать терминологию из этой статьи, https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-102 извините, если она неверна

Меня особенно смущает то, как водяные знаки кажутся непрерывными и основаны на времени события.В моем случае у меня есть и время события (метка времени) и время события (период).Если я правильно понимаю, кривая моей ситуации (как в приведенной выше статье) будет выглядеть как пошаговая функция?

Я еще не выбрал инфраструктуру потоковой обработки для использования.Имеет ли смысл моя ситуация для кого-либо из них?Требует ли это много пользовательской логики?Делает ли это какие-либо рамки легче?Это известная проблема с именем?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 апреля 2019

В Flink одним из способов достижения этого является использование временного окна обработки для агрегирования. Затем вы используете функцию расширенного отображения, чтобы сохранить накопленные значения перед окном. В конце концов, вы опускаете агрегаты на долгосрочное хранение данных

Вы можете взглянуть на мое сообщение в блоге , где мы сделали нечто подобное. Взгляните на раздел A peek into Milestone Two

...