Консолидированный вывод в таблице с потоковым процессором Siddhi WSO2
У меня есть запрос ниже Siddhi
(WSO2 Stream Processor), где я пытаюсь получить окончательную сумму по округам, когда я отправляю поток из 10 событий (4 события для ABC, 6 событий для CDE). Но с помощью приведенного ниже запроса я получаю все 10 записей с суммой предыдущего события в таблице (всего я вижу 10 записей в таблице).
Мой ожидаемый результат должен быть таким, как показано ниже:
ABC 13456 34521
CDE 23789 65342
Пожалуйста, помогите мне получить окончательную запись в таблице вместо всех 10 записей.
Запрос Сиддхи:
partition with (county of TIVStream )
begin
from TIVStream
select county, sum(tiv_2011) as Sum2011 , sum(tiv_2012) as Sum2012
insert events into TIV
end;
Спасибо дивя
1 ответ
Что вам нужно выше, это своего рода окно для сбора событий. В сиддхи существуют различные типы окон, которые в основном делятся на два, а именно окна продолжительности и времени. Для приведенного выше варианта использования это должно быть пакетное окно, и вы можете использовать timeBatch. Пожалуйста, смотрите [1] для документации.
Попробуйте следующее,
partition with (county of TIVStream )
begin
from TIVStream#window.timeBatch(5 sec)
select county, sum(tiv_2011) as Sum2011 , sum(tiv_2012) as Sum2012
insert events into TIV
end;
Выше предполагается, что все 10 событий прибывают в течение 5 секунд.