数据重分布方式的确定方法、装置、服务器及存储介质制造方法及图纸

技术编号:21952355 阅读:28 留言:0更新日期:2019-08-24 17:41
本发明专利技术实施例公开了一种数据重分布方式的确定方法、装置、服务器及存储介质。该方法包括:遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成,按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项,根据所述期望重分布项确定所述可选重分布项的优先级,根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。与现有技术相比,本发明专利技术实施例为非叶节点的可选重分布项设置了优先级,同时考虑了上层节点和下层节点对当前非叶节点的可选重分布项的影响,提高了系统执行效率。

Method, Device, Server and Storage Medium for Determining Data Redistribution Mode

【技术实现步骤摘要】
数据重分布方式的确定方法、装置、服务器及存储介质
本专利技术实施例涉及数据库
,尤其涉及一种数据重分布方式的确定方法、装置、服务器及存储介质。
技术介绍
MPP(MassivelyParallelProcessing)即大规模并行处理,在非共享数据库集群中,每个节点都有独立磁盘存储系统和内存系统,节点间数据通过网络相互连接,彼此协调计算。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的执行结果。在MPP环境下,数据库表以合适的分布列进行数据分布,存储在各节点上。常见的分布方式有哈希分布(HASH)、随机分布(RAND)和复制分布(FULL)等。在进行多表连接操作时,总是两两连接的,即两表进行连接的结果再与另一表或另一两表连接结果进行连接,类似于树状层次分布。当连接操作涉及非分布列时,需要对数据进行重分布。传统方式在对某节点的数据进行重分布时,虽然考虑了下层节点数据分布的影响,但系统执行效率仍然较低。
技术实现思路
本专利技术实施例提供一种数据重分布方式的确定方法、装置、服务器及存储介质,以提高系统的执行效率。第一方面,本专利技术实施例提供一种数据重分布方式的确定方法,包括:遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成;按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项;根据所述期望重分布项确定所述可选重分布项的优先级;根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。第二方面,本专利技术实施例还提供一种数据重分布方式的确定装置,该装置包括:期望重分布项确定模块,用于遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成;可选重分布项确定模块,用于按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项;优先级确定模块,用于根据所述期望重分布项确定所述可选重分布项的优先级;数据重分布方式确定模块,用于根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。第三方面,本专利技术实施例还提供一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据重分布方式的确定方法。第四方面,本专利技术实施例还提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据重分布方式的确定方法。本专利技术实施例提供一种数据重分布方式的确定方法、装置、服务器及存储介质,通过遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成,按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项,根据所述期望重分布项确定所述可选重分布项的优先级,根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。与现有技术相比,本专利技术实施例为非叶节点的可选重分布项设置了优先级,同时考虑了上层节点和下层节点对当前非叶节点的可选重分布项的影响,提高了系统执行效率。附图说明图1为本专利技术实施例一提供的一种数据重分布方式的确定方法的流程图;图2为本专利技术实施例一提供的一种执行二叉树的示意图;图3为本专利技术实施例二提供的一种数据重分布方式的确定方法的流程图;图4为本专利技术实施例三提供的一种数据重分布方式的确定装置的结构图;图5为本专利技术实施例四提供的一种服务器的结构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。实施例一图1为本专利技术实施例一提供的一种数据重分布方式的确定方法的流程图,本实施例可适用于在大规模并行处理环境中,确定节点的数据重分布方式,以使该节点基于确定的数据重分布方式执行数据重分布的情况,该方法可以由数据重分布方式的确定装置来执行,该装置可以由软件和/或硬件的方式来实现,该装置集成在服务器中,具体的,该方法包括如下步骤:S110、遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项。所述执行二叉树通过对用户所输入结构化查询语句的解析生成。结构化查询语句(StructuredQueryLanguage,简称SQL语句)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统等。二叉树是每个节点最多有两个子树的树结构。解析SQL语句可以得到对应的执行二叉树。示例性的,用户输入的SQL语句为:SELECTAA.cc1,B.d2FROMA,B,AA,BBWHEREA.c1=B.d1andA.c2=B.d2andAA.cc1=BB.dd1andAA.cc2=BB.dd2andB.d2=1GROUPBYAA.cc1,B,d2,解析该SQL语句,得到的执行二叉树如图2所示,图2为本专利技术实施例一提供的一种执行二叉树的示意图。其中,HAGR为执行二叉树的根节点,HI1、HI2和HI3为执行二叉树的中间节点,表示哈希内连接,以HI3为例,HI3表示数据表AA和数据表BB执行哈希内连接,数据表A、数据表B、数据表AA以及数据表BB为执行二叉树的叶节点,SELECT为执行二叉树的过滤节点,实施例将根节点和中间节统称为非叶节点。重分布项是当某节点选择分发重分布方式时,该节点对应的一元或二元元组,元组中包含了该节点所包含子节点的分布属性,所述分布属性包括哈希分布、复制分布和随机分布等,一元元组表示该节点包含一个子节点,二元元组表示该节点包含两个子节点。期望重分布项是根据节点的特征确定的重分布项,需要说明的是,只有非叶节点具有期望重分布项,即图2中只有根节点和中间节点具有期望重分布项,叶节点和过滤节点不具有期望重分布项。如图2所示,遍历执行二叉树,按照先根遍历的顺序,由上至下,由左至右分别确定HAGR节点、HI1节点、HI2节点以及HI3节点的期望重分布项。在确定某非叶节点的期望重分布项时,可以根据该非叶节点的特征确定,该特征包括连接或分组等,比如,确定HAGR节点的期望重分布项时,根据前面所述的SQL语句可知,HAGR节点按照分组项AA.cc1和B.d2进行GROUP分组,根据分组项可以确定HAGR节点的期望重分布项为:cc1/d2/(cc1,d2)。再如,确定HI1节点的期望重分布项,根据SQL语句可知,HI1节点对应的连接条件为:A.c1=BB.dd1andAA.cc2=B.d2,该连接条件对应的连接项为A.c1、BB.dd1、AA.cc2和B.d2,根据该连接项可以确定HI1节点的期望重分布项为:c1,dd1/cc2,d2/(c1,d2),(dd1,cc2)。由此即可确定执行二叉树上各个非叶节点的期望重分布项。S120、按照由下至上的顺序,针对本文档来自技高网...

【技术保护点】
1.一种数据重分布方式的确定方法,其特征在于,包括:遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成;按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项;根据所述期望重分布项确定所述可选重分布项的优先级;根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。

【技术特征摘要】
1.一种数据重分布方式的确定方法,其特征在于,包括:遍历执行二叉树,按照由上至下的顺序,依次确定所述执行二叉树上非叶节点的期望重分布项,所述执行二叉树通过对用户所输入结构化查询语句的解析生成;按照由下至上的顺序,针对每一个非叶节点,确定所述非叶节点的可选重分布项;根据所述期望重分布项确定所述可选重分布项的优先级;根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式。2.根据权利要求1所述的方法,其特征在于,所述确定所述执行二叉树上非叶节点的期望重分布项,包括:解析所述结构化查询语句,确定所述非叶节点对应的特征项;根据所述特征项确定所述非叶节点的初始期望重分布项;遍历过程中,若当前节点为过滤节点,且所述过滤节点对应的过滤条件满足设定形式,则将所述过滤条件中的表达式从所述过滤节点的祖先节点的初始期望重分布项中移除,获得期望重分布项;否则,将所述初始期望重分布项作为期望重分布项。3.根据权利要求1所述的方法,其特征在于,所述确定所述非叶节点的可选重分布项,包括:解析所述结构化查询语句,确定所述非叶节点对应的特征项;根据所述特征项确定所述非叶节点的可选重分布项。4.根据权利要求1所述的方法,其特征在于,所述根据所述期望重分布项确定所述可选重分布项的优先级,包括:按照由下至上的顺序,针对每一个非叶节点,获取所述非叶节点的至少一个可选重分布项;将各所述可选重分布项分别与所述非叶节点的期望重分布项以及所述非叶节点的祖先节点的期望重分布项匹配;根据匹配结果确定各所述可选重分布项的优先级。5.根据权利要求1所述的方法,其特征在于,所述根据所述可选重分布项的优先级确定所述非叶节点所包含子节点的数据重分布方式,包括:根据所述可选重分布项的优先级确定对应所述可选重分布项的权重;根据所述权重确定所述非叶节点在所述权重对应的可选重分布项下的代价值;根据所述...

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

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

1