2014-06-06 109 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