首页 > 数据库 > 数据库开发技术 > Flink CEP SQL 使用规则及案例介绍
关注并标星 3分钟秒懂大数据
每天1次,打卡阅读
更快更全面获取大数据技术博客

1、CEP案例
案例介绍:在金融场景中,有时会出现银行卡盗刷现象,犯罪分子利用互联网等技术,在间隔10分钟或者更短时间内,使一张银行卡在不同的两个地方出现多次刷卡记录,这从常规操作来说,在间隔时间很多的情况下,用户是无法同时在两个城市进行刷卡交易的,所以出现这种问题,就需要后台做出触发报警机制。
要求:当相同的cardId在十分钟内,从两个不同的Location发生刷卡现象,触发报警机制,以便检测信用卡盗刷现象。

(1)编写cep sql时,包含许多技巧,首先我们编写最基础的查询语句,从一张表中查询需要的字段。
select starttime,endtime,cardId,event from dataStream(2)match_recognize();
该字段是CEP SQL 的前提条件,用于生成一个追加表,所有的 CEP SQL都是书写在这里面。
(3)分区,排序
由于是对同一ID,所以需要使用 partition by,还要根据时间进行排序 order by
(4)理解CEP SQL核心的编写顺序
如上图标的顺序
1、CEP SQL 的类为Pattern,检测在10分钟内两个地方出现刷卡现象,所以定义两个事件:
Pattern (e1 e2+) within interval ‘10’minute
2、定义在Pattern中要求的判断语句,规定使用define
define
e1 as a1.action = ''
e2 as e2.action = '' and e2.location <> e1.location
3、根据上述的输入条件构建输出条件,规定使用 measures
measures
e2.action as event
e1.timestamp as starttime
last(e2.timestamp) as endtime
4、输出条件匹配成功,输出一条,规定写法(这块根据不同的规则写不同的语句)
one row per match
5、匹配后跳转跳转到下一行(根据不同规则写不同语句)
after match skip to next row

根据核心编写顺序进行理解,然后在按照书写正确的顺序进行编写。

2、CEP SQL参数说明
针对上述的案例,对涉及到的语法规则进行介绍说明

1、Pattern事件介绍
(1)pattern(e1 e2+) within interval‘10’minute --定义两个事件, e1 和 e2
(2)pattern (A B{10}) within interval ‘1’ minute
(3)pattern (A B C* B D* B E*)within interval ‘1’ minute

×不支持 ×
不支持可能产生空匹配的模式。此类模式的示例如
PATTERN(A*),PATTERN (A? B*),PATTERN (A{0,} B{0,}C*) 等。
p输出模式(每个找到的匹配项应该输出多少行)
Øone row per match
每次检测到完整的匹配后进行汇总输出
Øall rows per match (flink暂不支持)
检测到完整的匹配后会把匹配过程中每条具体记录进行输出
Ø在计算中使用那些匹配的事件
running匹配中和final匹配结束
Ø define语句中只可以使用running,measure两者都可以
Ø输出结果区别
对于one row per match,输出没区别
对于all rows per match ,输出不同




3、匹配后跳转模式介绍
after match(匹配后,从哪里开始重新匹配)
Ø skip to next row
从匹配成功的事件序列中的第一个事件的下一个事件开始进行下一次匹配
Ø skip past last row
从匹配成功的事件序列中的最后一个事件的下一个事件开始进行下一次匹配
Ø skip to first pattern Item
从匹配成功的事件序列中第一个对应于patternItem的事件开始进行下一次匹配
Øskip to last pattern Item
从匹配成功的事件序列中最后一个对应于patternItem的事件开始进行下一次匹配
注意:
在使用skip to first/last patternItem容易出现循环匹配问题,需要慎重
针对上面的匹配后跳转模式分别介绍:

(2)after match skip to next row 如下图

(3)after match skip to last patternItem 如下图

(4)after match skip to first patternItem 如下图

4、量词解释

5、CEP SQL 目前不支持的功能

以上就是CEP SQL的讲解内容!觉得好的,点赞,在看,分享三连击,谢谢!!!

End
找各类大数据技术文章,面经,就来
<3分钟秒懂大数据>
随时更新互联网大数据组件内容
专为学习者提供技术博文
快和身边的小伙伴一起关注我们吧!

作者简介:逆流而上Mr李,秋招7offer,CSDN博客:https://blog.csdn.net/weixin_38201936
原文作者:3分钟秒懂大数据;如有侵权,请联系管理员删除。