数据引擎的确定方法、装置、设备、存储介质及程序产品与流程

文档序号:37903394发布日期:2024-05-09 21:47阅读:10来源:国知局
数据引擎的确定方法、装置、设备、存储介质及程序产品与流程

本技术涉及互联网,尤其涉及一种数据引擎的确定方法、装置、设备、存储介质及程序产品。


背景技术:

1、 相关技术中,在执行结构化查询语言(sql,structured query language)时,是针对多个计算引擎生成统一的sql执行计划,然后再从多个计算引擎中随机选取一个计算引擎来执行,然而,不同计算引擎的执行行为和能力各不相同的,针对多个计算引擎生成统一的sql执行计划则忽略了计算引擎本身的特征,导致计算引擎执行sql执行计划时的执行效果较差,同时,又从多个计算引擎中随机选取计算引擎来执行sql执行计划,则会进一步降低计算引擎的执行效果。


技术实现思路

1、本技术实施例提供一种数据引擎的确定方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提高所确定的数据引擎的执行效率并降低数据引擎的执行代价。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种数据引擎的确定方法,包括:

4、构建可执行语句对应的至少一个计划树,并获取用于执行所述计划树的至少一个数据引擎;

5、针对各所述计划树,确定各所述数据引擎执行所述计划树的代价值;

6、针对各所述数据引擎,基于各所述代价值,从所述至少一个计划树中选取第一目标计划树;

7、基于各所述第一目标计划树对应的代价值,从所述至少一个数据引擎中,选取用于执行所述可执行语句的目标数据引擎。

8、本技术实施例提供一种数据引擎的确定装置,包括:

9、构建模块,用于构建可执行语句对应的至少一个计划树,并获取用于执行所述计划树的至少一个数据引擎;

10、确定模块,用于针对各所述计划树,确定各所述数据引擎执行所述计划树的代价值;

11、第一选取模块,用于针对各所述数据引擎,基于各所述代价值,从所述至少一个计划树中选取第一目标计划树;

12、第二选取模块,用于基于各所述第一目标计划树对应的代价值,从所述至少一个数据引擎中,选取用于执行所述可执行语句的目标数据引擎。

13、在上述方案中,所述确定模块,还用于针对各所述数据引擎,执行以下处理:分别获取数据获取操作对应的第一初始代价值、以及数据执行操作对应的第二初始代价值;其中,所述数据获取操作为,所述数据引擎获取所述计划树对应的待操作数据时的获取操作,所述数据执行操作为,所述数据引擎针对所述待操作数据执行所述可执行语句所指示的操作时的执行操作;获取至少一个成本要素,所述成本要素用于影响所述数据引擎执行所述计划树的代价值;基于所述至少一个成本要素,获取所述数据引擎对应的至少一个代价系数;基于所述至少一个代价系数、所述第一初始代价值以及所述第二初始代价值,确定所述数据引擎执行所述计划树的代价值。

14、在上述方案中,所述至少一个成本要素包括所述待操作数据的数据温度;所述确定模块,还用于获取用于存储所述待操作数据的存储介质的被访问频率、以及多个频率区间;其中,每一个所述频率区间对应一个数据温度;基于所述被访问频率,从所述多个频率区间中,选取所述被访问频率所归属的目标频率区间;将所述目标频率区间对应的数据温度,确定为所述待操作数据的数据温度。

15、在上述方案中,所述至少一个成本要素包括所述数据引擎的执行效率;所述确定模块,还用于对所述待操作数据进行分析,得到所述待操作数据的数据量;获取所述数据引擎的引擎标识,并基于所述引擎标识,确定所述数据引擎所归属的引擎类型;基于所述数据引擎所归属的引擎类型以及所述数据量,对所述数据引擎的执行效率进行分析,得到所述数据引擎执行所述待操作数据时的执行效率。

16、在上述方案中,所述至少一个成本要素包括所述数据引擎的存算亲和性;所述确定模块,还用于获取用于存储所述待操作数据的存储介质的介质标识、以及所述数据引擎的引擎标识;基于所述介质标识,确定所述存储介质的位置,并基于所述引擎标识,确定所述数据引擎的位置;基于所述存储介质的位置以及所述数据引擎的位置,对所述数据引擎与所述存储介质间的紧密程度进行分析,得到所述数据引擎的存算亲和性。

17、在上述方案中,所述确定模块,还用于当所述至少一个成本要素包括所述待操作数据的数据温度、所述至少一个代价系数包括所述待操作数据的数据温度对应的第一代价系数时,将所述第一代价系数与所述第一初始代价值进行乘积处理,得到第一中间代价值,并将所述第一中间代价值与所述第二初始代价值进行求和,得到所述数据引擎执行所述计划树的代价值;当所述至少一个成本要素包括所述数据引擎的执行效率、所述至少一个代价系数包括所述数据引擎的执行效率对应的第二代价系数时,将所述第二代价系数与所述第二初始代价值进行乘积处理,得到第二中间代价值,并将所述第二中间代价值与所述第一初始代价值进行求和,得到所述数据引擎执行所述计划树的代价值;当所述至少一个成本要素包括所述数据引擎的存算亲和性、所述至少一个代价系数包括所述数据引擎的存算亲和性对应的第三代价系数时,将所述第三代价系数与所述第二初始代价值进行乘积处理,得到第三中间代价值,并将所述第三中间代价值与所述第一初始代价值进行求和,得到所述数据引擎执行所述计划树的代价值。

18、在上述方案中,所述确定模块,还用于当所述至少一个成本要素包括所述待操作数据的数据温度以及所述数据引擎的执行效率、所述至少一个代价系数包括所述待操作数据的数据温度对应的第一代价系数以及所述数据引擎的执行效率对应的第二代价系数时,将所述第一代价系数与所述第一初始代价值进行乘积处理,得到第一中间代价值,并将所述第二代价系数与所述第二初始代价值进行乘积处理,得到第二中间代价值;将所述第一中间代价值与所述第二中间代价值进行求和,得到所述数据引擎执行所述计划树的代价值;当所述至少一个成本要素包括所述待操作数据的数据温度以及所述数据引擎的存算亲和性、所述至少一个代价系数包括所述待操作数据的数据温度对应的第一代价系数以及所述数据引擎的存算亲和性对应的第三代价系数时,将所述第一代价系数与所述第一初始代价值进行乘积处理,得到第一中间代价值,并将所述第三代价系数与所述第二初始代价值进行乘积处理,得到第三中间代价值;将所述第一中间代价值与所述第三中间代价值进行求和,得到所述数据引擎执行所述计划树的代价值;当所述至少一个成本要素包括所述数据引擎的执行效率以及所述数据引擎的存算亲和性、所述至少一个代价系数包括所述数据引擎的执行效率对应的第二代价系数以及所述数据引擎的存算亲和性对应的第三代价系数时,将所述第二代价系数、所述第三代价系数以及所述第二初始代价值进行乘积处理,得到第四中间代价值,并将所述第四中间代价值与所述第一初始代价值进行求和,得到所述数据引擎执行所述计划树的代价值。

19、在上述方案中,所述至少一个成本要素包括所述待操作数据的数据温度、所述数据引擎的执行效率以及所述数据引擎的存算亲和性,所述至少一个代价系数包括所述待操作数据的数据温度对应的第一代价系数、所述数据引擎的执行效率对应的第二代价系数以及所述数据引擎的存算亲和性对应的第三代价系数;所述确定模块,还用于将所述第一代价系数与所述第一初始代价值进行乘积处理,得到第一中间代价值,并将所述第二代价系数、所述第三代价系数以及所述第二初始代价值进行乘积处理,得到第四中间代价值;将所述第一中间代价值与所述第四中间代价值进行求和,得到所述数据引擎执行所述计划树的代价值。

20、在上述方案中,所述装置还包括筛选模块,所述筛选模块,用于对所述可执行语句进行语法分析,得到所述可执行语句包括的语法类型;基于所述可执行语句包括的语法类型,确定各所述数据引擎的可执行性;基于各所述数据引擎的可执行性,对所述至少一个数据引擎进行筛选,得到至少一个标准数据引擎;所述确定模块,还用于针对各所述计划树,确定各所述标准数据引擎执行所述计划树的代价值。

21、在上述方案中,所述第一选取模块,还用于当所述计划树的数量为多个时,针对各所述数据引擎分别执行如下处理:基于各所述代价值,对多个计划树进行排序,得到第一排序结果;基于所述第一排序结果,从所述多个计划树中选取所述代价值最低的计划树,作为所述数据引擎的第一目标计划树。

22、在上述方案中,所述第二选取模块,还用于当所述数据引擎的数量为多个时,基于各所述第一目标计划树对应的代价值,对多个数据引擎进行排序,得到第二排序结果;基于所述第二排序结果,从所述代价值最低的第一目标计划树对应的数据引擎起,依次对各所述数据引擎进行检测,直至检测结果表征相应所述数据引擎满足引擎选取条件;将满足所述引擎选取条件的所述数据引擎,确定为所述目标数据引擎。

23、在上述方案中,所述构建模块,还用于构建对应所述可执行语句的至少一个语法树;对所述至少一个语法树进行转换,得到所述可执行语句对应的至少一个计划树。

24、在上述方案中,所述构建模块,还用于构建对应所述可执行语句的初始计划树;对所述初始计划树进行转换,得到至少一个等价计划树,所述数据引擎执行所述等价计划树时的执行效率大于所述数据引擎执行所述初始计划树时的执行效率;将所述至少一个等价计划树,确定为所述至少一个计划树。

25、在上述方案中,所述装置还包括转换模块,所述转换模块,用于对各所述第一目标计划树进行转换,得到等价目标计划树,所述数据引擎执行所述等价目标计划树时的执行效率大于所述数据引擎执行所述第一目标计划树时的执行效率;针对各所述等价目标计划树,确定相应所述数据引擎执行所述等价目标计划树的等价代价值;当存在所述等价代价值小于相应所述第一目标计划树对应的代价值时,针对各所述等价目标计划树,确定各所述数据引擎执行所述等价目标计划树的等价代价值;针对各所述数据引擎,基于所述数据引擎执行所述等价目标计划树的等价代价值,从至少一个等价目标计划树中选取第二目标计划树;所述第二选取模块,还用于基于各所述第二目标计划树对应的等价代价值,从所述至少一个数据引擎中,选取用于执行所述可执行语句的目标数据引擎。

26、本技术实施例提供一种电子设备,包括:

27、存储器,用于存储计算机可执行指令;

28、处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本技术实施例提供的数据引擎的确定方法。

29、本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本技术实施例提供的数据引擎的确定方法。

30、本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可执行指令,该计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本技术实施例提供的数据引擎的确定方法。

31、本技术实施例具有以下有益效果:

32、在构建完可执行语句对应的至少一个计划树之后,针对各计划树对应的代价值,选取各数据引擎对应的第一目标计划树,这样,针对各数据引擎,存在对应的执行计划(即计划树),相较于多个数据引擎对应相同的执行计划的方案,针对各数据引擎,选取出更贴合每一个数据引擎的执行计划,从而提高了数据引擎在执行相应执行计划时的执行效率;同时,基于各第一目标计划树对应的代价值,从多个数据引擎中,选取最终的目标数据引擎,相较于相关技术中从多个数据引擎中随机选取数据引擎的方案,在引擎选择阶段根据计划树的代价值来进行数据引擎的选择,增强引擎选择过程的完备性,不仅降低了数据引擎的执行代价,也进一步提高了所确定的数据引擎的执行效率。

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