Esper中的简单子查询

时间:2016-08-02 17:34:43

标签: complex-event-processing esper

我希望能够嵌套在Esper的EPL中表达的查询。我们假设我想检测这种模式:A -> (B -> C)。 (ABC是事件的类型,->是EPL的序列运算符。)

以下是代表B -> C的查询:

select * from pattern [every (b=B -> c=C)]

我想做以下事情:

select * from pattern [every (a=A -> bc=
    (select * from pattern [every (b=B -> c=C)])
)]

实际上,如果有可能这样的话会是最好的:

select * from pattern [every (b=B -> c=C)]) as bc
select * from pattern [every (a=A -> bc)]

这样,第一个查询只绑定到标识符bc,然后可以在第二个查询中使用。那太棒了!

有人可以告诉我EPL中是否存在类似的语法?我很欣赏任何提示!

1 个答案:

答案 0 :(得分:1)

查询可能只是......

every (a=A -> (every (b=B -> c=C))]

或者将“bc”插入另一个流并使用...

insert into BCStream select * from pattern[every b=B -> c=C]; // also note lack of parens

select * from pattern[a=A -> BCStream]