问题导读
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 OperationCEP有独立模式和组合模式,独立模式操作同样有过滤,条件组合,停止条件,亦有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。最新经典文章,欢迎关注公众号
http://www.aboutyun.com/forum.php?mod=viewthread&tid=27305
加入About云知识星球,获取更多实用资料