分享

通俗易懂了解Flink CEP【系统全面讲解】

pig2 2019-6-24 19:27:39 发表于 介绍解说 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 11057
问题导读

1.什么是CEP?
2.CEP解决什么问题?
3.CEP如何实现?


Flink CEP是比较难以理解的,那么它是什么?它解决了什么问题?该如何使用?

Flink CEP是其实一个Flink库,跟机器学习库是一样的。它是为了更快,更及时的发现一些我们所关心的事情,而不是需要等待几天或则几个月相当长的时间,才发现问题。比如我们的银行卡被人盗刷,如果没有CEP,那么我们即使丢了银行卡,可能也不知道,等我们发现银行卡丢失后,再去挂失等,发现银行卡里已经没钱了。有了CEP,则可以及时提醒,存在银行卡被盗刷的可能性。

我们知道了CEP的作用,那么我们该如何使用CEP?
如果想使用CEP就需要知道场景模型中会遇到哪些问题, CEP中对那些数据比较敏感。或则那些是我们关心的重点,如果一些数据循环出现,那么这个数据可能就是有问题的,就可能发生风险的,比如我们银行卡在短时间内,多地刷卡,也就是在1小时内同一个卡,刷了60笔交易,也就是一分钟一笔交易,这个在我们的常识中,你觉得这可能吗?所以这时候这个卡我们就会被判断为被盗刷。而CEP该如何识别那?
在CEP中有within函数,也就是限定时间交易多少笔,也就是如果大于60比交易,而这个交易信息记录为一个信息事件,可以放到case class中,对于发生了60次,可以使用time函数。通过CEP轻松使用提供的函数,来实现我们的判断。


上面是一个比较简单的案例,如果我们全部看完下面文章后,我们关于Flink CEP的知识已经非常全面,并且你看网上的所有文章,都能看的懂,为CEP打下底子,还可以实现CEP程序,并且应用于实践。

1.什么是CEP以及量词的含义
通过这篇文章,我们懂了CEP是什么,以及CEP中量词的作用,量词更多的是我们对事件出现的次数的描述和表达。比如事件出现1次还是几次,还是事件是循环模式等。更多参考:
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27142


2.条件分类
CEP条件分类,跟我们的SQL分类是类似的,是对事件的过滤,可以通过where,or,until 等关键字,更多可参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27295


3.独立模式【Patterns】操作Pattern Operation
CEP有独立模式和组合模式,独立模式操作同样有过滤,条件组合,停止条件,亦有optional() 表示,这个事件可以发生,也可以不发生,greedy()则事件进入循环模式,表示事件尽可能重复,更多参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27300


4.组合模式、循环模式介绍
对于组合模式讲的事件组合之后的关系,比如事件之间如何严格指定,第一个事件之后,必须发生第二个事件,比如我们这里以登陆为例,如果一个ip地址登陆失败了,则第二次,这个ip地址又失败了,则输出,这是一个严格的连续,使用next表示。如果第一个事件之后,第二个事件并没有发生,而是在第三个事件的时候发生。我们可以使用followBy(),这是宽松连续性。更多参考:
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27308


5.组模式以及组操作【api】
对于组操作,对于begin是定义模式开始,对于next,followedBy,followedByAny则是添加新模式,并且定义了相邻模式的关系。这里可以让我们读懂CEP模式的程序,更多参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27311


6.匹配跳过策略【api】
匹配跳过策略的应用场景,如果多个匹配成功,可能我不需要这么多,按照匹配策略,过滤下就可以。文中介绍了跳过匹配策略的4种类型,更多参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27334


7.模式检测
仍然可以使用旧样式API,如select / flatSelect,但是在Flink1.8中引入PatternProcessFunction。CEP中,在PatternStream上调用select或flatSelect来获取某个模式下匹配到的事件来实现我们的业务逻辑。更多参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27335


8.CEP库中的时间、例子、版本说明
Flink中有对于延迟事件的处理,CEP中也有这方面的考虑,更多参考
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27337

以上内容会录制视频,放到About云知识星球中,大家有问题可以在星球交流。想加入成员,可以加微信w3aboutyun。


最新经典文章,欢迎关注公众号




加入About云知识星球,获取更多实用资料




没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条