一种大规模并行处理架构中的混合数据分布的制作方法

文档序号:11333821阅读:432来源:国知局
一种大规模并行处理架构中的混合数据分布的制造方法与工艺

相关申请案交叉申请

本发明要求于2015年2月23日递交的发明名称为“一种大规模并行处理架构中的混合数据分布”的第14/629,107号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。

本发明大体涉及数据库管理领域,更具体地,涉及大规模并行处理(massivelyparallelprocessing,简称mpp)数据库中的数据分布领域。



背景技术:

大规模并行处理(massivelyparallelprocessing,简称mpp)数据库中的数据分布设计的首要目标是数据在系统各个节点间的均匀分布。特别地,协调多个处理器以并行处理程序,其中,每个处理器具有独立的操作系统和存储器资源。该系统可称为“无共享”,其中数据库的表分割为段,并在不同处理节点间分布,在处理节点间无数据共享发生。在处理节点间分割数据,使得每个处理节点具有一个来自数据库各表中的行子集。每个处理节点仅处理其自己磁盘上的行。所述mpp数据库包括协调系统,该系统携带有所述数据库,但其本身不存储数据库记录,而是存储数据库的元数据。所述协调系统能携带数据库引擎和mpp系统的控制实体,能够生成查询计划,通过处理节点协调查询执行,并聚合系统范围内的数据。所有处理节点和所述协调系统通过常见消息接口互联在处理节点和协调器之间进行通信。

当数据库查询到达(例如,来自客户端系统的)协调器时,根据数据分布计划和优化的执行计划划分查询并分配给处理节点。每个处理节点中的处理实体仅管理各自部分的数据。然而,这些处理实体可以在执行时与其他实体进行通信以交换任何所需的信息。一个查询可划分为多个子查询,所述多个子查询可在部分或全部所述处理节点上并行执行或按某种最佳顺序执行。所述子查询的结果可进行聚合并再处理,继而额外的子查询可根据所述结果执行。

在传统mpp数据库系统中,表项通常通过以下方法之一进行分布:哈希、随机(例如,循环)、范围或列表。目前,许多mpp数据库通过哈希分布进行数据分布。在哈希分布中,记录的键值哈希至桶,这些桶分配给处理节点。哈希分布使得可通过键来直接定位数据,其消耗的系统资源最少。这为哈希分布提供了高性能特征,这是因为根据键来查询值是直接的,仅需要哈希值的计算来判断哪个节点携带有该指定哈希桶。该查询仅发送给该处理节点,不涉及其他处理节点。另一种mpp数据库分布的常见方法是循环分布。在循环分布的情况下,在所述mpp数据库的所有处理节点周围进行数据分布,其有助于记录在系统的这些节点间的均匀分布。然而,循环分布的缺点在于数据记录的查询区域。一般情况下,在查询记录期间,必须访问该系统中的许多(若不是全部)节点,以定位指定记录。因此,与采用哈希分布方案查询mpp数据库相比,对于采用传统循环分布方案的mpp数据库,系统资源利用效率更低。

采用哈希(以及范围或列表)分布的mpp数据库的一个潜在问题在于倾斜的发生。在键值的分布未倾斜的情况下,通常某些桶较大而其他桶较小。在大部分情况下,有可能将若干大大小小的桶放在一起,并将它们分配给一个处理节点,其一般目标在于每个节点均具有基本等大的总数据。然而,在某些情况下,数据分布可能会倾斜,包含单个键值的记录不适合指定处理节点中的存储设备,而其他处理节点可能具有充足的剩余空间。仅仅调整进行哈希分布的功能并不能解决该问题,需要额外的措施解决该倾斜,尤其是处理节点的存储设备中的倾斜。数据倾斜也可能导致执行查询所需的处理时间的增加,尤其是表连接的查询所需的时间。



技术实现要素:

此处描述动态分布方法,以用于解决mpp数据库中的数据倾斜。本发明实施例提供了一种mpp数据库记录的哈希分布和循环分布的合并方法和系统,此处称作“混合”数据分布模式。混合分布用作一种防止仅采用哈希分布的存储系统中可能出现的存储不均衡的方式。

在本发明的一方面,分布键的潜在值划分为两个集合。一个集合包含高频率的那些值,称为“离群点集合”。另一个集合包含剩下的键值,称为“正常集合”。混合数据分布模式通过哈希分布对正常集合中包含键值的那些记录进行分布,而通过随机(例如,循环)方法将离群点集合中包含键值的那些记录在mpp数据库的处理节点间进行分布。与纯哈希(或范围或列表)分布模式相比,根据本发明实施例的方法通过采用循环方法对包含指示高频率的键(例如,离群点集合中的键)的记录进行分布来避免存储问题和性能问题。然而,与纯循环分布模式相比,根据本发明实施的方法保存有不在离群点集合中的那些键值哈希分布的优点,该优点在于可通过键值直接定位数据,其系统资源消耗在大多数情况中最小。只有包括高频键的那些查询将涉及mpp数据库的所有处理节点,且进一步地,在那些情况下,使所有节点参与处理是有利的,因为潜在合格的记录数目可能超过单个节点的处理能力。

本发明内容的提供是为了以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本发明内容的目的不在于识别权利要求书保护的主题的键特征或必要特征,也不在于限制权利要求书保护的主题的范围。

在一方面,本发明实施例提供了一种大规模并行处理(massivelyparallelprocessing,简称mpp)数据库中混合分布模式的系统和方法,其中,所述混合分布模式防止数据倾斜引起的存储不均衡问题。若键的记录导致数据库倾斜,将所述数据库的那些键值视作离群点。在混合模式下,包含离群键值的记录通过随机分布方案进行分布。其他记录通过哈希分布方案进行分布。系统中的表的离群点判断的门限是可配置的。记录查询、插入、删除以及更新根据查询计划进行处理,其中该查询计划是针对数据库查询中参考的记录的分布模式进行的优化。

更具体地,本发明实施例提供了一种管理大规模并行处理(massivelyparallelprocessing,简称mpp)数据库的方法,其中,所述方法包括确定根据混合数据分布模式为mpp数据库进行数据库记录分布的标准。所述mpp数据库具有多个处理节点。所述方法还包括确定满足所述标准的mpp数据库的离群键集合。所述方法还包括更新所述mpp数据库,以根据所述混合数据分布模式进行数据库记录分布。

以上为发明内容以及因此必须包括的简化、概括和细节的省略;因此,本领域的技术人员应当理解本发明内容仅作说明性用途,并不构成任何限制。仅由权利要求书定义的本发明的其他方面,发明特征以及优点将通过以下非限制性具体实施方式中的详细描述而变得易于理解。

附图说明

为了更好地理解本发明实施例,下文将结合附图进行详细描述,其中,相同参考符号指示相同元素,且:

图1是描绘本发明实施例提供的示例性大规模并行处理(massivelyparallelprocessing,简称mpp)数据库架构的方框图;

图2是描绘本发明实施例提供的满足从哈希分布模式转换为混合分布模式标准的数据库节点的示意图;

图3是示出本发明实施例提供的示例性分布转换过程的流程图;

图4是示出本发明实施例提供的示例性记录查询过程的流程图;

图5是示出本发明实施例提供的示例性记录插入过程的流程图;

图6是示出本发明实施例提供的连接语句的并置状态的示例性判断过程的流程图;

图7是示出可实现本发明实施例的示例性计算机系统的方框图。

具体实施方式

现将详细地对本发明的各种实施例、附图示出的示例做出参考。虽然会结合这些实施例进行描述,但可以理解的是它们并不用于将本发明限制于这些实施例。相反,本发明公开旨在覆盖可以包括在由所附权利要求书限定的本发明公开的精神和范围内的替代物、修改和等同物。另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,可以理解的是,实际应用中,可以不包括本发明的这些特定细节。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明的各方面造成不必要地模糊。

该具体实施方式的一些部分按照程序、步骤、逻辑块、处理、以及对计算机存储器中的数据位的操作的其它符号表示来呈现。这些描述和表示是数据处理领域技术人员向该领域其他技术人员有效传达工作实质内容使用的方法。将程序、计算机产生的步骤、逻辑块、过程等一般设想为首尾一致的步骤或指令序列,以产生期望的结果。这些步骤需要物理量的物理操控。通常,并不是完全必须的,这些量以电信号或磁信号的形式存在,可以被存储、转移、合并和比较,否则将在电脑系统中被操控。有时候这种方法被证明是行之有效的,主要出于常见用法的考虑,将这些信号作为比特位、数值、元素、符号、字符、术语、或数字等等。

然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。除非确切地陈述为从以下论述显而易见,否则应了解,在本请求保护的主题中,利用例如“存储”、“创建”、“保护”、“接收”、“加密”、“解密”、“破坏”等术语的论述是指将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据的、包括内嵌系统的计算机系统或集成电路或类似电子计算设备的动作和进程。

然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。除非确切地陈述为从以下论述显而易见,否则应了解,遍及本发明,利用例如“处理”或“存取”或“执行”或“存储”或“呈现”等的术语的论述是指将表示为计算机系统的寄存器和存储器以及其它计算机可读媒体内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据的计算机系统或类似电子计算设备的动作和进程。当某一组件出现在若干实施例中时,使用相同的参考标号表示所述组件与原始实施例中所图示的组件相同。

此处使用的“纯”分布方案可指mpp数据库分布方案,其中,mpp数据库的键值的分布仅采用一种(例如,哈希、范围、列表和循环分布)模式。这是与此处描述的混合分布模式对比而言的,该混合分布模式采用了至少两种分布模式,例如某些键值根据哈希分布进行分布,而其他键值根据随机分布进行分布。

图1示出了本发明实施例提供的系统100,其能够减缓大规模并行处理(massivelyparallelprocessing,简称mpp)数据库中倾斜的发生。所述系统100包括协调节点105,包括存储由所述协调节点的处理器执行的计算机可读指令110的存储器。所述mpp数据库系统100包括在所述协调节点105和数据处理节点120、125和130之间提供通信的互联115。所述处理节点120至130中的每一个包括管理所述mpp数据库100的一个或多个表的段的各个存储器和处理器。所述指令110包括用于针对数据倾斜监控所述处理节点120至130的指令,以及用于制定所述mpp数据库系统100的混合数据分布方案的指令,以防止/解决所述处理节点120至130内的数据倾斜。所述指令110还包括用于在混合数据分布环境中执行查询的指令。本发明mpp数据库的这些和其他特征在下文将进行更详细的论述。协调节点和数据处理节点的分离是逻辑性的,所述协调节点和数据处理节点可实现为一个程序,或一个物理机上或甚至上在不同机器上运行的不同程序。

mpp数据库中的混合数据分布

参见图2,描绘了mpp数据库200的一部分,所述mpp数据库200的该部分包括处理节点205和210。所述处理节点205和210中的每一个用于存储数据库的记录,其中,所述记录按对应于所述处理节点205和210中键值(例如,键值1-8)的分布方式进行组织。在图2的顶部描绘了所述处理节点205和210的初始分布。键值1、3、5和7在处理节点205上分布,而键值2、4、6和8在处理节点210上分布。该分布可根据传统哈希分布方案进行。

如图所描绘的,所述哈希分布方案引起了数据的倾斜。特别地,键值7视为离群点215,比(例如,对应于更多的记录的)其他键值更大。由于倾斜,整个mpp数据库的处理效率可能会减弱,这是因为所述处理节点205和210之间的处理负载不相等。处理节点205上存储的越来越大的数据量可能会导致节点205上存储空间的不足,而与处理节点210的相对较少的记录进行查询的处理时间相比,其也可能导致对彼时记录进行查询的处理时间更长。进一步地,处理节点205上更大数目的记录提高了给定查询包括处理节点205上存储的记录的可能性,还有助于所述mpp数据库中的不均衡处理。由于mpp数据库的首要目标也是均衡处理的首要目标,优选记录在节点间的几乎均等的分布来促成本目标。

根据本发明实施例,通过混合数据分布模式可以解决(即,解决或防止)mpp数据库的数据倾斜。在识别到所述mpp数据库存在数据倾斜时,分布模式可从纯模式(例如,纯哈希分布)转换为混合模式(例如,哈希分布和循环分布)。图2的较低部分描绘了转换为混合分布模式之后的所述处理节点205和210。键值7为展示数据倾斜的离群键值,已分别在节点205和210间重新分配为段220和225。键值7的记录以随机分布方式移动——而在该示例中,仅展示了两个节点;在具有许多节点的mpp数据库中,键值7的记录可以在所有节点间以随机分布模式例如循环分布进行分布。其他键值未改变,继续根据初始分布计划——例如,初始哈希分布计划,进行分布。以下详细描述了mpp数据库中数据倾斜的发生的监控和判断过程,以及在混合分布系统上进行查询的过程。

为了解决mpp数据库中发生倾斜的潜在性,可实现混合分布模式以防止或解决数据倾斜导致的存储不均衡问题。实现混合分布模式的一方面是识别最频繁的键值,这些键值导致系统中的不均衡。这些识别的键值称为离群点集合。例如,该离群点集合可由数据库管理员(databaseadministrator,简称dba)通过dll语句指定。该离群点集合也可在统计时间由mpp数据库(例如,在协调节点上)自动生成。数据库系统通常统计包括分布键值(例如,直方图)的频率的信息。进一步如下所述,可通过将数据倾斜门限应用于分布键值的直方图来识别所述离群点集合。在mpp数据库的运行时间,在使记录分布到处理节点的时间,判断记录的键值是否属于离群点集合。若所述键值不在所述离群点集合中,通过哈希分布模式进行记录的分布。若所述键值属于所述离群点集合,通过随机分布(例如,循环分布)使所述记录分布到处理节点。

以下提供了一种用于生成具有倾斜门限的混合分布表的示例性ddl语句:

创建表t(c1int、c2char(10)、c3文本、c4时戳),通过哈希(c1,c2)分布,例外项:((0、null)、(null、null));

生成的表“t”具有四列,其中通过列1和2的哈希对记录进行分布。例外子句指定了该离群点集合,其中,通过随机分布例如循环进行具有合格的键值的记录的分布。例如,记录(0、null、1、2)和(null、null、3、4)将通过随机分布方法分布到数据节点。

以下提供了另一种用于生成具有倾斜门限的混合分布表的示例性ddl语句:

创建表r(c1int,c2char(10),c2文本,c3时戳),通过哈希(c1,c2)分布,例外项:系统每周一检测门限20%;

生成的表“r”具有三列,通过列1和2的哈希对记录进行分布。该例外子句指示该系统应对分布键(c1、c2)每周进行离群点集合检测。mpp数据库系统初始时将表“r”标记为处于哈希分布模式。在将数据加入系统,该系统检测到与其他节点相比,一个节点逐渐过载时,该系统将发起键列上的统计,以判断是否存在数据倾斜(例如,此时,根据图3描述的流程300,键(c1、c2)的频率超过20%)。若是,基于键值分布选择键的离群点集合,并存储到系统目录中。进一步地,将表“r”标记为处于混合分布模式,所述离群点集合中键的某些记录通过循环算法以异步的方式从过载的节点移动到其他节点。进一步地,插入该表的任何新记录,在变为混合分布模式之后,将通过混合分布(例如,随机分布)进行分布。根据本发明实施例,运行检测算法的频率以及判断倾斜的门限均可配置。

支持mpp数据库的混合分布模式需要可选查询计划的合理创建。特别地,优选地,生成一个查询计划,其针对对包含哈希分布的记录进行的查询进行优化,而生成另一个查询计划,其针对对包含随机分布的记录进行的查询进行优化。因此,对于混合模式下表的查询,协调节点的查询优化器(例如,协调节点105)首先判断包含离群键值的记录是否可能满足查询的应答集合。若那些记录不满足在离群点集合中的资格,这些记录不可能通过随机分布进行分布,该查询计划构建的方式与查询标准哈希分布表时方式相同。若该记录满足在离群点集合中的资格,该查询计划根据循环分布表构建。

以下为一些示例性查询计划,例如,表t(实例化为混合分布表)和r(实例化为纯哈希分布表):

创建表t(c1int,c2char(10),c3文本),通过哈希(c1)分布,例外项:((10000);

创建表r(r1int,r2char(10),r3double),通过哈希(r1)分布;

q1:

从t中选择*,其中c1=10;

计划1:

返回

(从节点1)采集//假设键(10)哈希至节点1

表扫描

表:t

谓词c1=10;

q2:

从t中选择*,其中c1=10000;

计划2:

返回

(从所有节点)采集

表扫描//在所有节点间分布带有键10000的记录

表:t

谓词c1=10000;

q3:

按照c2分组,在c1=r1且c1<10000时,从t连接r中选择c2和sum(r3)

计划3:

返回

哈希聚合(sum)

(从所有节点)采集

哈希聚合(sum)

哈希连接(c1=r1),过滤(c2=r2)

表扫描

表t

表扫描

表r

q4:

按照c2分组,在c1=r1且c<’abc’时,从t左连接r中选择c2和sum(r3)

计划4:

返回

哈希聚合(sum)

(从所有节点)采集

哈希聚合(sum)

哈希连接(c1=r1)

通过哈希重分布

表扫描(过滤c2<’abc’)

表t

表扫描

表r

关于第一选择语句q1,查询指定了不符合离群点(离群点为属于c1=10000的)的记录;因而,针对哈希分布生成计划1,该请求仅发送给一个节点,其根据哈希函数计算(该节点对应键值c10)。

关于第二选择语句q2,查询指定了符合离群点的记录,由于离群键=10000符合例外项,在表生成时指定了例外项(10000)。由于这些记录都满足在离群点集合中的资格,为了将请求发送给mpp数据库的所有节点,且因为记录将会根据随机分布算法在所有节点中分布,生成计划2。

关于第三选择语句q3,查询是连接查询,由于t(c1<10000)上的本地谓词,来自混合分布的t的离群键的记录均不符合该查询。若t为哈希分布,生成计划3。若连接在分布键上(表t的c1和表r的r1),该连接可以在每个数据节点本地进行,无需在数据节点间进行数据交换。

关于最终选择语句q4,查询指定从不能排除在符合离群键之外的键选择记录。特别地,未指定“c1”子集的“c1=r1”上的连接可包括c1=10000。因此,计划4的生成具有保守性且基于表t的循环分布。需要数据移动运算符(重分布或是在一个或这两个表上的广播)来解释所有键值。在示例性计划4中,哈希重分布运算符在表t的表扫描之前指定。根据本发明实施例,重分布运算符容易优化,以仅将包含离群键的记录传送给根据哈希确定的节点。也就是说,不需要移动所有记录,因为通过哈希算法分布的那些记录已经存在于通过哈希函数确定的节点上了。

根据本发明实施例,mpp数据库可自动从具有初始哈希分布模式切换(例如,转换)至具有混合分布模式。mpp数据库能周期性地监控系统数据,在对处理节点中的倾斜进行检测时,mpp数据库转换为混合分布模式。

图3是本发明实施例提供的mpp数据库中表从哈希分布转为混合模式的过程的流程图300。步骤305至340描述了构成本发明各个实施例流程图300描绘的流程的示例性步骤。在一实施例中,流程图300实现为计算机可读介质中存储的并由执行表分布转换过程的计算设备执行的计算机可执行指令。流程300能在mpp数据库运行时间执行。流程300可由mpp数据库系统自主执行。

该过程由协调节点(例如,协调节点105)从步骤305开始,继续进行至步骤310,其中,对mpp数据库的表中的一个或多个节点上的数据分布进行了检查。在步骤315中,判断步骤310中检查的任一节点是否超过所述表的倾斜门限值。若否,所述流程300跳至步骤340,流程结束。若是,所述流程300转到步骤320。

在步骤320中,为分布键列统计列数据,并对键值出现的频率进行检查。所述流程300继续进行至步骤325,其中,对任意键值是否超过mpp系统的倾斜门限进行了判断。若否,所述流程300跳至步骤340,流程结束。若是,确定所述mpp数据库中至少一个键值倾斜,所述流程300转到步骤330。倾斜门限是可配置的,当节点大小(例如,记录的数目)超过门限时可满足该倾斜门限。例如,该数目可以为绝对数(例如,15000个记录)或相对数(例如,100×系统中键的记录的平均数目)。可选地,该门限可基于键值的查询频率。此外,该门限可包括基于时间的(周期性的)门限、用户自定义门限、手动触发的门限、基于数据库记录预测数目(例如,基于相关历史数据记录)的门限,或其他门限,由dba确定。在安装系统时,可设置系统默认门限。

在步骤330中,将表标记为处于混合分布模式,混合分布模式是哈希分布和随机分布(例如,循环分布)的组合。进一步地,将步骤325中确定为倾斜的特定键视作离群键。

在步骤335中,将包含离群键(步骤330中指定的离群键)的部分记录移至mpp数据库中的其他节点。所述记录以随机方式分布,且能够异步移出流程300的执行。因此,所述mpp数据库转换为混合分布模式,其中,根据流程300视作离群点的键值包括随机分布在mpp数据库的处理节点间的记录,而其他键值保持哈希分布。一旦修改了模式,以前的查询计划将会无效,且会创建一个新的查询计划。对于之前已经编译好的暂存的计划,存储的计划将会被删除,且会生成新计划,并继而被存储起来。对于事务一致性,步骤330和步骤335优选一起作为自动操作执行。

虽然所描述的mpp数据库为初始处于哈希分布模式,但也可能为处于其他分布模式(例如,范围、列表)。在任何一种情况下,mpp数据库只采用了一种分布模式,在这个意义上讲初始分布都是“纯的”。因此,与mpp数据库的初始分布模式相对应,mpp数据库的查询计划将是传统的。只有根据指定倾斜门限判断存在倾斜时才会将分布模式转换为混合分布模式。一旦转换为混合分布模式,即对mpp数据库的查询计划进行更新以反映混合性质。具体地,流程300识别并记录(例如,在目录中)哪些记录是离群点且需要根据离群点计划进行查询。其他记录(例如,非离群点)继续根据初始(例如,哈希)计划进行查询。

进一步地,在一实施例中,在步骤330中一个或多个视作离群点的键的记录将继续以随机模式分布,即在初始判断键倾斜之后进入mpp数据库的记录将在mpp数据库的处理节点间进行随机分布。

混合分布模式的mpp数据库通过考虑查询的记录存储在何种分布模式下可有效地查询记录。即,涉及离群点集合中包括的键的记录的查询必须考虑mpp数据库中所有的处理节点,因为这些记录是根据随机(例如,循环)方案分布的。然而,不属于离群点集合的键的记录根据哈希分布进行分布,因而,通过哈希值查找(即,仅在处理节点上存储查询的记录的键)可进行有效的查找。

图4是本发明实施例提供的混合分布mpp数据库中查询记录的过程的流程图400。步骤405至445描述了构成本发明各个实施例流程图400描绘的流程的示例性步骤。在一实施例中,流程图400实现为计算机可读介质中存储的并由执行查询mpp数据库中记录的过程的计算设备执行的计算机可执行指令。

该过程由协调节点(例如,协调节点105)从步骤405开始,继续进行至步骤410,其中,对到mpp数据库的数据请求的过滤标准进行了检查。在步骤415中,对数据请求参考的任意记录是否属于离群点集合(例如,流程300确定的离群点集合)进行判断。若是,所述流程400转到步骤420。在步骤420中,该请求转发给所有处理节点执行,因为(属于离群点集合中键的)这些记录将会在所有处理节点间进行分布。

若否,这些记录不属于任何离群键,且流程400转到步骤425。在步骤425中,具有合格的记录的潜在处理节点通过哈希函数进行计算,因为这些记录将根据哈希分布模式进行分布。该流程继续进行至步骤430,其中,通过哈希函数对请求的目标数据节点进行计算。

在步骤435中,在参与数据节点接收该请求的结果,其中,参与节点根据步骤420或430(取决于记录是否属于离群点集合中的键)进行判断。在步骤440中,产生的记录写入存储设备,且该流程在步骤445结束。

当插入混合分布表的记录到达mpp数据库时,判断记录对应的键是否在离群点集合中。若该键在离群点集合中,系统以循环或随机方式选择节点(例如,目标节点),并将选择的处理节点上的记录写到存储设备上。若该键不在离群点集合中,通过哈希函数选择节点,该记录写入选择的处理节点。若该记录的分布键值在插入语句(例如,无通配符或参数标记符)中指定为原义,目标节点的判断可在语句编译/优化期间静态执行;否则,由事务的协调节点(例如,协调节点105)在执行时间进行动态判断。

参见图5,流程图500描绘了将记录插入混合分布表的过程。步骤505至540描述了构成本发明各个实施例流程图500描绘的流程的示例性步骤。在一实施例中,流程图500实现为计算机可读介质中存储的并由执行在mpp数据库中插入记录的过程的计算设备执行的计算机可执行指令。

该过程由协调节点(例如,协调节点105)从步骤505开始,继续进行至步骤510。在步骤510中,对记录的分布键值进行检查。在步骤515中,对分布键值是否属于离群点集合进行判断。若是,该流程继续进行至步骤520,其中根据随机或循环算法选择mpp数据库中的处理节点。若否,该流程继续进行至步骤525,其中,根据哈希分布模式选择了处理节点。

在步骤530中,将记录发送给选择的处理节点,所述处理节点是根据步骤520或525(取决于这些记录是否属于离群点集合中的键)确定的。在步骤535中,将记录写入选择的处理节点上的存储设备,该流程在步骤540结束。

虽然图5中未描绘,执行删除操作的方式可与插入流程500的方式相似。进一步地,更新操作可分解为删除和插入的组合,其中,删除了老记录且插入了新记录。因此,通过描述的插入和删除组合过程来执行更新。

混合数据分布的表连接

图6是本发明实施例提供的混合分布mpp数据库中连接语句的表的并置情况的判断过程的流程图600。步骤605至640描述了构成本发明各个实施例流程图600描绘的流程的示例性步骤。在一实施例中,流程图600实现为计算机可读介质中存储的并由执行在mpp数据库中执行表连接过程的计算设备执行的计算机可执行指令。一方面,流程图600中描绘的流程用于判断当在混合分布表和哈希分布或混合分布表间进行连接时数据移动运算符是否必须。

该过程由协调节点(例如,协调节点105)从步骤605开始,继续进行至步骤610。在步骤610中,对查询的连接子句进行检查。在步骤615中,对查询中参考的表是否采用兼容的分布模式进行判断。即,若两个表均采用哈希分布模式,或两个表均采用混合分布模式,另外,两个表所分布的节点集合是相同的;则两个表的分布模式视作是兼容的。否则,分布模式视作非兼容的。若分布不是兼容的,可确定连接未能像步骤635中进行的那样并置,该流程在640结束。如上所述,涉及未并置记录的查询必须根据保守查询计划执行,并对mpp数据库中所有的处理节点的记录进行重分布或广播。

若在步骤615中,判断结果为是,所述流程继续进行至步骤620。在步骤620中,对该连接是否包含两个表共享的分布键上的相等谓词进行判断。若否,可确定连接未像步骤635中进行的那样并置,该流程将在640结束。若是,在步骤625中,判断任意离群键(根据随机模式进行分布的离群键)是否满足连接标准。若是,该记录将会在所有处理节点间进行分布,确定该连接不在步骤635中并置,并转到640结束。若否,确定将并置该连接,因为该连接参考的键的记录将根据哈希分布模式在同一处理节点中进行分布。因此,可通过利用哈希值(因为不需要数据移动运算符)引导查询的查询计划进行该查询,且该流程在640结束。

示例性计算系统

根据一实施例,此处描述的技术通过一个或多个专用计算设备实现。可对该专用计算设备进行硬布线以执行该技术,或可包括数字电子设备,例如,持续通过编程执行这些技术的现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或一个或多个专用集成电路(application-specificintegratedcircuit,简称asic),或可包括一个或多个通用硬件处理器,用于通过编程并根据固件、存储器、其他存储设备或其组合中的程序指令执行这些技术。这些专用计算设备也可将定制的硬布线逻辑、asic或fpga与定制程序合并,以完成该技术。专用计算设备可以为数据库服务器、存储设备、台式计算机系统、便携计算机系统、手持设备、网络设备或包含硬布线和/或程序逻辑的其他设备,以实现该技术。

图7示出了本发明各个实施例提供的装置700的示例性配置。可以实现本发明实施例的示例性系统700包括通用计算系统环境。在其最基本配置中,计算系统700通常包括至少一个处理单元701和存储器,以及进行信息传递的地址/数据总线709(或其他接口)。存储器可为易失性的(例如,ram702)、非易失性的(例如,rom703、闪存等)或其组合,其取决于精确配置以及计算系统环境的类型。

计算机系统700也可包括可选的图像子系统705,用于例如通过将信息在通过视频电缆711连接的附加显示设备710上显示信息向计算机用户显示信息。根据本发明实施例,图像子系统705可直接通过视频电缆711耦合至所述显示设备710。在可选实施例中,视频设备710可与所述计算系统(例如,笔记本电脑或上网本显示板)合为一体且不需要视频电缆711。

此外,计算系统700也可有额外特征/功能。例如,计算系统700也可包括额外存储介质(可移动的和/或不可移动的),包括但不限于磁盘、磁带、光盘或光带。图7中通过数据存储设备704示出了该额外存储设备。计算机存储介质包括易失性和非易失性介质、可移动的和不可移动的介质,这些介质在计算机可读指令、数据结构、程序模块或其他数据等信息的任意存储方法或技术中实现。ram702、rom703和数据存储设备704都是计算机存储介质的示例。数据存储设备704可包括混合数据分布模式指令715,其包括处理器(例如,701)可执行的软件,以为所述计算系统700提供此处描述的部分或全部功能。

计算机系统700也包括可选字母数字输入设备706、可选游标控制或引导设备707和一个或多个信号通信接口(输入/输出设备,例如网卡和/或发送器和接收器,也称为“收发器”)708。可选字母数字输入设备706可向中央处理器701发送信息和指令选择。可选游标控制或引导设备707耦合至总线709以向中央处理器701传递用户输入信息和指令选择。信号通信接口(输入/输出设备)708也耦合至总线709,可为串口。通信接口708也可包括无线通信机制。通过通信接口708,计算机系统700可通过互联网、软件定义网络(softwaredefinednetwork,简称sdn)或内联网(例如,局域网)等通信网络通信耦合至其他计算机系统,或可以接收数据(例如,数字电视信号)。

在以上本发明实施例的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,所属领域的普通技术人员将认识到,可以在没有这些具体细节的情况下实践本发明。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明实施例的各方面造成不必要地模糊。尽管为了清楚起见可以将一种方法描绘为一系列经编号的步骤,但所述编号未必指定步骤的次序。应理解,所述步骤中的一些可以跳过、并行执行、或在没有维持严格序列顺序的要求下执行。示出本发明的实施例的图式是半图解的且不按比例,且特别地,尺寸中的一些是为了呈现的清晰性且在绘制的图式中放大示出。类似地,尽管在用于易于描述的图式中的视图大体上示出类似的定向,但在图式中的此描述大部分是任意的。

根据本发明的实施例如此处所述。尽管本发明在具体实施例中已经描述,希望本发明将仅限于所附权利要求书以及可适用法律的规则和原理所需的范围。

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