Как использовать каждый оператор шаблона в Flink CEP

В шаблонах событий механизма Esper CEP есть оператор Every, который указывает, что подвыражение шаблона должно перезапускаться, когда вложенное выражение, квалифицированное каждым ключевым словом, оценивается как истинное или ложное.

Согласно этому документу, мы можем использовать оператор every по-разному, например:

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

Я хотел бы знать, какие из этих шаблонов возможны в Flink CEP? Я хочу использовать every A -> B во Flink, но не знаю как.

И какой из вышеперечисленных шаблонов представляет этот шаблон CEP по умолчанию во Flink? (Используя Flink v1.1.4)

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

Заранее спасибо.


person Sina Nourian    schedule 09.01.2017    source источник


Ответы (1)


Flink предоставляет некоторую документацию о том, как использовать каждый, в котором говорится, что если вы укажете подтип, он будет вызываться для каждой итерации

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

Но, на мой взгляд, это не то, что вы ищете. Однако вы можете взглянуть на облегченную библиотеку Siddhi-Flink CEP, используя которую вы сможете использовать язык запросов сиддхи во Flink

person Amarjit Dhillon    schedule 29.10.2017