Как группировать окна по esper (я бы хотел, чтобы esper создавал окна по каждой группе.) - PullRequest
0 голосов
/ 30 августа 2018

Я бы хотел, чтобы esper создавал окна для каждой группы.

select name, sum(val) from SampleEvent.win:length(5) group by name

Это работает так

Я хочу, чтобы это работало так

Могу ли я реализовать подобное с помощью esper? Заранее спасибо!

1 Ответ

0 голосов
/ 30 августа 2018

Это делается с помощью контекстов в Esper. Контексты определяют жизненный цикл анализа.

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

create context BlueOrRedBox start MyEvent(...some criteria...) end MyEvent(...whatever...);
context BlueOrRedBox select somekey, count(*) from MyEvent group by somekey output snapshot when terminated;

Замените "start MyEvent (... некоторые критерии ...)" на все, что запускает окно. Замените "конец MyEvent (... что угодно ...)" на то, что заканчивается поле. Возможно, если начальный или конечный критерии получены из некоторой агрегации, такой как счетчик, тогда используйте отдельный оператор для определения начального и / или конечного критериев и используйте «вставить в».

Ссылки на документы:

  1. Неперекрывающийся контекстный документ
  2. Страница шаблонов решений
...