基于分布式计算系统的数据处理方法及相关设备与流程

摘要: 本技术涉及计算机,尤其涉及一种基于分布式计算系统的数据处理方法、一种基于分布式计算系统的数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品...
基于分布式计算系统的数据处理方法及相关设备与流程

本技术涉及计算机,尤其涉及一种基于分布式计算系统的数据处理方法、一种基于分布式计算系统的数据处理装置、一种计算机设备、一种计算机可读存储介质及一种计算机程序产品。

背景技术:

1、分布式计算系统中的物理计划(physical plan)是一个具体的执行计划,它描述了数据处理(例如sql查询)的实际执行方式,包括如何进行数据扫描、过滤、排序、聚合等操作,物理计划涉及如何具体地执行这些操作,并考虑了这些操作的执行细节。因此,物理计划的好坏直接决定了基于分布式计算系统的数据处理的效率和执行开销,那么,如何对物理计划进行优化也就成为了当前的研究热点。

技术实现思路

1、本发明实施例提供了一种基于分布式计算系统的数据处理方法及相关设备,可通过对物理计划中物理算子的优化,来实现对物理计划的优化,从而提升物理计划的质量。

2、一方面,本发明实施例提供了一种基于分布式计算系统的数据处理方法,包括:

3、获取分布式计算系统中的物理计划;物理计划包括至少一个物理算子及至少一个物理算子之间的依赖关系;

4、获取物理计划中的目标物理算子的操作属性,及目标物理算子的上下游算子的操作属性;目标物理算子是:基于依赖关系从物理计划中确定出的,同时存在上下游算子的任一物理算子,目标物理算子的上游算子是指:被目标物理算子依赖的物理算子,目标物理算子的下游算子是指:依赖目标物理算子的物理算子;

5、比较目标物理算子的操作属性及目标物理算子的上下游算子的操作属性之间的匹配性,并根据比较结果对目标物理算子进行优化处理。

6、另一方面,本发明实施例提供了一种基于分布式计算系统的数据处理装置,包括:

7、获取单元,用于获取分布式计算系统中的物理计划;物理计划包括至少一个物理算子及至少一个物理算子之间的依赖关系;

8、获取单元,还用于获取物理计划中的目标物理算子的操作属性,及目标物理算子的上下游算子的操作属性;目标物理算子是:基于依赖关系从物理计划中确定出的,同时存在上下游算子的任一物理算子,目标物理算子的上游算子是指:被目标物理算子依赖的物理算子,目标物理算子的下游算子是指:依赖目标物理算子的物理算子;

9、处理单元,用于比较目标物理算子的操作属性及目标物理算子的上下游算子的操作属性之间的匹配性,并根据比较结果对目标物理算子进行优化处理。

10、在一个实施例中,目标物理算子的上游算子为第一物理算子,目标物理算子的下游算子为第二物理算子;获取单元,具体用于:

11、基于依赖关系,从物理计划中确定出同时存在上下游算子的目标物理算子,并确定被目标物理算子依赖的第一物理算子以及依赖目标物理算子的第二物理算子;

12、获取目标物理算子的操作属性、第一物理算子的操作属性和第二物理算子的操作属性。

13、在一个实施例中,目标物理算子的上游算子为第一物理算子,目标物理算子的下游算子为第二物理算子,操作属性包括排序属性;处理单元,具体用于:

14、比较目标物理算子的排序属性与第一物理算子的排序属性之间的相似性,获得第一匹配度;

15、若第一匹配度大于第一预设匹配阈值,则比较第一物理算子的排序属性与第二物理算子的排序属性之间的相似性,获得第二匹配度;

16、若第二匹配度大于第二预设匹配阈值,则生成比较结果,比较结果用于指示目标物理算子需要进行优化处理。

17、在一个实施例中,目标物理算子的上游算子为第一物理算子,目标物理算子的下游算子为第二物理算子,操作属性包括排序属性;处理单元,具体用于:

18、比较目标物理算子的排序属性与第一物理算子的排序属性之间的相似性,获得第一匹配度;

19、若第一匹配度大于第一预设匹配阈值,则比较目标物理算子的排序属性与第二物理算子的排序属性之间的相似性,获得第三匹配度;

20、若第三匹配度大于第三预设匹配阈值,则比较第一物理算子的排序属性与第二物理算子的排序属性之间的相似性,获得第二匹配度;

21、若第二匹配度大于第二预设匹配阈值,则生成比较结果,比较结果用于指示目标物理算子需要进行优化处理。

22、在一个实施例中,目标物理算子为排序算子,第一物理算子为窗口函数算子,窗口函数算子的排序属性数量为n,窗口函数算子的任一排序属性表示为si,i、n均为正整数且i小于等于n;处理单元,具体用于:比较排序算子的排序属性与窗口函数算子的排序属性为s1之间的相似性,获得第一匹配度;

23、处理单元,还具体用于:比较窗口函数算子的排序属性为s1与第二物理算子的排序属性之间的相似性,获得第二匹配度。

24、在一个实施例中,处理单元,目标物理算子为排序算子,第一物理算子为窗口函数算子,窗口函数算子的排序属性数量为n,窗口函数算子的任一排序属性表示为si,窗口函数算子的每个排序属性对应各自的权重,窗口函数算子的排序属性s1对应的权重是窗口函数算子的所有排序属性对应的权重中的最大值,i、n均为正整数且i小于等于n;具体用于:分别比较排序算子的排序属性与窗口函数算子的各个排序属性之间的相似性,并将采用窗口函数算子的每个排序属性对应各自的权重对比较得到的各个相似性进行加权求和,获得第一匹配度;

25、处理单元,还具体用于:分别比较第二物理算子的排序属性与窗口函数算子的各个排序属性之间的相似性,并将采用窗口函数算子的每个排序属性对应各自的权重对比较得到的各个相似性进行加权求和,获得第二匹配度。

26、在一个实施例中,处理单元,具体用于:

27、根据比较结果在物理计划中对目标物理算子进行删除处理;

28、根据比较结果在物理计划中对目标物理算子进行合并处理;

29、根据比较结果在物理计划中对目标物理算子进行标记处理。

30、在一个实施例中,物理计划表示为树结构,物理计划中的每个物理算子为树结构中的一个节点,每个节点表示物理计划被执行时相应物理算子执行的一个操作;具备依赖关系的任意两个物理算子中,被依赖的物理算子是树结构中的父节点,依赖的物理算子是树结构中的子节点;处理单元,具体用于:

31、在树结构中删除目标物理算子对应的节点,并更新树结构。

32、在一个实施例中,物理计划表示为树结构,物理计划中的每个物理算子为树结构中的一个节点,每个节点表示物理计划被执行时相应物理算子执行的一个操作;具备依赖关系的任意两个物理算子中,被依赖的物理算子是树结构中的父节点,依赖的物理算子是树结构中的子节点;处理单元,具体用于:

33、在树结构中将目标物理算子对应的节点与目标物理算子的上游算子对应的节点进行合并;或者,在树结构中将目标物理算子对应的节点与目标物理算子的下游算子对应的节点进行合并。

34、在一个实施例中,物理计划表示为树结构,物理计划中的每个物理算子为树结构中的一个节点,每个节点表示物理计划被执行时相应物理算子执行的一个操作;具备依赖关系的任意两个物理算子中,被依赖的物理算子是树结构中的父节点,依赖的物理算子是树结构中的子节点;处理单元,具体用于:

35、在树结构中为目标物理算子对应的节点添加跳过标记,跳过标记用于指示在对物理计划进行编译时跳过对目标物理算子对应的节点进行编译。

36、在一个实施例中,获取单元,还用于:获取分布式计算系统的配置信息;

37、处理单元,还用于若配置信息中设有目标优化规则,则执行获取分布式计算系统中的物理计划的步骤,目标优化规则定义针对物理计划的优化处理的规范。

38、在一个实施例中,获取单元,具体用于:

39、解析分布式计算系统中的查询语句,生成初始逻辑计划;

40、对初始逻辑计划进行分析和优化,得到优化逻辑计划;

41、将优化逻辑计划转换为至少一个候选物理计划;

42、按照预设筛选策略从至少一个候选物理计划中选取出物理计划;

43、其中,分布式计算系统包括以下任一个:spark、mpp、数据库、数仓。

44、在一个实施例中,装置还包括:编译单元。

45、编译单元,用于对优化处理后的物理计划进行编译,生成可执行代码;

46、处理单元,还用于运行可执行代码,输出查询语句对应的查询结果。

47、另一方面,本发明实施例提供了一种计算机设备,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储支持计算机设备执行上述方法的计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述的基于分布式计算系统的数据处理方法。

48、另一方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行上述的基于分布式计算系统的数据处理方法。

49、再一方面,本发明实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序包括程序指令,程序指令被处理器调用时,使处理器执行上述的基于分布式计算系统的数据处理方法。

50、本技术实施例聚焦于对分布式计算系统中的物理计划进行优化,从物理计划中确定出存在上下游算子的目标物理算子后,比较该目标物理算子的操作属性及相应的上下游算子的操作属性之间的匹配性,基于比较结果对该物理计划中的目标物理算子进行优化处理。可见,本技术实施例关注于上中下游的各物理算子的操作属性之间的匹配性,并从匹配性的角度来对中游的物理算子进行优化处理,这样的优化机制可以在保证物理计划稳定性的同时,优化掉物理计划中的冗余算子,节省物理计划统计所需耗费的资源,并且,基于对物理计划中冗余算子的优化,可有效提升分布式计算系统中的物理计划的算子质量,进而提升采用该物理计划在分布式计算系统中进行数据处理的能力。