各位大佬 flink sql cep 是不是不支持超时匹配啊
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以支持超时匹配,可以使用 Flink SQL 中的 Pattern Timeout 来实现。
PATTERN (A B C) [WITHIN time1] [AND [NOT] EXISTS (D E F) [WITHIN time2]] [OR …] [EVERY time3]
其中,WITHIN time1 定义了整个 Pattern 的超时时间,单位为毫秒。如果在 time1 时间内没有匹配到完整的 Pattern,则该 Pattern 将会被丢弃。在 WITHIN 后面的 AND EXISTS 子句中,也可以指定每个事件的超时时间。如果事件没有在指定的超时时间内发生,则该事件不会被包括在匹配中。
SELECT *
FROM myTable
MATCH_RECOGNIZE (
PARTITION BY id
ORDER BY rowtime
MEASURES A.id AS a_id, B.id AS b_id
ONE ROW PER MATCH
PATTERN (A B)
WITHIN INTERVAL '10' SECOND
DEFINE
A AS A.type = 'start',
B AS B.type = 'end'
)
如果 A 和 B 事件之间的时间间隔超过 10 秒,则该 Pattern 不会匹配,并且在超时时不会触发结果。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。