复杂事件处理(complex event processing)的事件定义和理解

事件处理是一种跟踪和分析(处理)事物(事件)的信息流(数据)并从中得出结论的方法。复杂事件处理(CEP)是一种事件处理,它结合了来自多个数据源来推断出更复杂的事件或模式。CEP的目标是从多个简单的事件中识别有意义的事件(例如机会或威胁)并尽快响应它们。

概念定义

这些事件可能发生在组织的各个层面,如销售,订单或客户服务电话。也可以是新闻,文本消息,社交媒体帖子,股票信息,交通报告,天气报告等等。事件(Event)可以定义为“状态变化”,比如测量值超过预定义的时间,温度或其他值。

在事件处理系统中,简单事件(simple event)的一般定义为:

Event{
    eventId,
    eventType,
    time,
    groupId,
    attr_1,
    attr_2,
    ...
    attr_i
}

简单事件是相对复杂事件而言的,在上面的定义中,eventType表示事件的类型,一个移动对象比如一辆汽车可以表示为一种eventType,因为随着时间的变化该汽车会产生很多同种类型的事件。time表示事件发生的时间点,表示某一刻的时间。groupId表示该事件哪一个组,该字段主要方便系统实现。比如如果要计算操场上面所有学生的事件,现在一个学生是一种事件类型,所有的学生可以放入同一个组中。这样子系统只需要找到这个组就能找到所有的学生了。剩下的属性attr_1,attr_2 是用户自定义的属性。一般情况下这些属性的数据类型都是编程语言中的基本数据类型。

在简单事件的基础之上,我们来定义复杂事件:

ComplexEvent{
    eventId,
    eventType,
    startTime,
    endTime,
    groupId,
    SimpleEvent1,
    SimpleEvent2,
    ...
    SimpleEventi
}

复杂事件是由多个简单事件触发形成的,上面的简单事件SimpleEvent1, SimpleEvent2, SimpleEventi是不同种类型的简单事件。

概念描述

在数千个输入的事件数据中,监视系统可以接收以下三个流数据源:

  • 教堂的钟声响起。
  • 一个男人穿着燕尾服的外表,一个女人穿着飘逸的白色礼服。
  • 米饭在空中飞舞。

从这些事件中,监控系统可以推断出复杂的事件:婚礼。CEP通过分析和关联其他事件来帮助发现复杂的事件:钟声,着婚礼服的男人和女人以及在空中飞舞的米饭。

CEP依赖于许多技术,包括:

  • 事件模式检测
  • 事件抽象
  • 事件过滤
  • 事件聚合和转换
  • 建模事件层次结构
  • 检测事件之间的关系(例如因果关系,成员关系或时间关系)
  • 事件驱动的流程摘要化

CEP的商业应用存在于各种行业中,包括算法股票交易,信用卡欺诈检测,业务活动监控和安全监控。

示例

这个例子涉及到汽车的一些传感器以及各种事件和反应。假如汽车有如下三个传感器 :一个测量轮胎压力,一个测量速度,一个检测是否有人坐在座位上或离开座位。

在第一种情况下,汽车正在移动,其中一个轮胎的压力在15分钟内从45 psi变为到41 psi。随着轮胎中的压力降低,产生包含轮胎压力的一系列事件。此外,还会生成一系列包含汽车速度的事件。汽车的事件处理器可以检测到在一定长的时间段内轮胎压力损失导致“胎压减少”事件的产生的情况。这一新事件可能会触发汽车压力损失维护日志,并警告驾驶员轮胎压力已降低。

在第二种情况下,汽车正在移动,其中一个轮胎的压力在5秒内从45 psi下降到20 psi。检测到压力损失发生在较短的时间段内,或者可能是因为事件之间的差值大于预定阈值。不同的情况导致生成事件“爆胎”。这个新事件触发了一个不同的反应过程,以立即提醒驾驶员并启动车载计算程序,以协助驾驶员停车,避免汽车打滑失控。

此外,检测到的事件也可以与其他事件组合,以便推断出更复杂的情况。例如,在最终情况下,汽车正常移动并且爆胎,这导致汽车偏离道路并撞在树上,并且驾驶员被抛出汽车。传感器迅速检测到这一系列不同的情况,在很短的时间内“爆胎”,“速度为零”和“驾驶员离开座位”的组合事件导致检测到新的情况:“驾驶员抛飞事故”。即使没有直接测量可以最终确定驾驶员被抛出,但不同事件组合能够推断出这个复杂事件。这是复杂(或复合)事件的本质。它很复杂,因为人们无法直接检测到这种情况; 人们必须从其他事件的组合推断出来。

参考:Complex event processing

猜你喜欢

转载自blog.csdn.net/liangyihuai/article/details/81330393