当前位置 : 主页 > 大数据 > 区块链 >

复杂事件处理(Complex Event Processing)

来源:互联网 收集:自由互联 发布时间:2021-06-22
复杂事件处理 复杂事件处理(CEP,Complex Event Processing) 是一种基于动态环境中事件流的分析技术,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用 过滤、关联、聚

复杂事件处理

复杂事件处理(CEP,Complex Event Processing)是一种基于动态环境中事件流的分析技术,事件在这里通常是有意义的状态变化,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系制定检测规则,持续地从事件流中查询出符合要求的事件序列,最终分析得到更复杂的复合事件,主要用于网络诈欺识别等防止犯罪,银行等金融行业防止,以及风险规避和营销决策等.

复杂事件处理面临多方面的挑战:

  • 减少应用存储数据(在分析数据之前)造成的延迟
  • 能够持续,实时地分析多个数据流
  • 能够关联不同数据流中的事件,从而发现新的相关情形
  • 能够迅速响应新发现的危险或机会
  • 能够迅速的将先前发现的规律应用到新的数据流分析模型中
  • 能够利用已有的应用开发能力快速开放新的高性能,高扩展度的应用
  • 确保应用和系统的连贯性。

事件处理语言

事件处理语言(EPL,Event processing language)用于系统中制定和查询感兴趣的事件序列,通常是类SQL的语句,从SQL语句中扩展而来.

事件关系

事件应该包含一些基本的要素:类型、发生事件以及更多的一些定义属性

通常需要关联多个事件进行分析处理,其中事件间的关系主要有5种:

  1. 时间关联

  2. 空间关联

  3. 依赖关系
    事物的状态属性之间彼此的依赖关系和约束关系。

  4. 因果关系

事件处理过程

复杂事件处理过程包括:

  • 格式化:将事件获取模块得到的事件信息转化为内部处理的形式
  • 预处理:将事件按照字段内容进行处理
  • 模式侦测:将数个事件复合起来,找出复合事件
  • 事件发派:将复合事件发送到相应的处理模块
  • 执行动作:处理模型按照事件状况执行相应的动作

以下是复杂事件处理系统中的关键模块组成图(来自《深入浅出复合事件处理》),

  1. EPL解析器:复杂事件处理系统中EPL语言被解析器解析为处理引擎能理解的语言(类SQL解析器)。
  2. 规则管理:管理EPL。
  3. 事件接入:通过SOA、ESB、MOM、读取日志等方式将消息接入。
  4. 预处理:将事件依据字段内容进行处理。
  5. CEP引擎:找出事件关联。
  6. 数据模型:维护内部数据。
  7. 事件发派:将已经发现的复合事件发派到负责处理的行动模块中。
  8. 行动模块:对复合事件采取行动 。

如何评价一个CEP平台:

  • 开发工具中的编程模型,是否能吸引众多不同类型的开发人员?
  • 是否提供了高可用性和高安全性?
  • 是否可以部署在多个使用阵列配置的服务器?
  • 是否提供了监视功能?
  • 其引擎是否可以易于扩展,从而来支持公司特有的高级的逻辑?
  • 是否有恢复机制,即使一旦服务器故障,也可以防止数据丢失?
  • 进出处理引擎的消息传递,其机制是否可靠?
  • 它同数据库以及其他系统能否很好的集成?
  • 这个平台是否支持连续型实时数据管理的各个生命周期,包括分析,存储,建模和一个新的实时分析应用的部署?

事件驱动架构

事件驱动架构(Event-Driven Architecture,EDA) 基于消息传递,现在主要是异步通讯的消息队列的架构,依据“发布/订阅”模式,通过特定模式来对业务事件作出响应,耦合度较低.

面向服务架构

面向服务架构 (Service-Oriented Architecture, SOA) 基于“请求/响应”的形式

下面这幅图可以较好地体现基于SOA和EDA两种体系结构的差异处,SOA更多地是面向垂直系统的请求和响应处理,EDA则是应对横向的系统通.

资料来源:

[1]. TT SOA 技术专题之“复杂事件处理手册”
[2]. 《事件处理中间件原理和应用》
[3]. 《深入浅出复合事件处理》


本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

网友评论