Консолидированный вывод в таблице с потоковым процессором 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 секунд.

[1] https://wso2.github.io/siddhi/documentation/siddhi-4.0/

Другие вопросы по тегам