Hi everyone,

Flink's CEP library is a great library for complex event processing, more
and more customers are expressing their interests in it. But it also has
some limitations that users usually have to write a lot of code even for a
very simple pattern match use case as it currently only supports the Java
API.
We have investigated some popular CEP products such as esper [1] and siddhi
[2] and found that most of these CEP products support SQL-like expressions
such as EPL to describe the match pattern. But these solutions also have
the drawbacks that the pattern match languages are not standard SQL, the
learn curve is steep for users and it's impossible to integrate them into
the Flink Table API & SQL.
We find that Oracle's CEP solution CQL [3] supports a new pattern
recognition clause match_recognize which is a pattern recognition clause
proposed in this paper [4]. It proposes a set of new syntaxes to define
match pattern in sql expression. Calcite already supports part of this
standard [5].  I think it will be of great value to support expressing
pattern recognition clause with match_recognize clause by integrating it
with Flink Table API & SQL and the Flink CEP library. Any thoughts?

[1] http://www.espertech.com
[2] https://github.com/wso2/siddhi
[3]
https://docs.oracle.com/middleware/1213/eventprocessing/cql-reference/GUID-34D4968E-C55A-4BC7-B1CE-C84B202217BD.htm#CQLLR1531
[4]
http://web.cs.ucla.edu/classes/winter17/cs240B/notes/row-pattern-recogniton-11.pdf
[5] https://issues.apache.org/jira/browse/CALCITE-1570

Best Regards,
Dian

Reply via email to