我正在評估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引擎,但似乎每個人都以同樣的方式來做這件事。
THX答覆..試圖尋找分析補丁瞭解CEP是如何工作的。從代碼我可以看到,我的查詢將被解僱,如'select * from instream_table where card_id = xxxx'並且總和將在內存中正確加載的事件上執行? –
無法在http://svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk08/products/cep/3.1.0/ –
上應用修補程序是的。修補程序需要申請http: //svn.wso2.org/repos/wso2/carbon/platform/tags/turing-chunk08/dependencies/commons/siddhi/2.1.0-wso2v1/ – Mohanadarshan