前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink CEP学习线路指导1:Flink CEP入门

Flink CEP学习线路指导1:Flink CEP入门

作者头像
用户1410343
发布2019-11-06 13:54:37
2.2K0
发布2019-11-06 13:54:37
举报
文章被收录于专栏:about云about云

问题导读 1.Flink CEP是什么? 2.Flink CEP可以做哪些事情? 3.Flink CEP和流式处理有什么区别? 4.Flink CEP实现方式有哪些? Flink CEP在Flink里面还是比较难以理解的。有的老铁甚至以为和Flink流式处理是差不多的。其实Flink CEP跟流式处理确实有相似的地方。但是Flink CEP处理的是流式数据,但是却并不是流式处理(datastream)。后面给大家详细讲解。 Flink CEP有的大家甚至不知道CEP是什么?CEP在Flink未产生以前,已经有CEP,并不是有了Flink才有CEP,我们这里重点是讲Flink CEP。CEP本身的含义是复杂事件处理。那么它为什么可以处理复杂事件,这就跟它的原理有关系了。所以我们需要了解NFA,NFA是什么?它的含义是非确定有限自动状态机。我们明确它的概念是什么就可以了。后面同样也会给大家补充。 由于官网只讲了CEP的基础部分,因此我们需要给大家补充原理部分,基础(组成)部分,以及编程方面的内容。 也就是我们按照下面线路来学习: 1.首先认识Flink CEP 2.Flink CEP原理机制 3.Flink CEP编程 通过上面三部分,我们来学习Flink CEP。

1.认识Flink CEP 1.Flink CEP是什么? Flink CEP一个复杂事件处理库,它和机器学习库是一样的,也就是Flink CEP是Flink的一个分支,跟机器学习一样是Flink的一个分支。下面是官网的截图,大家可以参考。

亦可参考官网: https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/libs/cep.html 由于版本会更新,网址可能会失效,大家可以自己访问官网。 https://flink.apache.org/ 然后找到对应的版本即可

2.Flink CEP的作用是什么? 我们知道了Flink CEP是什么,接着我们需要看Flink能干啥? Flink CEP可以在事件流中根据我们的设定的规则,检测出有意义的事情,并尽快做出响应。比如银行卡盗刷,在几秒内或则几分钟内,在不同的地方多次刷银行卡,Flink CEP能及时的检测到,并预警通知,让用户及时知道,银行卡有丢失的可能。对于DDos攻击,我们同样根据设置的pattern【规则】,来检测攻击的ip地址。 3.Flink CEP有什么特点? Flink CEP特点很有意思,比如我们查询数据库,我们的数据是静态的,也就是数据是躺在数据库的,我们查询条件是可以随时的变的。可是Flink CEP查询是固定的,也就是规则Pattern是固定的,数据却是流动的。 当然有些公司,由于对Flink CEP,有修该规则Pattern的需求,所以把Flink CEP的Pattern做成可以修改的一种机制。但是总体来说,Flink CEP的规则一般来说是不会经常变化的。 对于规则或则Pattern是什么?大家根据下图可以有一个感性的认知,后面讲编程方面的知识,将会让大家看到Pattern的实现。

4.Flink CEP实现 Flink CEP通过什么实现? 官网亦提供了两种方式,如同Spark API和Spark sql,对于同一个功能,他们有两种不同的实现方式 1.Flink CEP API 2.Flink CEP SQL 1.Flink CEP API

内容比较多一些,如果我们全部看完下面文章后,我们关于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 看完上面,我们可以参考一些案例 Flink: CEP实现空气质量检测 https://www.aboutyun.com/forum.php?mod=viewthread&tid=27487 2.Flink CEP SQL 对于Flink CEP SQL是官网后期添加的,当前版本Flink1.9,已经发展的很不错了。下面关于Flink CEP SQL仅供参考 彻底明白Flink系统学习29-1:【Flink1.7】流概念之模式检测 https://www.aboutyun.com/forum.php?mod=viewthread&tid=26674 彻底明白Flink系统学习29-2:【Flink1.7】流概念之模式检测 https://www.aboutyun.com/forum.php?mod=viewthread&tid=26688 彻底明白Flink系统学习29-3:【Flink1.7】流概念之模式检测 https://www.aboutyun.com/forum.php?mod=viewthread&tid=26694 彻底明白Flink系统学习29-4:【Flink1.7】流概念之模式检测 https://www.aboutyun.com/forum.php?mod=viewthread&tid=26695 4.Flink CEP与DataStream对比 虽然我们可能看了不少的内容,可能很多人的依然有疑惑,Flink CEP处理的是流式数据,DataStream处理的也是流式数据,那么他们到底有什么区别? 我们可以看到Flink CEP和流式处理: CEP:更着重是在流式数据中查找,也就是对源数据不做处理,只是在数据流中查找匹配。 流式处理:更着重是对数据的加工和处理。一般不会在数据中去查找匹配。 比如下图,我们有流式数据如下: 1 2 3 4 5 6 7 1 2 2 3 。。。。 经过流式处理数据map都加1, 这时候流式数据处理为: 2 3 4 5 6 7 2 3 4 4。。。。 如果是CEP,则为:从源数据中查找匹配:123 1 2 3 4 5 6 7 1 2 2 3。。。。 于是我们找到匹配: 1 2 3 1 2 2 3 123

。。。。 上面我们就可以看到他们的不同,当然可能因为我们对于CEP查找匹配还不够了解,那么我们可以继续往下学习。 Flink CEP图

Flink streaming图

上面其实只是让我们了解了Flink CEP,后面将会给大家介绍Flink CEP原理以及编程。 以上内容部分录制视频【目前网上唯一Flink CEP视频】:

链接:

https://pan.baidu.com/s/1OgXlSEg9vFdugzhmjEgYHg 提取码: 96cv

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 About云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档