我正在评估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