2014-06-06 73 views
0

我正在評估ATM卡交易欺詐檢測的不同可能解決方案,輸入負載爲每秒50000和響應時間幾秒。WSO2 CEP窗口時間1天

WSO2 CEP看起來更適合整體解決方案,但由於我是WSO2 CEP的新手,因此存在內存問題,因此建議在CEP WSO2/CEP中採用以下更好的方法。

爲了檢測欺詐行爲,我們必須在1天的時間段內捕獲數據聚合,這會導致內存溢出或性能下降。

1)下面造成了內存作爲CEP試圖保持所有記錄在內存整天

from instream#window.time(1 day) 
select sum(amount) as totalAmt; 

2)以下導致性能命中,因爲它試圖從表中加載的所有記錄做一些。

define table instream_table (....) from (datasource,table,cache policy) ; 

from instream#window.length(1) join instream_table 
on instream.card_id==intable.card_id 
select sum(instream_table.amount) as totalAmt; 

最糟糕的事情我已經注意到,CEP火災select * from instream_table而不是增加甚至where子句card_id的,凡我所期待的CEP以足夠的智能火災select sum(amount) from instream_table where card_id=xxxxx

我看過文檔窗口WSO2 CEP但無法找到任何優化方式,因爲它看起來像WSO2 CEP試圖在內存中的一切。

讓我知道是否有任何工作或更好的解決方案來實現這一目標。我已經看過像esper這樣的其他CEP引擎,但似乎每個人都以同樣的方式來做這件事。

回答

0

似乎在事件表一個已知的錯誤。我已經創建了一個JIRA來跟蹤這個問題[1],並添加了對問題的修補程序以及..將解決這一問題,在下一個版本..

[1] https://wso2.org/jira/browse/CEP-866

謝謝..

+0

THX答覆..試圖尋找分析補丁瞭解CEP是如何工作的。從代碼我可以看到,我的查詢將被解僱,如'select * from instream_table where card_id = xxxx'並且總和將在內存中正確加載的事件上執行? –

+0

無法在http://svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk08/products/cep/3.1.0/ –

+0

上應用修補程序是的。修補程序需要申請http: //svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk08/dependencies/commons/siddhi/2.1.0-wso2v1/ – Mohanadarshan