计算esper接收不同继承事件的次数。

时间:2018-10-27 20:15:51

标签: esper

我是使用Esper的新手,到目前为止,我已经可以使用它进行管理。有一些我找不到解决方案的东西,我试图在任何地方都找不到成功。

我有三个班级,一个班级延伸到另一个班级。 在线使用Esper:

create schema A(symbol string, price double);
create schema B() inherits A;
create schema C() inherits B;

现在,我要使用下一条EPL语句计算在2秒的时间窗口内收到的每个事件的数量:

select COALESCE(a.symbol,b.symbol,c.symbol) as symbol, count(a) as total_a, count(b) as total_b, count(c) as total_c from pattern [every a=A or every b=B or every c=C]#time(2 seconds) group by COALESCE(a.symbol,b.symbol,c.symbol);

然后运行下一个事件:

A={symbol='X', price=1}
B={symbol='X', price=1}
C={symbol='X', price=1}
C={symbol='X', price=1}

问题是当我发送B事件时,由于继承而将B事件和A事件计算在内,并且显然,如果我发送C事件,则将C,B和A事件也计算在内。

我已经使用了模式级注释@SuppressOverlappingMatches,它可以与继承一起使用,但是Time Windows不能使用它。

1 个答案:

答案 0 :(得分:0)

尝试一下。

Etc.getlogin