Flink CEP
文章目录
相关博客:
一、基本概念
1.1 什么是CEP
复杂事件处理(Complex Event Processing,简称CEP)
Flink CEP是Flink中实现的复杂事件处理(CEP)库。
CEP允许在无休止的事件流中检测事件模式,让我们有机会掌握数据中重要的部分。
一个或多个由简单事件构成的事件通过一定的规则匹配,然后输出用户想要得到的数据——满足规则的复杂事件。
1.2 CEP的特点
目标:从有序的简单事件流中发现一些高阶特征。
输入:一个或多个由简单事件构成的事件流。
处理:识别简单事件之间的内在联系,多个符合一定规则的简单事件构成复杂事件。
输出:满足规则的复杂事件。
二、Pattern API
处理事件的规则,被叫做“模式”(Pattern)。
Flink CEP提供了Pattern API,用于对输入流数据进行复杂事件规则定义,用来提取符合规则的时间序列
使用CEP的基本流程如下:
// 数据流
DataStream<Event> input = ...
// 1.定义一个Pattern
Pattern<Event, Event> pattern = Pattern.<Event>begin("start").where(...)
.next("middle").subtype(SubEvent.class).where(...)
.followedBy("end").where(...);
// 2.将创建好的Pattern应用到输入事件流上
PatternStream<Event> patternStream = CEP.pattern(input,pattern);
// 3.检出匹配事件序列,处理得到结果
DataStream