2017-02-09 5 views
0

からの和異なる行は、私はEVENTCOUNTと呼ばれる1つのイベントテーブルを持っているし、次の値があります。WSO2のCEP - SiddhiQL - 同じイベントテーブル

ID | eventCount 
1   3 
2   1 
3   5 
4   1 

私はの値をカウントどこに来るデータのストリームを持っていますある期間(1秒)の特定の型であり、型と期間に応じて、対応する行にcount()の値を書き込みます。

私は、イベントテーブル内の値の合計を作る必要があります。

私は別のイベントテーブルを作成して、両方に参加しようとしました。私はあなたのエラーを取得していますが、2つの静的なソースから参加することはできません。

あなたのシナリオでは

答えて

0

WSO2 CEPにSIddiQLからこれを行うための正しい方法は何ですか、イベントテーブル内の値の合計が、それは、イベントの合計数に相当しないのですか?なぜあなたはそれをイベントテーブルにしておく必要がありますか?

@Import('dataIn:1.0.0') 
define stream dataIn (id int); 

@Export('totalCountStream:1.0.0') 
define stream totalCountStream (eventCount long); 

@Export('perIdCountStream:1.0.0') 
define stream perIdCountStream (id int, eventCount long); 

partition with (id of dataIn) 
begin 
    from dataIn#window.time(5 sec) 
    select id, count() as eventCount 
    insert into perIdCountStream; 
end; 

from dataIn#window.time(5 sec) 
select count() as eventCount 
insert into totalCountStream; 

PS:あなたは本当にイベントテーブルが必要な場合、あなたは常に2つの別々のテーブルにtotalCountStreamとperIdCountStreamを持続することができます。

+0

問題は、私はイベントの合計だけでなく、パーセンテージも持っているということです。私は本当にテーブルが必要です。 – JoaoFilipeClementeMartins

+0

パーセンテージが必要な場合は、perIdCountStreamをtotalCountStreamに結合して計算することもできます。それ以外の場合は、カスタムStream Processor Extensionを作成して、すべての集計値を計算して出力する必要があります。一定の期間(1秒)の値を集約して格納しているので、私はあなたがイベントテーブルを必要とするとは思わないでしょう。 – Grainier

関連する問題