一种实时任务处理方法及装置与流程

文档序号:11250599阅读:430来源:国知局
一种实时任务处理方法及装置与流程

本发明涉及大数据处理技术领域,特别是涉及一种实时任务处理方法及装置。



背景技术:

随着互联网产业的繁荣,尤其是移动互联网的持续兴起,机器、用户产生的数据越来越多,同时也催生了各类大数据处理系统,例如hadoop、spark、storm等。这些系统有些是针对批处理任务的批处理引擎,例如hadoopmapreduce,有些是针对流式数据处理的实时处理引擎,例如storm,也有些系统能同时实现批处理任务和流式数据处理的实时处理任务,例如spark。

批处理的大数据处理系统是在开始计算的时候,所有的数据就已经准备好了,等待输入计算;而流式数据处理引擎,数据并非一开始就完全准备好了,而是随着时间的推移,逐渐出现,像用户的行为日志,其特点是像流水一样,不是一次过来,而是一点一点“流”过来。而“流”过来的数据也是一点一点被实时处理系统处理。两种类型任务的主要区别是:批处理任务具有全局数据,很方便进行数据的聚合操作;而流式数据的实时处理不具备全局数据,处于聚合的中间状态。现有流式数据处理的实时处理引擎,在流式任务实时处理时,对于相同操作的不同时间或者不同状态的处理过程以及函数逻辑关系,需要开发者实时重新编写。比如一个日志流中的错误数,一段时间内错误数是一个不断累加的数字,需要临时存放在外部存储数据库中,像mysql、redis等。在第一次统计一段时间内错误数时,开发者编写相关操作的逻辑函数以及与数据库连接的程序,利用该程序统计外部存储系统存储的当前时间内错误数,在下一次统计一段时间内错误数时,开发者需要重新编写相关操作的逻辑函数以及与数据库连接的程序,利用该程序再次统计外部存储系统存储的当前时间内错误数。

现有的流式任务实时处理的方法,对于相同或相似逻辑关系操作的不同时间或者不同状态的处理过程,增加了系统处理的时间以及增加了开发者的工作量,整体开发效率不高。



技术实现要素:

本发明实施例的目的在于提供一种实时任务处理方法及装置,以实现提供对实时数据处理过程的状态管理,并方便地进行更新操作,降低系统处理的时间以及开发者的工作量,提高实时任务的开发效率。具体技术方案如下:

为达到上述发明目的,本发明实施例公开了一种实时任务处理方法,包括:

在流式处理任务当前执行聚合函数时,加载已存储的所述流式处理任务执行的所述聚合函数的封装数据包,其中,所述封装数据包包括:所述流式处理任务的所述聚合函数的操作对象、所述操作对象的函数关系;

根据所述聚合函数以及所述封装数据包,对所述聚合函数的所述操作对象的当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

可选地,在所述在流式处理任务当前执行聚合函数时,加载所述流式处理任务执行的所述聚合函数的封装数据包之前,所述方法还包括:

在所述流式处理任务首次执行所述聚合函数时,对所述聚合函数的所述操作对象的数值,按照所述操作对象的函数关系、执行所述流式处理任务的所述聚合函数操作;

在所述流式处理任务首次执行所述聚合函数结束时,将所述流式处理任务执行的所述聚合函数的所述操作对象、所述操作对象的函数关系,封装在所述封装数据包中;

存储所述封装数据包。

可选地,在对所述聚合函数的所述操作对象的数值,按照所述操作对象的函数关系、执行所述流式处理任务的所述聚合函数操作之后,所述的方法还包括:

将对所述聚合函数的所述操作对象的数值,按照所述操作对象的函数关系执行所述流式处理任务的所述聚合函数操作,得到所述操作对象的数值的结果,存储在数据库中。

可选地,在所述根据所述聚合函数以及所述封装数据包,对所述聚合函数的所述操作对象的当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作之前,所述的方法还包括:

累计所述流式处理任务首次执行所述聚合函数到所述流式处理任务当前执行所述聚合函数时间段的、所述操作对象的更新数据,将所述更新数据累计到所述流式处理任务首次执行所述聚合函数的所述操作对象的所述数值上,得到所述流式处理任务当前执行所述聚合函数的所述操作对象的当前数值;

加载所述流式处理任务的所述聚合函数的所述封装数据包,以及所述操作对象的所述当前数值;

相应的,所述根据所述封装数据包内的所述聚合函数的操作对象、所述操作对象的函数关系,对所述聚合函数的所述操作对象的当前数值,按照所述操作对象的函数关系、执行相应的操作,包括:

通过所述封装数据包,获取所述封装数据包内的所述聚合函数的操作对象、所述操作对象的函数关系;

对所述聚合函数的所述操作对象的所述当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

可选地,所述根据所述聚合函数以及所述封装数据包,对所述聚合函数的所述操作对象的当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作,包括:

通过所述封装数据包,获取所述封装数据包内的所述聚合函数的操作对象、所述操作对象的函数关系,以及在数据库中获取到所述聚合函数的操作对象的当前数值;

对所述聚合函数的所述操作对象的所述当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

为达到上述发明目的,本发明实施例还公开了一种实时任务处理装置,包括:

状态加载模块,用于在流式处理任务当前执行聚合函数时,加载已存储的所述流式处理任务执行的所述聚合函数的封装数据包,其中,所述封装数据包包括:所述流式处理任务的所述聚合函数的操作对象、所述操作对象的函数关系;

执行模块,用于根据所述聚合函数以及所述封装数据包,对所述聚合函数的所述操作对象的当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

可选地,所述装置还包括:

第一执行模块,用于在所述流式处理任务首次执行所述聚合函数时,对所述聚合函数的所述操作对象的数值,按照所述操作对象的函数关系、执行所述流式处理任务的所述聚合函数操作;

封装模块,用于在所述流式处理任务首次执行所述聚合函数结束时,将所述流式处理任务执行的所述聚合函数的所述操作对象、所述操作对象的函数关系,封装在所述封装数据包中;

第一存储模块,用于存储所述封装数据包。

可选地,所述装置还包括:

第二存储模块,用于将对所述聚合函数的所述操作对象的数值,按照所述操作对象的函数关系执行所述流式处理任务的所述聚合函数操作,得到所述操作对象的数值的结果,存储在数据库中。

可选地,所述装置还包括:

累计模块,用于累计所述流式处理任务首次执行所述聚合函数到所述流式处理任务当前执行所述聚合函数时间段的、所述操作对象的更新数据,将所述更新数据累计到所述流式处理任务首次执行所述聚合函数的所述操作对象的所述数值上,得到所述流式处理任务当前执行所述聚合函数的所述操作对象的当前数值;

数据包加载模块,用于加载所述流式处理任务的所述聚合函数的所述封装数据包,以及所述操作对象的所述当前数值;

相应的,所述执行模块,包括:

获取子模块,用于通过所述封装数据包,获取所述封装数据包内的所述聚合函数的操作对象、所述操作对象的函数关系;

执行子模块,用于对所述聚合函数的所述操作对象的所述当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

可选地,所述执行模块,还用于,通过所述封装数据包,获取所述封装数据包内的所述聚合函数的操作对象、所述操作对象的函数关系,以及在数据库中获取到所述聚合函数的操作对象的当前数值;对所述聚合函数的所述操作对象的所述当前数值,按照所述操作对象的函数关系、执行所述聚合函数操作。

本发明实施例公开了一种实时任务处理方法及装置,通过将流式处理任务的聚合函数的操作对象、以及该操作对象的函数关系打包封装存储,当实时执行同样的流式处理任务的聚合函数时,直接获取已存储的该流式处理任务的该聚合函数的操作对象、以及该操作对象的函数关系,提供了为相同操作函数的操作对象、以及该操作对象的函数关系的逻辑关系封装缓存的方法。不需要开发者每次就相同问题的函数接口重复编写数据读写接口,降低了对于相同操作的实时数据处理业务的时间以及提高了整体开发效率。另外,将按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中,实现了实时任务处理的各种数据状态的存储方法。本发明实施例最终实现了对实时数据处理过程的状态管理,并方便地进行更新操作,提高实时任务的开发效率。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种实时任务处理方法流程图;

图2为本发明实施例的一种实时任务处理方法的封装数据包实现流程图;

图3为本发明实施例的一种实时任务处理方法的执行聚合函数操作流程图;

图4为本发明实施例的一种实时任务处理装置图;

图5为本发明实施例的另一种实时任务处理装置图;

图6为本发明实施例的一种实时任务处理装置实施图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为达到上述发明目的,本发明实施例公开了一种实时任务处理方法,如图1所示。图1为本发明实施例的一种实时任务处理方法流程图,包括:

s101,在流式处理任务当前执行聚合函数时,加载已存储的流式处理任务执行的聚合函数的封装数据包,其中,封装数据包包括:流式处理任务的聚合函数的操作对象、操作对象的函数关系;

具体地,在大数据处理流式任务时,需要处理相同任务的不同时间以及不同状态下的任务。本发明实施例公开了将大数据处理流式任务执行相同类型、相同功能的聚合函数操作存储在数据库中,在下次执行相同类型相同功能的聚合函数操作时,从数据库中加载已经存储的逻辑关系。

聚合函数是对一组值执行计算并返回单一的值的函数,它经常与选择select语句的分组groupby子句一同使用。聚合函数包括:返回指定组中的平均值,空值被忽略;返回指定组中项目的数量;返回指定数据的最大值;返回指定数据的最小值;返回指定数据的和,只能用于数字列,空值被忽略;返回指定组中的项目数量;产生一个附加的列,当用分块cube运算符或卷曲rollup运算符添加行时,输出值为1,当所添加的行不是由分块cube或卷曲rollup产生时,输出值为0;返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改;返回指定数据的校验值,空值被忽略;返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引;返回给定表达式中所有值的统计标准偏差;返回给定表达式中的所有值的填充统计标准偏差;返回给定表达式中所有值的统计方差;返回给定表达式中所有值的填充的统计方差。

具体做法是,当流式处理任务当前执行聚合函数时,从数据库中加载首次存储的该聚合函数的封装数据包,该封装数据包中封装有该聚合函数操作对象以及操作对象的函数关系。将该封装数据包解封装获取到该聚合函数操作对象以及操作对象的函数关系。

s102,根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

具体地,在数据库中得到当前执行聚合函数的操作对象的当前数值,通过上述得到的该封装数据包解封装后,获得的该聚合函数操作对象以及操作对象的函数关系,按照该聚合函数操作对象的函数关系,对聚合函数的操作对象的当前数值,执行具体的聚合函数操作。该聚合函数操作可为上述列举的聚合函数中的一种或者几种。

本发明实施例公开了一种实时任务处理方法,通过将流式处理任务的聚合函数的操作对象、以及该操作对象的函数关系打包封装存储,当实时执行同样的流式处理任务的聚合函数时,直接获取已存储的该流式处理任务的该聚合函数的操作对象、以及该操作对象的函数关系,提供了为相同操作函数的操作对象、以及该操作对象的函数关系的逻辑关系封装缓存的方法。不需要开发者每次就相同问题的函数接口重复编写数据读写接口,降低了对于相同操作的实时数据处理业务的时间以及提高了整体开发效率。本发明实施例最终实现了对实时数据处理过程的状态管理,并方便地进行更新操作,提高实时任务的开发效率。

可选地,在本发明实施例的实时任务处理方法的一种实施例中,在流式处理任务当前执行聚合函数时,加载流式处理任务执行的聚合函数的封装数据包之前,方法还包括,实时任务处理方法的封装数据包实现过程,如图2所示。图2为本发明实施例的一种实时任务处理方法的封装数据包实现流程图,包括:

s201,在流式处理任务首次执行聚合函数时,对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作;

具体地,在流式处理任务首次执行聚合函数时,按照编写的聚合函数的逻辑关系,获取到首次执行该聚合函数的操作对象以及该聚合函数操作对象的函数关系,在数据库中获得该操作对象的数值,将该操作对象的数值按照该聚合函数操作对象的函数关系执行该聚合函数操作。

例如,在流式处理任务首次执行一个网站业务指定组中的平均值时,利用第一次编写的逻辑关系函数,在数据库中获取到该网站业务的数值,根据该逻辑关系函数,对该网站业务的数值执行求平均值的操作。

s202,在流式处理任务首次执行聚合函数结束时,将流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,封装在封装数据包中;

具体地,在上述流式处理任务首次执行聚合函数结束时,将该流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,形成一个有机的整体,将数据与操作数据的源代码进行有机的结合,形成“类”,最终实现将该流式处理任务执行的聚合函数的操作对象、操作对象的函数关系封装成封装数据包。

例如,在流式处理任务首次执行一个网站业务指定组中的平均值结束时,将编写的对该网站业务的数值执行求平均值的逻辑关系函数的操作对象、操作对象的函数关系封装在封装数据包中。

s203,存储封装数据包。

具体地,把上述形成的聚合函数的封装数据包存储在数据库中,该数据库可为用户自定义的存储该聚合函数逻辑关系的数据库,也可为常用的mysql、redis等,具体可根据实施情况而定。

可见,本发明实施例的实时任务处理方法的一种实施例中,通过对一些常用聚合函数操作进行封装,使得流式处理任务实时执行相同聚合函数时,不需要手工操控外部数据,当下次在使用相同的聚合函数操作时,直接获取该封装好的封装数据包,执行相应的聚合函数操作。提供了为相同操作函数的操作对象、以及该操作对象的函数关系的逻辑关系封装缓存的方法,使得每个流式处理任务实时执行相同聚合函数时都有相对应的状态与之关联,提供了封装数据包以及流式处理任务实时执行相同聚合函数结果存储,使得方便查找实时流式处理任务和维持流式处理任务的所有状态。

可选地,在本发明实施例的实时任务处理方法的一种实施例中,在对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作之后,方法还包括:

将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中。

具体地,在流式处理任务首次执行聚合函数时结束时,将在数据库中获得的操作对象数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作后的结果,存储在数据库中。

例如,在流式处理任务首次执行一个网站业务指定数据的最大值时,利用第一次编写的逻辑关系函数,在数据库中获取到时间段或时间点该网站业务的最大值,将获取的最大值输入,并将获取的该最大值重新保存在数据库中。等到下次在执行时间段或时间点该网站业务指定数据的最大值时,只需要查找该流式处理任务首次执行该网站业务指定数据的最大值结束后到当前时间点这段时间的最大值,然后将保存的首次执行该网站业务指定数据的最大值作比较,便可得出总时间段或时间点该网站业务指定数据的最大值。

可见,在本发明实施例的实时任务处理方法的一种实施例中,通过将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果存储在数据库中,在流式处理任务再次执行聚合函数时,可直接获取流式处理任务首次执行聚合函数的操作对象的数值的结果,可以流式处理任务首次执行聚合函数时结束为时间点,计算该时间点后到该流式处理任务再次执行聚合函数时间段的数据,减少处理数据的时间以及提高了实时任务处理方法整体的效率。另外,将按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中,实现了实时任务处理的各种数据状态的存储方法。

可选地,在本发明实施例的实时任务处理方法的一种实施例中,在根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作之前,方法还包括:

累计流式处理任务首次执行聚合函数到流式处理任务当前执行聚合函数时间段的、操作对象的更新数据,将更新数据累计到流式处理任务首次执行聚合函数的操作对象的数值上,得到流式处理任务当前执行聚合函数的操作对象的当前数值;

具体地,以流式处理任务首次执行聚合函数为起始点,以流式处理任务当前执行该聚合函数为结束点,得到一个时间段。在数据库中累计该时间段的该流失处理任务的操作对象的更新数据,得到该时间段的、操作对象的更新数据量。若该时间段的流式处理任务执行聚合函数的数据呈递增的形式,将流式处理任务首次执行该聚合函数的操作对象的数值为基数,将得到当前执行聚合函数时间段的、操作对象的更新数据量累加到该流式处理任务首次执行该聚合函数的操作对象的数值上,得到该流式处理任务当前执行该聚合函数的操作对象的当前数值。若该时间段的流式处理任务执行聚合函数的数据呈递减的形式,用流式处理任务首次执行该聚合函数的操作对象的数值,减去得到的当前执行聚合函数时间段的、操作对象的更新数据量,得到该流式处理任务当前执行该聚合函数的操作对象的当前数值。

例如,当流式处理任务中需要对某个指标进行聚合的时候,比如,扫描文本数据流中的错误关键字,并求和,以实时统计出系统中发生的错误关键字总和。以流式处理任务首次执行统计系统中发生的错误关键字总和为起始点,以流式处理任务当前执行统计系统中发生的错误关键字总和为结束点,得到一个时间段。累计该时间段的系统中发生的错误关键字的更新数据,得到该时间段的系统中发生的错误关键字的更新数据量。将流式处理任务首次执行统计系统中发生的错误关键字总和为基数,将该时间段的系统中发生的错误关键字的更新数据量累加到该流式处理任务首次执行统计系统中发生的错误关键字总和上,得到流式处理任务当前执行统计系统中发生的错误关键字的当前数值。

加载流式处理任务的聚合函数的封装数据包,以及操作对象的当前数值;

具体地,将数据库中存储的聚合函数的封装数据包,以及操作对象的当前数值加载到实时任务执行器中。

例如,在实时统计系统中发生的错误关键字总和时,在上述流式处理任务首次执行统计系统中发生的错误关键字总和的封装数据包,以及上述得到的流式处理任务当前执行统计系统中发生的错误关键字的当前数值加载到实时任务执行器中。

相应的,根据封装数据包内的聚合函数的操作对象、操作对象的函数关系,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行相应的操作,包括:

通过封装数据包,获取封装数据包内的聚合函数的操作对象、操作对象的函数关系;

具体地,将加载的该封装数据包解封装,获取到该封装数据包内的聚合函数的操作对象、操作对象的函数关系。

例如,在实时统计系统中发生的错误关键字总和时,将加载的流式处理任务首次执行统计系统中发生的错误关键字总和的封装数据包解封装,获取到该执行统计系统中发生的错误关键字总和的封装数据包内统计系统中发生的错误关键字的操作对象,以及对统计系统中发生的错误关键字的操作对象的统计函数。

对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

具体地,在上述得到该流式处理任务聚合函数的操作对象、以及操作对象的函数关系,对该聚合函数的操作对象的当前数值,按照该流式处理任务聚合函数操作对象的函数关系,执行聚合函数操作。

例如,在实时统计系统中发生的错误关键字总和时,在得到统计系统中发生的错误关键字的操作对象、对统计系统中发生的错误关键字的操作对象的统计函数以及流式处理任务当前执行统计系统中发生的错误关键字的当前数值后,按照该统计系统中发生的错误关键字的操作对象的统计函数,对当前执行统计系统中发生的错误关键字的当前数值。执行统计操作,得到当前系统中发生的错误关键字总和。

可见,通过累计流式处理任务首次执行聚合函数到流式处理任务当前执行聚合函数时间段的、操作对象的更新数据,将更新数据累计到流式处理任务首次执行聚合函数的操作对象的数值上,得到流式处理任务当前执行聚合函数的操作对象的当前数值,便于获得整个时间段的数据更新量,只需要计算出累计流式处理任务首次执行聚合函数到流式处理任务当前执行聚合函数时间段的、操作对象的更新数据,减少整个时间段的计算量,提高实时流式处理任务的计算效率。

可选地,在本发明实施例的实时任务处理方法的一种实施例中,根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作,如图3所示。图3为本发明实施例的一种实时任务处理方法的执行聚合函数操流程图,包括:

s301,通过封装数据包,获取封装数据包内的聚合函数的操作对象、操作对象的函数关系,以及在数据库中获取到聚合函数的操作对象的当前数值;

具体地,通过将加载到执行器中的封装数据包解封,得到封装数据包中的聚合函数的操作对象、操作对象的函数关系。在数据库中获得流式处理任务当前执行聚合函数的操作对象的当前数值。

例如,在实时统计系统中发生的错误关键字总和时,将流式处理任务首次执行统计系统中发生的错误关键字总和的封装数据包加载到实时任务执行器中,在实时任务执行器中对该流式处理任务首次执行统计系统中发生的错误关键字总和的封装数据包解封装,获取到该封装数据包中统计系统中发生的错误关键字的操作对象,以及对统计系统中发生的错误关键字的操作对象的统计函数。在数据库中获取到统计系统中发生的错误关键字的操作对象的当前数值。

s302,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

具体地,在上述得到封装数据包中的聚合函数的操作对象、操作对象的函数关系以及该聚合函数的操作对象的当前数值后,按照该操作对象的函数关系,对聚合函数的操作对象的当前数值,执行聚合函数操作。

例如,在实时统计系统中发生的错误关键字总和时,将上述得到的统计系统中发生的错误关键字的操作对象,以及对统计系统中发生的错误关键字的操作对象的统计函数以及统计系统中发生的错误关键字的操作对象的当前数值后,按照该统计系统中发生的错误关键字的操作对象的统计函数关系,对统计系统中发生的错误关键字的操作对象的当前数值执行时间段内系统发生的错误关键字总和操作。

可见,通过获取到封装数据包的聚合函数逻辑关系,在数据库中获取到当前该聚合函数的操作对象的当前数值,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作,不需要用户实时编写处理该流式任务聚合函数的程序,只需要在数据库中获取到当前更新数据,调用该聚合函数逻辑关系执行该聚合函数即可,提高了实时计算作业的开发效率。

在本发明实施例的实时任务处理方法的一种实施例中,以扫描文本数据流中的错误关键字,并求和,实时统计出某个系统中发生的错误关键字总和为例,对本发明的实时任务处理方法做详细介绍。具体实现步骤如下:

步骤一,在流式处理任务首次执行聚合函数时,对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

当该流式处理任务首次执行统计系统中发生的错误关键字总和时,连接外部存储数据库redis,根据执行该系统中发生的错误关键字总和的聚合函数的名称,例如counter(“error_num”)是在操作“error_num”这个指标,在数据库中获取该指标的数值。根据统计系统中发生的错误关键字的操作对象的统计函数,对数据库中的系统中发生的错误关键字的操作对象的数值进行操作,例如:++意味着对系统中发生的错误关键字的操作对象的数值进行加一操作,--意味着对系统中发生的错误关键字的操作对象的数值减一操作。得到该流式处理任务首次执行系统中发生的错误关键字总和的结果。

步骤二,在流式处理任务首次执行聚合函数结束时,将流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,封装在封装数据包中。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

当该流式处理任务首次执行统计系统中发生的错误关键字总和结束时,将该流式处理任务首次执行统计系统中发生的错误关键字总和的统计系统中发生的错误关键字的操作对象、以及统计系统中发生的错误关键字的操作对象的统计函数,封装形成统计系统中发生的错误关键字总和封装数据包。

步骤三,存储封装数据包。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

将该流式处理任务首次执行统计系统中发生的错误关键字总和,形成的统计系统中发生的错误关键字总和封装数据包存储。

步骤四,将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

将该流式处理任务首次执行系统中发生的错误关键字总和的结果存储在数据库中。

步骤五,在流式处理任务当前执行聚合函数时,加载已存储的流式处理任务执行的聚合函数的封装数据包,其中,封装数据包包括:流式处理任务的聚合函数的操作对象、操作对象的函数关系。

对应在流式处理任务当前执行实时统计出某个系统中发生的错误关键字总和时,具体为:

当该流式处理任务当前执行系统中发生的错误关键字总和时,加载已存储的统计系统中发生的错误关键字总和封装数据包。

步骤六,根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

对应在流式处理任务当前执行实时统计出某个系统中发生的错误关键字总和时,具体为:

根据该执行统计系统中发生的错误关键字总和的函数以及该统计系统中发生的错误关键字总和封装数据包,对数据库中的系统中发生的错误关键字的操作对象的当前数值,按照该数据包中统计系统中发生的错误关键字的操作对象的统计函数、执行统计系统中当前发生的错误关键字总和操作。

为达到上述发明目的,本发明实施例还公开了一种实时任务处理装置,如图4所示。图4为本发明实施例的一种实时任务处理装置图,包括:

状态加载模块401,用于在流式处理任务当前执行聚合函数时,加载已存储的流式处理任务执行的聚合函数的封装数据包,其中,封装数据包包括:流式处理任务的聚合函数的操作对象、操作对象的函数关系;

执行模块402,用于根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

本发明实施例公开了一种实时任务处理装置,通过将流式处理任务的聚合函数的操作对象、以及该操作对象的函数关系打包封装存储,当实时执行同样的流式处理任务的聚合函数时,直接获取已存储的该流式处理任务的该聚合函数的操作对象、以及该操作对象的函数关系,提供了为相同操作函数的操作对象、以及该操作对象的函数关系的逻辑关系封装缓存的方法。不需要开发者每次就相同问题的函数接口重复编写数据读写接口,降低了对于相同操作的实时数据处理业务的时间以及提高了整体开发效率。本发明实施例最终实现了对实时数据处理过程的状态管理,并方便地进行更新操作,提高实时任务的开发效率。

需要说明的是,本发明实施例的装置是应用上述实时任务处理方法的装置,则上述实时任务处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

可选地,在本发明实施例的实时任务处理装置的一种实施例中,实时任务处理装置还包括:

第一执行模块,用于在流式处理任务首次执行聚合函数时,对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作;

封装模块,用于在流式处理任务首次执行聚合函数结束时,将流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,封装在封装数据包中;

第一存储模块,用于存储封装数据包。

可选地,在本发明实施例的实时任务处理装置的一种实施例中,实时任务处理装置还包括:

第二存储模块,用于将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中。

可选地,在本发明实施例的实时任务处理装置的一种实施例中,实时任务处理装置还包括:

累计模块,用于累计流式处理任务首次执行聚合函数到流式处理任务当前执行聚合函数时间段的、操作对象的更新数据,将更新数据累计到流式处理任务首次执行聚合函数的操作对象的数值上,得到流式处理任务当前执行聚合函数的操作对象的当前数值;

数据包加载模块,用于加载流式处理任务的聚合函数的封装数据包,以及操作对象的当前数值;

相应的,执行模块402,包括:

获取子模块,用于通过封装数据包,获取封装数据包内的聚合函数的操作对象、操作对象的函数关系;

执行子模块,用于对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

可选地,在本发明实施例的实时任务处理装置的一种实施例中,执行模块402,还用于通过封装数据包,获取封装数据包内的聚合函数的操作对象、操作对象的函数关系,以及在数据库中获取到聚合函数的操作对象的当前数值;对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

在本发明实施例的实时任务处理装置的一种实施例中,如图5所示。图5为本发明实施例的另一种实时任务处理装置图,包括:

第一执行模块501,用于在流式处理任务首次执行聚合函数时,对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作。

封装模块502,用于在流式处理任务首次执行聚合函数结束时,将流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,封装在封装数据包中。

第一存储模块503,用于存储封装数据包。

第二存储模块504,用于将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中。

状态加载模块505,用于在流式处理任务当前执行聚合函数时,加载已存储的流式处理任务执行的聚合函数的封装数据包,其中,封装数据包包括:流式处理任务的聚合函数的操作对象、操作对象的函数关系。

执行模块506,用于根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

在本发明实施例的实时任务处理装置的一种实施例中,以扫描文本数据流中的错误关键字,并求和,实时统计出某个系统中发生的错误关键字总和为例,对本发明的实时任务处理装置做详细介绍,如图6所示。图6为本发明实施例的一种实时任务处理装置实施图。

在图5中,第一执行模块501,用于在流式处理任务首次执行聚合函数时,对聚合函数的操作对象的数值,按照操作对象的函数关系、执行流式处理任务的聚合函数操作。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,可设置实时任务执行器执行。具体为:

实时任务执行器,用于当该流式处理任务首次执行统计系统中发生的错误关键字总和时,连接外部存储数据库redis,根据执行该系统中发生的错误关键字总和的聚合函数的名称,例如counter(“error_num”)是在操作“error_num”这个指标,在数据库中获取该指标的数值。根据统计系统中发生的错误关键字的操作对象的统计函数,对数据库中的系统中发生的错误关键字的操作对象的数值进行操作,例如:++意味着对系统中发生的错误关键字的操作对象的数值进行加一操作,--意味着对系统中发生的错误关键字的操作对象的数值减一操作。得到该流式处理任务首次执行系统中发生的错误关键字总和的结果。

封装模块502,用于在流式处理任务首次执行聚合函数结束时,将流式处理任务执行的聚合函数的操作对象、操作对象的函数关系,封装在封装数据包中。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

实时任务执行器,用于当该流式处理任务首次执行统计系统中发生的错误关键字总和结束时,将该流式处理任务首次执行统计系统中发生的错误关键字总和的统计系统中发生的错误关键字的操作对象、以及统计系统中发生的错误关键字的操作对象的统计函数,封装形成统计系统中发生的错误关键字总和封装数据包。

第一存储模块503,用于存储封装数据包。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

状态元数据信息存储数据库,用于将该流式处理任务首次执行统计系统中发生的错误关键字总和,形成的统计系统中发生的错误关键字总和封装数据包存储。

第二存储模块504,用于将对聚合函数的操作对象的数值,按照操作对象的函数关系执行流式处理任务的聚合函数操作,得到操作对象的数值的结果,存储在数据库中。

对应在流式处理任务首次执行实时统计出某个系统中发生的错误关键字总和时,具体为:

外部存储数据库,用于将该流式处理任务首次执行系统中发生的错误关键字总和的结果存储在数据库中。

状态加载模块505,用于在流式处理任务当前执行聚合函数时,加载已存储的流式处理任务执行的聚合函数的封装数据包,其中,封装数据包包括:流式处理任务的聚合函数的操作对象、操作对象的函数关系。

对应在流式处理任务当前执行实时统计出某个系统中发生的错误关键字总和时,具体为:

状态管理器,用于当该流式处理任务再次执行系统中发生的错误关键字总和时,加载已存储的统计系统中发生的错误关键字总和封装数据包。

执行模块506,用于根据聚合函数以及封装数据包,对聚合函数的操作对象的当前数值,按照操作对象的函数关系、执行聚合函数操作。

对应在流式处理任务当前执行实时统计出某个系统中发生的错误关键字总和时,具体为:

任务执行器,用于根据该执行统计系统中发生的错误关键字总和的函数以及该统计系统中发生的错误关键字总和封装数据包,对数据库中的系统中发生的错误关键字的操作对象的当前数值,按照该数据包中统计系统中发生的错误关键字的操作对象的统计函数、执行统计系统中当前发生的错误关键字总和操作。

需要说明的是,本发明实施例的一种实时任务处理装置实施图,仅为本发明实施例公开的实时任务处理装置中的一种,任何具有第一执行模块501、封装模块502、第一存储模块503、第二存储模块504、状态加载模块505、执行模块506相同功能或者具有本发明实施例的实时任务处理方法思想的执行器或者执行模块,都属于本发明的保护范围。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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