将Siddhi模式用于尚未发生的事件

时间:2014-08-28 18:35:37

标签: wso2 complex-event-processing siddhi

在CEP引擎中,我可以查找尚未发生的事件的模式。

编辑欺诈模式检测查询:如果在一天内购买了两张同一张卡,并且第一次购买少于10美元而第二次购买不是超过$ 10,000。

来自每个(a1 =购买[价格> 10]) - > a2 =在1天内购买[价格> 10000和1.cardNo == a2.cardNo] 插入potentialFraud a1.cardNo作为cardNo,a2.price作为价格,a2.place作为地点;

如果在最后一小时内事件1没有跟踪事件2而不是在最后一小时内事件1后面跟着事件2,则触发火灾?

1 个答案:

答案 0 :(得分:0)

从CEP 3.1.0开始不支持非出现(但它将在下一版本4.0.0中提供)。

但您的用例可以通过其他方式实现。由于您要查找至少1个事件的发生> 10并且没有事件>在最后一小时10000(每卡号),您可以执行以下操作:

  1. 添加过滤器,过滤价格>的事件10
  2. 将它们发送到时间窗口(1小时)
  3. 在时间窗口中,使用函数计算max()值(使用group by)并使用输出事件发出最大值
  4. 在过滤器中,检查max< 10000
  5. 这将查找价格>的一个或多个事件。 10,但在最后一小时不到10000。

    您会发现以下文档对于实现此功能非常有用: https://docs.wso2.com/display/CEP310/Windows