假设我有一个事件流,我希望能够计算一个时间窗口中有多少事件。我想在事件进入时间窗口并更改计数时收到通知,当事件退出时间窗口时也是如此。
下图显示了我的意思。我正在使用长度为 4 的时间窗口,我想要 3 个通知,一个在第一个事件进入窗口时,第二个在第二个事件进入时,第三个在第一个事件退出时间窗口时。
如何进行这样的查询?如果我还想按事件的属性分组怎么办?
这是我到目前为止所拥有的,但是当事件离开窗口时它不会给我通知:@config(async = 'true') define stream myStream (symbol string, timeStamp long) @info(name = 'query1') from myStream#window.externalTime(timeStamp,10 sec) select symbol, timeStamp, count(timeStamp) as eventCount group by symbol insert into outputStream
。这是针对 SIddhi CEP 的,但我想 Esper 会是类似的。