Консолидированный вывод в таблице с потоковым процессором Siddhi WSO2

У меня есть следующий запрос в Siddhi (потоковый процессор WSO2), где я пытаюсь получить окончательную сумму по округам, когда я отправляю поток из 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; 

Спасибо, Дивья


person divya    schedule 01.03.2018    source источник


Ответы (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/#partition

person dnWick    schedule 02.03.2018
comment
@divya, если решение сработало, можете принять :) - person dnWick; 07.03.2018