掌桥专利:专业的专利平台
掌桥专利
首页

任务复杂度的估算方法、装置、电子设备及可读存储介质

文献发布时间:2023-06-19 18:46:07


任务复杂度的估算方法、装置、电子设备及可读存储介质

技术领域

本申请涉及数据处理技术领域,尤其是涉及一种任务复杂度的估算方法、装置、电子设备及可读存储介质。

背景技术

随着大数据技术的不断发展,各种大数据处理框架如雨后春笋般发展起来,不断地出现在人们的视野当中。当我们从事大数据分析和大数据处理时,避免不了和各种的ETL任务打交道,比如将非关系型数据源中的数据进行抽取,清洗和格式化转换,持久化到关系型数据库,又比如从海量的数据中提取出有价值的数据,和本地的关系型数据库进行跨数据源数据比对等。

当我们面对不同应用场景,通过构建任务的方式进行大数据处理时,经常会面临以下几种常见的问题,例如,我们所构建的任务的复杂程度是多少;到底需要多少计算资源才能够完成执行我们所构建的任务等问题;目前,上述问题从任务开始执行至任务执行结束的过程中,均很难对其进行准确地预测。

发明内容

有鉴于此,本申请的目的在于提供一种任务复杂度的估算方法、装置、电子设备及可读存储介质,可以从执行待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及待估算任务的数据处理量等多个方面,准确地确定出待估算任务的任务执行复杂度。

本申请实施例提供了一种任务复杂度的估算方法,所述估算方法包括:

获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;

基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;

基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;

通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;

综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。

在一种可能的实施方式中,所述基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度,包括:

针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础节点权重,得到该任务处理节点的目标节点权重;

基于每个任务处理节点的目标节点权重,确定所述待估算任务的处理节点复杂度;

通过比对所述待估算任务的处理节点复杂度与所述参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度。

在一种可能的实施方式中,所述针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重,包括:

确定每种节点类型对应的预设节点权重;

针对于每个任务处理节点,将该任务处理节点所属节点类型的预设节点权重,确定为该任务处理节点的基础节点权重。

在一种可能的实施方式中,所述基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度,包括:

针对于每个任务处理节点,根据该任务处理节点的节点类别,确定该任务处理节点的基础运行权重;其中,所述节点类别是根据任务处理节点的作用确定出的;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重;

基于每个任务处理节点的目标运行权重,确定所述待估算任务的节点运行复杂度;

通过比对所述待估算任务的节点运行复杂度与所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度。

在一种可能的实施方式中,所述根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重,包括:

确定该任务处理节点的数据处理方式对应的权重调整系数;

利用所述权重调整系数,调整该任务处理节点的基础运行权重,得到该任务处理节点的初始运行权重;

若该任务处理节点的节点类型为输入节点或输出节点,基于该任务处理节点的数据来源类型,调整该任务处理节点的初始运行权重,得到该任务处理节点的目标运行权重;

否则,将该任务处理节点的初始运行权重,确定为该任务处理节点的目标运行权重。

在一种可能的实施方式中,所述任务处理节点包括输入节点;所述通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度,包括:

基于每个输入节点的输入数据量,确定所述待估算任务的数据处理量;

基于所述数据处理量,确定所述待估算任务所属的第一数量级区间;

基于所述参考任务的参考数据量,确定所述参考任务所属的第二数量级区间;

通过比对所述第一数量级区间对应的第一影响参数与所述第二数量级区间对应的第二影响参数,确定所述待估算任务的数据量复杂度。

在一种可能的实施方式中,所述估算方法还包括:

基于所述任务执行复杂度、所述第一影响参数以及执行所述待估算任务所使用硬件设施的硬件影响参数,确定所述待估算任务的时长影响参数;

利用所述时长影响参数调整所述参考任务的参考执行时长,确定所述待估算任务的任务执行时长。

本申请实施例还提供了一种任务复杂度的估算装置,所述估算装置包括:

信息获取模块,用于获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;

第一确定模块,用于基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;

第二确定模块,用于基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;

第三确定模块,用于通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;

第四确定模块,用于综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。

在一种可能的实施方式中,所述第一确定模块在用于基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度时,所述第一确定模块用于:

针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础节点权重,得到该任务处理节点的目标节点权重;

基于每个任务处理节点的目标节点权重,确定所述待估算任务的处理节点复杂度;

通过比对所述待估算任务的处理节点复杂度与所述参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度。

在一种可能的实施方式中,所述第一确定模块在用于针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重时,所述第一确定模块用于:

确定每种节点类型对应的预设节点权重;

针对于每个任务处理节点,将该任务处理节点所属节点类型的预设节点权重,确定为该任务处理节点的基础节点权重。

在一种可能的实施方式中,所述第二确定模块在用于基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度时,所述第二确定模块用于:

针对于每个任务处理节点,根据该任务处理节点的节点类别,确定该任务处理节点的基础运行权重;其中,所述节点类别是根据任务处理节点的作用确定出的;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重;

基于每个任务处理节点的目标运行权重,确定所述待估算任务的节点运行复杂度;

通过比对所述待估算任务的节点运行复杂度与所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度。

在一种可能的实施方式中,所述第二确定模块在用于根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重时,所述第二确定模块用于:

确定该任务处理节点的数据处理方式对应的权重调整系数;

利用所述权重调整系数,调整该任务处理节点的基础运行权重,得到该任务处理节点的初始运行权重;

若该任务处理节点的节点类型为输入节点或输出节点,基于该任务处理节点的数据来源类型,调整该任务处理节点的初始运行权重,得到该任务处理节点的目标运行权重;

否则,将该任务处理节点的初始运行权重,确定为该任务处理节点的目标运行权重。

在一种可能的实施方式中,所述任务处理节点包括输入节点;所述第三确定模块在用于通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度时,所述第三确定模块用于:

基于每个输入节点的输入数据量,确定所述待估算任务的数据处理量;

基于所述数据处理量,确定所述待估算任务所属的第一数量级区间;

基于所述参考任务的参考数据量,确定所述参考任务所属的第二数量级区间;

通过比对所述第一数量级区间对应的第一影响参数与所述第二数量级区间对应的第二影响参数,确定所述待估算任务的数据量复杂度。

在一种可能的实施方式中,所述估算装置还包括时长确定模块,所述时长确定模块用于:

基于所述任务执行复杂度、所述第一影响参数以及执行所述待估算任务所使用硬件设施的硬件影响参数,确定所述待估算任务的时长影响参数;

利用所述时长影响参数调整所述参考任务的参考执行时长,确定所述待估算任务的任务执行时长。

本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的任务复杂度的估算方法的步骤。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的任务复杂度的估算方法的步骤。

本申请实施例提供的任务复杂度的估算方法、装置、电子设备及可读存储介质,获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。这样,便可以从执行待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及待估算任务的数据处理量等多个方面,准确地确定出待估算任务的任务执行复杂度。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例所提供的一种任务复杂度的估算方法的流程图;

图2为本申请实施例所提供的一种任务复杂度的估算装置的结构示意图之一;

图3为本申请实施例所提供的一种任务复杂度的估算装置的结构示意图之二;

图4为本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

经研究发现,当我们面对不同应用场景,通过构建任务的方式进行大数据处理时,经常会面临以下几种常见的问题,例如,我们所构建的任务的复杂程度是多少;到底需要多少计算资源才能够完成执行我们所构建的任务等问题;目前,上述问题从任务开始执行至任务执行结束的过程中,均很难对其进行准确地预测。

基于此,本申请实施例提供了一种任务复杂度的估算方法,可以准确地对待估算任务的任务执行复杂度进行估算,间接地,辅助业务人员对完成执行待估算任务的计算资源进行分配,以尽快完成待估算任务,提高待估算任务的处理效率。

请参阅图1,图1为本申请实施例所提供的一种任务复杂度的估算方法的流程图。如图1中所示,本申请实施例提供的任务复杂度的估算方法,包括:

S101、获取待估算任务的任务执行信息。

S102、基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度。

S103、基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的运行复杂度。

S104、通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;

S105、综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。

本申请实施例所提供的一种任务复杂度的估算方法,可以借助于执行待估算任务的各个任务处理节点的节点类型、节点类别、数据处理方式以及待估算任务所具有的数据处理量,从任务处理节点的节点构造复杂度、运行复杂度以及待估算任务的数据量复杂度,三个方面对待估算任务的任务执行复杂度进行估算,进而,可以准确地对待估算任务的任务执行复杂度进行预估,提高预估结果的准确性。

在步骤S101中,在对待估算任务进行任务执行复杂度预估之前,需要获取待估算任务的任务执行信息;具体的,任务执行信息包括完成执行待估算任务所需调用的各个任务处理节点、各个任务处理节点的节点类型、各个任务处理节点的数据处理方式、各个任务处理节点的节点类别以及待估算任务所涉及的数据处理量。

这里,节点类型包括输入节点、计算节点以及输出节点;输入节点用于接收待估算任务所涉及的数据、计算节点用于处理待估算任务所涉及的数据、输出节点用于输出待估算任务的处理结果。

在步骤S102中,首先,利用获取到待估算任务的任务执行信息,对待估算任务进行节点构造复杂度进行预估;具体的,基于每个任务处理节点的节点类型和数据处理方式,参考于待估算任务对应的参考任务的参考节点复杂度,确定用于执行待估算任务的全部任务处理节点整体上的节点构造复杂度。

这里,节点构造复杂度表征了用于执行待估算任务的全部任务处理节点的整体构造的复杂程度;节点构造复杂度可以从侧面表明待估算任务的复杂程度;若用于执行待估算任务的全部任务处理节点的节点构造复杂度越高,则可说明该待估算任务的复杂程度越高;反之,若用于执行待估算任务的全部任务处理节点的节点构造复杂度越低,则可说明该待估算任务的复杂程度越低。

在确定待估算任务的节点构造复杂度时,为了能够合理的确定出待估算任务的节点构造复杂度,需以经过测试运行的参考任务为“标杆”,进行节点构造复杂度的确定。

在一种实施方式中,步骤S102包括:

S1021、针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重。

这里,由于,需进行的数据处理内容上的差异,使得不同节点类型的任务处理节点所具有的基础节点权重也并不相同;例如,对于节点类型为输入节点的任务处理节点来说,由于,输入节点需进行数据读取操作,而数据读取操作相对于数据处理操作来说,需耗费的计算资源更高,因此,相对于节点类型为计算节点的任务处理节点来说,节点类型为输入节点的任务处理节点复杂度更高,应具有较高的基础节点权重。

基础节点权重为预先设置好的用于表征节点复杂程度的分数值,分数值越高说明该节点的复杂程度越高;反之,分数值越低说明该节点的复杂程度越低;需要说明的是,基础节点权重可以根据实际情况具体设置,在此不做限制。

该步骤中,针对于每个任务处理节点,需要借助于该任务处理节点的节点类型,来确定该任务处理节点所对应的基础节点权重。

在一种实施方式中,所述针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重,包括:确定每种节点类型对应的预设节点权重;针对于每个任务处理节点,将该任务处理节点所属节点类型的预设节点权重,确定为该任务处理节点的基础节点权重。

该步骤中,首先,确定每种节点类型对应的预设节点权重;这里,假设输入节点所需耗费的计算资源高与计算节点所需耗费的计算资源,因此,输入节点的预设节点权重要高于计算节点的预设节点权重(可以根据实际情况进行调整);例如,输入节点的预设节点权重为2′,那么,计算节点的预设节点权重为1′。

然后,针对于每个任务处理节点来说,便可以将该任务处理节点所属节点类型对应的预设节点权重,确定为该任务处理节点的基础节点权重。

S1022、根据该任务处理节点的数据处理方式,调整该任务处理节点的基础节点权重,得到该任务处理节点的目标节点权重。

这里,对于每个任务处理节点来说,随着其处理数据时所使用的数据处理方式的改变,该任务处理节点对应的基础节点权重也应随之进行调整,例如,相对于采用串行方式实现数据处理的节点来说,采用并行方式实现数据处理的节点能够更快地完成执行待估算任务,因此,当任务处理节点的数据处理方式为并行方式时,该任务处理节点的基础节点权重可以进行适当的调整。

该步骤中,确定该任务处理节点的数据处理方式,并结合该任务处理节点的数据处理方式,对该任务处理节点的基础节点权重进行调整,确定出该任务处理节点的目标节点权重。

示例性的,假设,任务处理节点的节点类型为输入节点,输入节点对应的预设节点权重为2′,则该任务处理节点的基础节点权重2′;若该任务处理节点采取并行方式处理数据,则可以对该任务处理节点的基础节点权重进行减半处理(可根据实际情况而定),得到该任务处理节点的目标节点权重,即该任务处理节点的目标节点权重为1′。

S1023、基于每个任务处理节点的目标节点权重,确定所述待估算任务的处理节点复杂度。

该步骤中,对执行待估算任务所涉及的每个任务处理节点的目标节点权重进行求和处理,确定出待估算任务的处理节点复杂度。

示例性的,假设,完成执行待估算任务涉及3个任务处理节点,3个任务处理节点的目标节点权重分别为2′、1′、2′,此时,可以通过求和的方式,确定出待估算任务的处理节点复杂度为5′。

S1024、通过比对所述待估算任务的处理节点复杂度与所述参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度。

该步骤中,参考任务相当于一个参考“标杆”,即以参考任务为标准来确定待估算任务的节点构造复杂度;具体的,可以参考于该参考任务的参考节点复杂度,通过比对待估算任务的处理节点复杂度与参考任务的参考节点复杂度,更加合理地确定出待估算任务的节点构造复杂度(在节点构造复杂度为非整数的情况下,保留2位小数)。

其中,可以通过以下公式计算待估算任务的节点构造复杂度:节点构造复杂度=处理节点复杂度/参考节点复杂度。

这里,节点类别包括数据加载类节点、数据分析类节点、数据处理类节点以及数据提取类节点;数据加载类节点用于接收待估算任务所涉及的数据、数据分析类节点用于对待估算任务所涉及的数据进行分析、数据处理类节点用于对待估算任务所涉及的数据进行处理、数据提取类节点用于提取并输出待估算任务的处理结果。

在步骤S103中,利用获取到待估算任务的任务执行信息,对待估算任务进行运行复杂度进行预估;具体的,基于每个任务处理节点的节点类别和数据处理方式,参考于待估算任务对应的参考任务的参考运行复杂度,确定用于执行待估算任务的全部任务处理节点在运行过程中的运行复杂度。

这里,运行复杂度表征了用于执行待估算任务的全部任务处理节点的运行过程的复杂程度;运行复杂度也可以从侧面表明待估算任务的复杂程度;若用于执行待估算任务的全部任务处理节点的运行复杂度越高,则可说明该待估算任务的复杂程度越高;反之,若用于执行待估算任务的全部任务处理节点的运行复杂度越低,则可说明该待估算任务的复杂程度越低。

在确定待估算任务的运行复杂度时,为了能够合理的确定出待估算任务的运行复杂度,需以经过测试运行的参考任务为“标杆”,进行节点构造复杂度的确定。

在一种实施方式中,步骤S103包括:

S1031、针对于每个任务处理节点,根据该任务处理节点的节点类别,确定该任务处理节点的基础运行权重。

这里,所述节点类别是根据任务处理节点的作用确定出的;由于,不同任务处理节点的作用不同,使得不同节点类别的任务处理节点所具有的基础运行权重也并不相同;例如,对于节点类别为数据加载类的任务处理节点来说,由于,数据加载过程所需耗费的计算资源更高,因此,相对于节点类别为数据分析类的任务处理节点来说,节点类别为数据加载类任务处理节点的运行过程更为复杂,应具有更高的基础运行权重。

基础节点权重为预先设置好的用于表征运行复杂程度的分数值,分数值越高说明该节点的运行过程越复杂;反之,分数值越低说明该节点的运行过程越简洁;需要说明的是,基础运行权重可以根据实际情况具体设置,在此不做限制。

该步骤中,针对于每个任务处理节点,需要借助于该任务处理节点的节点类别,来确定该任务处理节点所对应的基础运行权重。

S1032、根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重。

这里,对于每个任务处理节点来说,随着其处理数据时所使用的数据处理方式的改变,该任务处理节点对应的基础运行权重也应随之进行调整,例如,相对于采用串行方式实现数据处理的任务处理节点来说,采用并行方式实现数据处理的任务处理节点能够更快地完成执行待估算任务,因此,当任务处理节点的数据处理方式为并行方式时,该任务处理节点的基础运行权重可以进行适当的调整。

该步骤中,确定该任务处理节点的数据处理方式,并结合该任务处理节点的数据处理方式,对该任务处理节点的基础运行权重进行调整,确定出该任务处理节点的目标节点权重。

示例性的,假设,任务处理节点的节点类别为数据加载类,数据加载类节点对应的预设运行权重为2′,则该任务处理节点的基础运行权重2′;若该任务处理节点采取并行方式处理数据,则可以对该任务处理节点的基础运行权重进行减半处理(可根据实际情况而定),得到该任务处理节点的目标运行权重,即该任务处理节点的目标运行权重为1′。

这里,对于节点类型为输入节点和输出节点的任务处理节点来说,除了数据处理方式会对该任务处理节点的目标运行权重产生影响之外,该任务处理节点所需获取的或输出的数据的数据源和数据目的地,也会对该任务处理节点的目标运行权重产生影响;例如,当输入节点需获取数据的数据源为集群外部数据源时,说明该任务处理节点需要跨集群获取数据,相对于集群内获取数据的任务处理节点来说,该任务处理节点应具有更高的目标运行权重;因此,在确定每个任务处理节点的目标运行权重时,还需进一步地考虑数据来源类型对目标运行权重的影响。

在一种实施方式中,步骤S1032包括:

步骤a、确定该任务处理节点的数据处理方式对应的权重调整系数。

该步骤中,每种数据处理方式对应的权重调整系数为预先设置好的,用于对任务处理节点的基础运行权重进行调整。

步骤b、利用所述权重调整系数,调整该任务处理节点的基础运行权重,得到该任务处理节点的初始运行权重。

该步骤中,利用确定出的权重调整系数,该任务处理节点的基础运行权重进行调整,以得到该任务处理节点的初始运行权重;示例性的,当权重调整系数为0.5时,则说明需要将任务处理节点的基础运行权重进行减半处理;当权重调整系数为2时,则说明需要将任务处理节点的基础运行权重变为原来的2倍。

步骤c、若该任务处理节点的节点类型为输入节点或输出节点,基于该任务处理节点的数据来源类型,调整该任务处理节点的初始运行权重,得到该任务处理节点的目标运行权重。

该步骤中,考虑到数据来源类型对任务处理节点的目标运行权重的影响,在得到每个任务处理节点的初始运行权重的基础上,对于节点类型为输入节点或输出节点的任务处理节点来说,还需依据于该任务处理节点所获取或输出数据的数据来源类型,进一步地对该任务处理节点的初始运行权重进行调整,以得到该任务处理节点的目标运行权重。

示例性的,假设,节点类型为输入节点的任务处理节点的初始运行权重为2′,若该任务处理节点所获取数据的数据来源类型为集群外部数据源,则需对该任务处理节点的初始运行权重进行“翻倍”处理,得到该任务处理节点的目标运行权重,即该任务处理节点的目标运行权重为4′。

这里,数据来源类型包括集群外部数据源和集群内部数据源。

步骤d、否则,将该任务处理节点的初始运行权重,确定为该任务处理节点的目标运行权重。

S1033、基于每个任务处理节点的目标运行权重,确定所述待估算任务的节点运行复杂度。

该步骤中,对执行待估算任务所涉及的每个任务处理节点的目标运行权重进行求和处理,确定出待估算任务的节点运行复杂度。

示例性的,假设,完成执行待估算任务涉及3个任务处理节点,3个任务处理节点的目标运行权重分别为4′、1′、1′,此时,可以通过求和的方式,确定出待估算任务的节点运行复杂度为6′。

S1034、通过比对所述待估算任务的节点运行复杂度与所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度。

该步骤中,参考任务相当于一个参考“标杆”,即以参考任务为标准来确定待估算任务的任务运行复杂度;具体的,可以参考于该参考任务的参考运行复杂度,通过比对待估算任务的节点运行复杂度与参考任务的参考运行复杂度,更加合理地确定出待估算任务的任务运行复杂度(在任务运行复杂度为非整数的情况下,保留2位小数)。

其中,可以通过以下公式计算待估算任务的任务运行复杂度:任务运行复杂度=节点运行复杂度/参考运行复杂度。

这里,数据量复杂度表征了待估算任务的所涉及的数据处理量的多少;数据量复杂度也可以从侧面表明待估算任务的复杂程度;若待估算任务的数据量复杂度越高,则说明该待估算任务所需处理的数据量较大,那么,该待估算任务的复杂程度也就越高;反之,若待估算任务的数据量复杂度越低,则说明该待估算任务所需处理的数据量较小,那么,该待估算任务的复杂程度也就越低。

在步骤S104中,参考任务相当于一个参考“标杆”,即以参考任务为标准来确定待估算任务的数据量复杂度;具体的,可以参考于该参考任务的参考数据量,通过比对待估算任务的数据处理量与参考任务的参考数据量,更加合理地确定出待估算任务的数据量复杂度。

其中,可以通过以下公式计算待估算任务的数据量复杂度:数据量复杂度=数据处理量/参考数据量。

这里,是通过直接比对待估算任务的数据处理量与参考任务的参考数据量,来确定待估算任务的数据量复杂度的;在其他实施方式中,还可以借助于待估算任务的数据处理量所属数量级区间,来确定待估算任务的数据量复杂度。

需要说明的是,由于非输入节点无法得知准确的数据输入量,因此,在进行数据量复杂度评估时,只需考虑各个输入节点所获取到的输入数据量即可。

在一种实施方式中,所述任务处理节点包括输入节点;步骤S104包括了:

S1041、基于每个输入节点的输入数据量,确定所述待估算任务的数据处理量。

该步骤中,通过对每个输入节点所获取到的输入数据量进行求和处理,确定执行待估算任务所涉及的数据处理量。

S1042、基于所述数据处理量,确定所述待估算任务所属的第一数量级区间。

该步骤中,数据量级区间为预先划分好的,具体的,可以划分为万级、百万级、千万级、亿级、十亿级、百亿级等多个区间;依据于待估算任务所涉及的数据处理量,确定待估算任务所落入的第一数量级区间;例如,当待估算任务的数据处理量为十万条时,则可确定待估算任务落入了万级区间。

S1043、基于所述参考任务的参考数据量,确定所述参考任务所属的第二数量级区间。

该步骤中,依据于参考任务所涉及的参考数据量,确定参考任务所落入的第二数量级区间;例如,当参考任务的数据处理量为二百万条时,则可确定待估算任务落入了百万级区间。

S1042、通过比对所述第一数量级区间对应的第一影响参数与所述第二数量级区间对应的第二影响参数,确定所述待估算任务的数据量复杂度。

该步骤中,参考任务相当于一个参考“标杆”,即以参考任务为标准来确定待估算任务的数据量复杂度;具体的,可以参考于该参考任务所落入的第二数量级区间对应的第二影响参数,通过比对待估算任务所落入的第一数量级区间对应的第一影响参数与参考任务所落入的第二数量级区间对应的第二影响参数,更加合理地确定出待估算任务的数据量复杂度。

其中,可以通过以下公式计算待估算任务的任务运行复杂度:数据量复杂度=第一影响参数/第二影响参数。

这里,每个数量级区间对应的影响参数为预先经过反复测试确定出的,并支持实时进行人工修正。

此外,为了减少待估算任务与参考任务的数据量级之间存在断层差异性,可将得出的数据量复杂度进行二次方根计算,得出最终的数据量复杂度(在数据量复杂度为非整数的情况下,保留2位小数)。

在步骤S105中,综合确定出的待估算任务的节点构造复杂度、任务运行复杂度以及数据量复杂度,确定待估算任务的任务执行复杂度;这里,可以通过求和的方式,基于待估算任务的节点构造复杂度、任务运行复杂度以及数据量复杂度,确定待估算任务的任务执行复杂度;或者,还可以通过求积的方式,基于待估算任务的节点构造复杂度、任务运行复杂度以及数据量复杂度,确定待估算任务的任务执行复杂度,可根据实际情况而定,在此不做限制。

具体的,可以通过以下公式计算待估算任务的任务执行复杂度:任务执行复杂度=节点构造复杂度×任务运行复杂度×数据量复杂度。

这里,我们还可以借助于待估算任务的任务执行复杂度,进一步地对待估算任务的任务执行时长进行估算。

在一种实施方式中,所述估算方法还包括:基于所述任务执行复杂度、所述第一影响参数以及执行所述待估算任务所使用硬件设施的硬件影响参数,确定所述待估算任务的时长影响参数;利用所述时长影响参数调整所述参考任务的参考执行时长,确定所述待估算任务的任务执行时长。

其中,硬件设施的硬件影响参数包括软件能力影响参数、硬件能力影响参数以及网络环境影响参数;软件能力影响参数取决于所使用的引擎执行器,不同引擎执行器对应的软件能力影响参数不同,可以根据实际情况进行设置;例如,SPARK执行器、SQL执行器和HTTP执行器分别对应有不同的软件能力影响参数;

硬件能力影响参数取决于所使用的CPU、内存量以及IO接口等硬件设施,不同硬件设施对应的硬件能力影响参数不同,可以根据实际情况进行设置;

网络环境影响参数取决于所处网络环境信号的强弱程度,不同强弱程度对应的网络环境影响参数不同,可以根据实际情况进行设置。

该步骤中,通过对任务执行复杂度、第一影响参数以及执行待估算任务所使用硬件设施的硬件影响参数进行加权计算,确定出影响待估算任务的任务执行时长的时长影响参数;并利用时长影响参数调整参考任务的参考执行时长,进而,确定待估算任务的任务执行时长。

在另一实施方式中,还可以参考于待估算任务的历史执行记录,确定此次执行待估算任务的预计耗费的任务执行时长。

具体的,取待估算任务最近预设执行次数(不足预设执行次数的取全部执行次数),且执行状态为成功执行的执行记录所记载的历史执行时长,将预设执行次数的历史执行时长的均值,确定为此次执行待估算任务预计耗费的任务执行时长。

在另一实施方式中,还可以参考于待估算任务的测试执行记录,确定此次执行待估算任务的预计耗费的任务执行时长。

具体的,获取待估算任务试运行时的试运行时长;将试运行时长与此次执行时待估算任务所涉及的数据处理量所属第一数量级区间的第一影响参数进行加权计算,确定此次执行待估算任务的预计耗费的任务执行时长。

在另一实施方式中,还可以参考于其他任务的执行记录,确定此次执行待估算任务的预计耗费的任务执行时长。

具体的,获取与待估算任务创建方法相同、执行模式相同、任务执行引擎的选型相同、底层执行环境、硬件设备以及网络环境均相同的其他任务的任务执行时长;将待估算任务的任务执行复杂度、第一影响参数与其他任务的任务执行时长进行加权计算,确定此次执行待估算任务的预计耗费的任务执行时长。

本申请实施例提供的任务复杂度的估算方法,获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。这样,便可以从执行待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及待估算任务的数据处理量等多个方面,准确地确定出待估算任务的任务执行复杂度。

请参阅图2、图3,图2为本申请实施例所提供的一种任务复杂度的估算装置的结构示意图之一,图3为本申请实施例所提供的一种任务复杂度的估算装置的结构示意图之二。如图2中所示,所述估算装置200包括:

信息获取模块210,用于获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;

第一确定模块220,用于基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;

第二确定模块230,用于基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;

第三确定模块240,用于通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;

第四确定模块250,用于综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。

进一步的,所述第一确定模块220在用于基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度时,所述第一确定模块220用于:

针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础节点权重,得到该任务处理节点的目标节点权重;

基于每个任务处理节点的目标节点权重,确定所述待估算任务的处理节点复杂度;

通过比对所述待估算任务的处理节点复杂度与所述参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度。

进一步的,所述第一确定模块220在用于针对于每个任务处理节点,根据该任务处理节点的节点类型,确定该任务处理节点的基础节点权重时,所述第一确定模块220用于:

确定每种节点类型对应的预设节点权重;

针对于每个任务处理节点,将该任务处理节点所属节点类型的预设节点权重,确定为该任务处理节点的基础节点权重。

进一步的,所述第二确定模块230在用于基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度时,所述第二确定模块230用于:

针对于每个任务处理节点,根据该任务处理节点的节点类别,确定该任务处理节点的基础运行权重;其中,所述节点类别是根据任务处理节点的作用确定出的;

根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重;

基于每个任务处理节点的目标运行权重,确定所述待估算任务的节点运行复杂度;

通过比对所述待估算任务的节点运行复杂度与所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度。

进一步的,所述第二确定模块230在用于根据该任务处理节点的数据处理方式,调整该任务处理节点的基础运行权重,得到该任务处理节点的目标运行权重时,所述第二确定模块230用于:

确定该任务处理节点的数据处理方式对应的权重调整系数;

利用所述权重调整系数,调整该任务处理节点的基础运行权重,得到该任务处理节点的初始运行权重;

若该任务处理节点的节点类型为输入节点或输出节点,基于该任务处理节点的数据来源类型,调整该任务处理节点的初始运行权重,得到该任务处理节点的目标运行权重;

否则,将该任务处理节点的初始运行权重,确定为该任务处理节点的目标运行权重。

进一步的,所述任务处理节点包括输入节点;所述第三确定模块240在用于通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度时,所述第三确定模块240用于:

基于每个输入节点的输入数据量,确定所述待估算任务的数据处理量;

基于所述数据处理量,确定所述待估算任务所属的第一数量级区间;

基于所述参考任务的参考数据量,确定所述参考任务所属的第二数量级区间;

通过比对所述第一数量级区间对应的第一影响参数与所述第二数量级区间对应的第二影响参数,确定所述待估算任务的数据量复杂度。

进一步的,如图3所示,所述估算装置200还包括时长确定模块260,所述时长确定模块260用于:

基于所述任务执行复杂度、所述第一影响参数以及执行所述待估算任务所使用硬件设施的硬件影响参数,确定所述待估算任务的时长影响参数;

利用所述时长影响参数调整所述参考任务的参考执行时长,确定所述待估算任务的任务执行时长。

本申请实施例提供的任务复杂度的估算装置,获取待估算任务的任务执行信息;其中,所述任务执行信息包括执行所述待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及所述待估算任务的数据处理量;基于每个任务处理节点的节点类型和数据处理方式,参考与所述待估算任务对应的参考任务的参考节点复杂度,确定所述待估算任务的节点构造复杂度;基于每个任务处理节点的节点类别和数据处理方式,参考完成运行所述参考任务的参考运行复杂度,确定完成运行所述待估算任务的任务运行复杂度;通过比对所述待估算任务的数据处理量与所述参考任务的参考数据量,确定所述待估算任务的数据量复杂度;综合所述节点构造复杂度、所述任务运行复杂度以及所述数据量复杂度,确定所述待估算任务的任务执行复杂度。这样,便可以从执行待估算任务的各个任务处理节点的节点类型、数据处理方式、节点类别以及待估算任务的数据处理量等多个方面,准确地确定出待估算任务的任务执行复杂度。

请参阅图4,图4为本申请实施例所提供的一种电子设备的结构示意图。如图4中所示,所述电子设备400包括处理器410、存储器420和总线430。

所述存储器420存储有所述处理器410可执行的机器可读指令,当电子设备400运行时,所述处理器410与所述存储器420之间通过总线430通信,所述机器可读指令被所述处理器410执行时,可以执行如上述图1所示方法实施例中的任务复杂度的估算方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1所示方法实施例中的任务复杂度的估算方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

技术分类

06120115687740