CN113672651B - 一种任务执行方法、装置及电子设备 - Google Patents

一种任务执行方法、装置及电子设备 Download PDF

Info

Publication number
CN113672651B
CN113672651B CN202110977614.5A CN202110977614A CN113672651B CN 113672651 B CN113672651 B CN 113672651B CN 202110977614 A CN202110977614 A CN 202110977614A CN 113672651 B CN113672651 B CN 113672651B
Authority
CN
China
Prior art keywords
target
task
subtask
data source
sql
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110977614.5A
Other languages
English (en)
Other versions
CN113672651A (zh
Inventor
段雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202110977614.5A priority Critical patent/CN113672651B/zh
Publication of CN113672651A publication Critical patent/CN113672651A/zh
Application granted granted Critical
Publication of CN113672651B publication Critical patent/CN113672651B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供了一种任务执行方法、装置及电子设备,涉及任务调度技术领域。该方法包括:接收待执行的目标SQL任务;对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果。与现有技术相比,应用本发明实施例提供的方案,可以实现减低执行引擎的工作压力,提高SQL任务的执行效率。

Description

一种任务执行方法、装置及电子设备
技术领域
本发明涉及任务调度技术领域,特别是涉及一种任务执行方法、装置及电子设备。
背景技术
当前,随着计算机技术的快速发展,各类应用场景中产生的数据的数据量激增,从而,数据库技术也随之快速发展,SQL(Structured Query Language,结构化查询语言)应运而生。
其中,SQL是一种数据库查询和程序设计语言,用于实现存取数据,以及对数据库进行查询、更新和管理等功能。进而,随着SQL的不断发展,以各类数据库作为数据源的SQL任务,在各技术领域中发挥着越来越重要的作用。
相关技术中,SQL任务通常是由执行引擎执行的。其中,执行引擎在接收到SQL任务后,可以从该SQL任务所关联的各个数据源获取数据,并通过对所获取到的数据执行该SQL任务所指定的处理,得到该SQL任务的执行结果。
然而,在上述相关技术中,执行引擎需要完成大量的数据获取及数据处理工作,从而,导致执行引擎的工作压力较大,使得SQL任务的执行效率较低。
发明内容
本发明实施例的目的在于提供一种任务执行方法、装置及电子设备,以实现减低执行引擎的工作压力,提高SQL任务的执行效率。具体技术方案如下:
第一方面,本发明实施例提供了一种任务执行方法,所述方法包括:
接收待执行的目标SQL任务;
对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,所述对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务,包括:
对所述目标SQL任务进行SQL解析,得到初始解析结果,并确定所述目标SQL任务所包括的各个表头信息;
根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务;
其中,每个目标子任务对应于目标表头信息,每个目标子任务对应的目标表头信息所表征的数据表用于存储执行该目标子任务的所需数据,每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源。
可选的,一种具体实现方式中,在所述根据各个表头信息,对所述初始解析结果进行任务拆分的步骤之前,所述方法还包括:
确定每个表头信息所表征的数据表所属的数据源的连接元数据,作为该表头信息对应的连接元数据,并为所述初始解析结果中的各个表头信息添加所对应的连接元数据;
所述根据各个表头信息,对所述初始解析结果进行任务拆分的步骤,包括:
根据各个表头信息,对添加后的所述初始解析结果进行任务拆分;
所述将每个目标子任务下发至该子任务所关联的目标数据源的步骤,包括:
按照每个目标子任务所对应目标表头信息对应的连接元数据,将每个目标子任务下发至该目标子任务所关联的目标数据源。
可选的,一种具体实现方式中,所述根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务,包括:
按照各个表头信息,对所述初始解析结果进行任务拆分,得到每个表头信息所对应的初始子任务;
判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务;
若存在,则将所述多个初始子任务合并为一个目标子任务,并将除所述多个初始子任务之外的各个初始子任务,分别确定为各个目标子任务;
否则,将各个初始子任务,分别确定为各个目标子任务。
可选的,一种具体实现方式中,所述方法还包括:
确定所述目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
所述获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果,包括:
获取所述目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果,作为所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,在所述将每个目标子任务下发至该目标子任务所关联的目标数据源的步骤之前,所述方法还包括:
根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;其中,所述第一类子任务为;通过所关联的目标数据源执行的目标子任务;所述第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
针对每个第二类子任务,确定该子任务中包括的通过所关联的目标数据源执行的第一任务和通过所述目标执行引擎执行的第二任务;
所述将每个目标子任务下发至该目标子任务所关联的目标数据源,包括:
将每个第一类子任务下发至所关联的目标数据源;并将每个第一任务下发至该第一任务所属第二类子任务所关联的目标数据源;
所述获取所述目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果的步骤,包括:
获取所述目标执行引擎基于各个第一类子结果和各个第二类子结果执行各个指定子任务所得到的执行结果;
其中,各个第一类子结果为:各个目标数据源执行各个第一类子任务所得到的目标子结果,各个第二类子结果为:所述目标执行引擎基于第三类子结果执行各个第二任务所得到结果,所述第三类子结果为:各个目标数据源执行各个第一任务的目标子结果。
可选的,一种具体实现方式中,所述目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个;
所述获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果,包括:
获取所述目标子任务所关联的目标数据源反馈的目标子结果,作为所确定的所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,每个目标子任务所关联的目标数据源位于不同域中;所述将每个目标子任务下发至该目标子任务所关联的目标数据源的步骤,包括:
将每个目标子任务发送至指定电子设备,以使所述指定电子设备将该目标子任务下发至该目标子任务所关联的目标数据源;
其中,所述指定电子设备为:该目标子任务所关联的目标数据源所在域中的用于执行SQL任务的设备。
第二方面,本发明实施例提供了一种任务执行装置,所述装置包括:
任务接收模块,用于接收待执行的目标SQL任务;
任务解析模块,用于对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
任务下发模块,用于将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
结果获取模块,用于获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,所述任务解析模块包括:
任务解析子模块,用于对所述目标SQL任务进行SQL解析,得到初始解析结果,并确定所述目标SQL任务所包括的各个表头信息;
任务获取子模块,用于根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务;
其中,每个目标子任务对应于目标表头信息,每个目标子任务对应的目标表头信息所表征的数据表用于存储执行该目标子任务的所需数据,每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源。
可选的,一种具体实现方式中,所述装置还包括:
连接元数据添加子模块,用于在所述根据各个表头信息,对所述初始解析结果进行任务拆分之前,确定每个表头信息所表征的数据表所属的数据源的连接元数据,作为该表头信息对应的连接元数据,并为所述初始解析结果中的各个表头信息添加所对应的连接元数据;
所述任务获取子模块具体用于:根据各个表头信息,对添加后的所述初始解析结果进行任务拆分;
所述任务下发模块具体用于:按照每个目标子任务所对应目标表头信息对应的连接元数据,将每个目标子任务下发至该目标子任务所关联的目标数据源。
可选的,一种具体实现方式中,所述任务获取子模块包括:
子任务获取单元,用于按照各个表头信息,对所述初始解析结果进行任务拆分,得到每个表头信息所对应的初始子任务;
子任务判断单元,用于判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务;若存在,则触发子任务合并单元;否则,则触发子任务确定单元;
所述子任务合并单元,用于将所述多个初始子任务合并为一个目标子任务,并将除所述多个初始子任务之外的各个初始子任务,分别确定为各个目标子任务;
所述子任务确定单元,用于将各个初始子任务,分别确定为各个目标子任务。
可选的,一种具体实现方式中,所述装置还包括:
任务确定模块,用于确定所述目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
所述结果获取模块包括:
结果获取子模块,用于获取所述目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果,作为所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,所述装置还包括:
子任务分类模块,用于在所述将每个目标子任务下发至该目标子任务所关联的目标数据源之前,根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;其中,所述第一类子任务为;通过所关联的目标数据源执行的目标子任务;所述第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
子任务划分模块,用于针对每个第二类子任务,确定该子任务中包括的通过所关联的目标数据源执行的第一任务和通过所述目标执行引擎执行的第二任务;
所述任务下发模块具体用于:将每个第一类子任务下发至所关联的目标数据源;并将每个第一任务下发至该第一任务所属第二类子任务所关联的目标数据源;
所述结果获取子模块具体用于:获取所述目标执行引擎基于各个第一类子结果和各个第二类子结果执行各个指定子任务所得到的执行结果;
其中,各个第一类子结果为:各个目标数据源执行各个第一类子任务所得到的目标子结果,各个第二类子结果为:所述目标执行引擎基于第三类子结果执行各个第二任务所得到结果,所述第三类子结果为:各个目标数据源执行各个第一任务的目标子结果。
可选的,一种具体实现方式中,所述目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个;所述结果获取模块具体用于:
获取所述目标子任务所关联的目标数据源反馈的目标子结果,作为所确定的所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,每个目标子任务所关联的目标数据源位于不同域中;所述任务下发模块具体用于:
将每个目标子任务发送至指定电子设备,以使所述指定电子设备将该目标子任务下发至该目标子任务所关联的目标数据源;
其中,所述指定电子设备为:该目标子任务所关联的目标数据源所在域中的用于执行SQL任务的设备。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一任务执行方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一任务执行方法的步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一任务执行方法的步骤。
本发明实施例有益效果:
以上可见,应用本发明实施例提供的方案,进行任务处理时,首先可以接收待执行的目标SQL任务,并对该任务进行任务解析,从而得到该待执行的目标SQL任务包括的各个目标子任务;进个一步的,将每目标子任务下发至该目标子任务所关联的目标数据源,进而,基于上述目标数据源对目标子任务进行执行所得到的目标子结果,可以确定待执行的目标SQL任务的目标执行结果。
基于此,应用本发明实施例提供的方案,在处理SQL任务时,便可以对该SQL任务进行拆分,由拆分得到的各个子任务所关联的数据源执行分别执行各个子任务,从而,可以由各个数据源完成各个数据获取及数据处理工作,而不是由执行引擎执行SQL任务的全部工作。从而,降低执行引擎的工作压力,进而,提高SQL任务的执行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种任务执行方法的流程示意图;
图2为本发明实施例提供的另一种任务执行方法的流程示意图;
图3为本发明实施例提供的另一种任务执行方法的流程示意图;
图4为本发明实施例S1022的另一种任务执行方法的流程示意图;
图5为本发明实施例提供的另一种任务执行方法的流程示意图;
图6为本发明实施例提供的另一种任务执行方法的流程示意图;
图7为本发明实施例提供的一种任务执行装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,SQL任务通常是由执行引擎执行的。其中,执行引擎在接收到SQL任务后,可以从该SQL任务所关联的各个数据源获取数据,并通过对所获取到的数据执行该SQL任务所指定的处理,得到该SQL任务的执行结果。在上述相关技术中,执行引擎需要完成大量的数据获取及数据处理工作,从而,导致执行引擎的工作压力较大,使得SQL任务的执行效率较低。
为了解决上述技术问题,本发明实施例提供了一种任务执行方法。
其中,该任务执行方法可以适用于各类需要进行SQL任务执行的场景,如企业数据管理、城市交通数据管理等,当然,并不局限于此。并且,该执行方法可以应用于台式电脑、笔记本电脑等各类电子设备,并且,该任务执行方法的执行主体可以是单独的电子设备,也可以是电子设备集群,以下简称电子设备。此外,该任务执行方法的执行主体可以是不属于任何系统的独立电子设备,也可以是属于各类存在SQL任务执行需求的系统的电子设备。
方法本发明实施例提供的一种方法任务执行方法,可以包括如下步骤:
接收待执行的目标SQL任务;
对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果。
以上可见,应用本发明实施例提供的方案,进行任务处理时,首先可以接收待执行的目标SQL任务,并对该任务进行任务解析,从而得到该待执行的目标SQL任务包括的各个目标子任务;进个一步的,将每目标子任务下发至该目标子任务所关联的目标数据源,进而,基于上述目标数据源对目标子任务进行执行所得到的目标子结果,可以确定待执行的目标SQL任务的目标执行结果。
基于此,应用本发明实施例提供的方案,在处理SQL任务时,便可以对该SQL任务进行拆分,由拆分得到的各个子任务所关联的数据源执行分别执行各个子任务,从而,可以由各个数据源完成各个数据获取及数据处理工作,而不是由执行引擎执行SQL任务的全部工作。从而,降低执行引擎的工作压力,进而,提高SQL任务的执行效率。
下面,结合附图,对本发明实施例提供的一种任务执行方法进行说明。
图1为本发明实施例提供的一种任务执行方法的流程示意图,如图1所示,该方法可以包括如下步骤:
S101:接收待执行的目标SQL任务;
用户可以向电子设备发送待执行的SQL任务,从而,使得电子设备获取到待执行的目标SQL任务,并且,该待执行的目标SQL任务指示了电子设备所需执行的任务内容。
其中,上述目标SQL任务可以包括一个任务内容,如:单表的SQL查询等;上述目标SQL任务可以包括多个任务内容,如:多表联合的SQL查询等。
S102:对目标SQL任务进行任务解析,得到目标SQL任务包括的各个目标子任务;
其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
在得到待执行的目标SQL任务后,电子设备可以进一步对目标SQL任务进行任务解析,将获取到的目标SQL任务分解为至少一个子任务,所分解得到的至少一个子任务可以表征目标SQL任务的全部任务内容。
其中,上述多个子任务中可以包括一个或多个目标子任务,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源。也就是说,每个目标子任务所关联的目标数据源是与该目标子任务相关,且包含有执行该目标子任务的全部任务内容所需的数据的数据源,从而,可以从该目标数据源中获取执行该目标子任务的全部任务内容所需的数据。
例如,分解得到目标子任务A的任务内容为:从数据源a中查询符合指定要求的数据,则数据源a即为目标子任务A所关联的目标数据源。
其中,可选的,上述各个目标数据源可以为各类数据库以及数据库系统,对此,本发明实施例不做具体限定。
S103:将每个目标子任务下发至该目标子任务所关联的目标数据源,以使目标数据源执行所接收到的目标子任务,得到目标子结果;
在得到目标SQL任务包括的各个目标子任务后,为了对上述每个目标子任务进行处理,可以将每个目标子任务下发至该目标子任务所关联的目标数据源。该目标数据源即前述S102步骤中与该目标子任务相关,且包含有执行该目标子任务的全部任务内容所需的数据的数据源。在将每个目标子任务下发至该目标子任务所关联的目标数据源后,目标数据源便可以执行所接收到的目标子任务,并得到目标子结果。
例如:电子设备接收到目标SQL任务B,并通过任务解析,确定目标SQL任务B包括的目标子任务b1、b2和b3,并且,目标子任务b1、b2和b3分别关联有目标数据源c1、c2和c3。进而,将目标子任务b1下发至目标数据源c1,以使目标数据源c1执行目标子任务b1,得到目标子结果d1;将目标子任务b2下发至目标数据源c2,以使目标数据源c2执行目标子任务b2,得到目标子结果d2;将目标子任务b3下发至目标数据源c3,以使目标数据源c3执行目标子任务b3,得到目标子结果d3。
可选的,在将每个目标子任务下发至该目标子任务所关联的目标数据源时,可以通过该目标数据源的连接元数据实现。例如,JDBC(Java Database Connectivity,Java数据库连接)数据源的连接元数据包括驱动、连接串、用户名和密码;具有Rest Interface(的数据源的连接元数据包括Rest Url(Uniform Resource Locator,统一资源定位符)。其中,Rset为Representational State Transfer的缩写,其中文含义为:表述性状态传递,其可以表征一种软件的架构风格,则Rest Interface即为Rset接口,即Rset所表征的软件的架构风格的接口
S104:获取基于各个目标子结果所确定的目标SQL任务的目标执行结果。
在将每个目标子任务下发至该目标子任务所关联的目标数据源,以使目标数据源执行所接收到的目标子任务,得到目标子结果后,便可以获取基于各个目标子结果所确定的目标SQL任务的目标执行结果。
也就是说,在每个目标数据源执行完所关联的目标子任务,得到目标子结果后,对于电子设备而言,其可以直接获取到目标SQL任务的目标执行结果,而该目标执行结果是基于各个目标数据源所得到的目标子结果确定的。
例如,电子设备接收到目标SQL任务B,并通过任务解析,确定目标SQL任务B包括的目标子任务b1、b2和b3,并且,目标子任务b1、b2和b3分别关联有目标数据源c1、c2和c3。进而,在目标数据源c1、c2和c3分别执行目标子任务b1、b2和b3,得到目标子结果d1、d2和d3后,电子设备可以获取基于目标子结果d1、d2和d3确定的目标执行结果,即得到目标SQL任务B的目标执行结果。
可选的,一种具体实现方式中,目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个;
在本具体实现方式中,目标SQL任务可以仅包括一个任务内容,并且,该任务内容可以直接通过所关联的数据源执行,从而,上述所确定的目标SQL任务所包括的目标子任务即为:通过所关联的目标数据源执行的目标子任务,且该目标子任务的数量为一个。例如,目标SQL任务为单表的SQL查询。
相应的,在本具体实现方式中,上述步骤S104,便可以包括以下步骤11:
步骤11:获取目标子任务所关联的目标数据源反馈的目标子结果,作为所确定的目标SQL任务的目标执行结果。
在本具体实现方式中,当目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个时,则在该目标子任务被所关联的目标数据源执行完,得到目标子结果后,该目标SQL任务即被执行完毕。从而,上述所得到的目标子结果即可以直接作为目标SQL任务的目标执行结果。
这样,电子设备可以直接获取目标子任务所关联的目标数据源反馈的目标子结果,从而,将该目标子结果确定为目标SQL任务的目标执行结果。
基于此,应用本发明实施例提供的方案,在处理SQL任务时,便可以对该SQL任务进行拆分,由拆分得到的各个子任务所关联的数据源执行分别执行各个子任务,从而,可以由各个数据源完成各个数据获取及数据处理工作,而不是由执行引擎执行SQL任务的全部工作。从而,降低执行引擎的工作压力,进而,提高SQL任务的执行效率。
可选的,一种具体实现方式中,当本发明实施例提供的一种任务执行方法跨域执行时,上述各个目标子任务所关联的目标数据源便可以位于不同的域中,即执行各个目标子任务的所需数据被存在不同的数据中心,从而,可以在不同的域中设置用于执行SQL任务的设备。例如,可以在不同的域中设置用于执行本发明实施例提供的一种任务执行方法的指定电子设备。
相应的,在本具体实现方式中,上述步骤S103,将每个目标子任务下发至该目标子任务所关联的目标数据源,便可以包括如下步骤22:
步骤22:将每个目标子任务发送至指定电子设备,以使指定电子设备将该目标子任务下发至该目标子任务所关联的目标数据源;
其中,指定电子设备为:该目标子任务所关联的目标数据源所在域中的用于执行SQL任务的设备。
在本具体实现方式中,电子设备可以将每个目标子任务下发至该目标子任务所关联的目标数据源所在域中的指定电子设备,从而,该指定电子设备便可以所接收到的目标子任务下发至该目标子任务所关联的目标数据源。进而,该指定电子设备便可以得到该目标数据源执行该目标子任务所得到的目标子结果,并将该目标子结果反馈至上述电子设备。
这样,该电子设备仍然可以获取到基于各个目标子结果所确定的目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,如图2所示,上述步骤S102:对目标SQL任务进行任务解析,得到目标SQL任务包括的各个目标子任务,可以包括如下步骤S1021-S1022:
S1021:对目标SQL任务进行SQL解析,得到初始解析结果,并确定目标SQL任务所包括的各个表头信息;
在本具体实现方式中,电子设备接收到目标SQL任务后,可以对该目标SQL任务进行SQL解析,得到初始解析结果。其中,所谓对目标SQL任务进行SQL解析是指:对目标SQL任务进行格式转换,从而,将目标SQL任务的任务内容的结构转变为指定格式所对应的结构。此时,由于未将目标SQL任务进行分解,因此,可以将对目标SQL任务进行SQL解析所得到的初始解析结果称为目标SQL任务的未解析的逻辑计划。
此外,目标SQL任务的任务内容中还可以各个表头信息,其中,每个表头信息所表征的数据表中存储有用于执行该目标SQL任务的数据。即在执行目标SQL任务时,可以从各个表头信息所表征的数据表中,获取执行目标SQL任务所需的各个数据。这样,在接收到目标SQL任务后,可以从目标SQL任务的任务内容确定各个表头信息。
S1022:根据各个表头信息,对初始解析结果进行任务拆分,得到目标SQL任务包括的各个目标子任务;
其中,每个目标子任务对应于目标表头信息,每个目标子任务对应的目标表头信息所表征的数据表用于存储执行该目标子任务的所需数据,每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源。
每个表头信息可以表征一个数据表,而该数据表属于一个数据源,而目标SQL任务所包括的各个目标子任务关联有目标数据源,因此,可以基于各个表头信息,对上述初始解析结果进行任务拆分,得到目标SQL任务包括的各个目标子任务。
其中,针对所拆分得到的每个目标子任务,该目标子任务可以对应于上述各个表头信息中的目标表头信息,而该目标表头信息所表征的数据表中存储有用于执行该目标子任务的数据,则该数据表所属的数据源即存储有用于执行该目标子任务的数据,从而,该数据表所属的数据源即为该目标子任务所关联的目标数据源。
可选的,一种具体实现方式中,如图3所示,在上述步骤S1022,根据各个表头信息,对初始解析结果进行任务拆分,得到目标SQL任务包括的各个目标子任务之前,本发明实施例提供的一种任务执行方法,还可以包括如下步骤S1023:
步骤S1023:确定每个表头信息所表征的数据表所属的数据源的连接元数据,作为该表头信息对应的连接元数据,并为初始解析结果中的各个表头信息添加所对应的连接元数据。
在确定上述各个表头信息后,便可以进一步确定每个表头信息所表征的数据表所属的数据源的连接元数据,从而,得到每个表头信息对应的连接元数据。
其中,每个数据源的连接元数据为:用于与该数据源建立通信连接,进行信息交互的元数据。例如,JDBC数据源的连接元数据包括驱动、连接串、用户名和密码;具有RestInterface的数据源的连接元数据包括Rest Url。
进而,由于在对目标SQL任务进行SQL解析时,仅仅是改变了目标SQL任务的任务内容的结构,而没有改变目标SQL任务的任务内容,从而,上述初始解析结果中包括上述各个表头信息,从而,可以为初始解析结果中的各个表头信息添加所对应的连接元数据。也就是说,可以在上述初始解析结果中的各个表头信息上挂载该表头信息对应的连接元数据。
其中,可选的,可以预先建立关于表头信息与连接元数据的对应关系,从而,针对目标SQL任务中所包括的每个表头信息,可以直接通过上述对应关系确定该表头信息对应的连接元数据,而所确定的连接元数据即为该表头信息所表征的数据表所属的数据源的连接元数据。
可选的,可以建立关于表头信息、数据源和连接元数据的对应关系,从而,针对目标SQL任务中所包括的每个表头信息,可以根据上述对应关系,确定该表头信息所表征的数据表对应的数据源,进而,确定该数据源对应的连接元数据,从而,得到该表头信息所表征的数据表所属的数据源的连接元数据,即得到该表头信息对应的连接元数据。
相应的,在本具体实现方式中,上述步骤S1022可以包括如下步骤S301:
S301:根据各个表头信息,对添加后的初始解析结果进行任务拆分,得到目标SQL任务包括的各个目标子任务。
相应的,在本具体实现方式中,上述步骤S103,将每个目标子任务下发至该目标子任务所关联的目标数据源,以使目标数据源执行所接收到的目标子任务,得到目标子结果,可以包括如下步骤S1031:
S1031:按照每个目标子任务所对应目标表头信息对应的连接元数据,将每个目标子任务下发至该目标子任务所关联的目标数据源。
其中,由于每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源,并且,每个表头信息对应的连接元数据为该表头信息所表征的数据表所属的数据源的连接元数据,则针对每个目标子任务,该目标子任务所对应目标表头信息对应的连接元数据,即为目标子任务所关联的目标数据源的连接元数据。
这样,由于每个数据源的连接元数据为:用于与该数据源建立通信连接,进行信息交互的元数据,因此,针对每个目标子任务,可以按照该目标子任务所对应目标表头信息对应的连接元数据,将该目标子任务下发至该目标子任务所关联的目标数据源。
可选的,一种具体实现方式中,如图4所示,步骤S1022:根据各个表头信息,对初始解析结果进行任务拆分,得到目标SQL任务包括的各个目标子任务,可以包括如下步骤S401-S404:
S401:按照各个表头信息,对初始解析结果进行任务拆分,得到每个表头信息所对应的初始子任务;
在本具体实现方式中,目标SQL任务所包括的每个表头信息表征一个数据表,而该数据表存储有执行至少一个目标子任务所需的数据,因此,可以根据各个表头信息,对初始解析结果进行任务拆分,得到与上述各个表头信息所对应的初始子任务。
其中,由于执行每个初始子任务所需的数据可以存储在至少一个数据表中,因此,每个初始子任务可以对应于至少一个表头信息,进而,由于执行不同的初始子任务所需的数据可以存储在相同或者不同的数据表中,因此,不同的初始子任务所对应的表头信息可以相同或者不同。
S402:判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务;若存在,执行步骤S403;否则,执行步骤S404;
由于不同的表头信息所表征的数据表可以属于相同的数据源,也可以属于不同的数据源,并且,不同的初始子任务所对应的表头信息可以相同或者不同,因此,执行不同的初始子任务所需数据可以存在相同或者不同的数据源中。
这样,在得到上述各个表头信息所对应的初始子任务后,可以根据每个初始子任务所对应的表头信息,判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务。即是否存在对应于同一数据源的多个初始子任务,其中,该多个初始子任务所对应的表头信息所表征数据表属于该同一数据源,也就是说,该同一数据源中存储有执行该多个初始子任务的所需数据。
例如,若存在多个表头信息所表征数据表属于同一数据源,则与该多个表头信息对应的初始子任务即对应于该同一数据源。
可选的,可以通过判断每个初始子任务是否包含Join(联合)关系表达式,判断多个初始子任务所对应的表头信息所表征数据表是否属于该同一数据源。
步骤S403:将多个初始子任务合并为一个目标子任务,并将除多个初始子任务之外的各个初始子任务,分别确定为各个目标子任务;
步骤S404:将各个初始子任务,分别确定为各个目标子任务。
在上述S402的判断结果为存在时,即存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务时,则由于需要将该多个初始子任务下发至同一数据源,因此,可以直接将该多个初始子任务合并为一个目标子任务。进而,对于除该多个初始子任务之外的各个初始子任务而言,由于该各个初始子任务所对应的表头信息所表征数据表属于不同的数据源,且该数据源与该多个初始子任务对应的同一数据源也不同,则可以直接除该多个初始子任务之外的每个初始子任务,分别确定为各个目标子任务。
例如,对上述初始解析结果进行拆分得到初始子任务1、2、3、4、5和6,其中,初始子任务1和3所对应表头信息所表征数据表属于同一数据源m,初始子任务2和4所对应表头信息所表征数据表属于同一数据源n,初始子任务5所对应表头信息所表征数据表属于数据源p,初始子任务6所对应表头信息所表征数据表属于数据源q,则可以将初始子任务1和3合并为同一目标子任务,将初始子任务2和4合并为同一目标子任务,将初始子任务5确定为目标子任务,并将初始子任务6确定为目标子任务。至此,得到4个目标子任务。
相应的,在上述S402的判断结果为不存在时,则对上述初始解析结果进行拆分所得到的各个初始子任务中,不同的初始子任务所对应表头信息所表征数据表属于不同的数据源,即不存在所对应表头信息所表征数据表属于同一数据源的初始子任务,也就是说,用于执行不同初始子任务的数据存储在不同的数据源中,从而,可以直接将各个初始子任务分别确定为各个目标子任务。
例如,对上述初始解析结果进行拆分得到初始子任务1、2、3和4,其中,初始子任务1所对应表头信息所表征数据表属于同一数据源m,初始子任务2所对应表头信息所表征数据表属于同一数据源n,初始子任务3所对应表头信息所表征数据表属于数据源p,初始子任务4所对应表头信息所表征数据表属于数据源q,则可以初始子任务1、2、3和4分别确定为目标子任务。至此,得到4个目标子任务。
可选的,一种具体实现方式中,如图5所示,所述方法还包括步骤S105:
S105:确定目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
在本具体实现方式中,目标SQL任务可以包括多个任务内容,并且,该多个任务内容包括直接通过所关联的数据源执行的任务内容,以及,通过执行引擎基于各个数据源执行所关联任务内容后的执行结果进行执行的数据内容。
例如,目标SQL任务包括;从第一数据源中获取第一类数据,从第二数据源中获取第二类数据,以及对第一类数据和第二类数据进行指定计算。则任务内容:从第一数据源中获取第一类数据,可以直接通过第一数据源执行,任务内容:从第二数据源中获取第二类数据,可以直接通过第二数据源执行,而任务内容:对第一类数据和第二类数据进行指定计算,便需要通过执行引擎完成。
基于此,在对目标SQL任务进行解析时,在确定目标SQL任务所包括的各个关联有目标数据源的目标子任务之外,还可以确定目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务。
这样,在对目标SQL任务进行执行时,当不同的目标数据源对所关联的目标子任务进行执行,得到各个目标子结果后,目标执行引擎进一步基于上述各个目标子结果执行上述各个指定子任务,得到目标SQL任务的目标执行结果。
相应的,在本具体实现方式中,上述步骤S104:获取基于各个目标子结果所确定的目标SQL任务的目标执行结果,可以包括步骤S1042:
S1042:获取目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果,作为目标SQL任务的目标执行结果。
在本具体实现方式中,每个目标数据源在执行完所关联的目标子任务,得到目标子结果后,可以将该目标子结果,发送给目标执行引擎,从而,该目标执行引擎可以基于所接收到的各个目标子结果执行上述各个指定子任务,得到执行结果,并将该所得到的执行结果反馈给电子设备,从而,电子设备可以获取该执行结果,并将该执行结果作为目标SQL任务的目标执行结果。
也就是说,电子设备最终所得到的目标SQL任务的目标执行结果为:目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果。
可选的,上述目标执行引擎可以设置在电子设备中,也可以设置在能够与电子设备进行通信连接的其他电子设备中。
可选的,一种具体实现方式中,在图5所示具体实现方式的基础上,如图6所示,在上述步骤S103,将每个目标子任务下发至该目标子任务所关联的目标数据源,以使目标数据源执行所接收到的目标子任务,得到目标子结果之前,本发明实施例提供的一种任务执行方法,还可以包括如下步骤S106-S107:
S106:根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;
其中,第一类子任务为;通过所关联的目标数据源执行的目标子任务;第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
在本具体实现方式中,每个目标子任务可以包含有不同的任务内容,从而,所得到的各个目标子任务中,可以存在通过所关联的目标数据源执行的目标子任务,以及通过所关联的目标数据源和目标执行引擎执行的目标子任务。
例如,当某个目标子任务是由两个初始子任务合并得到的,那么,可以通过判断该目标子任务所关联的目标数据源是否支持特定数据量Join的查询,确定是否可以通过该目标数据源执行该目标子任务,而无需目标执行引擎的介入。
这样,可以根据每个目标子任务的任务内容,将上述目标子任务分为第一类子任务和第二类子任务。其中,第一类子任务是指可以仅由所关联的目标数据源执行的目标子任务,该类子任务可以不通过目标执行引擎执行;第二类子任务则是指可以通过所关联的目标数据源和目标执行引擎执行的目标子任务,对于第二类子任务,可以先由所关联的目标数据源执行部分任务内容,再由执行引擎基于上述部分任务内容的执行结果执行剩余任务内容,得到该子任务的执行结果。
S107:针对每个第二类子任务,确定该子任务中包括的通过所关联的目标数据源执行的第一任务和通过目标执行引擎执行的第二任务;
由于第二类子任务可以先由所关联的目标数据源执行部分任务内容,再由执行引擎基于上述部分任务内容的执行结果执行剩余任务内容,因此,针对每个第二类子任务,可以确定该子任务包括的第一任务和第二任务。
其中,第一任务为第二类子任务中通过所关联的目标数据源执行的任务内容,第二任务为第二类子任务通过目标执行引擎执行的任务内容。
相应的,在本具体实现方式中,上述步骤S103:将每个目标子任务下发至该目标子任务所关联的目标数据源,可以包括步骤S1032:
S1032:将每个第一类子任务下发至所关联的目标数据源;并将每个第一任务下发至该第一任务所属第二类子任务所关联的目标数据源。
针对每个第一类子任务,该子任务可以仅由所关联的目标数据源执行,因此,可以将每个第一类子任务下发至该第一类子任务所关联的目标数据源。
针对每个第二类子任务,该第二类子任务中的第一任务可以通过该第二类子任务所关联的目标数据源执行,因此,针对每个第一任务,可以确定该第一任务所属的第二类子任务,进而,确定该第二类子任务所关联的目标数据源,这样,便可以将该第一任务下发至所确定的目标数据源,该目标数据源为:该第一任务所属第二类子任务所关联的数据源。
可选的,当每个目标子任务所关联的目标数据源位于不同域中时,上述步骤S106-S107,以及S1032,是由接收到每个目标子任务的指定电子设备执行的。
相应的,在本具体实现方式中,上述步骤S1042,获取目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果,作为目标SQL任务的目标执行结果,可以包括如下步骤S601:
S601:获取目标执行引擎基于各个第一类子结果和各个第二类子结果执行各个指定子任务所得到的执行结果;
其中,各个第一类子结果为:各个目标数据源执行各个第一类子任务所得到的目标子结果,各个第二类子结果为:目标执行引擎基于第三类子结果执行各个第二任务所得到结果,第三类子结果为:各个目标数据源执行各个第一任务的目标子结果。
在本具体实现方式中,可以将每个第一类子任务下发至所关联的目标数据源;并将每个第二类子任务中的第一任务下发至该第二类子任务所关联的目标数据源。从而,每个目标数据源在执行所接收到的第一类子任务或第二类子任务中的第一任务,得到目标子结果后,可以将目标子结果反馈至目标执行引擎。
为了便于描述,可以将各个目标数据源执行各个第一类子任务所得到的目标子结果,称为第一类子结果;将各个目标数据源执行各个第二类子任务中的第一任务所得到的目标子结果,称为第三类子结果。
其中,针对每个第一任务,可以将该第一任务作为目标数据源执行该第一任务所得到的第三类子结果对应的第一任务。
也就是说,目标执行引擎便可以得到各个第一类子结果和各个第三类子结果。这样,针对每个第三类子结果,目标执行引擎可以确定该第三类子结果对应的第一任务,进而,确定该第一任务所属的第二类子任务,并可以进一步确定该第二类子任务中的第二任务。之后,目标执行引擎便可以基于该第三类子结果执行上述所确定的第二任务,得到第二类子结果。
在得到各个第二类子结果后,目标执行引擎便可以基于各个第一类子结果和各个第二类子结果执行各个指定子任务,从而,得到目标SQL任务的目标执行结果,并将该所得到的执行结果反馈给电子设备,从而,电子设备可以获取该执行结果,并将该执行结果作为目标SQL任务的目标执行结果。
也就是说,电子设备最终所得到的目标SQL任务的目标执行结果为:目标执行引擎基于各个第一类子结果和各个第二类子结果执行各个指定子任务所得到的执行结果。
可选的,当每个目标子任务所关联的目标数据源位于不同域中时,上述各个第二类子结果是由接收到每个目标子任务的指定电子设备所关联的指定执行引擎确定的。
相应于上述本发明实施例提供的一种任务执行方法,本发明实施例还提供了一种任务执行装置。
图7为本发明实施例提供的一种任务执行装置的结构示意图,如图7所示,该装置包括:
任务接收模块701,用于接收待执行的目标SQL任务;
任务解析模块702,用于对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
任务下发模块703,用于将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
结果获取模块704,用于获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果。
以上可见,应用本发明实施例提供的方案,进行任务处理时,首先可以接收待执行的目标SQL任务,并对该任务进行任务解析,从而得到该待执行的目标SQL任务包括的各个目标子任务;进个一步的,将每目标子任务下发至该目标子任务所关联的目标数据源,进而,基于上述目标数据源对目标子任务进行执行所得到的目标子结果,可以确定待执行的目标SQL任务的目标执行结果。
基于此,应用本发明实施例提供的方案,在处理SQL任务时,便可以对该SQL任务进行拆分,由拆分得到的各个子任务所关联的数据源执行分别执行各个子任务,从而,可以由各个数据源完成各个数据获取及数据处理工作,而不是由执行引擎执行SQL任务的全部工作。从而,降低执行引擎的工作压力,进而,提高SQL任务的执行效率。
可选的,一种具体实现方式中,所述任务解析模块702包括:
任务解析子模块,用于对所述目标SQL任务进行SQL解析,得到初始解析结果,并确定所述目标SQL任务所包括的各个表头信息;
任务获取子模块,用于根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务;
其中,每个目标子任务对应于目标表头信息,每个目标子任务对应的目标表头信息所表征的数据表用于存储执行该目标子任务的所需数据,每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源。
可选的,一种具体实现方式中,所述装置还包括:
连接元数据添加子模块,用于在所述根据各个表头信息,对所述初始解析结果进行任务拆分之前,确定每个表头信息所表征的数据表所属的数据源的连接元数据,作为该表头信息对应的连接元数据,并为所述初始解析结果中的各个表头信息添加所对应的连接元数据;
所述任务获取子模块具体用于:根据各个表头信息,对添加后的所述初始解析结果进行任务拆分;
所述任务下发模块具体用于:按照每个目标子任务所对应目标表头信息对应的连接元数据,将每个目标子任务下发至该目标子任务所关联的目标数据源。
可选的,一种具体实现方式中,所述任务获取子模块包括:
子任务获取单元,用于按照各个表头信息,对所述初始解析结果进行任务拆分,得到每个表头信息所对应的初始子任务;
子任务判断单元,用于判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务;若存在,则触发子任务合并单元;否则,则触发子任务确定单元;
所述子任务合并单元,用于将所述多个初始子任务合并为一个目标子任务,并将除所述多个初始子任务之外的各个初始子任务,分别确定为各个目标子任务;
所述子任务确定单元,用于将各个初始子任务,分别确定为各个目标子任务。
可选的,一种具体实现方式中,所述装置还包括:
任务确定模块,用于确定所述目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
所述结果获取模块704包括:
结果获取子模块,用于获取所述目标执行引擎基于各个目标子结果执行各个指定子任务所得到的执行结果,作为所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,所述装置还包括:
子任务分类模块,用于在所述将每个目标子任务下发至该目标子任务所关联的目标数据源之前,根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;其中,所述第一类子任务为;通过所关联的目标数据源执行的目标子任务;所述第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
子任务划分模块,用于针对每个第二类子任务,确定该子任务中包括的通过所关联的目标数据源执行的第一任务和通过所述目标执行引擎执行的第二任务;
所述任务下发模块703具体用于:将每个第一类子任务下发至所关联的目标数据源;并将每个第一任务下发至该第一任务所属第二类子任务所关联的目标数据源;
所述结果获取子模块具体用于:获取所述目标执行引擎基于各个第一类子结果和各个第二类子结果执行各个指定子任务所得到的执行结果;
其中,各个第一类子结果为:各个目标数据源执行各个第一类子任务所得到的目标子结果,各个第二类子结果为:所述目标执行引擎基于第三类子结果执行各个第二任务所得到结果,所述第三类子结果为:各个目标数据源执行各个第一任务的目标子结果。
可选的,一种具体实现方式中,所述目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个;所述结果获取模块704具体用于:
获取所述目标子任务所关联的目标数据源反馈的目标子结果,作为所确定的所述目标SQL任务的目标执行结果。
可选的,一种具体实现方式中,每个目标子任务所关联的目标数据源位于不同域中;所述任务下发模块703具体用于:
将每个目标子任务发送至指定电子设备,以使所述指定电子设备将该目标子任务下发至该目标子任务所关联的目标数据源;
其中,所述指定电子设备为:该目标子任务所关联的目标数据源所在域中的用于执行SQL任务的设备。
相应于上述本发明实施例提供的一种任务执行方法,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述本发明实施例提供的任一指令执行方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一任务执行方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一任务执行方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种任务执行方法,其特征在于,所述方法包括:
接收待执行的目标SQL任务;
对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;其中,所述第一类子任务为;通过所关联的目标数据源执行的目标子任务;所述第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
确定所述目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果,包括:获取所述目标执行引擎基于各个目标子结果包括的各个第一类子结果和各个第二类子结果,执行各个指定子任务所得到的执行结果,作为所述目标SQL任务的目标执行结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务,包括:
对所述目标SQL任务进行SQL解析,得到初始解析结果,并确定所述目标SQL任务所包括的各个表头信息;
根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务;
其中,每个目标子任务对应于目标表头信息,每个目标子任务对应的目标表头信息所表征的数据表用于存储执行该目标子任务的所需数据,每个目标子任务所关联的目标数据源为:该目标子任务对应的目标表头信息所表征的数据表所属的数据源。
3.根据权利要求2所述的方法,其特征在于,在所述根据各个表头信息,对所述初始解析结果进行任务拆分的步骤之前,所述方法还包括:
确定每个表头信息所表征的数据表所属的数据源的连接元数据,作为该表头信息对应的连接元数据,并为所述初始解析结果中的各个表头信息添加所对应的连接元数据;
所述根据各个表头信息,对所述初始解析结果进行任务拆分的步骤,包括:
根据各个表头信息,对添加后的所述初始解析结果进行任务拆分;
所述将每个目标子任务下发至该子任务所关联的目标数据源的步骤,包括:
按照每个目标子任务所对应目标表头信息对应的连接元数据,将每个目标子任务下发至该目标子任务所关联的目标数据源。
4.根据权利要求2所述的方法,其特征在于,所述根据各个表头信息,对所述初始解析结果进行任务拆分,得到所述目标SQL任务包括的各个目标子任务,包括:
按照各个表头信息,对所述初始解析结果进行任务拆分,得到每个表头信息所对应的初始子任务;
判断是否存在所对应表头信息所表征数据表属于同一数据源的多个初始子任务;
若存在,则将所述多个初始子任务合并为一个目标子任务,并将除所述多个初始子任务之外的各个初始子任务,分别确定为各个目标子任务;
否则,将各个初始子任务,分别确定为各个目标子任务。
5.根据权利要求1所述的方法,其特征在于,在所述将每个目标子任务下发至该目标子任务所关联的目标数据源的步骤之前,所述方法还包括:
针对每个第二类子任务,确定该子任务中包括的通过所关联的目标数据源执行的第一任务和通过所述目标执行引擎执行的第二任务;
所述将每个目标子任务下发至该目标子任务所关联的目标数据源,包括:
将每个第一类子任务下发至所关联的目标数据源;并将每个第一任务下发至该第一任务所属第二类子任务所关联的目标数据源;
所述各个第一类子结果为:各个目标数据源执行各个第一类子任务所得到的目标子结果,所述各个第二类子结果为:所述目标执行引擎基于第三类子结果执行各个第二任务所得到结果,所述第三类子结果为:各个目标数据源执行各个第一任务的目标子结果。
6.根据权利要求1所述的方法,其特征在于,所述目标子任务为通过所关联的目标数据源执行的目标子任务,且数量为一个;
所述获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果,包括:
获取所述目标子任务所关联的目标数据源反馈的目标子结果,作为所确定的所述目标SQL任务的目标执行结果。
7.根据权利要求1所述的方法,其特征在于,每个目标子任务所关联的目标数据源位于不同域中;所述将每个目标子任务下发至该目标子任务所关联的目标数据源的步骤,包括:
将每个目标子任务发送至指定电子设备,以使所述指定电子设备将该目标子任务下发至该目标子任务所关联的目标数据源;
其中,所述指定电子设备为:该目标子任务所关联的目标数据源所在域中的用于执行SQL任务的设备。
8.一种任务执行装置,其特征在于,所述装置包括:
任务接收模块,用于接收待执行的目标SQL任务;
任务解析模块,用于对所述目标SQL任务进行任务解析,得到所述目标SQL任务包括的各个目标子任务;其中,每个目标子任务关联有用于存储执行该目标子任务所需数据的目标数据源;
子任务分类模块,用于根据每个目标子任务的任务内容,确定第一类子任务和第二类子任务;其中,所述第一类子任务为;通过所关联的目标数据源执行的目标子任务;所述第二类子任务为:通过所关联的目标数据源和目标执行引擎执行的目标子任务;
任务下发模块,用于将每个目标子任务下发至该目标子任务所关联的目标数据源,以使所述目标数据源执行所接收到的目标子任务,得到目标子结果;
任务确定模块,用于确定所述目标SQL任务所包括的通过目标执行引擎所执行的各个指定子任务;
结果获取模块,用于获取基于各个目标子结果所确定的所述目标SQL任务的目标执行结果,包括:用于获取所述目标执行引擎基于各个目标子结果包括的各个第一类子结果和各个第二类子结果,执行各个指定子任务所得到的执行结果,作为所述目标SQL任务的目标执行结果。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
CN202110977614.5A 2021-08-24 一种任务执行方法、装置及电子设备 Active CN113672651B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110977614.5A CN113672651B (zh) 2021-08-24 一种任务执行方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110977614.5A CN113672651B (zh) 2021-08-24 一种任务执行方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113672651A CN113672651A (zh) 2021-11-19
CN113672651B true CN113672651B (zh) 2024-06-04

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095759B1 (en) * 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
CN110704479A (zh) * 2019-09-12 2020-01-17 新华三大数据技术有限公司 任务处理方法、装置、电子设备及存储介质
CN111190924A (zh) * 2019-12-18 2020-05-22 中思博安科技(北京)有限公司 跨域的数据查询方法及装置
CN111782923A (zh) * 2020-06-24 2020-10-16 平安科技(深圳)有限公司 数据查询方法、装置、电子设备及存储介质
CN112860736A (zh) * 2021-03-09 2021-05-28 深圳前海微众银行股份有限公司 大数据查询优化方法、设备及可读存储介质
CN112988350A (zh) * 2021-03-01 2021-06-18 网易(杭州)网络有限公司 数据任务的处理方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095759B1 (en) * 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
CN110704479A (zh) * 2019-09-12 2020-01-17 新华三大数据技术有限公司 任务处理方法、装置、电子设备及存储介质
CN111190924A (zh) * 2019-12-18 2020-05-22 中思博安科技(北京)有限公司 跨域的数据查询方法及装置
CN111782923A (zh) * 2020-06-24 2020-10-16 平安科技(深圳)有限公司 数据查询方法、装置、电子设备及存储介质
CN112988350A (zh) * 2021-03-01 2021-06-18 网易(杭州)网络有限公司 数据任务的处理方法、装置及电子设备
CN112860736A (zh) * 2021-03-09 2021-05-28 深圳前海微众银行股份有限公司 大数据查询优化方法、设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Gregory Borodin,et.al.Search-by-example over SQL repositories using structural and intent-driven similarity.Data & Knowledge Engineering.2020,全文. *
文档-关系数据查询执行技术研究与实现;马志程,等;计算机科学与探索;第14卷(第8期);全文 *

Similar Documents

Publication Publication Date Title
US11886429B2 (en) Persistent metadata catalog
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
CN110908997B (zh) 数据血缘构建方法、装置、服务器及可读存储介质
US8712994B2 (en) Techniques for accessing a parallel database system via external programs using vertical and/or horizontal partitioning
CN109902114B (zh) Es集群数据复用方法、系统、计算机装置及存储介质
CN110309171B (zh) 数据库查询方法、服务器和系统
CN110399368B (zh) 一种定制数据表的方法、数据操作方法及装置
US20150269234A1 (en) User Defined Functions Including Requests for Analytics by External Analytic Engines
CN112860730A (zh) Sql语句的处理方法、装置、电子设备及可读存储介质
JP2017535842A (ja) データソースからデータターゲットにデータを転送するためのインポート手順の呼出しの単純化
CN109241100B (zh) 一种查询方法、装置、设备及存储介质
CN109906447A (zh) 管理请求数据库系统中不存在的索引键的事务
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
WO2021031583A1 (zh) 执行语句的方法、装置、服务器及存储介质
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
US10592506B1 (en) Query hint specification
US11567957B2 (en) Incremental addition of data to partitions in database tables
CN113326305A (zh) 一种处理数据的方法和装置
CN113672651B (zh) 一种任务执行方法、装置及电子设备
US11397781B2 (en) Database search integration
Yuan et al. VDB-MR: MapReduce-based distributed data integration using virtual database
CN116049232A (zh) 一种子查询抽取方法、装置、电子设备和存储介质
US10042957B2 (en) Devices and methods for implementing dynamic collaborative workflow systems
US11544294B2 (en) Distributing tables in a distributed database using consolidated grouping sources
CN113672651A (zh) 一种任务执行方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant