一种面向实时事件流的复杂事件处理方法技术

技术编号:34442842 阅读:60 留言:0更新日期:2022-08-06 16:34
本发明专利技术公开了一种面向实时事件流的复杂事件处理方法,包括如下步骤:1)基于“事件实例覆盖”和“复杂事件实例覆盖”定义,建立查询与事件流的临时匹配之间的关联关系;2)构建临时匹配的链式分区存储结构,将所述结构作为复杂事件实例覆盖的载体,得到匹配结果复杂事件实例覆盖集,其中匹配时,采用复杂事件匹配算法CoverMatch;3)采用CombineMatch算法将所得到的匹配结果进行一个反向的匹配结果联结,最终获取全部匹配结果。本发明专利技术采用临时匹配链式分区存储结构则借助事件实例覆盖和复杂事件实例覆盖的概念来设计,规避了集中式临时匹配存储的缺点。储的缺点。储的缺点。

【技术实现步骤摘要】
一种面向实时事件流的复杂事件处理方法


[0001]本专利技术公开涉及信息处理
,尤其涉及一种面向实时事件流的复杂事件处理方法。

技术介绍

[0002]复杂事件处理是一种动态环境下对事件流进行分析的技术,随着信息社会的进一步发展,越来越多的行业采用复杂事件处理(Complex Event Processing,CEP)技术来对海量的事件流进行实时的分析。复杂事件处理通过分析事件中的关系,通过关联、聚合、过滤等技术,根据事件间的时序关系和聚合关系制定查询规则,持续地从事件流中获取符合要求的事件序列。该技术在金融交易分析、传感器网络、物联网等领域都有着广泛的应用。
[0003]目前,基于有限状态自动机(Nondeterministic Finite Automata,NFA)的处理模型是最流行的复杂事件处理技术实现方式。通过NFA的方式来实现的复杂事件处理技术,在事件流上进行匹配的过程中都会产生临时匹配,用以保证该临时匹配结果能够被后续的事件使用形成新的临时匹配以及最终匹配结果。所以匹配过程中会在事件流上产生大量且重叠的部分匹配,有限状态自动机需维护大量的重复匹配状态,导致基于该技术的方法都会出现冗余计算的问题。尤其当复杂时间查询的时间窗口跨度大时,冗余计算将会给处理器和存储器等硬件资源带来巨大的额外开销。

技术实现思路

[0004]鉴于此,本专利技术公开提供了一种面向实时事件流的复杂事件处理方法,以解决有限状态自动机匹配过程中导致的冗余计算问题,从而提高复杂事件匹配的效率。
[0005]本专利技术提供的技术方案,具体为,一种面向实时事件流的复杂事件处理方法,包括如下步骤:
[0006]1)将查询解析为一个有限状态自动机,读取事件流,基于“事件实例覆盖”和“复杂事件实例覆盖”定义,建立查询与事件流的临时匹配之间的关联关系;
[0007]2)构建临时匹配的链式分区存储结构,将所述结构作为复杂事件实例覆盖的载体,在所述结构上,查询在事件流上进行复杂事件实例覆盖匹配,得到匹配结果复杂事件实例覆盖集,其中匹配时,采用复杂事件匹配算法CoverMatch;
[0008]3)采用CombineMatch算法将所得到的匹配结果进行一个反向的匹配结果联结,最终获取全部匹配结果。
[0009]优选地,所述事件流S(s1,s2,

,sn)由一系列的基本事件实例构成,其中si为事件实例,它包含了事件的类型、事件的属性和事件发生时的时间;
[0010]所述查询为复杂事件查询Q,是由一组定义在基本事件上的约束条件构成,用以定义和表示更高层次的复杂事件的属性特征;
[0011]所述“事件实例覆盖”定义为:当事件实例s
i
与事件流中相邻的前一个事件实例s
i
‑1同属一个事件类型,并且都能够被当前的NFA验证成功且作用在NFA的同一个状态节点,
则称s
i
是s
i
‑1的一个事件实例覆盖;
[0012]所述“复杂事件实例覆盖”定义为:对两个匹配结果M1和M2来说,如果M1中的每一个事件实例,都相等于M2中对应的事件实例或是M2中对应事件实例的事件实例覆盖,则称M1是M2的一个复杂事件实例覆盖,其中事件实例覆盖、复杂事件实例覆盖均是可传递的。
[0013]优选地,上述方法具体包括如下步骤:
[0014]S1:假设有一个查询Q以及一个事件流S,将查询Q编译成NFA,其中在Q被编译成NFA之后,存在主要状态及多个分区;
[0015]S2:查找事件流中的事件e;如果事件e不为空则进行步骤S3,否则进行步骤S6;
[0016]S3:检查事件e的属性;如果符合要求则进行步骤S4,否则进行步骤S2;
[0017]S4:使用事件e在上一个分区中遍历暴露的匹配节点,将能够进行更新的节点拷贝,进行更新生成新的节点;
[0018]S5:检查此节点的时间窗口是否大于事件流S的时间范围,如果是,则进行步骤S2,否则进行步骤S6;
[0019]S6:查找事件e所在的分区region,进入到当前分区进行复杂事件实例覆盖的检查,查找当前事件e所在分区region中的每一个临时匹配链的链尾节点,如果事件e不是本分区所有链尾节点的复杂事件实例覆盖,就单独成链,否则成为某个链的链尾节点;
[0020]S7:查找本事件流的最后一个分区,找到本分区的每一个临时匹配链,并且使用prev直接定位到链尾节点,将这些链尾节点存储到复杂事件实例覆盖集R中,从而得到最终复杂事件实例覆盖集R;
[0021]S8:由于匹配过程中采用的是双向环形链式结构,则从最底端的复杂事件实例覆盖集R出发,反向遍历所在的链表;收集每个分区的该链表节点的最后一个事件实例,最后通过递归实现各个分区事件实例的联结,最终得到所有匹配结果。
[0022]本专利技术提出了一种面向实时事件流的复杂事件处理方法,对NFA进行了增强,为其设计了一个临时匹配的链式分区存储结构,用以替代现有技术中的集中式的临时匹配存储方式。本专利技术采用临时匹配链式分区存储结构则借助事件实例覆盖和复杂事件实例覆盖的概念来设计,规避了集中式临时匹配存储的缺点。
[0023]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本专利技术的公开。
附图说明
[0024]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0025]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1是本专利技术一种面向实时事件流的复杂事件处理方法中所述临时匹配链式分区存储结构示意图;
[0027]图2是本专利技术公开实施例中在ABC数据集上处理5组查询的性能对比示意图;
[0028]图3是本专利技术公开实施例中在交通数据集上处理5组查询的性能对比示意图;
[0029]图4是本专利技术公开实施例中在ABC数据集上时间窗口约束的大小对性能影响的实验对比;
[0030]图5是本专利技术在交通数据集上时间窗口约束的大小对性能影响的实验对比示意图。
具体实施方式
[0031]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的系统的例子。
[0032]针对基于NFA的复杂事件处理中产生的大量临时匹配和拷贝而导致的冗余计算等问题,本实施方案提供了一种面向实时事件流的复杂事件处理方法,提出了复杂事件实例覆盖的概念,通过复杂事件实例覆盖,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向实时事件流的复杂事件处理方法,其特征在于,包括如下步骤:1)将查询解析为有限状态自动机,读取事件流,基于“事件实例覆盖”和“复杂事件实例覆盖”定义,建立查询与事件流的临时匹配之间的关联关系;2)构建临时匹配的链式分区存储结构,将所述结构作为复杂事件实例覆盖的载体,在所述结构上,所述查询在事件流上进行复杂事件实例覆盖匹配,得到匹配结果复杂事件实例覆盖集,其中采用复杂事件匹配算法CoverMatch匹配;3)采用CombineMatch算法将所得到的匹配结果进行一个反向的匹配结果联结,最终获取全部匹配结果。2.根据权利要求1所述的一种面向实时事件流的复杂事件处理方法,其特征在于,所述事件流S(s1,s2,

,sn)由一系列的基本事件实例构成,其中si为事件实例,它包含了事件的类型、事件的属性和事件发生时的时间;所述查询为复杂事件查询Q,是由一组定义在基本事件上的约束条件构成,用以定义和表示更高层次的复杂事件的属性特征;所述“事件实例覆盖”定义为:当事件实例s
i
与事件流中相邻的前一个事件实例s
i
‑1同属一个事件类型,并且都能够被当前的NFA验证成功且作用在NFA的同一个状态节点,则称s
i
是s
i
‑1的一个事件实例覆盖;所述“复杂事件实例覆盖”定义为:对两个匹配结果M1和M2来说,如果M1中的每一个事件实例,都相等于M2中对应的事件实例或是M2中对应事件实例的事件实例覆盖,则称M1是M2的一个复杂事件实例覆盖,...

【专利技术属性】
技术研发人员:邱涛马姣姣谢沛良夏秀峰宗传玉
申请(专利权)人:沈阳航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1