一种时序数据的复杂事件处理方法及系统技术方案

技术编号:26478810 阅读:44 留言:0更新日期:2020-11-25 19:23
本发明专利技术公开了一种时序数据的复杂事件处理方法及系统,首先定义复杂事件模式,包括复杂事件标签序列和相邻标签间的时间距离限定,获取到事件的标签和时间戳后,读取计算机存储器中的中间结果并进行归并处理,最后进行复杂事件判定,查询的判定结果不仅包括复杂事件是否触发,还包括触发次数。本发明专利技术克服了现有技术方案中耗时长、效率低的缺陷,能快速地进行海量时序数据的复杂事件处理,另外,本发明专利技术提前计算好了中间结果,所以在查询时避免了大量无用的计算机重复运算,响应速度极快;此外,中间结果是跟着系统时间移动而不断变化的,能够达到时间窗口平滑移动的目的。本发明专利技术能够显著提升时序数据的复杂事件处理的效率。

【技术实现步骤摘要】
一种时序数据的复杂事件处理方法及系统
本专利技术涉及数据处理系统或方法
,具体涉及一种时序数据的复杂事件处理方法与系统。
技术介绍
如今,互联网技术迅速发展,海量用户在互联网上进行页面浏览、资源下载、信息搜索等操作。这些人类操作包含着许多具体的复杂事件,比如在页面停留30秒、连续点击某个链接5次、搜索了关键词“奶粉”后在一天内又搜索了“啤酒”等。这些复杂事件具有很高的应用价值,在自动化推荐、数据挖掘、网络安全、风险监控等领域,均需要进行复杂事件处理。然而,目前的复杂事件来源广、数量多、跨越时间长,而复杂事件处理需要分析的数据维度高、耗费资源多。在这样的场景中,现有的针对时序数据的复杂事件处理方法及系统,具有耗时长、效率低的缺陷。这是因为现有方法及系统的处理过程与查询分析逻辑复杂且效率低下,包含大量不必要的重复的计算机操作。以图2所示场景为例,现有技术将执行以下步骤来进行复杂事件处理:若需进行16:00-18:00的复杂事件处理,则需要从远到近遍历该时间段内的全部4个事件,并逐个判定事件序列是否符合预定义的复杂事件模式;此后如果需要进行15:00-18:00的复杂事件处理,则需要遍历全部9个事件。然而这当中明显有在前一次处理中已经执行过的重复逻辑,可现有技术仍然执行它们,导致不必要的计算机资源浪费,处理效率低下。当前亟需一种时序数据的复杂事件处理方法和系统,能够克服现有技术方案中耗时长、效率低的缺陷,快速地进行海量时序数据的复杂事件处理,而且能支持指定时间窗口的查询。专利技术内容本专利技术的目的在于针对现有技术的不足,提供一种时序数据复杂事件处理方法及系统。本专利技术的目的是通过以下技术方案来实现的:一种时序数据的复杂事件处理方法,该方法利用计算机存储器实现,具体包括以下步骤:步骤1,针对用户操作引发的事件,定义复杂事件模式;所述复杂事件模式包括复杂事件标签序列和相邻标签间的时间距离限定,该时间距离根据用户需求指定上界和下界;步骤2,每当用户操作引发事件时,对该事件的标签和时间戳执行获取行为;将该事件称作“本次事件”;将发生在“本次事件”之前的事件中时间戳最大的一次事件称作“上次事件”。所述获取行为通过提供程序接口实现实时的流式获取;步骤3,根据本次事件的时间戳,读取计算机存储器中的中间结果R1,若本次事件为首次事件,则R1的值为空;否则,R1的值为上次事件进行步骤3时写入计算机存储器的R3;使用本次事件的标签和时间戳,进行中间结果构造,得到R2;将R1与R2进行中间结果归并处理得到R3,将R3写入计算机存储器;步骤4,根据查询时间段,读取该时间段内计算机存储器中的中间结果R3,进行复杂事件判定;当查询时间段跨越多个中间结果R3时,将所有中间结果R3按时间从远到近逐个进行中间结果归并处理;可查询的判定结果不仅包括复杂事件是否触发,还包括触发次数,即根据中间结果归并处理后的唯一中间结果的计数器值,若等于0,则未触发;若大于0则触发,且该值即为触发次数。进一步地,步骤3中使用本次事件的标签和时间戳,进行中间结果构造的方法为:对于本次事件E,具有标签g和时间戳t;在复杂事件模式定义的复杂事件标签序列中,找到所有标签为g的路径,并将其起止时间均置为t。进一步地,步骤3中的中间结果归并处理的方法为:对于两个中间结果R1和R2,遍历并移除R1中的所有路径,找到R2中所有在中间结果R1后邻接的路径,将找到的路径移除出R2,将R1中的移除的路径与R2中移除的路径拼接出新的路径,拼接时,前后路径的复杂事件标签及时间距离均符合复杂事件模式定义的约束,如果拼接出的路径与已定义复杂事件模式完全一致,则对R1的计数器进行自增,否则将拼接出的路径放回于R1中;此后,将R1的计数器增加R2的计数器结果,并将R2中剩余路径放回于R1中。此时R1即为归并结果R3。进一步地,步骤4中的中间结果归并处理时,将时间最远的中间结果R3赋值给R1,将时间第二远的中间结果R3赋值给R2,并将时间最远的中间结果R3与时间第二远的中间结果R3删除,之后依据步骤3中的中间结果归并处理的方法对R1和R2进行归并处理;依此方式继续进行步骤4中的中间结果归并处理,直到得到唯一的中间结果R3时,根据唯一的中间结果R3判定复杂事件是否触发以及触发次数。进一步地,步骤4中的查询操作和步骤2中标签和时间戳的获取行为能够同时进行。一种对时序数据的复杂事件处理系统,该系统利用计算机存储器实现,包括复杂事件定义模块、复杂事件信息获取模块、复杂事件归并模块和复杂事件查询模块:所述复杂事件定义模块,用于针对用户操作引发的事件,定义复杂事件模式;所述复杂事件模式包括复杂事件标签序列和相邻标签间的时间距离限定,该时间距离根据用户需求指定上界和下界;所述复杂事件信息获取模块,用于在每当用户操作引发事件时,对该事件的标签和时间戳执行获取行为;将该事件称作“本次事件”;将发生在“本次事件”之前的事件中时间戳最大的一次事件称作“上次事件”。所述获取行为通过提供程序接口实现实时的流式获取;所述复杂事件归并模块,用于根据本次事件的时间戳,读取计算机存储器中的中间结果R1,若本次事件为首次事件,则R1的值为空;否则,R1的值为上次事件运行复杂事件归并模块时写入计算机存储器的R3;使用本次事件的标签和时间戳,进行中间结果构造,得到R2;将R1与R2进行中间结果归并处理得到R3,将R3写入计算机存储器;所述复杂事件查询模块,用于根据查询时间段,读取该时间段内计算机存储器中的中间结果R3,进行复杂事件判定;当查询时间段跨越多个中间结果R3时,将所有中间结果R3按时间从远到近逐个进行中间结果归并处理;可查询的判定结果不仅包括该复杂事件是否触发,还包括触发次数,即根据中间结果归并处理后的唯一中间结果的计数器值,若等于0,则未触发;若大于0则触发,且该值即为触发次数。进一步地,复杂事件归并模块中使用本次事件的标签和时间戳,进行中间结果构造的方法为:对于本次事件E,具有标签g和时间戳t。在复杂事件模式定义的复杂事件标签序列中,找到所有标签为g的路径,并将其起止时间均置为t。进一步地,复杂事件归并模块中的中间结果归并处理的方法为:对于两个中间结果R1和R2,遍历并移除R1中的所有路径,找到R2中所有在中间结果R1后邻接的路径,将该路径移除出R2,将R1中的移除的路径与R2中移除的路径拼接出新的路径,拼接时,前后路径的复杂事件标签及时间距离均符合复杂事件模式定义的约束,如果拼接出的路径与已定义复杂事件模式完全一致,则对R1的计数器进行自增,否则将拼接出的路径放回于R1中;此后,将R1的计数器增加R2的计数器结果,并将R2中剩余路径放回于R1中。此时R1即为归并结果R3。进一步地,复杂事件查询模块中的中间结果归并处理时,将时间最远的中间结果R3赋值给R1,将时间第二远的中间结果R3赋值给R2,并将时间最远的中间结果R3与时间第二远的中间结果R3删除,之后依本文档来自技高网...

【技术保护点】
1.一种时序数据的复杂事件处理方法,其特征在于,该方法利用计算机存储器实现,具体包括以下步骤:/n步骤1,针对用户操作引发的事件,定义复杂事件模式;所述复杂事件模式包括复杂事件标签序列和相邻标签间的时间距离限定,该时间距离根据用户需求指定上界和下界;/n步骤2,每当用户操作引发事件时,对该事件的标签和时间戳执行获取行为;将该事件称作“本次事件”;将发生在“本次事件”之前的事件中时间戳最大的一次事件称作“上次事件”。所述获取行为通过提供程序接口实现实时的流式获取;/n步骤3,根据本次事件的时间戳,读取计算机存储器中的中间结果R1,若本次事件为首次事件,则R1的值为空;否则,R1的值为上次事件进行步骤3时写入计算机存储器的R3;使用本次事件的标签和时间戳,结合复杂事件标签序列,进行中间结果构造,得到R2;通过R1与R2的路径拼接,若满足定义的复杂事件模式,则R1计数器自增,然后将R1与R2进行中间结果归并处理得到R3,将R3写入计算机存储器;/n步骤4,根据查询时间段,读取该时间段内计算机存储器中的中间结果R3,进行复杂事件判定;当查询时间段跨越多个中间结果R3时,将所有中间结果R3按时间从远到近逐个进行中间结果归并处理;可查询的判定结果不仅包括复杂事件是否触发,还包括触发次数,即根据中间结果归并处理后的唯一中间结果的计数器值,若等于0,则未触发;若大于0则触发,且该值即为触发次数。/n...

【技术特征摘要】
1.一种时序数据的复杂事件处理方法,其特征在于,该方法利用计算机存储器实现,具体包括以下步骤:
步骤1,针对用户操作引发的事件,定义复杂事件模式;所述复杂事件模式包括复杂事件标签序列和相邻标签间的时间距离限定,该时间距离根据用户需求指定上界和下界;
步骤2,每当用户操作引发事件时,对该事件的标签和时间戳执行获取行为;将该事件称作“本次事件”;将发生在“本次事件”之前的事件中时间戳最大的一次事件称作“上次事件”。所述获取行为通过提供程序接口实现实时的流式获取;
步骤3,根据本次事件的时间戳,读取计算机存储器中的中间结果R1,若本次事件为首次事件,则R1的值为空;否则,R1的值为上次事件进行步骤3时写入计算机存储器的R3;使用本次事件的标签和时间戳,结合复杂事件标签序列,进行中间结果构造,得到R2;通过R1与R2的路径拼接,若满足定义的复杂事件模式,则R1计数器自增,然后将R1与R2进行中间结果归并处理得到R3,将R3写入计算机存储器;
步骤4,根据查询时间段,读取该时间段内计算机存储器中的中间结果R3,进行复杂事件判定;当查询时间段跨越多个中间结果R3时,将所有中间结果R3按时间从远到近逐个进行中间结果归并处理;可查询的判定结果不仅包括复杂事件是否触发,还包括触发次数,即根据中间结果归并处理后的唯一中间结果的计数器值,若等于0,则未触发;若大于0则触发,且该值即为触发次数。


2.根据权利要求1所述的一种时序数据的复杂事件处理方法,其特征在于,步骤3中使用本次事件的标签和时间戳,进行中间结果构造的方法为:
对于本次事件E,具有标签g和时间戳t;在复杂事件模式定义的复杂事件标签序列中,找到所有标签为g的路径,并将其起止时间均置为t。


3.根据权利要求1所述的对时序数据的复杂事件处理方法,其特征在于,步骤3中的中间结果归并处理的方法为:
对于两个中间结果R1和R2,遍历并移除R1中的所有路径,找到R2中所有在中间结果R1后邻接的路径,将找到的路径移除出R2,将R1中的移除的路径与R2中移除的路径拼接出新的路径,拼接时,前后路径的复杂事件标签及时间距离均符合复杂事件模式定义的约束,如果拼接出的路径与已定义复杂事件模式完全一致,则对R1的计数器进行自增,否则将拼接出的路径放回于R1中;此后,将R1的计数器增加R2的计数器结果,并将R2中剩余路径放回于R1中。此时R1即为归并结果R3。


4.根据权利要求1所述的对时序数据的复杂事件处理方法,其特征在于,步骤4中的中间结果归并处理时,将时间最远的中间结果R3赋值给R1,将时间第二远的中间结果R3赋值给R2,并将时间最远的中间结果R3与时间第二远的中间结果R3删除,之后依据步骤3中的中间结果归并处理的方法对R1和R2进行归并处理;依此方式继续进行步骤4中的中间结果归并处理,直到得到唯一的中间结果R3时,根据唯一的中间结果R3判定复杂事件是否触发以及触发次数。


5.根据权利要求1所述的对时序数据的复杂事件处理方法,其特征在于,步骤4中的查询操作和步骤2中标签和时间戳的获取行为能够同时进行。


6.一种对时序数据的复杂事件处理系统,其特征在于,该系统利用计算机存储器实现,...

【专利技术属性】
技术研发人员:王新根王刚王新宇胡一夫鲁萍黄滔李白陈伟
申请(专利权)人:浙江邦盛科技有限公司
类型:发明
国别省市:浙江;33

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

1