如何在Flink CEP中使用“every”模式运算符

时间:2017-01-09 21:07:26

标签: apache-flink flink-cep

在Esper CEP引擎事件模式中,有Every运算符,表示当由every关键字限定的子表达式求值为true或false时,模式子表达式应重新启动。

According to this document,我们可以通过不同的方式使用every运算符,例如:

    A -> B
    every ( A -> B )
    every A -> B
    A -> every B
    every A -> every B

我想知道Flink CEP中哪些模式可行?我想在Flink中使用every A -> B但不知道如何。

以上哪种模式在Flink中表示此默认CEP模式? (使用Flink v1.1.4)

Pattern<Event, ?> pattern = Pattern.begin("start").where(evt -> evt.getId() == 42)
    .followedBy("end").where(evt -> evt.getName().equals("end"));

提前致谢。

1 个答案:

答案 0 :(得分:2)

Flink提供了一些documentation关于如何使用每一个说明如果指定子类型然后将为每次迭代调用

start.subtype(SubEvent.class).where(new SimpleCondition<SubEvent>() {
    @Override
    public boolean filter(SubEvent value) {
        return ... // some condition
    }
});

但在我看来,这不是你想要的。但是,您可以通过使用它来查看轻量级Siddhi- Flink CEP library,您可以在Flink中使用siddhi查询语言