前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(1)Flink CEP复杂事件处理引擎介绍

(1)Flink CEP复杂事件处理引擎介绍

原创
作者头像
NBI大数据
发布2022-08-12 11:34:13
6840
发布2022-08-12 11:34:13
举报

(1)简介及应用场景:

复杂事件处理(CEP)既是把不同的数据看做不同的事件,并且通过分析事件之间的关系建立起一套事件关系序列库。利用过滤,聚合,关联性,依赖,层次等技术,最终实现由简单关系产生高级事件关系。

复杂事件主要应用场景:主要用于信用卡欺诈检测、用户风险检测、设备故障检测、攻击行为分析等领域。

Flink CEP能够利用的场景较多,在实际业务场景中也有了广泛的使用案例与经验积累。比如

在可编程方面,Flink同时推出了Flink SQL CEP,开发者可以通过较为属性的SQL语法快速构建各类CEP事件组合应用。

Flink CEP原理说明:

(2)Flink CEP匹配模式介绍:

在Flink CEP中匹配模式分为严格近邻模式和宽松近邻模式。严格近邻模式的事件必须是紧密连接的,宽松近邻事件可以无需紧密连接,如下图:

(3)Flink CEP SQL语法介绍:

(3.1)Flink CEP SQL样例:

代码语言:javascript
复制
String sql = "SELECT * " +
                "FROM CEP_SQL_3 " +
                "    MATCH_RECOGNIZE ( " +
                "        PARTITION BY symbol " +       //分组
                "        ORDER BY rowtime " +          //排序
                "        MEASURES " +                   //定义如何根据匹配成功的输入事件构造输出事件
                "            LISTAGG(CAST(e3.id as varchar),',') as ids,"+
                "            AVG(e1.price) as avgPrice,"+
//                "            START_ROW.rowtime AS start_tstamp, " +
                "            LAST(e1.rowtime) AS bottom_tstamp, " +     //第一次的事件时间为end_timestamp
                "            LAST(e3.rowtime) AS end_tstamp " +           //最新的事件时间为end_timestamp
                "        ONE ROW PER MATCH " +                                      //匹配成功输出一条
                "        AFTER MATCH  SKIP PAST LAST ROW " +                   //匹配后跳转到下一行
                "        PATTERN ( e1 e2 e3{1}) WITHIN INTERVAL '2' MINUTE" +  //定义事件组
                "        DEFINE " +                                            //定义每个事件的匹配条件     
                "            e1 AS " +
                "                e1.price = 25 , " +
                "            e2 AS " +
                "                e2.price = 18 ," +
                "            e3 AS " +
                "                e3.price = 15 " +
                "    ) MR";

(3.2)Flink CEP匹配规则:贪婪词量和勉强词量

Concatenation-像(AB)这样的模式意味着A和B之间的连接是严格的。因此,在它们之间不能存在没有映射到A或B的行。

Quantifiers-修改可以映射到模式变量的行数。

* 0或者多行

+ 1或者多行

? 0或者1行

{n} 严格n行(n>0)

{n,} n或者更多行(n≥O)

{n,m} 在n到m(包含)行之间(0≤n≤m,0<m)< div="">

{,m}一在0到m(包含)行之间(m>0)

(3.3)匹配策略

SKIP PAST LAST ROW -匹配成功之后,从匹配成功的事件序列中的最后⼀个事件的下⼀个事件开始进⾏下⼀次匹配。

SKIP TO NEXT ROW -匹配成功之后,从匹配成功的事件序列中的第⼀个事件的下⼀个事件开始进⾏下⼀次匹配。(默认模式)

SKIP TO LAST variable -匹配成功之后,从匹配成功的事件序列中最后⼀个对应于变量的事件开始进行下⼀次匹 配。

SKIP TO FIRST variable -匹配成功之后,从匹配成功的事件序列中第⼀个对应于变量的事件开始进行下⼀次匹配。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档