Esper: обратите внимание, когда количество событий (с конкретными параметрами) превышает порог - PullRequest
0 голосов
/ 29 июля 2011

довольно долго искал решение:

У меня есть контактная форма.Каждый раз, когда кто-то отправляет письмо через него, в Esper выдается ContactEvent (получатель, senderIpAddress).Теперь я хотел бы, чтобы Esper сообщил мне, когда конкретный IP-адрес выдает более 50 событий контакта за 10 минут.

Синтаксис Ошибки в приведенном ниже коде связаны с упрощением кода

create window ContactWindow.win:time(10 min) as select ipAddress, mail from ContactEvent 

затем я заполняю это так:

insert into ContactWindow select ipAddress, mail from ContactEvent";

В конце концов, есть Eventlistener примерно так:

select ip, count(ip) as cnt from ContactWindow  group by ip

, который на самом деле работает.Это не совсем то, что я хотел бы жестко, так как мой слушатель выдается каждый раз, когда изменяется количество сообщений ip-адресата.(«IP X отправил 43 сообщения за последние 10 минут», «IP X отправил 44 сообщения за последние 10 минут», ...) Я хотел бы получить только одно событие, сообщающее мне «IP X превышает 50 сообщений впоследние 10 минут »и еще один говорит мне, что сейчас он опустился ниже этой границы.

Есть ли способ заставить это работать?

1 Ответ

1 голос
/ 20 сентября 2011

Может быть добавить с пунктом .В вашем примере

select ip, count(ip) as cnt from ContactWindow  group by ip having count(ip)>50
...