Siddhi 查询:按结果分组

Siddhi Query : group by results

我在按查询消化我的组的结果时遇到了问题。我名为 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  

而是 returns

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

有什么建议吗?

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