2016-09-05 3 views
0

同じイベント(同じタイトルを持つ)をinOrgストリームに2回入力することをブロックしたかったのです。だから私は "最初のユニークな"ウィンドウを使いました。しかし、ある時点では、これはメモリ不足エラーを引き起こします。私は1000以上のイベントが含まれている場合、最初のユニークなウィンドウをきれいにしたい。これどうやってするの?CEPウィンドウをクリアする方法

これは実行計画です。

@Plan:name('ExecutionPlan') 

@Import('instream:1.0.0') 
define stream inOrg (meta_title string, meta_link string,  meta_description string, meta_item string); 

@Export('outstream:1.0.0') 
define stream out (meta_id int, meta_key string, meta_title string, meta_link string); 

@From(eventtable='rdbms', datasource.name='EX_DB', table.name='table') 
define table EventTypeTable (meta_id int, meta_key string); 

from inOrg#window.firstUnique(meta_title) 
select meta_title, meta_link, meta_description, meta_item 
insert into in; 

from in join EventTypeTable 
select meta_id, meta_key, meta_title, meta_link , meta_description, meta_item 
insert into StreamTemp; 

from StreamTemp [(regex:find(str:lower(meta_key),str:lower(meta_title)) or regex:find(str:lower(meta_key),str:lower(meta_description))) ] 
      select meta_id, meta_key, meta_title, meta_link 
      insert into out; 

答えて

1

Ramindu、

残念ながらFirstUniqueQindowのためにそのようには直接の設定はありません。

メモリに保存できない多数のユニークを送信するため、これが起こっています。ユニーク数が無限に増加しない場合は、JVMメモリを増やすことで簡単に試すことができます。オープンしているCEP_HOME/bin/wso2server.shに対して、それに応じてJVMメモリー引数を編集します。

例:-Xms2048m -Xmx4096m -XX:MaxPermSizeを= 1024メートル\

しかし、あなたはまだあなたが私は直接的な方法がないかと思いますのみ、最新の1000のユニークなイベントを維持する必要があることを意味している、ユニークなウィンドウをクリアしたい場合。それをサポートするには、現在の実装[1]を改善する必要があります。このような機能は、マウスを持っていることが大好きです!!あなたが貢献したいなら、[email protected]にメールを送ってください。私たちはそこで議論を続けることができます。

[1]最後のユニークなイベントに利用できる特色https://github.com/wso2/siddhi/blob/master/modules/siddhi-core/src/main/java/org/wso2/siddhi/core/query/processor/stream/window/FirstUniqueWindowProcessor.java

関連する問題