2017-01-03 5 views
0

Ich mag folgende Statistik in WSO2 CEP tun:WSO2 CEP gleiche Abfrage mehrmals mit unterschiedlichen Zeitfenstern

den count() alle Ereignisse erhalten, die in einem Strom ankommen. Und ich möchte es für die folgenden Fenster tun: 5 min, 10 min, 30 min, 60 min. Dafür mache ich den folgenden Code:

from stream#window.time(5 min) 
select count() as numEvents 
insert into stats; 

from stream#window.time(10 min) 
select count() as numEvents 
insert into stats; 

from stream#window.time(30 min) 
select count() as numEvents 
insert into stats; 

from stream#window.time(60 min) 
select count() as numEvents 
insert into stats; 

Ist dies der richtige Weg, um diese Daten zu bekommen? Das scheint eine riesige Code-Replikation zu sein, wenn ich nur das Zeitfenster erhöhen möchte. Gibt es eine andere Möglichkeit, dies in nur einer Abfrage zu tun? oder mindestens weniger Abfragen als 4.

Antwort

0

Was Sie herausgefunden haben (das heißt, mit 4 Abfragen, von denen jedes ein Fenster hat) ist der einzige Weg, um Ihre Anforderung zu erfüllen, soweit ich weiß.

Gemäß Siddhi language wird ein Fenster in einer Abfrage in einer Zeile definiert. Entsprechend Ihrer Anforderung benötigen Sie vier Fenster; Daher müssen Sie vier Abfragen schreiben.

Verwandte Themen