一种分布式计算任务的响应方法及设备与流程

专利2022-06-30  114


本发明属于数据处理技术领域,尤其涉及一种分布式计算任务的响应方法及设备。



背景技术:

随着电子化进程的不断推进,大部分文件可为数字化文件,并存储于云端数据库,而为了保证数据库的存取效率,大部分数据存储模式采用分布式存储,将属于同一的电子文件划分多个不同的数据库,并交由各个分布式节点进行存储,因此在响应数据计算任务时,则需要采用分布式计算框架,例如spark引擎,基于查询表从各个分布式节点提取数据。

现有的分布式计算技术,在使用分布式计算引擎时,由于数据会存在变更情况,往往需要整合数据库内的多个查询表,并根据整合后的数据表执行计算响应。然而在整合查询表的过程中,需要重新梳理表内的各个数据,在数据表的数据量较大时,则需要消耗较多的硬件资源执行数据表的梳理操作,增加了处理时间,降低了分布式计算的效率。



技术实现要素:

有鉴于此,本发明实施例提供了一种分布式计算任务的响应方法及设备,以解决现有的分布式计算技术,在整合查询表的过程中,需要重新梳理表内的各个数据,在数据表的数据量较大时,则需要消耗较多的硬件资源执行数据表的梳理操作,增加了处理时间,分布式计算的效率低的问题。

本发明实施例的第一方面提供了一种分布式计算任务的响应方法,包括:

若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;

从基准查询表中提取所述目标字段的目标数据,生成字段查询表;

统计所述字段查询表的字段数据量;

若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;

基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

本发明实施例的第二方面提供了一种分布式计算任务的响应设备,包括:

目标字段识别单元,用于若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;

字段查询表生成单元,用于从基准查询表中提取所述目标字段的目标数据,生成字段查询表;

字段数据量统计单元,用于统计所述字段查询表的字段数据量;

广播合并触发单元,用于若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;

分布式计算任务响应单元,用于基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。

实施本发明实施例提供的一种分布式计算任务的响应方法及设备具有以下有益效果:

本发明实施例通过对分布式计算任务进行解析,确定计算操作所需的目标字段,并从基准查询表提取与目标字段相关的目标数据,生成字段查询表,从而将一个总的数据表拆分为与任务相关的分表,剔除了大量与本次计算无关的无效数据,减少了分表的数据量,并在该字段查询表的字段数据量小于广播触发阈值时,通过广播发送的方式将字段查询表发送给各个分布式存储节点,以便分布式存储节点基于广播合并broadcastjoin的方式将字段查询表与目标配置表进行合并,由于broadcastjoin的合并方式无需对字段编号key值进行关联,对整个数据表进行梳理,属于数据表的快速合并的方式,提高了分布式计算的效率。与现有的分布式计算的响应技术相比,本实施例能够通过在生成数据表时筛选出有效数据,即与本次计算相关的目标字段的目标数据,减少所需发送的数据表的数据量,在数据表的数据量较少的情况下,通过简易合并的broadcastjoin方式合并字段查询表以及目标配置表,大大减少数据梳理操作的次数,减少了分布式节点的数据读写压力,从而提高了分布式计算的响应速率。

附图说明

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

图1是本发明第一实施例提供的一种分布式计算任务的响应方法的实现流程图;

图2是本发明第二实施例提供的一种分布式计算任务的响应方法具体实现流程图;

图3是本发明第三实施例提供的一种分布式计算任务的响应方法s202具体实现流程图;

图4是本发明第四实施例提供的一种分布式计算任务的响应方法s101具体实现流程图;

图5是本发明第五实施例提供的一种分布式计算任务的响应方法s101具体实现流程图;

图6是本发明第六实施例提供的一种分布式计算任务的响应方法具体实现流程图;

图7是本发明第七实施例提供的一种分布式计算任务的响应方法s102具体实现流程图;

图8是本发明一实施例提供的一种分布式计算任务的响应设备的结构框图;

图9是本发明另一实施例提供的一种终端设备的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例通过对分布式计算任务进行解析,确定计算操作所需的目标字段,并从基准查询表提取与目标字段相关的目标数据,生成字段查询表,从而将一个总的数据表拆分为与任务相关的分表,剔除了大量与本次计算无关的无效数据,减少了分表的数据量,并在该字段查询表的字段数据量小于广播触发阈值时,通过广播发送的方式将字段查询表发送给各个分布式存储节点,以便分布式存储节点基于广播合并broadcastjoin的方式将字段查询表与目标配置表进行合并,由于broadcastjoin的合并方式无需对字段编号key值进行关联,对整个数据表进行梳理,属于数据表的快速合并的方式,提高了分布式计算的效率,解决了现有的分布式计算技术,在整合查询表的过程中,需要重新梳理表内的各个数据,在数据表的数据量较大时,则需要消耗较多的硬件资源执行数据表的梳理操作,增加了处理时间,分布式计算的效率低的问题。

在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等能够响应分布式计算任务的设备。具体地,该终端设备可以为基于spark引擎部署的分布式计算系统中的服务器,该服务器与多个不同的分布式存储节点共同构成分布式计算系统,用于存储各个用户终端上传的数据,并响应分布式计算任务。图1示出了本发明第一实施例提供的分布式计算任务的响应方法的实现流程图,详述如下:

在s101中,若接收到分布式计算任务,则确定所述分布式计算任务的目标字段。

在本实施例中,用户可以在本地终端生成分布式计算任务,并通过与分布式计算系统相对应的客户端将分布式计算任务发送给终端设备。在该情况下,分布式计算任务携带有客户端的程序标识,终端设备在接收到分布式计算任务后,可以对该程序标识进行识别,确定该用户终端是否为合法的终端;若是,则执行s101的操作;反之,则识别为无效任务。终端设备还可以设置有定时任务,在满足预设的计算触发条件时,自动创建分布式计算任务,并执行s101的操作,例如设置每月最后一日统计当月的销售记录等周期性触发的计算任务,可以为该类型的分布式计算任务配置触发脚本,在检测到当前时刻满足预设的触发周期,则执行对应的触发脚本,生成对应的分布式计算任务。

具体地,在本实施例中,该分布式计算任务具体为以spark引擎搭建的计算系统。其中,构建在spark分布式计算系统上处理数据流stream数据的框架,基本的原理是将stream数据分成多个小的数据片段,以类似batch批量处理的方式来处理数据片段。由于sparkstreaming是构建在spark分布式计算系统上,一方面是因为spark的低延迟执行,可以用于实时计算,另一方面spark分布式计算系统相比基于record的其它处理框架(如storm),其中的窄依赖的弹性分布式数据集rdd可以从源数据重新计算达到容错处理目的。此外由于将数据分成多个小的数据片段,采用小批量处理的方式使得spark分布式计算系统可以同时兼容批量和实时数据处理的逻辑和算法,方便了一些需要历史数据和实时数据联合分析的特定应用场合。spark分布式计算系统可以分为至少一个计算驱动设备driver,即本实施例中的终端设备,和若干个调度器executor,该调度器在rdd分布的各个节点上,即本实施例中的分布式节点。通过sparkcontext连接spark集群、创建rdd、累加器、广播变量broadcastvariables。计算驱动设备会把计算任务分成一系列小的分片,即task,然后送到分布式节点执行。分布式节点之间可以通信,在每个分布式节点完成自己的分片任务后,将所有的信息发送给计算驱动设备,通过计算驱动设备将响应结果发送给用户终端。可选地,若该分布式计算系统为基于spark引擎搭建的分布式计算系统,则上述的计算任务可以基于spark-sql语言的任务。

在本实施例中,分布式计算任务可以包含有计算内容,终端设备对该计算内容进行解析,可选地,通过确定计算内容对应的计算类型以及请求计算的目标对象,确定该分布式计算任务对应的目标字段。

在s102中,从基准查询表中提取所述目标字段的目标数据,生成字段查询表。

在本实施例中,终端设备存储有基准查询表,该基准查询表记录所有对象的已有字段,即属于总数据表。而一次分布式计算任务可能只涉及基准查询表内的部分字段,因此,为了减少数据表发送时的数据量,可以基于基准查询表划分为子数据表,即提取本次计算所需要使用的目标字段以及目标字段下联的各个记录的数据即可,无需将整个基准查询表发送给分布式节点。

举例性地,该基准查询数据包的已有字段包括有“用户编号”、“用户年龄”、“用户地址”、“关联用户列表”以及“联系方式”,而终端设备接收到的分布式计算任务的计算内容是统计用户的平均年龄,则目标字段为“用户编号”以及“用户年龄”,此时,终端设备则只需基于基准查询表内的“用户编号”以及“用户年龄”的数据,即可计算得到用户的平均年龄,并根据“用户编号”以及“用户年龄”两个字段对应的目标数据,生成字段查询表,将字段查询表发送给分布式节点,而无需将所有已有字段构成的基准查询表发送给分布式节点,减少了60%的数据传输量。

在本实施例中,基准查询表内可以包含有多个不同对象的对象信息,每个对象信息包含有基准查询表所有已有字段的参数值,因此,在提取目标字段的目标数据时,实际上是提取各个对象关于该目标字段的参数值,构成上述的目标数据。

在s103中,统计所述字段查询表的字段数据量。

在本实施例中,终端设备从基准查询表中提取得的字段查询表后,需要确定该字段查询表的字段数据量,由于分布式计算系统根据字段查询表的数据量不同,使用不同的数据表合并方式。因此,在发送字段查询表给各个分布式节点之前,识别各个目标字段对应的目标数据的数据量,将所有目标数据量进行累加,即可以的计算得到关于整个数据表的字段数据量。

在本实施例中,分布式计算系统的数据表合并方式可以至少划分为广播合并broadcastjoin,哈希切换合并shufflehashjoin,排序连接合并sortmergejoin。其中,由于哈希切换合并以及排序连接合并均需要对数据表进行重构,即对两个表中根据数据所对应的key分区,再将每个分区中key值相同的数据进行连接操作,从而将两个数据表中同样key值的数据合并,实现了两个数据表的合并,然而上述方式涉及到不同分布式节点之间大量数据的传输,并且占用分布式节点的网络输入输出io接口的网络资源。因此,通过哈希切换合并以及排序连接合并对数据表进行合并,则会降低分布式计算的响应效率,增加了计算时长。为了减少网络资源消耗以及提高计算任务的响应效率,应该增加广播合并方式对数据表进行合并,而广播合并方式的触发条件是数据表的数据量小于广播触发阈值,而在数据表的数据量大于或等于广播触发阈值时,分布式计算系统则会通过哈希切换合并以及排序连接合并两种方式对数据表进行合并,而通过从基准查询表中提取字段查询表,则过滤了大量无效的数据,从而减少了数据表的数据量,增加了广播合并方式的概率。

在s104中,若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并。

在本实施例中,若检测到字段查询表的字段数据量小于广播触发阈值,则可以使用广播合并的方式进行数据表合并,因此可以将该字段查询表发送给各个分布式节点,在分布式节点接收到通过广播方式发送的字段查询表后,则确定本次合并方式采用广播合并broadcastjoin的方式合并字段查询表以及存储于本地的目标配置表。

优选地,在本实施例中,该广播触发阈值可以根据当前的任务个数动态调整。具体地,若当前分布式计算任务的任务数量较多,则每个计算任务分配得到的网络资源较少,此时,可以提高广播触发阈值,从而提高广播合并方式的使用概率;而在闲时,即当前的任务个数较少时,则可以降低广播触发阈值,通过哈希切换合并以及排序连接合并进行合并。在该情况下,终端设备在执行s104的操作之前,可以获取当前正在处理的分布式计算任务的任务个数,并通过预设的广播触发阈值转换算法,计算任务个数对应的广播触发阈值,并将广播触发阈值与字段数据量进行比较。

在s105中,基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

在本实施例中,终端设备可以将各个字段查询表发送给下联的多个分布式节点,继而分布式节点可以将字段查询表与本地的目标配置表进行合并,各个分布式节点在执行了数据表合并操作后,将合并后的目标配置表返回给终端设备。其中,终端设备作为管理多个分布式节点的管理设备,用于进行计算任务的解析,确定多个分布式计算任务内包含的多个计算操作,计算操作包括有目标字段的提取、提取数据的合并、数据合并后的计算等,不同的计算类型交由不同的分布式节点进行操作,因此,终端设备在获取了得到合并后的目标配置表后,可以确定分布式计算任务所需的目标字段所关联的分布式节点,并向各个分布式节点发送数据查询任务,分布式节点可以将查询得到的数据反馈给终端设备,继而终端设备可以将接收到的数据下发到执行数据合并以及数据计算的分布式节点进行后续的计算任务,并将计算结果反馈给终端设备,通过上述流程对分布式计算任务进行响应。

以上可以看出,本发明实施例提供的一种分布式计算任务的响应方法通过对分布式计算任务进行解析,确定计算操作所需的目标字段,并从基准查询表提取与目标字段相关的目标数据,生成字段查询表,从而将一个总的数据表拆分为与任务相关的分表,剔除了大量与本次计算无关的无效数据,减少了分表的数据量,并在该字段查询表的字段数据量小于广播触发阈值时,通过广播发送的方式将字段查询表发送给各个分布式存储节点,以便分布式存储节点基于广播合并broadcastjoin的方式将字段查询表与目标配置表进行合并,由于broadcastjoin的合并方式无需对字段编号key值进行关联,对整个数据表进行梳理,属于数据表的快速合并的方式,提高了分布式计算的效率。与现有的分布式计算的响应技术相比,本实施例能够通过在生成数据表时筛选出有效数据,即与本次计算相关的目标字段的目标数据,减少所需发送的数据表的数据量,在数据表的数据量较少的情况下,通过简易合并的broadcastjoin方式合并字段查询表以及目标配置表,大大减少数据梳理操作的次数,减少了分布式节点的数据读写压力,从而提高了分布式计算的响应速率。

图2示出了本发明第二实施例提供的一种分布式计算任务的响应方法的具体实现流程图。参见图2,相对于图1所述实施例,本实施例提供的一种分布式计算任务的响应方法中在所述若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点之前,还包括:s201~s205,具体详述如下:

进一步地,在所述若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点之前,还包括:

在s201中,获取当前时刻的网络资源参量,以及所述当前时刻所在的预设时间段关联的历史运行记录。

在本实施例中,终端设备可以根据当前的网络情况,动态调整广播触发阈值,具体可以根据历史配置的历史广播阈值以及当前的网络情况进行确定。因此,终端设备可以获取当前时刻的网络资源参量以及历史运行记录,基于上述获取得到的两个参量,计算得到当前时刻对应的广播触发阈值。其中,当前时刻具体为接收到分布式计算任务对应的时刻。获取得的网络资源参量可以为多个,该网络资源参量包括但不限于:网络丢包率、网络传输速率、误码率、网络时延等。

在本实施例中,终端设备可以预先划分有不同的特征时间段,终端设备可以判断当前时刻落入的特征时间段,并获取创建时间在该特征时间段内的历史运行记录作为当前时刻关联的历史运行记录。

在s202中,将所述网络资源参量导入预设的阈值因子转换模型,计算第一阈值因子。

在本实施例中,终端设备可以设置有阈值因子转换模型,终端设备将网络资源参量导入到该阈值因子转换模型内,输出当前时刻的网络资源参量对应的第一阈值因子。具体地,该网络资源参量的数值越大,则表示当前可用的网络资源越多,此时对应的第一阈值因子的数值越大,提高广播合并方式使用概率;反之,若网络资源参量的数值越小,则表示当前可用的网络资源越小,测试对应第一阈值因子的数值越小,降低广播合并方式使用概率。该阈值因子转换模型可以为哈希函数。

在s203中,基于各个所述历史运行记录的创建时间,配置所述历史运行记录的权重值。

在本实施例中,历史运行记录包含有该记录的创建时间,终端设备可以根据各个创建时间与当前时刻之间的差值,配置该历史运行记录的权重值。其中,当前时刻与创建时间之间的差值越小,则对应的历史运行记录的权重值越高;反之,当前时刻与创建时间之间的差值越大,则对应的历史运行记录的权重值越低。由于创建时间与当前时刻的具体之间的差值越小,则响应历史运行记录时刻分布式计算系统的系统结构以及数据库的数据总量与当前时刻的系统结构与数据总量的差异度越小,因此对应的历史广播阈值的参考价值越高,因此对应的权重值越大,从而能够提高当前的广播触发阈值的准确性。

在s204中,根据各个所述历史运行记录的历史广播阈值以及所述权重值,计算第二阈值因子。

在本实施例中,历史运行记录包含响应历史计算任务时所比对的历史广播阈值,终端设备可以将各个历史运行记录的历史广播阈值以及权重值进行加权累加,从而计算得到第二阈值因子。

在s205中,根据所述第一阈值因子以及所述第二阈值因子,计算所述广播触发阈值。

在本实施例中,终端设备在计算了与网络资源参量线管的第一阈值因子以及与历史广播阈值相关的第二阈值因子后,可以基于上述两个参量计算得到当前时刻对应的广播触发阈值,实现动态调整广播触发阈值的目的。

在本发明实施例中,通过获取当前的网络资源参量以及历史运行记录,计算得到当前时刻的广播触发阈值,以使当前时刻与字段数据量比对的广播触发阈值与当前的网络负载情况相匹配,提高了广播触发阈值的准确性。

图3示出了本发明第三实施例提供的一种分布式计算任务的响应方法s202的具体实现流程图。参见图3,相对于图2所述的实施例,本实施例提供的一种分布式计算任务的响应方法s202包括:s2021~s2022,具体详述如下:

进一步地,所述将所述网络资源参量导入预设的阈值因子转换模型,计算第一阈值因子,包括:

在s2021中,获取所在网络的最大可用资源参量。

在本实施例中,终端设备可以获取当前所接入网络,即上述的所在网络,最大可用资源参量,即各个网络资源参量的上限数值。举例性地,该网络资源参量包括有上行速率以及下行速率,则该最大可用资源参量则包括上行最高速率以及下行最高速率;而对于误码率以及丢包率等网络资源参量,则转换为正向参量,例如数据传输的最大正确率,即对应最小误码率,以及数据包发送成功率,即对应最小丢包率。

在s2022中,将所述最大可用资源参量以及所述网络资源参量导入预设的阈值因子转换模型,计算所述第一阈值因子;所述阈值因子转换模型具体为:

其中,firstbrdcst为所述第一阈值因子;currentresourcei为第i个所述网络资源参量;maxwebresourcei为第i个所述最大可用资源参量;baselv为预设的基准系数;n为网络资源参量的总数。

在本实施例中,终端设备可以计算当前的网络资源参量与最大可用资源参量之间比值,若该网络资源参量与最大可用资源参量越接近,则表示当前的网络环境较优,可以用于传输大数据的数据表,因此对应的第一阈值因子的数值也越大;反之,若网络资源参量与最大可用资源参量之间的差值越大,则表示当前的网络环境较差,此时,对应的第一阈值因子的数值也越小。

在本发明实施例中,终端设备通过获取当前所在网络的最大可用资源参量,并通过网络资源参量与最大可用资源参量进行比对,计算得到第一阈值因子,从而能够对各个网络资源参量进行归一化处理,提高了第一阈值因子的准确性。

图4示出了本发明第四实施例提供的一种分布式计算任务的响应方法s101的具体实现流程图。参见图4,相对于图1所述实施例,本实施例提供的一种分布式计算任务的响应方法s101包括:s1011~s1014,具体详述如下:

进一步地,所述若接收到分布式计算任务,则确定所述分布式计算任务的目标字段,包括:

在s1011中,解析所述分布式计算任务,得到所述分布式计算任务的任务类型。

在本实施例中,终端设备可以通过自识别的方式,确定该分布式计算任务关联的目标字段,而无需用户手动设置。不同的计算任务对应不同的任务类型,任务类型不同在响应时所需调用的数据也存在差异,因此,终端设备可以对分布式计算任务进行解析,并识别该计算任务对应的任务类型。具体地,终端设备可以提取分布式计算任务的计算内容,并提取计算内容中的计算关键词,确定该计算关键词关联的任务类型。

在s1012中,从计算响应数据库中提取与所述任务类型匹配的历史响应结果,并识别各个所述历史响应结果包含的历史字段。

在本实施例中,计算响应数据库内存储有终端设备响应的所有历史响应结果。该历史响应结果包含有响应历史计算任务时所关联的目标字段,即上述的历史字段。终端设备可以根据分布式计算任务的任务类型,从计算响应数据库中提取与任务类型匹配的历史响应结果,即上述提取得到的历史响应结果的任务类型与当前所需的分布式计算任务的任务类型一致,从而可以判定历史响应结果内关联的目标字段也可能为当前所需计算的计算任务关联的目标字段。

在s1013中,基于各个所述历史字段在所有所述历史响应结果中的出现次数以及出现时间,分别计算各个所述历史字段的关联度。

在本实施例中,终端设备可以统计各个历史字段在所有历史响应结果中的出现次数,若该出现次数越大,则表示该历史字段与该任务类型的关联度越高;反之,若该历史字段在所有历史响应结果中的出现次数越小,则与任务类型的关联度越低。并且,终端设备可以根据历史字段在各个历史响应结果的出现时间,计算出现频率,基于出现次数以及出现频率,可以识别得到各个历史字段与任务类型之间的关联度。

在s1014中,选取所述关联度大于预设的关联阈值的所述历史字段作为所述目标字段。

在本实施例中,终端设备在计算得到各个历史字段与任务类型的关联度后,可以选取关联度大于关联阈值的历史字段作为目标字段,实现自动识别分布式计算任务的目标字段的目的。

在本发明实施例中,通过获取与当前计算任务的任务类型匹配的历史响应结果,从而通过历史响应结果内包含的历史字段自动提取与计算任务对应的目标字段,减少了用户操作,提高了分布式计算任务的响应效率。

图5示出了本发明第五实施例提供的一种分布式计算任务的响应方法s101的具体实现流程图。参见图5,相对于图1所述实施例,本实施例提供的一种分布式计算任务的响应方法s101包括:s1015~s1017,具体详述如下:

进一步地,所述若接收到分布式计算任务,则确定所述分布式计算任务的目标字段,包括:

在s1015中,提取所述分布式计算任务包含的结构化查询语言sql语句。

在本实施例中,该分布式计算任务是基于采用spark-sql框架生成的计算任务,终端设备可以对分布式计算任务进行解析,提取该计算任务携带有的sql语句,由于sql语句是用于查询数据库内的目标数据,即该sql语句中携带有该计算任务所对应的目标字段信息,可以对sql语句进行解析,以自动确定sql语言。

在s1016中,对所述sql语句进行语义分析,获取所述sql语句对应的查询关键词。

在本实施例中,终端设备可以提取sql语句库,该sql语句库记录有多个标准语段,终端设备可以基于标准语段,从sql语句中提取用于定义查询数据关联的特征语句,并基于该特征语句包含的查询关键词。

在s1017中,在所述基准查询表中查询与各个所述查询关键词匹配的已有字段,并将与所述查询关键词匹配的所述已有字段识别为所述目标字段。

在本实施例中,终端设备可以识别各个查询关键词是否存在于基准查询表内的已有字段中,若是,则识别该已有字段为目标字段。

在本发明实施例中,通过对计算任务内的sql语句进行语义解析,提取查询关键词,并基于查询关键词从基准查询表中提取匹配的目标字段,实现了自动识别目标字段的目的,减少了用户操作,提高了分布式计算任务的响应效率。

图6示出了本发明第六实施例提供的一种分布式计算任务的响应方法的具体实现流程图。参见图6,相对于图1至图5任一所述实施例,本实施例提供的一种分布式计算任务的响应方法在所述统计所述字段查询表的字段数据量之后,还包括:s601~s602,具体详述如下:

进一步地,在所述统计所述字段查询表的字段数据量之后,还包括:

在s601中,若所述字段数据量大于或等于所述广播触发阈值,则将各个目标数据的数据编号添加到所述字段查询表。

在本实施例中,终端设备可以获取若检测到该字段查询表的字段数据量大于或等于广播触发阈值,则识别需要通过哈希切换合并shufflehashjoin的方式合并两个数据表,而shufflehashjoin则需要确定各个目标数据的数据编号,即key值,以便分布式节点可以基于key值确定关联数据,因此,终端设备需要将各个数据编号添加到字段查询表。

在s602中,将添加有所述数据编号的所述字段查询表发送给各个分布式节点,以便各个所述分布式节点基于所述数据编号,在本地的目标配置表的本地数据中查询与各个所述字段数据对应的关联数据,并重构所述目标配置表。

在本实施例中,终端设备将添加有数据标号的字段查询表发送给各个分布式节点,分布式节点可以根据各个目标数据的key值以及本地的目标配置表内本地数据的key值进行比对,将key值相同的本地数据以及目标数据识别为互为关联数据,并根据数据之间的关联关系,重构目标配置表,实现将字段查询表的目标数据合并到目标配置表内。

在本发明实施例中,在数据量较大的情况下,通过shufflehashjoin的方式合并两个数据表,能够对数据表进行梳理,便于对分布式数据的管理。

图7示出了本发明第七实施例提供的一种分布式计算任务的响应方法s102的具体实现流程图。参见图7,相对于图1至图5任一所述实施例,本实施例提供的一种分布式计算任务的响应方法s102包括:s1021~s1022,具体详述如下:

在s1021中,若所述基准查询表中任一基准字段与所述分布式计算任务的所述目标字段匹配,则识别所述基准字段为有效字段。

在本实施例中,终端设备在确定了分布式计算任务的目标字段后,可以从基准查询表中分离出本次计算所需的字段查询表,即从大表中分离出小表。具体地,终端设备可以判断基准查询表内各个已有字段,即上述的基准字段是否与目标字段匹配,若是,则识别该基准字段为有效字段。

在s1022中,将所有所述有效字段关联的数据识别为目标数据,并根据所有所述目标数据以及有效字段,生成字段查询表。

在本实施例中,终端设备在识别得到基准查询表内所有有效字段后,该有效字段下联的数据即为目标字段所需提取的目标数据,并基于目标数据以及有效字段,从基准查询表中分离得到字段查询表。

在本发明实施例中,通过识别基准查询表内的有效字段,生成字段查询表,能够减少所需发送的数据表的数据量,减少网络资源的消耗。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图8示出了本发明一实施例提供的一种分布式计算任务的响应设备的结构框图,该分布式计算任务的响应设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图8,所述分布式计算任务的响应设备包括:

目标字段识别单元81,用于若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;

字段查询表生成单元82,用于从基准查询表中提取所述目标字段的目标数据,生成字段查询表;

字段数据量统计单元83,用于统计所述字段查询表的字段数据量;

广播合并触发单元84,用于若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;

分布式计算任务响应单元85,用于基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

可选地,所述分布式计算任务的响应设备还包括:

网络资源确定单元,用于获取当前时刻的网络资源参量,以及所述当前时刻所在的预设时间段关联的历史运行记录;

第一阈值因子计算单元,用于将所述网络资源参量导入预设的阈值因子转换模型,计算第一阈值因子;

权重值确定单元,用于基于各个所述历史运行记录的创建时间,配置所述历史运行记录的权重值;

第二阈值因子计算单元,用于根据各个所述历史运行记录的历史广播阈值以及所述权重值,计算第二阈值因子;

广播触发阈值计算单元,用于根据所述第一阈值因子以及所述第二阈值因子,计算所述广播触发阈值。

可选地,所述第一阈值因子计算单元包括:

最大可用资源参量获取单元,用于获取所在网络的最大可用资源参量;

第一阈值因子转换单元,用于将所述最大可用资源参量以及所述网络资源参量导入预设的阈值因子转换模型,计算所述第一阈值因子;所述阈值因子转换模型具体为:

其中,firstbrdcst为所述第一阈值因子;currentresourcei为第i个所述网络资源参量;maxwebresourcei为第i个所述最大可用资源参量;baselv为预设的基准系数;n为网络资源参量的总数。

可选地,所述目标字段识别单元81包括:

任务类型识别单元,用于解析所述分布式计算任务,得到所述分布式计算任务的任务类型;

历史字段获取单元,用于从计算响应数据库中提取与所述任务类型匹配的历史响应结果,并识别各个所述历史响应结果包含的历史字段;

关联度计算单元,用于基于各个所述历史字段在所有所述历史响应结果中的出现次数以及出现时间,分别计算各个所述历史字段的关联度;

目标字段选取单元,用于选取所述关联度大于预设的关联阈值的所述历史字段作为所述目标字段。

可选地,所述目标字段识别单元81包括:

sql语句提取单元,用于提取所述分布式计算任务包含的结构化查询语言sql语句;

查询关键词获取单元,用于对所述sql语句进行语义分析,获取所述sql语句对应的查询关键词;

查询关键词筛选单元,用于在所述基准查询表中查询与各个所述查询关键词匹配的已有字段,并将与所述查询关键词匹配的所述已有字段识别为所述目标字段。

可选地,所述分布式计算任务的响应设备还包括:

字段查询表调整单元,用于若所述字段数据量大于或等于所述广播触发阈值,则将各个目标数据的数据编号添加到所述字段查询表;

哈希排序合并单元,用于将添加有所述数据编号的所述字段查询表发送给各个分布式节点,以便各个所述分布式节点基于所述数据编号,在本地的目标配置表的本地数据中查询与各个所述字段数据对应的关联数据,并重构所述目标配置表。

可选地,所述字段查询表生成单元81包括:

有效字段识别单元,用于若所述基准查询表中任一基准字段与所述分布式计算任务的所述目标字段匹配,则识别所述基准字段为有效字段;

目标数据选取单元,用于将所有所述有效字段关联的数据识别为目标数据,并根据所有所述目标数据以及有效字段,生成字段查询表。

因此,本发明实施例提供的分布式计算任务的响应设备同样可以通过在生成数据表时筛选出有效数据,即与本次计算相关的目标字段的目标数据,减少所需发送的数据表的数据量,在数据表的数据量较少的情况下,通过简易合并的broadcastjoin方式合并字段查询表以及目标配置表,大大减少数据梳理操作的次数,减少了分布式节点的数据读写压力,从而提高了分布式计算的响应速率。

图9是本发明另一实施例提供的一种终端设备的示意图。如图9所示,该实施例的终端设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92,例如分布式计算任务的响应程序。所述处理器90执行所述计算机程序92时实现上述各个分布式计算任务的响应方法实施例中的步骤,例如图1所示的s101至s105。或者,所述处理器90执行所述计算机程序92时实现上述各装置实施例中各单元的功能,例如图8所示模块81至85功能。

示例性的,所述计算机程序92可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成目标字段识别单元、字段查询表生成单元、字段数据量统计单元、广播合并触发单元以及分布式计算任务响应单元,各单元具体功能如上所述。

所述终端设备9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备9的示例,并不构成对终端设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器90可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器91可以是所述终端设备9的内部存储单元,例如终端设备9的硬盘或内存。所述存储器91也可以是所述终端设备9的外部存储设备,例如所述终端设备9上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器91还可以既包括所述终端设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。


技术特征:

1.一种分布式计算任务的响应方法,其特征在于,包括:

若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;

从基准查询表中提取所述目标字段的目标数据,生成字段查询表;

统计所述字段查询表的字段数据量;

若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;

基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

2.根据权利要求1所述的响应方法,其特征在于,在所述若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点之前,还包括:

获取当前时刻的网络资源参量,以及所述当前时刻所在的预设时间段关联的历史运行记录;

将所述网络资源参量导入预设的阈值因子转换模型,计算第一阈值因子;

基于各个所述历史运行记录的创建时间,配置所述历史运行记录的权重值;

根据各个所述历史运行记录的历史广播阈值以及所述权重值,计算第二阈值因子;

根据所述第一阈值因子以及所述第二阈值因子,计算所述广播触发阈值。

3.根据权利要求2所述的响应方法,其特征在于,所述将所述网络资源参量导入预设的阈值因子转换模型,计算第一阈值因子,包括:

获取所在网络的最大可用资源参量;

将所述最大可用资源参量以及所述网络资源参量导入预设的阈值因子转换模型,计算所述第一阈值因子;所述阈值因子转换模型具体为:

其中,firstbrdcst为所述第一阈值因子;currentresourcei为第i个所述网络资源参量;maxwebresourcei为第i个所述最大可用资源参量;baselv为预设的基准系数;n为网络资源参量的总数。

4.根据权利要求1所述的响应方法,其特征在于,所述若接收到分布式计算任务,则确定所述分布式计算任务的目标字段,包括:

解析所述分布式计算任务,得到所述分布式计算任务的任务类型;

从计算响应数据库中提取与所述任务类型匹配的历史响应结果,并识别各个所述历史响应结果包含的历史字段;

基于各个所述历史字段在所有所述历史响应结果中的出现次数以及出现时间,分别计算各个所述历史字段的关联度;

选取所述关联度大于预设的关联阈值的所述历史字段作为所述目标字段。

5.根据权利要求1所述的响应方法,其特征在于,所述若接收到分布式计算任务,则确定所述分布式计算任务的目标字段,包括:

提取所述分布式计算任务包含的结构化查询语言sql语句;

对所述sql语句进行语义分析,获取所述sql语句对应的查询关键词;

在所述基准查询表中查询与各个所述查询关键词匹配的已有字段,并将与所述查询关键词匹配的所述已有字段识别为所述目标字段。

6.根据权利要求1-5任一项所述的响应方法,其特征在于,在所述统计所述字段查询表的字段数据量之后,还包括:

若所述字段数据量大于或等于所述广播触发阈值,则将各个目标数据的数据编号添加到所述字段查询表;

将添加有所述数据编号的所述字段查询表发送给各个分布式节点,以便各个所述分布式节点基于所述数据编号,在本地的目标配置表的本地数据中查询与各个所述字段数据对应的关联数据,并重构所述目标配置表。

7.根据权利要求1-5任一项所述的响应方法,其特征在于,所述从基准查询表中提取所述目标字段的目标数据,生成字段查询表,包括:

若所述基准查询表中任一基准字段与所述分布式计算任务的所述目标字段匹配,则识别所述基准字段为有效字段;

将所有所述有效字段关联的数据识别为目标数据,并根据所有所述目标数据以及有效字段,生成字段查询表。

8.一种分布式计算任务的响应设备,其特征在于,包括:

目标字段识别单元,用于若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;

字段查询表生成单元,用于从基准查询表中提取所述目标字段的目标数据,生成字段查询表;

字段数据量统计单元,用于统计所述字段查询表的字段数据量;

广播合并触发单元,用于若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;

分布式计算任务响应单元,用于基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。

9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时如权利要求1至7任一项所述方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。

技术总结
本发明适用于数据处理技术领域,提供了一种分布式计算任务的响应方法及设备,包括:若接收到分布式计算任务,则确定所述分布式计算任务的目标字段;从基准查询表中提取所述目标字段的目标数据,生成字段查询表;统计所述字段查询表的字段数据量;若所述字段数据量小于预设的广播触发阈值,则广播发送所述字段查询表至各个分布式节点,以使所述分布式节点基于广播合并方式将所述字段查询表与本地的目标配置表合并;基于各个分布式节点合并后的所述目标配置表,执行所述分布式计算任务。本发明能够在生成数据表时筛选出有效数据,减少所需发送的数据表的数据量,减少数据梳理操作的次数,减少分布式节点的数据读写压力,提高分布式计算的响应速率。

技术研发人员:吴昌远
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2020.01.17
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-57992.html

最新回复(0)