Я использовал следующий siddhi query
, чтобы получить количество событий в минуту; ts как отметка времени (строка) и ftp_requests как count (int).
from FTPInStream[command == 'USER']
select time:timestampInMilliseconds(time:dateAdd(str:replaceAll(ts,'T',' '), 5, 'hour',"yyyy-MM-dd HH:mm:ss"),'yyyy-MM-dd HH:mm') as milliseconds , uid, id_orig_h, id_orig_p, id_resp_h, id_resp_p
insert into intermediateStream;
from intermediateStream#window.externalTimeBatch( milliseconds ,1 min, milliseconds, 1 min)
select time:dateFormat(milliseconds, 'yyyy-MM-dd HH:mm' ) as ts , cast(count(milliseconds), 'int') as ftp_requests
group by milliseconds
insert into FTPOutStream;
Если я хочу добавить предыдущее значение ftp_requests в каждое новое значение, чтобы получить общее количество запросов с каждым новым запросом, какое изменение потребуется? Есть ли в сиддхи какая-либо функция для получения значения предыдущего события из уже опубликованного потока?