CN104361058A - 一种面向海量数据流的哈希结构复杂事件检测方法 - Google Patents
一种面向海量数据流的哈希结构复杂事件检测方法 Download PDFInfo
- Publication number
- CN104361058A CN104361058A CN201410609118.4A CN201410609118A CN104361058A CN 104361058 A CN104361058 A CN 104361058A CN 201410609118 A CN201410609118 A CN 201410609118A CN 104361058 A CN104361058 A CN 104361058A
- Authority
- CN
- China
- Prior art keywords
- event
- atomic
- main chain
- node
- hash
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向海量数据流的哈希结构复杂事件检测方法,主要针对现在SASE方法在检测海量事件流上复合事件时出现检测时间长,响应速度慢,检测效率低等问题,提出了一种使用自动机(NFA)联合哈希表技术去实现海量事件流的复杂事件检测方法,大大提高了在海量事件流上复杂事件检测能力。本发明改进了当前基于自动机的复杂事件模式检测方法,对现有的复杂事件检测技术做了扩展,使其能够比较高效地在海量事件流上完成复杂事件的检测。
Description
技术领域
本发明涉及大数据处理领域,更具体地,涉及一种面向海量数据流的哈希结构复杂事件检测方法。
背景技术
RFID技术,传感网技术等技术的广泛发展产生了海量的实时数据流。如何帮助企业或人们从海量的实时数据流中发现感兴趣或有意义的事件,是当前处理海量数据处理中面临的一个重要问题。复杂事件检测技术,作为数据库领域中的一个新兴热点技术,由于能够利用事件属性之间的关联,通过匹配规则或代数操作不断过滤连续到达的海量事件流,找出需要的符合某种关联约束的事件序列,近年来得到日益广泛的关注。
目前关于复杂事件检测方法的研究,主要有基于自动机,基于Petri网,基于匹配树和基于有向图方法方面的检测方法。基于自动机的检测方法,主要根据形式语言与自动机理论,正则表达式可以由自动机来表示。基于Petri网检测方法,主要以输入位置结点为基本事件,输出位置结点为复合事件。通过输入令牌(Token),使用令牌的迁移来描述事件检测的动态过程,计算跃迁守护函数,引发跃迁并标记位置结点,当序列中的最后一个位置结点被标记后,检测到复杂事件发生。基于匹配树的检测方法,主要通过匹配树的结构来实现复杂事件过滤。基于有向图检测方法,主要使用一个有向无环图DAG的数据结构来表示复杂事件,用有向图的节点来表示事件,用有向图的边来表示复杂事件的合成规则,节点通过对相关事件的引用进行标记,从而实现检测。然而由于其本身设计过程面向对象限制,当前的这些方法并没有考虑到监测大规模事件流的实时和高密度特点,上述方法检测大规模事件流时,存在反应速度较慢,吞吐率下降的不足,故上述检测方法无法有效检测高速海量的数据流。随着数据流技术日益发展,研究出能够高效检测和处理海量数据的事件检测方法是非常有必要的。
作为当前使用最为广泛的SASE方法,其主要通过采用有限自动机(NFA)和动态实例堆栈动态实例堆栈联合作用,通过六种基本的查询计划操作:序列扫描和构造、选择操作、窗口操作、Negation非操作和转换操作实现对实时数据流上的事件序列进行查询和检测操作,是目前存在的较优一种复杂事件检测方法。但由于SASE方法检测过程中存在如下问题:(1)需要在序列扫描时同时创建分区以及为每个分区建造一系列动态实例堆栈,当数据流中数量很多时,导致需要巨大的开销;(2)SASE在利用非确定有限自动机进行状态跃迁时,存在大量的回溯操作,导致了巨大的开销和时间;(3)SASE在利用滑动窗口约束机制删除过期数据时需要遍历每个动态实例堆栈,也需要消耗巨大的开销和时间。特别是海量数据流中,数据事件源源不断到来,且需要实时处理时,这种需求会导致SASE检测方法检测效率会更加低下。
发明内容
本发明主要针对现在SASE方法在检测海量事件流中的复合事件时出现检测时间长,响应速度慢,检测效率低的问题,提出了一种面向海量数据流的哈希结构复杂事件检测方法,是使用有限自动机(NFA)联合哈希表技术实现海量数据流的复杂事件的检测方法。改进了常规的NFA序列扫描和序列过程,扩展了现有复杂事件检测技术,大大提高了海量数据流中复杂事件检测能力。
为实现上述目的,本发明采用了如下技术方案:
一种面向海量数据流的哈希结构复杂事件检测方法,包括以下步骤:
A.计算给定的模式匹配表达式长度,并按照给定的模式匹配表达生成相应的NFA,创建新Hash表并进行初始化操作;
B.从原子事件流中进行读取一个原子事件操作;
C.判断该原子事件是否被NFA接收;若接收则转向步骤D,不接收则转向步骤B;
D.利用哈希表函数将被该原子事件映射到对应的数组上,并判断该数组是否存在该项,若不存在,则在该数组相应位置增加一个该原子类型的主链节点(包括该原子事件类型,该类型原子最小时间戳和计数器)再在主链节点上插入一个该原子类型的子链节点(包括该原子事件类型和该原子发生时间戳),同时更新主链节点中最小时间戳为该原子事件发生的最小时间戳,并使主链节点中计数器数值加1;若存在,则在子链上节点上插入一个该原子类型的子链节点,同时主链节点中计数器数值进行加1;
E.判断计数器数值是否等于给定的模式匹配表达式长度,若否,则转向步骤B进行;若是,转向步骤F进行,
F.判断该子键上原子事件发生的最小时间戳+TW(滑动窗口时间)>此时原子事件发生时间戳,若是,则输出哈希表中该原子事件对应数组中所有选项,得到检测结果,若否,则相转向步骤B进行。
在步骤A中首先需要根据模式匹配表达式建立相对应的XFA,并计算给定的模式匹配表达式长度。
在步骤C中,需要根据该原子事件是否被NFA接收结果,执行不同的操作,若接收,转向步骤D,若不接收,则转向步骤B。
在步骤D中,需要根据哈希表函数映射结果,对该原子事件执行不同插入存储操作,若不能在对应数组的主链中存在该原子类型项,则将原子类型插入该原子类型对应的子链上,并记录其最小时间戳,并使计数器数值加1;若存在,则将该原子类型插入该原子类型对应的子链上,同时计数器数值进行加1。
在步骤D和步骤F中,只有同时满足计数器数值等于给定的模式匹配表达式长度和该子键上原子事件发生的最小时间戳+TW(滑动窗口时间)>此时原子事件发生时间戳时,才会利用哈希表查找技术输出检测结果。
本发明的有益效果是:所提出的一种面向海量数据流的哈希结构复杂事件检测方法,采用了基于自动机(NFA)和哈希表技术相结合的方法共同去检测海量事件流中复杂事件,克服现在SASE方法在检测海量事件流上复合事件时出现检测时间长,响应速度慢,检测效率低等缺点,大大提高了事件在海量数据流上的检测能力。本发明改进了当前基于自动机的复杂事件模式检测方法,对现有的复杂事件检测技术做了扩展,使其能够比较高效地在海量数据上完成复杂事件的检测。
附图说明
图1是本发明的方法组成过程图。
图2是本发明的方法工作原理示意图。
图3是本发明与现有SASE方法在查找时间方面比较示意图。
图4是本发明与现有SASE方法在响应速度消耗方面比较示意图。
图5是本发明与现有SASE方法在吞吐量方面比较示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
本实施例对一种面向海量数据流的哈希结构复杂事件检测方法的具体匹配过程进行详细的说明。在本实例中,首先利用数据发生器模块去产生事件流通,通过控制数据发生器模块参数生成事件类型的个数,事件流的概率分布等,以实现实验要求的需要。本发明的实验工具为:Visual C++6.0,测试指标为:查找时间,响应速度和吞吐量三方面,实验比较方法为:SASE方法。
本方法的组成过程图如图1所示,它包含了:从海量原子数件流读取原子事件,非确定有限自动机(NFA)匹配原子事件,利用哈希表结构存储相关原子事件和利用哈希表查找技术查找相关事件四大部分功能。当假设模式匹配表达式为SEQ(A,B,C)时,其具体检测过程工作原理画如图2所示,归纳其具体实现步骤可分为如下几步:
A.计算给定的模式匹配表达式SEQ(A,B,C)的长度为3,并根据模式匹配表达SEQ(A,B,C)生成相应的NFA(见如2),创建新Hash表并对其进行初始化操作;
B.从原子事件流(见图2)中读取一个原子事件af;
C.原子事件af能够被NFA接收;程序转向步骤D执行;
D.利用哈希表函数将被该原子事件af映射到对应的哈希表数组1位置上,由于是首次检测,该数组1位置上不存在该项数值,则在哈希表数组1位置上增加该原子类型主链节点,并在主链节点插入该原子类型对应的子链节点,同时更新主链节点中最小时间戳为该原子事件发生的最小时间戳,主链节点中计数器数值加1;
E.由于主链节点中计数器数值为1,不等于给定的模式匹配表达式长度3,则程序转向步骤B继续进行检测;程序从原子事件流中读取下一个原子事件操作bf,然后进行与原子事件af上述相类似检测工作;接下来aq,cf……等原子事件检测,检测方法与上述相类似;
F.当检测进程进cf时,由于主链节点中计数器数值3等于给定的模式匹配表达式SEQ(A,B,C)的长度3,且该主键上原子事件af发生的最小时间戳+TW(滑动窗口时间)>此时原子事件cf发生时间戳,所以检测程序将会利用哈希表查找技术查找存储哈希表结构中事件,查找并输出检测结果afbfcf。
图3是本发明与现有SASE方法在检测时间方面比较示意图。从图3可以看到,在相同测试条件下,相比SASE方法,本发明的方法可以节约25%查找时间,可以极大减少事件检测时间,提高事件检测效率。分析其主要原因在于本发明方法在检测过程中使用哈希表结构存储和查找事件流检测时产生中间结果,节省了SASE方法中利用动态实例堆栈存储和查找时存在大量的回溯操作,从而节省了其查找时间。
图4是本发明与现有SASE方法在响应速度消耗方面比较示意图。从图4可以看到,在相同测试条件下,相比SASE方法,本发明的方法可以提高约20%响应速度;分析其主要原因在于本发明方法在使用哈希表结构去存储检测中间结果和利用哈希表查找技术去查找相关事件,节省SASE方法在利用动态实例堆栈存储和查找时存在大量的回溯操作,因而提高了整体响应速度。
图5是本发明与现有SASE方法在吞吐量方面比较示意图。从图5可以看到,在相同测试条件下,相比SASE方法,我本发明的方法可以提高大约15%事件处理量;分析其主要原因在于本发明方法使用哈希表结构存储检测中间结果和利用哈希表查找技术去查找相关事件,实现相关事件的快速插入存储和快速查找操作,减少事件的存储和查找的消耗时间,进而提高了系统整体处理速度。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (4)
1.一种面向海量数据流的哈希结构复杂事件检测方法,其特征在于,所述方法具体包括以下处理步骤:
A.计算给定的模式匹配表达式长度,并按照给定的模式匹配表达生成相应的NFA,创建新Hash表并进行初始化操作;
B.从原子事件流中读取一个原子事件;
C.判断该原子事件是否被NFA接收;若接收则转向步骤D,不接收则转向步骤B;
D.利用哈希表函数将该原子事件映射到相应的数组上,并判断该数组是否存在该项原子事件操作,若不存在,则在该数组相应位置增加一个该原子类型的主链节点,再在主链节点上插入一个该原子类型的子链节点,同时更新主链节点中最小时间戳为该原子事件发生的最小时间戳,并使主链节点中计数器数值加1;若存在,则在子链上节点上插入一个该原子类型的子链节点,同时主链节点中计数器数值进行加1;
E.判断计数器数值是否等于给定的模式匹配表达式长度,若否,则转向步骤B进行;若是,转向步骤F进行,
F.判断该主键上原子事件发生的最小时间戳+滑动窗口时间TW是否大于此时原子事件发生时间戳;若是,则输出哈希表中该原子事件对应数组中所有选项,得到检测结果;若否,则相转向步骤B进行。
2.根据权利要求1所述的面向海量数据流的哈希结构复杂事件检测方法,其特征在于,所述步骤D中则在该数组相应位置增加一个该原子类型的主链节点,增加的主链节点包括该原子事件的原子事件类型,该类型原子最小时间戳和计数器,在主链节点上插入一个该原子类型的子链节点,子链节点包括该原子事件类型和该原子发生时间戳。
3.根据权利要求1所述的面向海量数据流的哈希结构复杂事件检测方法,其特征在于,利用哈希表函数映射作用,对每一个被NFA接收的原子事件根据其事件类型进行映射,并通过哈希表函数将其存储在不同的对应位置上。
4.根据权利要求1所述的面向海量数据流的哈希结构复杂事件检测方法,其特征在于,当完成检测时,利用哈希表查找技术对存储哈希表结构中巨大中间结果进行查找,输出相应复杂事件检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410609118.4A CN104361058A (zh) | 2014-10-31 | 2014-10-31 | 一种面向海量数据流的哈希结构复杂事件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410609118.4A CN104361058A (zh) | 2014-10-31 | 2014-10-31 | 一种面向海量数据流的哈希结构复杂事件检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104361058A true CN104361058A (zh) | 2015-02-18 |
Family
ID=52528319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410609118.4A Pending CN104361058A (zh) | 2014-10-31 | 2014-10-31 | 一种面向海量数据流的哈希结构复杂事件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361058A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930494A (zh) * | 2016-05-06 | 2016-09-07 | 华南农业大学 | 一种基于多模式匹配模型的复杂事件检测方法 |
CN106294824A (zh) * | 2016-08-17 | 2017-01-04 | 广东工业大学 | 制造物联网面向不确定数据流的复杂事件检测方法及系统 |
CN108885632A (zh) * | 2016-03-23 | 2018-11-23 | 雾角系统公司 | 用于实时数据流编程的高效状态机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201277A1 (en) * | 2007-02-16 | 2008-08-21 | Matsushita Electric Industrial Co., Ltd. | System architecture and process for automating intelligent surveillance center operation |
CN101902441A (zh) * | 2009-05-31 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种可实现序列攻击事件检测的入侵检测方法 |
CN102629352A (zh) * | 2012-03-08 | 2012-08-08 | 中国科学院自动化研究所 | 面向实时感知环境的复合事件模式匹配方法及系统 |
-
2014
- 2014-10-31 CN CN201410609118.4A patent/CN104361058A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201277A1 (en) * | 2007-02-16 | 2008-08-21 | Matsushita Electric Industrial Co., Ltd. | System architecture and process for automating intelligent surveillance center operation |
CN101902441A (zh) * | 2009-05-31 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种可实现序列攻击事件检测的入侵检测方法 |
CN102629352A (zh) * | 2012-03-08 | 2012-08-08 | 中国科学院自动化研究所 | 面向实时感知环境的复合事件模式匹配方法及系统 |
Non-Patent Citations (1)
Title |
---|
王磊: "事件流上复杂事件检测技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885632A (zh) * | 2016-03-23 | 2018-11-23 | 雾角系统公司 | 用于实时数据流编程的高效状态机 |
CN105930494A (zh) * | 2016-05-06 | 2016-09-07 | 华南农业大学 | 一种基于多模式匹配模型的复杂事件检测方法 |
CN106294824A (zh) * | 2016-08-17 | 2017-01-04 | 广东工业大学 | 制造物联网面向不确定数据流的复杂事件检测方法及系统 |
CN106294824B (zh) * | 2016-08-17 | 2019-06-11 | 广东工业大学 | 制造物联网面向不确定数据流的复杂事件检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
Gonzalez et al. | Mining compressed commodity workflows from massive RFID data sets | |
CN107844565A (zh) | 商品搜索方法和装置 | |
EP2202658A2 (en) | Apparatus and method for processing queries using oriented query paths | |
CN103235811B (zh) | 一种数据存储方法及装置 | |
Kholghi et al. | An analytical framework for data stream mining techniques based on challenges and requirements | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN103345496A (zh) | 多媒体信息检索方法和系统 | |
Kholghi et al. | Classification and evaluation of data mining techniques for data stream requirements | |
CN106599190A (zh) | 基于云计算的动态Skyline查询方法 | |
CN104281891A (zh) | 一种时间序列数据挖掘方法及系统 | |
CN104361058A (zh) | 一种面向海量数据流的哈希结构复杂事件检测方法 | |
CN104699857A (zh) | 基于知识工程的大数据存储方法 | |
Mohamed et al. | A review on big data management and decision-making in smart grid | |
CN106599189A (zh) | 基于云计算的动态Skyline查询装置 | |
CN102609501A (zh) | 一种基于实时历史数据库的数据清洗方法 | |
CN104462095A (zh) | 一种查询语句公共部分的提取方法及装置 | |
SE532252C2 (sv) | Förfarande och apparat för extrahering av information från en databas | |
Liao et al. | KLEAP: an efficient cleaning method to remove cross-reads in RFID streams | |
CN104268191A (zh) | 单据显示方法和单据显示装置 | |
CN104391950A (zh) | 面向制造物联海量数据流哈希b+树结构复杂事件检测方法 | |
CN104408142A (zh) | 一种面向制造物联网海量乱序数据流复杂事件检测方法 | |
CN102737134A (zh) | 适用于大规模实时数据流的查询处理方法 | |
CN105354243B (zh) | 基于归并聚类的并行化频繁概率子图搜索方法 | |
Liuliakov et al. | AutoML technologies for the identification of sparse models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150218 |