MPP环境下数据库查询方法、装置、服务器及存储介质制造方法及图纸

技术编号:22564846 阅读:32 留言:0更新日期:2019-11-16 11:54
本发明专利技术公开了一种MPP环境下数据库查询方法、装置、服务器及存储介质,包括:根据接收到的SQL语句,确定目标节点的左边数据集和右边数据集,收集所有节点的左边数据集中与哈希半连接操作相关的数据,作为新的左边数据集,并在新的左边数据集中加入临时项,将新的左边数据集发送至除目标节点之外的其他节点,获取目标节点的输出项,将目标节点的输出项作为目标节点的初始子查询结果中的输出项,将新的左边数据集的临时项中,与输出项对应的值作为初始子查询结果的临时项的值,并接收其他节点发送的初始子查询结果,根据所有节点的初始子查询结果中输出项的值及各初始子查询结果中的临时项的值,确定最终查询结果,提高了数据库查询效率。

Database query method, device, server and storage medium in MPP environment

The invention discloses a database query method, device, server and storage medium under the MPP environment, including: according to the received SQL statement, determining the left data set and the right data set of the target node, collecting the data related to the hash semi connection operation in the left data set of all nodes as the new left data set, and adding temporary items in the new left data set , send the new left dataset to other nodes except the target node, obtain the output item of the target node, take the output item of the target node as the output item in the initial subquery result of the target node, take the value corresponding to the output item in the temporary item of the new left dataset as the value of the temporary item in the initial subquery result, and receive the initial subquery result sent by other nodes According to the value of the output items in the initial sub query results of all nodes and the value of the temporary items in the initial sub query results, the final query results are determined, which improves the efficiency of database query.

【技术实现步骤摘要】
MPP环境下数据库查询方法、装置、服务器及存储介质
本专利技术实施例涉及数据处理
,尤其涉及一种大规模并行处理(MassivelyParallelProcessing,MPP)环境下数据库查询方法、装置、服务器及存储介质。
技术介绍
在MPP环境下,非共享数据库集群中的每个节点都有独立磁盘存储系统和内存系统。节点间数据通过网络相互连接,彼此协调计算。简单来说,MPP是将任务并行地分散到多个节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的执行结果。在MPP环境下,数据库表以合适的分布列进行数据分布,存储在各节点上。当用户进行数据库查询时,在查询过程中,需要数据库表进行连接等操作,若操作涉及到非分布列,则各节点在进行计算时,还需要非本节点数据才能完成,此时需要对数据进行动态重分布。目前,数据动态重分布的方式有两种:1、分发(DISTRIBUTE)重分布方式:参与连接的左边数据集与右边数据集的数据按照重分布项进行重分布;2、收集(GATHER)重分布方式:将所有节点的一个数据集的数据全部收集到某个节点,相当于拉成全量复制表,另一个表维持不变。对于MPP环境下的哈希半连接,使用DISTRIBUTE重分布方式需要将参与连接的左边数据集和右边数据集都进行分发;若使用GATHER重分布方式,则只能对右边数据集数据进行收集,因为对左边数据集数据进行收集会导致连接结果不正确(因为同一行左边数据集数据可能在多个节点上都连接成功返回结果,导致最终返回多行,不符合半连接要求)。但是,在数据库查询过程中,采用上述两种方式进行动态重分布时,当参与半连接的左边数据集数据量小而右边数据集数据量很大时,由于以上两种方法都需要在各个节点之间传输右边数据集数据,导致两种方式的数据库查询效率均较低。
技术实现思路
本专利技术提供一种MPP环境下数据库查询方法、装置、服务器及存储介质,以解决目前的MPP环境下数据库查询方法效率低的技术问题。第一方面,本专利技术实施例提供一种MPP环境下数据库查询方法,包括:根据接收到的SQL语句,确定目标节点的左边数据集和右边数据集;其中,所述SQL语句包括哈希半连接操作,所述左边数据集包括至少一个数据项;收集所有节点的左边数据集中与所述哈希半连接操作相关的数据,作为新的左边数据集,并在所述新的左边数据集中加入临时项;其中,所述新的左边数据集包括至少一个数据项,所述临时项的值用于标识所述新的左边数据集的所述至少一个数据项中不同位置的数据;将所述新的左边数据集发送至除所述目标节点之外的其他节点;根据所述新的左边数据集以及所述右边数据集,获取所述目标节点的输出项,将所述目标节点的输出项作为所述目标节点的初始子查询结果中的输出项,将所述新的左边数据集的临时项中,与所述输出项对应的值作为所述初始子查询结果的临时项的值,并接收所述其他节点发送的初始子查询结果;根据所有节点的初始子查询结果中输出项的值及各所述初始子查询结果中的临时项的值,确定最终查询结果。第二方面,本专利技术实施例提供一种MPP环境下数据库查询装置,包括:第一确定模块,用于根据接收到的SQL语句,确定目标节点的左边数据集和右边数据集;其中,所述SQL语句包括哈希半连接操作,所述左边数据集包括至少一个数据项;收集模块,用于收集所有节点的左边数据集中与所述哈希半连接操作相关的数据,作为新的左边数据集,并在所述新的左边数据集中加入临时项;其中,所述新的左边数据集包括至少一个数据项,所述临时项的值用于标识所述新的左边数据集的所述至少一个数据项中不同位置的数据;发送模块,用于将所述新的左边数据集发送至除所述目标节点之外的其他节点;获取模块,用于根据所述新的左边数据集以及所述右边数据集,获取所述目标节点的输出项,将所述目标节点的输出项作为所述目标节点的初始子查询结果中的输出项,将所述新的左边数据集的临时项中,与所述输出项对应的值作为所述初始子查询结果的临时项的值;接收模块,用于接收所述其他节点发送的初始子查询结果;第二确定模块,用于根据所有节点的初始子查询结果中输出项的值及各所述初始子查询结果中的临时项的值,确定最终查询结果。第三方面,本专利技术实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的MPP环境下数据库查询方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面提供的MPP环境下数据库查询方法。本实施例提供一种MPP环境下数据库查询方法、装置、服务器及存储介质,该方法包括:根据接收到的SQL语句,确定目标节点的左边数据集和右边数据集,其中,SQL语句包括哈希半连接操作,左边数据集包括至少一个数据项,收集所有节点的左边数据集中与哈希半连接操作相关的数据,作为新的左边数据集,并在新的左边数据集中加入临时项,其中,新的左边数据集包括至少一个数据项,临时项的值用于标识新的左边数据集的至少一个数据项中不同位置的数据,将新的左边数据集发送至除目标节点之外的其他节点,根据新的左边数据集以及右边数据集,获取目标节点的输出项,将目标节点的输出项作为目标节点的初始子查询结果中的输出项,将新的左边数据集的临时项中,与输出项对应的值作为初始子查询结果的临时项的值,并接收其他节点发送的初始子查询结果,根据所有节点的初始子查询结果中输出项的值及各初始子查询结果中的临时项的值,确定最终查询结果。通过收集所有节点的左边数据集中与哈希半连接操作相关的数据,再添加临时项,将形成的新的左边数据集分发给各节点,再接收各节点根据该新的左边数据集进行半连接的初始子查询结果,根据初始子查询结果确定最终查询结果,实现了在数据库查询过程中,不需要在各个节点间传输右边数据集数据,在右边数据集数据很大而左边数据集数据较小时,可以提高数据库查询效率。附图说明图1为本专利技术提供的MPP环境下数据库查询方法应用的系统架构图;图2为本专利技术提供的MPP环境下数据库查询方法实施例的流程示意图;图3为本专利技术提供的MPP环境下数据库查询方法对应的执行计划树的示意图;图4为一种具体的执行计划树的示意图;图5为本专利技术提供的MPP环境下数据库查询装置实施例的结构示意图;图6为MPP环境下数据库查询装置中第二确定模块的一种实现方式的结构示意图;图7为本专利技术提供的服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。图1为本专利技术提供的MPP环境下数据库查询方法应用的系统架构图。如图1所示,MPP环境中包括多个节点11,每个本文档来自技高网
...

【技术保护点】
1.一种大规模并行处理MPP环境下数据库查询方法,其特征在于,包括:/n根据接收到的结构化查询语言SQL语句,确定目标节点的左边数据集和右边数据集;其中,所述SQL语句包括哈希半连接操作,所述左边数据集包括至少一个数据项;/n收集所有节点的左边数据集中与所述哈希半连接操作相关的数据,作为新的左边数据集,并在所述新的左边数据集中加入临时项;其中,所述新的左边数据集包括至少一个数据项,所述临时项的值用于标识所述新的左边数据集的所述至少一个数据项中不同位置的数据;/n将所述新的左边数据集发送至除所述目标节点之外的其他节点;/n根据所述新的左边数据集以及所述右边数据集,获取所述目标节点的输出项,将所述目标节点的输出项作为所述目标节点的初始子查询结果中的输出项,将所述新的左边数据集的临时项中,与所述输出项对应的值作为所述初始子查询结果的临时项的值,并接收所述其他节点发送的初始子查询结果;/n根据所有节点的初始子查询结果中输出项的值及各所述初始子查询结果中的临时项的值,确定最终查询结果。/n

【技术特征摘要】
1.一种大规模并行处理MPP环境下数据库查询方法,其特征在于,包括:
根据接收到的结构化查询语言SQL语句,确定目标节点的左边数据集和右边数据集;其中,所述SQL语句包括哈希半连接操作,所述左边数据集包括至少一个数据项;
收集所有节点的左边数据集中与所述哈希半连接操作相关的数据,作为新的左边数据集,并在所述新的左边数据集中加入临时项;其中,所述新的左边数据集包括至少一个数据项,所述临时项的值用于标识所述新的左边数据集的所述至少一个数据项中不同位置的数据;
将所述新的左边数据集发送至除所述目标节点之外的其他节点;
根据所述新的左边数据集以及所述右边数据集,获取所述目标节点的输出项,将所述目标节点的输出项作为所述目标节点的初始子查询结果中的输出项,将所述新的左边数据集的临时项中,与所述输出项对应的值作为所述初始子查询结果的临时项的值,并接收所述其他节点发送的初始子查询结果;
根据所有节点的初始子查询结果中输出项的值及各所述初始子查询结果中的临时项的值,确定最终查询结果。


2.根据权利要求1所述的方法,其特征在于,所述根据所有节点的初始子查询结果中输出项的值及各所述初始子查询结果中的临时项的值,确定最终查询结果,包括:
收集所有节点的初始子查询结果中输出项的值,作为初始查询结果中输出项的值,收集所有节点的初始子查询结果中临时项对应的值,作为初始查询结果中临时项对应的值;
根据所述初始查询结果中临时项的值进行去重,形成中间查询结果;
将所述中间查询结果中的临时项去除,形成所述最终查询结果。


3.根据权利要求2所述的方法,其特征在于,所述根据所述初始查询结果中临时项的值进行去重,形成中间查询结果,包括:
如果所述初始查询结果的临时项中有多个相同值,则只保留所述多个相同值中的任一个值及对应的输出项的值。


4.根据权利要求1-3任一项所述的方法,其特征在于,所述新的左边数据集中的数据项以及所述临时项均以列的形式表示,所述临时项的值为所述新的左边数据集的数据项中各个值的行号。


5.一种大规模并行处理MPP环境下数据库查询装置,其特征在于,包括:
第一确定模块,用于根据接收到的结构化查询语言SQL语句,确定目标节点的左边数据集和右边数据集;其中,所述SQL语句包括哈希半连接操作,所述左...

【专利技术属性】
技术研发人员:张钦朱仲颖韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1