一种移动感知复杂事件并行处理方法及系统与流程

文档序号:11627758阅读:229来源:国知局
一种移动感知复杂事件并行处理方法及系统与流程

本发明涉及移动感知复杂事件处理领域,具体涉及一种移动感知复杂事件并行处理方法及系统。



背景技术:

随着我们进入大数据时代,应用规模不断扩大,系统内部和系统间的数据交换速度快速增长,流式数据处理技术出现在了公众的视野。区别于传统的大数据处理系统,流式数据处理系统在数据流上进行大数据处理,并实时返回处理结果,供上层应用程序使用。复杂事件处理技术作为流式数据处理技术的一种,在近年来受到了广泛的关注。复杂事件处理技术将数据流中的数据看作一个个事件,发掘这些事件潜在表达的语义,检测用户感兴趣的事件模式。这种功能使其在物联网,金融,医疗,互联网这些在复杂情景发生时需要快速做出关键决策的领域均有很好的应用。

移动互联网的发展使复杂事件处理衍生出了一个分支,称为移动感知复杂事件处理。在移动场景下,用户对以位置为基准的一定范围内的复杂事件进行查询,并且这种范围随着用户的移动而改变。一条用户查询对应着一个称为operatorgraph的处理单元,每个operatorgraph又由若干个称为operator的处理节点及其之间的数据流构成。每个operator负责处理查询的一部分,其处理前续operator通过数据流发送的数据,产生结果后将其作为新的数据流输出至后续operator。

相较于传统的复杂事件处理技术,移动感知复杂事件处理使用基于标记信息(markermessage)的同步机制使operatorgraph能进行重配置,可以使开发者减少部署的operatorgraph总数,做到operatorgraph在多个范围内的复用,从而降低整个系统的资源开销与负载;并且,与传统模式相比,使用标记信息区分不同查询范围的事件,令其在查询结果的精确性上进行了提升,保证了查询结果的质量。

另一方面,流式数据处理系统对扩展性和吞吐率的需求使其产生了新的架构——并行架构。在并行架构下,系统能横向扩展operator,使其具备更多的资源和更强的处理能力。这种扩展是动态的,即在运行时刻根据系统负载调整分配的资源量,防止资源过多或过少的分配。并行架构的引入使系统能应对更高的负载,获得更好的吞吐率效果。当前的移动感知复杂事件处理技术使用的是非并行架构,限制了系统的伸缩性,相较于并行架构难以提升其吞吐率。并且,将并行架构引入移动感知复杂事件处理时,后者的同步机制需要进行调整以适应并行架构,否则将无法保证查询结果的正确性。



技术实现要素:

为了解决上述问题,本发明提出了一种移动感知复杂事件并行处理方法及系统,利用并行架构提升了移动感知复杂事件处理技术的吞吐率,提出了一种并行架构下的同步机制以消除并行化对查询结果的正确性带来的影响。

本发明将移动感知复杂事件处理架构并行化,对数据流中的数据按照其主键的哈希值进行划分,形成多条子数据流,每条子数据流由一个operator的副本进行处理;同时对处理后的结果进行合并,形成一条新的数据流,交由后续节点处理。此外,本发明对以标记信息为基础的同步机制进行了重新设计,使其能在并行架构下正常工作,保证其处理移动环境数据所得出每个查询范围结果的正确性。

技术方案:一种移动感知复杂事件并行处理方法,是一种支持移动感知复杂事件处理的处理节点operator进行横向扩展的编程方法。operator在处理事件的运行时刻包含多个副本,每个副本处理operator输入数据流的一个划分,从而并行地处理来自不同查询范围的、带有移动语义的数据,提升系统能够处理的输入数据率上限以及输出复杂事件的吞吐率。此外,本发明提出的一种并行移动感知复杂事件处理架构下的同步机制,能保证上述并行移动感知复杂事件处理过程产生的结果的正确性。本发明的方法具体包括包括以下步骤:

步骤1,数据划分:对当前operator产生的数据进行数据映射,将这些数据传输给对应的后续operator;对属于不同查询范围的数据进行分割。

数据映射与不同查询范围数据分割是同时进行的,没有先后之分。数据分割指的是使用标记信息机制,以类似批处理的形式将基于位置的、不同查询范围的数据提交给副本进行处理。

步骤2,数据合并:属于同一个划分的数据传输至同一个operator,对数据进行排序,并提交给operator处理模块。

数据提交的过程中,这些数据需要先被划分给对应的后续operator副本(一个副本的输出划分给多个后续副本);某个副本在接收数据时,也会将多个前续副本的数据流中发来的数据进行合并。

步骤3,数据处理:

步骤3.1,数据处理,对合并后的数据提交至operator处理模块进行处理,若存在后续operator,将处理后产生的结果(事件)转入后续副本,继续步骤1:副本处理结果,对产生的结果进行数据映射,将这些数据传输给对应的后续operator;

步骤3.2,范围处理结束信号发送,表明operator可以开始处理下一查询范围数据。接收前续副本的处理结果,进行步骤1。

步骤1中进一步包含以下步骤:

数据映射,将当前operator产生的数据分割不同查询范围,相同查询范围的数据发送至同一个后续operator;

标记信息广播,在当前查询范围数据发送完毕后使用标记信息对所有数据流进行数据分割。

上述数据划分方法,数据映射进一步包括,使用一致性哈希算法将数据流中的数据按照其主键映射生成新的数据流并传输至不同的operator,并且映射的同时保证数据之间的相对顺序与它们在原数据流中的相对顺序相同;数据映射中,保证不同operator生成的、需要同一个后续operator处理的数据发送至相同的operator中。

上述数据划分方法,标记信息广播进一步包括,用户的查询范围更新后,向最低层次的每一条数据流末端插入一个标记信息数据;对数据流进行映射时,若读取到的是标记信息,则说明该数据流在前一个查询范围内的数据已映射完毕,此时向所有映射生成的子数据流末端插入一个新的标记信息,并暂停数据的发送。

步骤2中进一步包括以下步骤:

步骤2.1,数据收集,operator缓存前续operator发送给它的数据;

步骤2.2,数据排序,operator对步骤2.1中缓存的数据按时间戳递增进行排序;

步骤2.3,数据提交,operator将步骤2.2中排好序的数据提交给其处理模块。

上述数据合并方法,数据收集进一步包括:operator以队列的形式缓存所有映射给它的数据流中的数据;一个operator包括多种数据流作为输入,每种数据流包括多条子数据流,分别对这些子数据流进行缓存。

上述数据合并方法,数据排序进一步包括:operator对其缓存的数据分类,并对属于同一种数据流的数据按时间戳递增排列;每个缓冲区中有数据到来时,将其出列,并插入到对应的已排序队列中,直到缓冲区队列的顶端为标记信息。

上述数据合并方法,数据提交进一步包括:对于同一种数据流,若其所有缓冲区队列中均只剩标记信息,则说明其当前范围数据的排序已结束,将排好序后的队列提交至operator的处理模块进行处理,并发送信号给各缓冲区对应的operator或数据源,允许其继续发送数据。

上述数据处理方法进一步包括:数据处理,使用operator处理模块中预先定义的功能函数对提交的数据进行处理,并将处理结果以数据流的形式向后续operator输出;范围处理结束信号发送,当operator处理完毕当前范围的数据后,向其所有缓冲区发送信号,允许缓冲区继续发送数据。

一种移动感知复杂事件并行处理系统,包括operatorgraph以及operator;operatorgraph包括多个operator,operator间由数据流相连;operator包括多个副本,每个副本包括输入缓冲区、输出缓冲区和处理模块;

副本收集前续operator中的副本通过数据流传输的数据,这些数据以一个查询范围为批次进行传输。副本处理这些数据并生成新的数据,而后对产生的数据进行数据映射,根据数据中关键字的值通过哈希函数映射至不同的后续operator中的副本。副本还包括标记信息广播模块,在当前范围数据发送完毕后使用标记信息对所有数据流进行分割:每一个查询范围的数据流中的数据已发送完毕,在数据流中向后续operator发送一个标记信息(markermessage)。

后续operator的每个副本在输入缓冲区内缓存前续operator中的副本发送来的数据,并按时间戳递增进行排序,然后将排好序的数据提交给其处理模块,处理模块按照预先定义的功能函数对提交的数据进行处理。处理模块在其所有输入缓冲区中读取到标记信息后,说明缓存区中已没有属于当前范围的数据需要处理,则向其所有对应不同后续operator副本的输出缓冲区中发送标记信息,并发送信号给缓冲区对应的前续operator副本,允许其继续发送数据。

副本将存储于输出缓冲区中的处理结果(数据)以数据流的形式向其对应的后续operator副本输出,后续副本在当前查询范围的数据处理亦同理。数据在operator间如上述过程处理、生成、传输,直至被operatorgraph中最后续的operator的副本处理,并生成当前范围中用户感兴趣的复杂事件。

有益效果:本发明的移动感知复杂事件能够确保其处理移动环境数据所得出每个查询范围结果的正确性的前提下,提升移动感知复杂事件处理技术在移动环境下的吞吐率。在operator层次对移动感知复杂事件处理系统进行横向扩展,使单个operator支持多副本形式的并行事件处理,从而允许系统使用更多的计算资源来处理查询。为了使移动感知复杂事件处理技术的同步机制在这种并行架构下不失效,本发明基于标记信息同步机制提出了一种在并行架构下可行的同步机制,保证了在并行架构下移动感知复杂事件处理结果的正确性。

附图说明

图1为本实施例的总体执行流程示意图;

图2为本实施例的数据映射过程示意图;

图3为本实施例的数据合并过程示意图。

具体实施方式

下面对本发明技术方案结合附图和实施例进行详细说明。

本发明的移动感知复杂事件并行处理方法,是一种支持移动环境下对数据流中带有移动语义的数据进行基于位置查询范围的实时复杂事件处理技术。

如图1所示,本方法包括以下步骤:

步骤一,数据划分:包括数据映射和标记信息广播。数据映射是指将当前operator产生的数据发送至正确的后续operator,如图2所示,假定使用一致性哈希对数据的主键进行映射;标记信息广播是指在当前范围数据发送完毕后使用标记信息对所有数据流进行分割。

步骤二,数据合并:如图3所示,包括数据收集、数据排序和数据提交。数据收集是指operator缓存前续operator发送给它的数据;数据排序是指operator对数据收集时缓存的数据按时间戳递增进行排序;数据提交,即operator将数据排序时排好序的数据提交给其处理模块。

步骤三,数据处理:包括数据处理和范围处理结束信号发送。数据处理指对数据提交时提交至operator功能模块的数据进行处理,处理结果(事件)转入后续副本,继续步骤1:副本处理结果,对产生的结果进行数据映射,将这些数据传输给对应的后续operator;范围处理结束信号发送表明operator可以开始处理下一范围数据。

本发明在operator层次对移动感知复杂事件处理系统进行横向扩展,使单个operator支持多副本形式的并行事件处理,从而允许系统使用更多的计算资源来处理查询,进而提升了系统能承受的最大负载并提升了吞吐率。为了使移动感知复杂事件处理技术的同步机制在这种并行架构下不失效,本发明基于标记信息同步机制提出了一种在并行架构下可行的同步机制,保证了在并行架构下移动感知复杂事件处理结果的正确性。

实施例

本实施例以车祸场景检测为例说明本发明的使用方法。本例中一共有三种operator:减速检测operator,换道检测operator和车祸检测operator。

数据先分别经由减速检测operator和换道检测operator处理后,一并发送至车祸检测operator进行处理以判断是否发生车祸。减速判断依据是:若某辆车的瞬时速率连续降低3次,并最终降低至20km/h以下,即可产生一个减速复杂事件。换道判断依据是:若某辆车的车道发生改变,即可产生一个换道复杂事件。车祸判断依据是:若某辆车先减速后换道,说明其前方有障碍物存在,即可产生一个车祸发生的复杂事件。上层应用若接收到当大于一定数量的车辆产生的车祸复杂事件,则说明该地点发生车祸的可信度较高。

数据从系统外部首先以数据流的形式输入至减速检测operator和换道检测operator。其中输入减速检测operator的数据如下所示:

event=(eventtype,t,carno,carspeed)

eventtype为数据类型,t为数据产生时刻的时间戳,carno为车辆的车牌号,carspeed为车辆的瞬时速率。

输入换道检测operator的数据如下所示:

event=(eventtype,t,carno,carlane)

eventtype为数据类型,t为数据产生时刻的时间戳,carno为车辆的车牌号,carlane为车辆当前所在车道。

减速复杂事件和换道复杂事件如下所示:

event=(eventtype,t,carno)

eventtype为数据类型,t为数据产生时刻的时间戳,carno为车辆的车牌号。

如图1所示:现设定三种operator的并行度均为2,即每个operator有两个副本,分别编号1、2。假定使用一致性哈希对数据的carno属性进行映射,carno以0-4结尾的数据映射至编号为1的operator,carno以5-9结尾的数据映射至编号为2的operator。

以连续两个查询范围为例对方法执行过程进行模拟。

第一个查询范围输入减速检测operator的数据为:(“速度”,0,0001,40),(“速度”,1,0001,30),(“速度”,2,0001,20),(“速度”,1,0005,40),(“速度”,2,000,30),(“速度”,3,0005,20)

第一个查询范围输入换道检测operator的数据为:(“道路”,3,0001,“1号车道”),(“道路”,4,0001,“2号车道”),(“道路”,4,0005,“1号车道”),(“道路”,5,0005,“2号车道”)

第二个查询范围输入减速检测operator的数据为:(“速度”,7,0002,50),(“速度”,8,0002,40),(“速度”,9,0002,45)

第二个查询范围输入换道检测operator的数据为:(“道路”,10,0006,“1号车道”),(“道路”,11,0006,“2号车道”)

如图2、图3所示,处理第一个查询范围的数据时,carno=0001的车辆的数据被映射至1号减速检测operator进行排序和处理,由于符合减速复杂事件的生成条件,1号减速检测operator此时生成数据(“减速”,0,0001)。同理2号减速检测operator生成数据(“减速”,1,0005)。根据数据划分规则,(“减速”,0,0001)被发送至1号车祸检测operator,(“减速”,1,0005)被发送至2号车祸检测operator。

此时第一个查询范围的速度数据流中的数据已发送完毕,在数据流中向1、2号减速检测operator发送一个标记信息(markermessage)。两个减速检测operator接收到标记信息后发现缓存中已没有数据需要处理,则向其所有后续operator副本——即两个车祸检测operator——发送标记信息。之后减速检测operator允许继续处理下个查询范围的数据。

换道检测operator在第一个查询范围的数据处理亦同理。因此,1号车祸检测operator在第一个查询范围会收到一个减速事件(“减速”,0,0001)和一个换道事件(“换道”,1,0001)并且减速事件的发生时刻(t=0)在换道事件之前(t=1),此时1号车祸检测operator生成一个车祸事件(“车祸”,0,0001)发送给上层应用。2号车祸检测operator同理,发送(“车祸”,1,0005)给上层应用。

紧接着在第二个查询范围中无减速事件产生,但产生了一个换道事件(“换道”,10,0006)并发送至2号车祸检测operator。该事件存储在2号车祸检测operator的缓存中,直至其所有输入流对应的缓存均只剩下标记信息可以读取。此时第二个查询范围已无任何新的事件,(“换道”,10,0006)无法与任何减速事件进行关联,2号车祸检测operator将其丢弃,并准备开始处理下一个查询范围的数据。

虽然本发明通过实施例进行了描述,但实施例并非用来限定本发明。本领域技术人员可在本发明的精神的范围内,做出各种变形和改进,其同样在本发明的保护范围之内。因此本发明的保护范围应当以本申请的权利要求相同或等同的技术特征所界定的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1