Siddhi查询:按结果分组

时间:2016-06-22 11:06:58

标签: group-by wso2cep siddhi

我在通过查询消化我的小组的结果时遇到了麻烦。我的名为intermediateStream的源流有数据

     ts                       uid             id_resp_h
2016-05-08 08:59      CLuCgz3HHzG7LpLwH9    172.30.26.119
2016-05-08 09:00      C3WnnK3TgUf2cSzxVa    172.30.26.127 
2016-05-08 09:00      C3WnnK3TgUf2cSzxff    172.30.26.119

SIDDHI查询

from intermediateStream
select ts, count(ts) as ssh_logins
group by ts
insert into SSHOutStream;

我期待输出像

        ts         ssh_logins
2016-05-08 08:59       1
2016-05-08 09:00       2  

但它会返回

        ts         ssh_logins
2016-05-08 08:59       1
2016-05-08 09:00       1
2016-05-08 09:00       2    

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

Siddhi在他们到达时实时处理事件。因此,在给定的场景中,对于第二个输入,您得到count = 1,因为这是到目前为止已经到达的那个中ts = 2016-05-08 09:00的唯一事件。当第3个事件到来时,你得到count = 2,因为前一个事件也有相同的ts值 要获得所需的答案,请使用时间批处理窗口,该窗口允许您在输出之前等到指定的时间过去 (即来自intermediateStream#window.timeBatch(1分钟))