总结就是:输入-规则-输出
就是单事件的自关联,其实匹配的也是时间序列的
定义基础
(1)定义 复合事件处理(Complex Event Processing,CEP)是一种基于动态环境中事件流的分析技术,事件在这 里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合 关系制定检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更复杂的复合事件
(2)特征 CEP的特征如下: 目标:从有序的简单事件流中发现一些高阶特征; 输入:一个或多个简单事件构成的事件流; 处 理:识别简单事件之间的内在联系,多个符合一定规则的简单事件构成复杂事件; 输出:满足规则的复杂事件
(3)功能
CEP用于分析低延迟、频繁产生的不同来源的事件流。CEP可以帮助在复杂的、不相关的时间流中找出有 意义的模式和复杂的关系,以接近实时或准实时的获得通知或组织一些行为。 CEP支持在流上进行模式匹配,根据模 式的条件不同,分为连续的条件或不连续的条件;模式的条件允许有时间的限制,当条件范围内没有达到满足的条件 时,会导致模式匹配超时。 看起来很简单,但是它有很多不同的功能: ① 输入的流数据,尽快产生结果; ② 在2个 事件流上,基于时间进行聚合类的计算; ③ 提供实时/准实时的警告和通知; ④ 在多样的数据源中产生关联分析模 式; ⑤ 高吞吐、低延迟的处理 市场上有多种CEP的解决方案,例如Spark、Samza、Beam等,但他们都没有提供专 门的库支持。然而,Flink提供了专门的CEP库。
(4)主要组件 Flink为CEP提供了专门的Flink CEP library
它包含如下组件:Event Stream、Pattern定义、Pattern检测和生成Alert。 首先,开发人员要在DataStream流上定义出模 式条件,之后Flink CEP引擎进行模式检测,必要时生成警告。
CEP里面的模式API
(1)个体模式(Individual Patterns) 组成复杂规则的每一个单
独的模式定义,就是个体模式。
start.times(3).where(_.behavior.startsWith(‘fav’))<