2015-07-12 4 views
0

мне нужна помощь в отношении КЭП двигателя Esper: Я написал следующее заявление:Esper - правило срабатывает дважды

SELECT clientID FROM MovementEvent.win:time_batch(5 sec) GROUP BY clientID 

А потом я послал MovementEvent в двигатель. через 5 секунд абонент запускается - нормально. Но через 5 секунд он снова срабатывает - почему?

Независимо от того, сколько событий я посылаю к двигателю, абонент всегда срабатывает дважды - через 5 и 10 секунд

Я надеюсь, что вы могли бы мне помочь!

Thanx;)

ответ

0

Что вам нужно это:

SELECT clientID FROM MovementEvent.std:groupwin(clientID).win:time_batch(5 sec); 

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

SELECT distinct(clientID) FROM MovementEvent.win:time_batch(5 sec); 

Этой ссылка будет, вероятно, объяснить различия лучше: http://www.espertech.com/esper/release-5.2.0/esper-reference/html/epl_clauses.html#epl-group-by-versus-view

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^