CN102339256B - 基于imf内外存置换策略的复杂事件检测方法 - Google Patents
基于imf内外存置换策略的复杂事件检测方法 Download PDFInfo
- Publication number
- CN102339256B CN102339256B CN2011102738223A CN201110273822A CN102339256B CN 102339256 B CN102339256 B CN 102339256B CN 2011102738223 A CN2011102738223 A CN 2011102738223A CN 201110273822 A CN201110273822 A CN 201110273822A CN 102339256 B CN102339256 B CN 102339256B
- Authority
- CN
- China
- Prior art keywords
- event
- instance
- oid
- imf
- external memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于IMF内外存置换策略的复杂事件检测方法,该方法在用户未终止检测过程时,不断地扫描事件流,读取当前事件,构建、修改对象统计表,并根据当前事件的类型进行不同的处理。若当前事件为末端事件,则触发复杂事件检测过程,并将检测出的满足用户定义模式的序列输出;若当前事件为非末端事件且内存配额未满,则基于对象树及其索引进行事件实例的内存存储;若当前事件为非末端事件且内存配额已满,则基于IMF策略进行事件实例的内外存置换,并与事件实例位示图相关联进行置换对象的各事件实例的外存存储。该方法可有效支持大时间尺度的复杂事件检测,并具有空间利用和处理时间的高效性。
Description
技术领域
本发明属于事件流处理技术,具体涉及一种基于IMF(Instance Matching Frequency,实例匹配频率)内外存置换策略的复杂事件检测方法。
背景技术
随着传感器和无线射频识别(Radio Frequency Identification,RFID)等电子数据采集设备(Electronic Data Gathering Equipment,EDGE)在供应链管理、环境监控及物联网等诸多领域中被广泛使用,产生了大量的事件类型的数据。然而,用户并不是对所有的原始事件数据都感兴趣,如在风监控系统中,应用程序对每个传感器读出的风速数据不感兴趣,而只对2秒钟之内风速增加了5英里的信息感兴趣,可以由此推断飓风或龙卷风的到来。这里的风速数据被称为原始事件或基本事件,而风速的改变是由原始事件组成或生成的复杂事件。可见,在实际应用中,数据在发挥作用前要使其有效化,使其变成具有丰富语义并对用户有价值的数据。因此,复杂事件处理(Complex Event Processing,CEP)技术越来越受到关注和重视,逐渐成为数据库领域继数据流之后新的研究热点。复杂事件检测是CEP的重要研究内容,其处理的数据对象是原始事件流,它通过定义规则或查询语句对不断到达系统的事件流数据进行过滤和相互关联,从而提取出用户关心和感兴趣的复杂事件模式。复杂事件检测技术可以帮助人们从原始的海量数据中发现复杂事件和隐含知识,并可根据这些重要信息对隐藏的机遇和威胁做出迅速的响应,对于公共安全管理、事件监控和自然灾害预警等都具有重要的现实意义。
复杂事件检测与传统的数据库查询不同。数据库查询面向的是不变的数据,用户通过不断变换查询要求得到不同的结果;而复杂事件检测则要求用户预定义需要检测的复杂事件模式,对于不断变化的事件流数据检测出用户要求的模式。前者数据是不变的,而查询是变化的;后者数据是不断变化的,而检测模式是事先预定不变的。
随着复杂事件处理和检测逐渐成为研究热点,许多专家和学者对其进行了深入研究,提出了许多事件检测方法,并开发了相应的系统。比较典型的包括美国加州大学伯克利分校开发的SASE系统、HiFi系统、Cornell大学开发的Cayuga系统、Texas大学Arlington分校开发的EStream系统、Dartmouth学院开发的PQS系统以及Simens公司开发的RFID中间件系统等,这些系统分别基于四种检测模型,即自动机模型、匹配树模型、Petri网模型和有向图模型对复杂事件进行高效的检测,但这些系统均未考虑大时间尺度的复杂事件检测,构成复杂事件的基本事件均局限于一个较短的时间范围内,通常不超过24小时,无需设置较大的时间窗口,因此,复杂事件检测过程完全可以在内存中完成。但实际应用中还存在着大量大时间尺度的复杂事件。如在供应链管理中,商品从供应链的开始到结束,经历的时间可能很长,有的长达几个月甚至一年,这可能是供应链特点决定的,也可能是商品滞销引起的。再如在对地震、海啸等自然灾害的监控中,引起地震、海啸发生的因素有很多,这一系列的因素往往不是在短时间内发生,而是在一个相对较长的时间内,一个一个相继发生。对于第一个基本事件发生到最后一个基本事件发生的时间跨度超过24小时的复杂事件进行检测,本发明称为大时间尺度的复杂事件检测。大时间尺度的复杂事件从发生到结束延续时间很长,因此,检测过程需要设置大时间窗口,导致复杂事件检测所涉及的数据量非常庞大,基于现有的处理方法和技术都不可能在内存中完成事件存储和检测。目前尚没有大时间尺度复杂事件检测的研究成果。
发明内容
针对现有的复杂事件检测技术的局限性,对于大时间尺度的复杂事件检测,本发明提供了一种基于IMF(Instance Matching Frequency,实例匹配频率)内外存置换策略的检测方法。
该方法通过不断地扫描事件流读取当前事件,检测用户感兴趣的复杂事件是否发生,其步骤包括:
(1)扫描事件流,读取当前事件;
(2)构建、修改对象统计表;
本发明基于IMF内外存置换策略实现大时间尺度的复杂事件检测,为了便于进行置换中的相关计算,需要用到一系列的统计量,为此,本发明提供对象统计表结构,当事件流中的事件到达时,将随之建立或修改对象统计表,记录对象的一些统计量值。
(3)判断当前事件是否为末端事件,若是,则转入步骤(8),触发复杂事件检测过程;否则,进入步骤(4);
末端事件是用户预定义的复杂事件模式中的最后一个事件(见“具体实施方式”步骤(3)中的描述)。末端事件发生将触发复杂事件检测过程。
(4)判断内存配额是否已满,若内存配额未满,则进入步骤(5);否则,转入步骤(6);
由于大时间尺度的复杂事件检测需设置大时间窗口,事件实例的存储和检测不能在有限的内存中完成;另外,由于系统程序等要占用一定的内存,内存空间不可能全部用来进行复杂事件检测。因此,本发明为复杂事件检测过程配置一定容量的内存储区,即内存配额,其大小可由用户根据内存的容量进行设置。在复杂事件检测的过程中,当前事件首先要存入内存,若内存配额已满,将触发步骤(6)的内外存置换过程;否则,若内存配额未满,则按照步骤(5),将当前事件存储在内存的对象树结构中。
(5)基于对象树及其索引对事件实例进行内存存储,然后转入步骤(10);
对象树是本发明提供的一种事件实例内存存储结构,它以对象为基本存储单位,每个事件对象对应一棵树。该结构在方便内存检测的同时,实现了压缩存储。
(6)基于IMF策略进行事件实例的内外存置换;
在大时间尺度的复杂事件检测过程中,当内存配额满时,将触发事件实例的内外存置换过程。为了提高大时间尺度复杂事件检测的效率,本发明提供IMF(Instance MatchingFrequency,实例匹配频率)置换策略,根据事件流的特点,以减少I/O代价为目标,将事件实例由内存置换到外存。它的基本思想是:基于过去的(Past)和当前的(Recent)事件计算各对象的实例匹配频率,依据实例匹配频率选择置换对象,从而利用历史事件的发生规律来预测未来事件变化的趋势,选择将来长时间不会引发匹配的对象发生的事件调出内存,最大限度地减少I/O代价。本步骤将按照IMF置换策略选择置换对象。关于IMF置换策略的具体做法和步骤见“具体实施方式”中的步骤(6)。
(7)与事件实例位示图相关联进行置换对象的各事件实例的外存存储,然后,转入步骤(10);
在大时间尺度的复杂事件检测中,事件实例的外存存储应该具备以下两个特点:①具有一定的数据压缩能力;②方便进行外存实例的匹配。为此,本发明提供以对象和事件类型为基本存储单位的存储策略,并构建事件实例位示图实现外存实例的快速存储和匹配。
(8)进行复杂事件检测;
当末端事件发生时,将触发复杂事件检测过程。该过程按照用户预定义的复杂事件模式,先进行基于对象树的内存实例的匹配,然后基于事件实例位示图进行外存实例的匹配。实例匹配时,除了要满足事件模式,还要满足事件之间的属性约束及时态约束。
(9)将检测出的满足用户定义模式的序列输出;
(10)检查用户是否终止检测过程,若是,则整个复杂事件检测过程结束;否则,转入步骤(1),读取事件流的下一个事件。
本发明结合大时间尺度事件流自身的特点,提供了事件流在内外存的存储和置换策略,使得对大时间尺度复杂事件的检测成为可能并具有高效性。本发明的创新之处体现在:①提供了基于对象树的事件实例内存存储方法,所提供的对象树存储结构在方便进行内存检测的同时,实现了事件实例的压缩存储,节省了内存空间;②在内存配额满时,提供了事件实例从内存调出到外存的IMF置换策略,该策略考虑了事件流的变化规律,使得大时间尺度的复杂事件检测成为可能并具有高效性;③提供了事件实例位示图结构,以支持外存事件存储和事件实例的快速匹配,进一步增强了大时间尺度复杂事件检测的高效性。
附图说明
图1是本发明方法的总流程图;
图2是本发明方法中对象统计表构建和修改过程的流程图;
图3是本发明方法中基于对象树及其索引进行事件实例内存存储的流程图;
图4是本发明方法中基于IMF策略进行事件实例内外存置换的流程图;
图5是本发明方法中事件实例外存存储过程的流程图;
图6是本发明方法中末端事件触发的复杂事件检测过程的流程图;
图7是本发明提供的对象树存储结构与SASE系统的实例栈结构以及不采用任何压缩结构所占用的内存空间比较图;
图8是FIFO、LIFO和IMF三种置换策略对总处理时间的影响比较图;
图9是FIFO、LIFO和IMF三种置换策略的I/O操作次数比较图;
图10反映了事件实例位示图对检测时间的影响;
图11反映了事件实例位示图对存储时间的影响。
具体实施方式
(1)扫描事件流,读取当前事件;
本发明将事件定义为ET(OID,T),其中,OID(即Object ID)为事件对象的唯一标识;ET(即Event Type)为事件类型,是用户所关心的一种状态的描述;T(即Timestamp)为事件发生的时间戳。该事件模型表示的语义为:对象OID在T时刻被检测到发生了ET类型的事件。该事件模型对于RFID、传感器等电子数据采集设备采集的数据均适用,如在RFID部署的系统中,放置在位置A的阅读器1在t时刻阅读到标签为oid的物品,可表示为事件A(oid,t),表示物品oid在时刻t放置在位置A的事件发生。
本发明提供的基于IMF内外存置换策略的复杂事件检测方法,通过不断地扫描事件流读取当前事件,检测用户感兴趣的复杂事件是否发生。
(2)构建、修改对象统计表;
本发明基于IMF内外存置换策略实现大时间尺度的复杂事件检测,为了便于进行置换中的相关计算,需要用到一系列统计量,为此,本发明提供对象统计表结构,当事件流中的事件到达时,将随之建立和修改对象统计表,记录对象的一些统计量值。它包括五个数据域,分别是:对象标识OID,末端事件的发生次数C1、非末端事件的发生次数C2、最近R个时间块内末端事件的发生次数C3以及末端事件的最近发生时间T。这里的末端事件是指用户定义的复杂事件模式中的最后一个事件,R是用户指定的可调变量。初始时对象统计表为空,随着事件流中事件的到来,对象统计表被构建并被不断修改。
当事件e(oid,t)到来时,构建和修改对象统计表的子步骤包括:
(2.1)如果事件e(oid,t)是进入一个新的时间块的第一个发生的事件,则调整最近R个时间块(即R区)的范围,并更新对象统计表所有表项的C3值;
为了实现基于IMF内外存置换策略的复杂事件检测,本发明将事件流划分成长度相等的时间块(长度可由用户设置),并将内存中的事件实例以时间块为单位划分成R(Recent)区和P(Past)区,所谓R区是指由当前时刻所在时间块之前的R个时间块构成的区域,P区是指由R区之前的P个时间块构成的区域(R、P的大小可调)。后面介绍的IMF置换策略将综合考虑R、P两个区域中的事件计算实例匹配频率,并对R、P两个区域做不同的处理,从而确定置换对象。若事件e(oid,t)是进入一个新的时间块的第一个发生的事件,则R区便向后移一个时间块,各对象在R区发生末端事件的次数C3也随之更新。
(2.2)在对象统计表中查找对象oid,若找到,则进入步骤(2.3);否则,转入步骤(2.5);
(2.3)判断事件e是否为末端事件,若是,则将表项oid的C1值增1;否则,将表项oid的C2值增1;
(2.4)将事件e(oid,t)发生的时间戳t赋值给表项oid的数据域T,结束对象统计表的构建和修改过程。
(2.5)在对象统计表中构建一新表项,并将其OID、C1、C2、C3、T数据域分别初始化为oid、0、0、0、t;
(2.6)判断事件e是否为末端事件,若是,则将新增表项的C1值增1;否则,将新增表项的C2值增1,结束对象统计表的构建和修改过程。
(3)判断该事件是否为末端事件,若是,则转入步骤(8),触发复杂事件检测过程;否则,进入步骤(4);
本发明中,在实施复杂事件检测之前,用户要对其感兴趣的、要检测的复杂事件进行定义和描述。用户定义和描述的复杂事件以下面的形式给出:
PATTERN <Complex Event Expressions>
WHERE <Attribute Constraints>
WITHIN <Time Constraints>
RETURN <Output Expression>
其中,PATTERN子句中的<Complex Event Expression>定义了要检测的复杂事件模式,由事件和事件运算符构成,具体形式为E1<opt1>E2<opt2>…En,其中,E1、E2、…、En为构成复杂事件的基本事件,<opt1>、<opt2>等为事件运算符。本发明将复杂事件模式中最后一个事件En称为末端事件,末端事件发生将触发步骤(8)的复杂事件检测过程;WHERE子句中的<Attribute Constraints>定义了复杂事件的属性约束条件,由事件属性和属性间的关系符构成。WITHIN子句中的<Time Constraints>给出了要检测的复杂事件的时态约束条件,具体体现为描述复杂事件时间跨度的时间窗口,大时间尺度的复杂事件检测需要设置大时间窗口;RETURN子句中的<Output Expression>给出了最终要输出的复杂事件。
(4)判断内存配额是否已满,若内存配额未满,则进入步骤(5),进行事件实例的内存存储;否则,转入步骤(6),进行事件实例的内外存置换;
对于大时间尺度复杂事件检测中的大时间窗口,检测过程往往不能在有限的内存中完成,因此,若内存配额已满,将触发内外存置换过程;否则,若内存配额未满,则只需将当前事件存储在内存的相应结构中。
(5)基于对象树及其索引对事件实例进行内存存储,然后转入步骤(10);
本发明提供一种对象树结构(Object Tree),用于在内存中存储事件实例。对象树是一种基于对象的树,即所有相同对象的事件实例都存储在同一棵树上,每个对象都对应一棵对象树。对象树包含三层结点,根结点存储对象标识OID,第二层结点存储对象所发生的事件类型ET,最后一层的叶子结点存储事件发生的时间T。因为同一对象相同类型的事件发生不止一次,因此叶子结点实际上存放的是一个动态数组,其中每一项存放事件发生的一个时间戳。这样,从根结点到叶子结点的一条枝就代表了一个事件的完整属性信息,包括了事件对象标识、事件类型和时间戳。由对象树的结构特点知,它是共享前缀树。由于事件实例存储时共享了相同的属性结点信息,因而具有压缩作用,使有限的内存空间可存储尽可能多的事件实例。
为了便于对象树的存储和查找,本发明提供一种对象树索引Index,每个对象树对应一条索引,包括对象标识OID和指向相应对象树的指针Pointer两个数据域。基于对象树及其索引的事件实例内存存储的子步骤为:
(5.1)索引Index的指针i赋值为1;
(5.2)若索引Index已经搜索完毕,则转入步骤(5.6);否则,进入步骤(5.3);
(5.3)检查Index[i]OID是否与发生事件的标识相匹配,若匹配,则进入步骤(5.4);否则,转入步骤(5.5);
(5.4)由Index[i]Pointer找到相应的对象树,并将事件标识、事件类型及时间戳插入树中,结束事件实例内存存储过程;
(5.5)索引指针i增1,转入步骤(5.2);
(5.6)此时,说明在索引结构Index中未找到与发生事件标识相匹配的表项,表明该事件实例的对象树尚未建立,则新建一棵对象树,将发生事件的标识、事件类型、时间戳插入其中;
(5.7)在索引结构中新建一条与新建对象树相对应的索引,并将事件的标识赋值给OID域,令其指针指向新建对象树;结束事件实例内存存储过程。
(6)基于IMF策略进行事件实例的内外存置换;
在大时间尺度的复杂事件检测过程中,当内存配额满时,将触发事件实例的内外存置换过程。为了提高大时间尺度复杂事件检测的效率,本发明提供IMF(Instance MatchingFrequency,实例匹配频率)置换策略,根据事件流的特点,以减少I/O代价为目标,选择置换对象,将其发生的事件实例由内存置换到外存。
本发明提供的IMF置换策略是指,当内存配额满时,计算各对象的实例匹配频率,依据实例匹配频率确定置换对象,选择实例匹配频率低者换出内存。具体地说,首先,选择末端事件发生次数为0的对象作为置换对象(只有末端事件发生才会触发实例匹配过程,因此,末端事件发生次数为0意味着实例匹配频率为0),对于多个末端事件发生次数为0的对象,为了减少内存空间占用,则按照非末端事件发生次数由大到小的顺序选择置换对象;其次,对于末端事件发生次数不为0的对象,计算它们的实例匹配频率,按照实例匹配频率由小到大的顺序选择置换对象。对于实例匹配频率相同的对象,则优先选择最近刚刚发生末端事件的对象调出内存。这里,实例匹配频率的计算综合考虑了过去的(Past)和当前的(Recent)事件,其中,当前事件是指当前时刻之前的R个时间块中的事件实例(R区),过去事件是指当前事件之前的P个时间块中的事件实例(P区),R区、P区的大小可由用户设置。为了遵循事件流本身的变化规律,在计算实例匹配频率时,对当前事件和过去事件分别赋予不同的权重w1和w2,且w1>w2,0<w1<1,0<w2<1,实例匹配频率的具体计算方法见下面的步骤(6.11)。
由此可见,IMF内外存置换策略,可依据过去(Past)和当前(Recent)事件的发生规律来预测未来事件变化的趋势,从而选择将来长时间不会引发匹配的对象发生的事件调出内存,最大限度地减少I/O代价。
本发明提供的基于IMF策略的事件实例内外存置换方法,其子步骤包括:
(6.1)为各对象的各个事件类型设置相应的置换计数,用于记录其被置换到外存的事件实例数量。初始时所有的置换计数均被初始化为0;
(6.2)设对象统计表中共有n个对象,在对象统计表中查找所有C1域为0的表项,若找到,则进入步骤(6.3),否则,转入步骤(6.10);
(6.3)设查找到的C1为0的表项共有q项,将它们按照C2域由大到小排序,排序后结果为Nj,Nj+1,...Ni+q-1;
(6.4)判断已置换实例的数量是否达到预设值OUT_NUM,若是,则结束事件实例的内外存置换过程;否则,进入步骤(6.5);
IMF置换策略中,每次置换到外存的时间块数量和事件实例的数量是一定的,可由用户设置。设每个时间块的长度为L,用户设置的时间块置换数量为K,则OUT_NUM=L*K。当内存配额满时,将触发事件实例的IMF内外存置换过程,当K个时间块中的OUT_NUM个事件实例均已被置换到外存时,便完成置换过程;否则,继续进行置换。
(6.5)判断上述q个对象是否均已置换,若是,则转入步骤(6.11);否则,进入步骤(6.6);
(6.6)按照Nj,Nj+1,...NJ+1-1的先后顺序选择其中的一个作为置换对象;
(6.7)置换对象的置换计数增1;
(6.8)调用步骤(7)中的事件实例外存存储过程,实现置换对象的事件实例的外存存储;
(6.9)若置换对象的所有事件实例均已置换,则删除该置换对象所对应的对象树索引;转入步骤(6.4);
(6.10)将q赋值为0,表示被调出内存的C1为0的对象数量为0;
(6.11)对于对象统计表中剩余的(n-q)个对象,计算它们的实例匹配频率,根据其实例匹配频率决定是否置换;
实例匹配频率IMF的计算方法为:
IMF=(C3/R)*w1+[(C1-C3)/P]*w2
其中,R是R区中时间块的数量,P是P区中时间块的数量,w1和w2分别是分配给两个区域的权值。
(6.12)将(n-q)个对象按照IMF值和对象统计表中数据域T的值排序,并将当前位置设置为1;
将(n-q)个对象按照IMF值由小到大排序,对于IMF值相同的对象,将对象统计表中数据域T的值大者排在先。
(6.13)判断置换实例的数量是否已达到OUT_NUM,若是,则完成内外存置换过程;否则,进入步骤(6.14);
(6.14)按照(n-q)个对象的排序选择当前位置的对象作为置换对象,并将当前位置向后加1;
(6.15)置换对象的置换计数增1;
(6.16)调用步骤(7)中的事件实例外存存储过程,实现置换对象的事件实例的外存存储;
(6.17)若置换对象的所有事件实例均已置换,则删除该置换对象所对应的对象树索引;转入步骤(6.13)。
(7)与事件实例位示图相关联进行事件实例的外存存储;
当对象树中的事件实例被置换到外存时,按照事件的标识属性和类型属性进行外存存储。同一对象相同类型的事件将存储在以“OID_ET”命名的文件中,其中,OID是对象的标识,ET是事件类型,文件中只存储时间戳。采用这样的存储方式有下列两点好处:①由于检测是针对同一对象的各个事件进行的,将同一对象相同类型的事件放到同一个文件中,在查询要检测的事件时可以将文件名作为索引,只需要打开相应的文件即可进行快速的检测匹配,从而提升检测性能;②文件以对象标识OID和事件类型ET命名,文件中不再存储OID、ET信息,只存储时间戳,因此,该存储方式实现了事件实例的压缩存储,将节省大量的存储空间。
设IMF置换策略选择的欲被置换的对象标识为oid,则按照事件属性进行事件实例的外存存储的子步骤为:
(7.1)在对象树索引中按照对象标识oid进行查找,获取相应对象树的指针;
(7.2)判断是否树中所有的事件实例均已存入外存,若是,则结束该对象的外存存储过程;否则,进入步骤(7.3);
(7.3)从对象树中按照时间戳递增的顺序获得事件实例e(oid,t),若对象oid、类型为e的事件置换计数为0,说明相应的外存文件不存在,则新建外存文件oid_e,并将时间戳t写入其中;否则,说明相应的文件已经存在,则直接将时间戳t写入文件oid_e;
(7.4)构造事件实例位示图,然后转入步骤(7.2)。
在复杂事件检测过程中,如果事件在内存的匹配已经完成,想知道外存中是否也有能与事件进行匹配的实例时,就要从外存文件查询事件,面对大量的外存文件,如果一个个对其扫描来寻找所想要的事件实例会消耗大量的I/O时间,这样会导致检测结果输出的过分延迟。针对这种情况,本发明提供一种事件实例位示图结构,表明某对象在某时间块内发生的某事件类型的实例在外存文件中是否存在。它是由事件类型列、对象标识列以及表示时间块的位串向量组成的结构。每种事件类型下包含着各个对象对应的位串向量。位串向量由一系列二进制位组成,每个时间块对应一个二进制位。如果一个二进制位的值为“1”,则表示该二进制位对应的时间块内发生的相应对象和事件类型的实例存在于外存文件中。如果二进制位的值为“0”,则表示外存文件中不存在相应的实例。初始时所有二进制位均初始化为“0”。
当事件实例e(oid,t)被置换到外存时,该实例在位示图中对应的二进制位将被检查,并将根据情况进行修改。事件实例位示图的具体修改、构造过程如下:
(7.4.1)计算被置换实例e(oid,t)在位示图中对应的二进制位的位置tb。
设每个时间块的时间点个数为TB_NUM,则tb=[(t/TB_NUM)+1]。
(7.4.2)若事件实例位示图中对象oid、事件类型e所在行的第tb位为“0”,则将其修改为“1”;转入步骤(7.2)。
(8)进行复杂事件检测;
当末端事件发生时,将触发复杂事件检测过程。其子步骤为:
(8.1)读取末端事件的标识oid和时间戳t;
(8.2)在内存的对象树索引中查找与标识oid相应的对象树,若找到,则按照复杂事件描述中定义的复杂事件模式在该对象树中进行模式匹配;
(8.3)基于事件实例位示图在外存中检测复杂事件。
根据事件实例位示图中的位串向量,在外存快速检索对象oid对应的文件,并按照复杂事件描述中定义的复杂事件模式进行匹配。
(9)将检测出的满足用户定义模式的序列输出;
(10)判断用户是否终止检测过程,若是,则整个复杂事件检测过程结束;否则,转入步骤(1),读取事件流中的下一个事件。
本发明方法在大量的数据上进行了测试,验证了其在大时间尺度复杂事件检测中的有效性和高效性。测试的硬件环境为Pentium双核3.16GHz CPU,3.48GB内存,400GB硬盘;所有程序在Windows XP操作系统Eclipse3.0环境下开发和运行。以下是其中的一个实例。
该实例的测试数据来自Intel伯克利实验室布置的54个无线传感器产生的数据,并按照其数据的变化趋势对数据量进行了扩充,每个传感器数据包含传感器编号、时间戳、温度等属性。测试时将温度属性TP按照10°的间隔分成TP<19°、19°≤TP<29°、29°≤TP<39°、39°≤TP<49°、...、179°≤TP<189°、189°≤TP<199°、TP≥199°共20个区域,分别对应A、B、C、D、...、R、S、T共20个事件类型。如标识为id的传感器在时刻t产生的数据为(id,17°,t),则可表示为本发明中的事件A(id,t)。测试中用户定义的复杂事件为:
PATTERN A;B;C;D
WHERE A.id=B.id=C.id
and D.t-C.t>15days
and C.t-B.t>20days
and B.t-A.t>20days
WITHIN 3months
RETURN A,B,C,D
其语义为:用户要检测的复杂事件为A、B、C、D类型的事件顺序发生(PATTERN子句中的“;”为顺序事件运算符),这四个事件来自同一传感器,发生在三个月内,且相邻的两个事件发生的时间间隔分别大于15天、20天、20天。
下表给出了测试中相关的参数设置。
针对上述用户要检测的复杂事件,本实例按照本发明前述方法和步骤进行检测,并从以下三个方面对所提供方法的性能进行了测试。
(1)对象树结构对内存存储代价的影响
对于事件实例的内存存储,测试中将本发明提供的对象树存储结构与SASE系统的实例栈存储结构以及不采用任何压缩结构(即将每个事件实例的所有属性进行完全存储)进行了对比,如图7所示(横轴表示时间块数量,纵轴表示三种存储方法所占用的内存空间)。需要说明的是,SASE系统是目前复杂事件检测中典型的、有代表性的系统,就复杂事件检测的时间效率而言,本发明提供的方法和系统与SASE系统没有可比性,因为SASE系统不支持大时间尺度的复杂事件检测,其检测过程均在内存中完成,没有考虑到事件实例的内外存置换问题。此处的比较只涉及二者提供的内存存储结构的空间效率。
测试结果表明,本发明(在图7中表示为“OTree”)和SASE系统提供的存储结构(在图7中表示为“SASE_Stack”)占用的内存空间均明显少于不采用任何压缩结构(在图7中表示为“Without compress_stru”)的存储方法。在本发明提供的对象树存储结构中,相同标识、相同类型的事件实例共享对象树前缀信息,实现了事件实例的压缩存储;SASE系统采用的是实例栈结构,不同类型的事件分类存储在不同的实例栈中,对于可能构成匹配的事件用指针相连,随着匹配实例的增加,指针数量将大量增加。因此,本系统提供的对象树内存存储结构与SASE系统的实例栈结构相比,更加节省内存。随着时间块数量的增加,对象树结构的存储优势更加明显。当时间块数量为10时,本发明相比于SASE系统,节省内存可达14.45%。
(2)对IMF置换策略性能的测试
测试中将IMF置换策略与通常的先进先出(First In First Out,FIFO)以及后进先出(LastIn First Out,LIFO)置换策略相比较。后两种策略均未考虑事件实例的匹配情况,只是简单地按照事件实例进入内存的时间先后进行置换,因此,出现事件实例被频繁调入、调出内存的情况,I/O代价较大。本发明提供的IMF置换策略基于过去事件和当前事件计算对象的实例匹配频率,利用历史事件的发生规律预测未来事件变化的趋势,从而根据事件的变化规律进行置换,有效减少了事件I/O的次数和置换代价,从而提高了大时间尺度复杂事件检测的时间效率。测试结果表明,基于IMF置换策略的大时间尺度复杂事件处理时间和I/O次数明显低于基于FIFO以及LIFO置换策略的处理时间和I/O次数,并且随着事件实例的不断到达,IMF置换策略的优势愈加明显,如图8和图9所示(横轴表示事件到达系统的时间点,以“天”为单位,纵轴分别表示三种置换策略的处理时间和I/O操作次数。其中,当第40天的事件到达时,三种置换策略的处理时间和I/O操作次数均相对较小,因此,图中未显示出来)。当第60天的事件实例到达时,基于IMF策略的检测时间分别比基于FIFO和LIFO策略的检测时间减少92.90%和92.75%,I/O次数分别减少87.31%和87.15%。
(3)事件实例位示图对检测性能的影响
为了进一步提高事件外存存储和检测效率,本发明提供了事件实例位示图。测试中将事件实例位示图支持的检测过程和没有事件实例位示图支持的检测过程相比较,测试结果表明,对于检测时间和外存存储时间,事件实例位示图支持的检测过程具有明显的优势,到达系统的事件数量越多,优势就越明显,如图10和图11所示(图中“Without Instance_Map”表示未采用事件实例位示图的事件存储和检测,“Instance_Map”表示采用本发明提供的事件实例位示图进行事件存储和检测。横轴为事件到达系统的时间点,以“天”为单位,纵轴分别为两种方法的检测时间和存储时间)。当第60天的事件实例到达时,事件实例位示图支持的检测时间比没有位示图支持的检测时间减少58.93%,外存存储时间减少84.50%。
从测试结果可以看出:本发明提供的基于IMF内外存置换策略的复杂事件检测方法,对于大时间尺度的复杂事件检测是有效的,并具有存储空间利用和处理时间的高效性。
Claims (6)
1.一种基于IMF内外存置换策略的复杂事件检测方法,其特征在于通过不断地扫描事件流读取当前事件,检测用户感兴趣的复杂事件是否发生,步骤包括:
(1)扫描事件流,读取当前事件;
(2)构建、修改对象统计表:对象统计表包括五个数据域,分别是:对象标识OID,末端事件的发生次数C1、非末端事件的发生次数C2、最近R个时间块内末端事件的发生次数C3以及末端事件的最近发生时间T;
(3)判断该事件是否为末端事件,若是,则转入步骤(8),触发复杂事件检测过程;否则,进入步骤(4);
末端事件是用户预定义的复杂事件模式中的最后一个事件,末端事件发生将触发复杂事件检测过程;
(4)判断内存配额是否已满,若内存配额未满,则进入步骤(5),进行事件实例的内存存储;否则,转入步骤(6);
为复杂事件检测过程配置一定容量的内存储区,即内存配额,其大小可由用户根据内存的容量进行设置,在复杂事件检测的过程中,当前事件首先要存入内存,若内存配额已满,将触发步骤(6)的内外存置换过程;否则,若内存配额未满,则按照步骤(5),将当前事件存储在内存的对象树结构中;
(5)基于对象树及其索引对事件实例进行内存存储,然后转入步骤(10);
对象树以对象为基本存储单位,每个事件对象对应一棵树,该结构在方便内存检测的同时,实现了压缩存储;
(6)基于IMF策略进行事件实例的内外存置换;
根据事件流的特点,以减少I/O代价为目标,将事件实例由内存置换到外存,IMF置换策略基于过去的和当前的事件计算各对象的实例匹配频率,依据实例匹配频率选择置换对象,从而利用历史事件的发生规律来预测未来事件变化的趋势,选择将来长时间不会引发匹配的对象发生的事件调出内存,最大限度地减少I/O代价;
(7)与事件实例位示图相关联进行置换对象的各事件实例的外存存储,然后,转入步骤(10);
(8)进行复杂事件检测;
当末端事件发生时,将触发复杂事件检测过程,该过程按照用户预定义的复杂事件模式,先进行基于对象树的内存实例的匹配,然后基于事件实例位示图进行外存实例的匹配,实例匹配时,除了要满足事件模式,还要满足事件之间的属性约束及时态约束;
(9)将检测出的满足用户定义模式的序列输出;
(10)检查用户是否终止检测过程,若是,则整个复杂事件检测过程结束;否则,转入步骤(1),读取事件流的下一个事件。
2.根据权利要求1所述的基于IMF内外存置换策略的复杂事件检测方法,其特征在于所述步骤(2)构建和修改对象统计表的步骤包括:
(2.1)如果事件e(oid,t)是进入一个新的时间块的第一个发生的事件,则调整最近R个时间块(即R区)的范围,并更新对象统计表所有表项的C3值;
将事件流划分成长度相等的时间块,并将内存中的事件实例以时间块为单位划分成R区和P区,所谓R区是指由当前时刻所在时间块之前的R个时间块构成的区域,P区是指由R区之前的P个时间块构成的区域,若事件是进入一个新的时间块的第一个发生的事件,则R区便向后移了一个时间块,各对象在R区发生末端事件的次数C3也应随之更新;
(2.2)在对象统计表中查找对象oid,若找到,则进入步骤(2.3);否则,转入步骤(2.5);
(2.3)判断事件e是否为末端事件,若是,则将表项oid的C1值增1;否则,将表项oid的C2值增1,其中C1为末端事件的发生次数,C2为非末端事件的发生次数;
(2.4)将事件e(oid,t)发生的时间戳t赋值给表项oid的数据域T,结束对象统计表的构建和修改过程;
(2.5)在对象统计表中构建一新表项,并将其OID、C1、C2、C3、T数据域分别初始化为oid、0、0、0、t;
(2.6)判断事件e是否为末端事件,若是,则将新增表项的C1值增1;否则,将新增表项的C2值增1,结束对象统计表的构建和修改过程。
3.根据权利要求1所述的基于IMF内外存置换策略的复杂事件检测方法,其特征在于所述步骤(5)基于对象树及其索引的事件实例内存存储的步骤为:
(5.1)索引Index的指针i赋值为1;
(5.2)若索引Index已经搜索完毕,则转入步骤(5.6);否则,进入步骤(5.3);
(5.3)检查Index[i].OID是否与发生事件的标识相匹配,若匹配,则进入步骤(5.4);否则,转入步骤(5.5);
(5.4)由Index[i].Pointer找到相应的对象树,并将事件标识、事件类型及时间戳插入树中,结束事件实例内存存储过程;
(5.5)索引指针i增1,转入步骤(5.2);
(5.6)此时,说明在索引结构Index中未找到与发生事件标识相匹配的表项,表明该事件实例的对象树尚未建立,则新建一棵对象树,将发生事件的标识、事件类型、时间戳插入其中;
(5.7)在索引结构中新建一条与新建对象树相对应的索引,并将事件的标识赋值给OID域,令其指针指向新建对象树;结束事件实例内存存储过程。
4.根据权利要求1所述的基于IMF内外存置换策略的复杂事件检测方法,其特征在于所述步骤(6)基于IMF策略的事件实例内外存置换的步骤包括:
(6.1)为各对象的各个事件类型设置相应的置换计数,用于记录其被置换到外存的事件实例数量,初始时所有的置换计数均被初始化为0;
(6.2)设对象统计表中共有n个对象,在对象统计表中查找所有C1域为0的表项,若找到,则进入步骤(6.3),否则,转入步骤(6.10);
(6.3)设查找到的C1为0的表项共有q项,将它们按照C2域由大到小排序,排序后结果为Nj,Nj+1,...Nj+q-1;
(6.4)判断已置换实例的数量是否达到预设值OUT_NUM,若是,则结束事件实例的内外存置换过程;否则,进入步骤(6.5);
IMF置换策略中,每次置换到外存的时间块数量和事件实例的数量是一定的,可由用户设置,设每个时间块的长度为L,用户设置的时间块置换数量为K,则OUT_NUM=L*K,当内存配额满时,将触发事件实例的IMF内外存置换过程,当K个时间块中的OUT_NUM个事件实例均已被置换到外存时,便完成置换过程;否则,继续进行置换,
(6.5)判断上述q个对象是否均已置换,若是,则转入步骤(6.11);否则,进入步骤(6.6);
(6.6)按照Nj,Nj+1,...Nj+q-1的先后顺序选择其中的一个作为置换对象;
(6.7)置换对象的置换计数增1;
(6.8)调用步骤(7)中的事件实例外存存储过程,实现置换对象的事件实例的外存存储;
(6.9)若置换对象的所有事件实例均已置换,则删除该置换对象所对应的对象树索引;转入步骤(6.4);
(6.10)将q赋值为0,表示被调出内存的C1为0的对象数量为0;.
(6.11)对于对象统计表中剩余的(n-q)个对象,计算它们的实例匹配频率,根据其实例匹配频率决定是否置换;
实例匹配频率IMF的计算方法为:
IMF=(C3/R)*w1+[(C1-C3)/P]*w2
其中,R是R区中时间块的数量,P是P区中时间块的数量,w1和w2分别是分配给两个区域的权值;
(6.12)将(n-q)个对象按照IMF值和对象统计表中数据域T的值排序,并将当前位置设置为1;
将(n-q)个对象按照IMF值由小到大排序,对于IMF值相同的对象,将对象统计表中数据域T的值大者排在先;
(6.13)判断置换实例的数量是否已达到OUT_NUM,若是,则完成内外存置换过程;否则,进入步骤(6.14);
(6.14)按照(n-q)个对象的排序选择当前位置的对象作为置换对象,并将当前位置向后加1;
(6.15)置换对象的置换计数增1;
(6.16)调用步骤(7)中的事件实例外存存储过程,实现置换对象的事件实例的外存存储;
(6.17)若置换对象的所有事件实例均已置换,则删除该置换对象所对应的对象树索引;转入步骤(6.13)。
5.根据权利要求1所述的基于IMF内外存置换策略的复杂事件检测方法,其特征在于所述步骤(7)与事件实例位示图相关联进行事件实例的外存存储的步骤为:
(7.1)在对象树索引中按照对象标识oid进行查找,获取相应对象树的指针;
(7.2)判断是否树中所有的事件实例均已存入外存,若是,则结束该对象的外存存储过程;否则,进入步骤(7.3);
(7.3)从对象树中按照时间戳递增的顺序获得事件实例e(oid,t),若对象oid、类型为e的事件置换计数为0,说明相应的外存文件不存在,则新建外存文件oid_e,并将时间戳t写入其中;否则,说明相应的文件已经存在,则直接将时间戳t写入文件oid_e;
(7.4)构造事件实例位示图,然后转入步骤(7.2);
当事件实例e(oid,t)被置换到外存时,该实例在位示图中的二进制位将被检查,并将根据情况进行修改,事件实例位示图的具体修改、构造过程如下:
(7.4.1)计算被置换实例e(oid,t)在位示图中对应的二进制位的位置tb;
设每个时间块的时间点个数为TB_NUM,则tb=[(t/TB_NUM)+1];
(7.4.2)若事件实例位示图中对象oid、事件类型e所在行的第tb位为“0”,则将其修改为“1”;转入步骤(7.2)。
6.根据权利要求1所述的基于IMF内外存置换策略的复杂事件检测方法,其特征在于所述步骤(8)进行复杂事件检测;
当末端事件发生时,将触发复杂事件检测过程,按以下步骤进行:
(8.1)读取末端事件的标识oid和时间戳t;
(8.2)在内存的对象树索引中查找与标识oid相应的对象树,若找到,则按照复杂事件描述中定义的复杂事件模式在该对象树中进行模式匹配;
(8.3)基于事件实例位示图在外存中检测复杂事件,根据事件实例位示图中的位串向量,在外存快速检索对象oid对应的文件,并按照复杂事件描述中定义的复杂事件模式进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102738223A CN102339256B (zh) | 2011-09-15 | 2011-09-15 | 基于imf内外存置换策略的复杂事件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102738223A CN102339256B (zh) | 2011-09-15 | 2011-09-15 | 基于imf内外存置换策略的复杂事件检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102339256A CN102339256A (zh) | 2012-02-01 |
CN102339256B true CN102339256B (zh) | 2013-10-16 |
Family
ID=45514995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102738223A Expired - Fee Related CN102339256B (zh) | 2011-09-15 | 2011-09-15 | 基于imf内外存置换策略的复杂事件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102339256B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294731A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 实时索引建立、实时搜索方法及装置 |
WO2014062252A1 (en) * | 2012-10-19 | 2014-04-24 | Mcafee, Inc. | Secure disk access control |
CN103745130B (zh) * | 2014-01-27 | 2016-11-23 | 东北大学 | 无线传感器环境下多属性事件的预测方法 |
CN109376156B (zh) * | 2015-06-08 | 2021-09-21 | 南京航空航天大学 | 读取具有存储感知的混合索引的方法 |
CN109410109B (zh) * | 2018-10-19 | 2020-10-16 | 智器云南京信息科技有限公司 | 一种基于大数据的伴随事件分析方法及系统 |
CN110087293B (zh) * | 2019-05-13 | 2022-07-01 | 深圳职业技术学院 | 一种低能耗分布式事件检测无线传感网络构建方法 |
CN112507006A (zh) * | 2020-10-28 | 2021-03-16 | 国网浙江省电力有限公司杭州供电公司 | 基于云端的电网企业运行数据整合系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076547B1 (en) * | 2001-06-21 | 2006-07-11 | Amdocs (Israel) Ltd. | System and method for network performance and server application performance monitoring and for deriving exhaustive performance metrics |
CN101075304A (zh) * | 2006-05-18 | 2007-11-21 | 河北全通通信有限公司 | 电信行业基于数据仓库的决策支持系统的构造方法 |
CN101615015A (zh) * | 2009-07-20 | 2009-12-30 | 南京联创科技股份有限公司 | 由监控告警自动触发控制动作的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862622B2 (en) * | 2007-12-10 | 2014-10-14 | Sprylogics International Corp. | Analysis, inference, and visualization of social networks |
-
2011
- 2011-09-15 CN CN2011102738223A patent/CN102339256B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076547B1 (en) * | 2001-06-21 | 2006-07-11 | Amdocs (Israel) Ltd. | System and method for network performance and server application performance monitoring and for deriving exhaustive performance metrics |
CN101075304A (zh) * | 2006-05-18 | 2007-11-21 | 河北全通通信有限公司 | 电信行业基于数据仓库的决策支持系统的构造方法 |
CN101615015A (zh) * | 2009-07-20 | 2009-12-30 | 南京联创科技股份有限公司 | 由监控告警自动触发控制动作的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102339256A (zh) | 2012-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102339256B (zh) | 基于imf内外存置换策略的复杂事件检测方法 | |
Lu et al. | Beyond intratransaction association analysis: mining multidimensional intertransaction association rules | |
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
CN102609441B (zh) | 基于分布熵的局部敏感哈希高维索引方法 | |
US9639585B2 (en) | Database and method for evaluating data therefrom | |
CN110275920A (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
D’Ambrosio et al. | A differential evolution algorithm for finding the median ranking under the Kemeny axiomatic approach | |
CN102737123B (zh) | 一种多维数据分布方法 | |
CN101119302A (zh) | 一种挖掘事务数据流上最近时间窗口内频繁模式的方法 | |
CN105159950B (zh) | 海量数据实时排序查询方法及系统 | |
Magdy et al. | GeoTrend: spatial trending queries on real-time microblogs | |
CN106326475A (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN110503506A (zh) | 基于评分数据的物品推荐方法、装置及介质 | |
CN109325648A (zh) | 基于指标的多维度数据流统计方法、服务器及存储介质 | |
CN105117442A (zh) | 一种基于概率的大数据查询方法 | |
Zhan et al. | Finding top k most influential spatial facilities over uncertain objects | |
CN113568368A (zh) | 一种工控数据特征重排序算法的自适应确定方法 | |
CN106126681B (zh) | 一种增量式流式数据聚类方法及系统 | |
Abbasifard et al. | Efficient indexing for past and current position of moving objects on road networks | |
CN110309387A (zh) | 一种大数据资讯聚合阅读推荐方法 | |
Mathai et al. | An efficient approach for item set mining using both utility and frequency based methods | |
He et al. | Efficient and robust data augmentation for trajectory analytics: A similarity-based approach | |
CN115130008B (zh) | 一种基于机器学习模型算法的搜索排序方法 | |
Wang et al. | A distributed multi-level composite index for knn processing on long time series | |
CN114528332A (zh) | 海量数据中基于后缀划分的高效用高占用比项集挖掘算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131016 Termination date: 20150915 |
|
EXPY | Termination of patent right or utility model |