Как передать сбор событий в выписке Esper EPL

Я создал новую функцию с одной строкой, которая принимает набор событий в качестве входного параметра. Я могу обрабатывать отдельные параметры события в операторе EPL, но не могу узнать, как передать набор событий в качестве параметра в операторе EPL.

Предположим, я создал функцию с именем «процент», которая принимает событие как единственный параметр и обрабатывается с помощью приведенного ниже запроса EPL: выберите * из MyEvent(percent(me)‹ 20) как меня Но если я создам функцию, которая принимает набор событий в качестве параметра, я не смогу ее передать.
выберите * из Stock_Event_Rank(rank(me)) как я

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


person Piyush    schedule 17.01.2017    source источник


Ответы (1)


В рамках фильтра нет коллекции событий. Единственная коллекция событий - это когда есть окно данных. Например:select rank(window(*)) from StockEvent.win:length(10) Это так, потому что Эспер хранит не только события, если только нет окна данных, а это означает, что Эспер сохраняет определенное подмножество событий. Я также рекомендую взглянуть на функции агрегации или функции агрегации плагинов или на «ранжированное» окно данных. Это так, потому что "rank(window(*))", вероятно, потребуется пересчитывать ранги для каждого события, которое приходит и уходит.

person goodie    schedule 17.01.2017
comment
Спасибо за ответ. Я понял свою ошибку, которую я совершал, не определяя окно данных. - person Piyush; 18.01.2017