用于对并行数据库管理系统的外连接的系统和方法技术方案

技术编号:8133919 阅读:236 留言:0更新日期:2012-12-27 12:03
提供了一种对并行数据库管理系统执行外连接的计算机可执行方法。示例性方法包括接收外倾斜值列表(SVL)。外SVL可以包括被指示为倾斜的值。示例性方法还包括接收内SVL。内SVL可以包括被指示为倾斜的值。另外,该示例性方法包括基于外SVL和内SVL跨多个连接实例对外表和内表进行分区。标识缺失的倾斜值。该缺失的倾斜值可以是内SVL的在内表中找不到的值。基于缺失的倾斜值,使用所述多个连接实例施行所述外连接。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
在大规模并行处理(Massively Parallel Processing, MPP)系统中,商业智能(Business Intelligence, BI)和企业数据仓库(Enterprise Data Warehouse, EDW)应用处理大量的数据。该数据(关系表集)驻留在非常大的数据库系统中,该非常大的数据库系统依靠大数目的中央处理单元(CPU)来高效地执行数据库操作。MPP系统试图在可用的处理器之间均一地分配数据,并且然后并行地施行预期操作,而不是串行地施行该操作。基本且最常见的数据库操作之一是两个关系表之间的连接。连接操作器基于各表中的列之间的匹配准则组合来自两个表的记录。例如,通过匹配两个表上的列produc t_i d,可以把表LINEITEM连接到表PRODUCT,以得到具有它们的产品信息的所有行项集。在查询执行树中,连接操作常常是计算开销最高的操作,并且其性能指示了该查询的整体性能。 为了并行地高效施行连接操作,该系统基于连接列(上面的示例中的product_id)的值对来自两个表的数据流进行分区。也就是说,保证具有来自任一表、或者孩子的连接列的或连接的相同值的所有记录都被发送到同一中央处理单元(CPU)。因而,所有连接匹配都可以被在每个CPU中本地地且独立于其他CPU地找到。当记录被均匀地分配吋,此按值分区模式效果好。使用良好的哈希函数确保了不同的值被均匀地(或伪随机地)分配给所有处理器。然而,良好的哈希函数不保证记录被均一地分配,因为不是所有的不同的值在该数据集中都具有相同的出现频率。当ー个值具有比每个CPU的平均记录数高的出现频率时,该问题变得明显。这被称为数据倾斜(skew)或傾斜。在倾斜的情况下,通过频率值选择的CPU将处理与平均值相比显著更高数目的记录,这可能显著劣化查询响应时间。附图说明在以下详细描述中且參考附图来描述特定的示例性实施例,其中 图IA是依据本专利技术的示例性实施例的被适配为执行倾斜外连接的系统的框 图IB是依据本专利技术的示例性实施例的被适配为执行倾斜外连接的并行数据库管理系统的框 图2是表示依据本专利技术的示例性实施例的操作器的逻辑视图的框 图3A是表示依据本专利技术的示例性实施例的用于SQL STATEMENT I的混合交換操作器的逻辑视图的框 图3B是表示依据本专利技术的示例性实施例的用于SQL STATEMENT 2的混合交換操作器的逻辑视图的框 图3C是表示依据本专利技术的示例性实施例的查询计划134的扩展逻辑视图的框 图3D是表示依据本专利技术的示例性实施例的用于SQL STATEMENT 2的查询计划的框图; 图4是依据本专利技术的示例性实施例的用于执行查询的计算机可执行方法的处理流程 图5是示出依据本专利技术的示例性实施例的存储被适配成执行查询的代码的有形机器可读介质的框图。具体实施例方式图IA是依据本专利技术的示例性实施例的被适配为执行查询的系统的框图。该系统通常由附图标记100指代。本领域普通技术人员将意识到图I中所示出的功能框和设备可以包括硬件元素、软件元素或者硬件元素和软件元素这二者的组合,所述硬件元素包括电路,所述软件元素包括存储在有形机器可读介质上的计算机代码。另外,系统100的功能框和设备是可以在本专利技术的示例性实施例中实施的功能框和设备的仅ー个示例。基于针对特定电子设备的设计考虑,本领域普通技术人员将能够容易地定义特定的功能框。该系统100可以包括通过网络130通信的数据库服务器102和一个或多个客户端计算机104。如图IA中所图示的,数据库服务器102可以包括并行地进行动作的多个处理 器112。处理器112可以通过总线113连接到显示器114、键盘116、ー个或多个输入设备118和诸如打印机120之类的输出设备。输入设备118可以包括诸如鼠标或触摸屏之类的设备。在本专利技术的示例性实施例中,在大規模并行处理系统(MPP)中,该系统100可以包括多个数据库服务器102。在这样的示例性实施例中,该系统100可以包括无共享架构。数据库服务器102还可以通过总线113连接到网络接ロ卡(NIC)126。NIC 126可以把数据库服务器102连接到网络130。网络130可以是局域网(LAN)、广域网(WAN)、或者另ー网络配置,诸如因特网。网络130可以包括路由器、交換机、调制解调器、或者被用于互联的任何其他种类的接ロ设备。通过网络130,若干客户端计算机104可以连接到数据库服务器102。除了数据库管理系统(DBMS) 124的存储之外,客户端计算机104可以与数据库服务器102类似地进行构造。在示例性实施例中,客户端计算机104可以用来向数据库服务器102提交查询以便由DBMS 124执行。数据库服务器102可以具有在工作中通过总线113耦合到处理器112的其他单元。这些单元可以包括有形机器可读存储介质,诸如存储设备122。存储设备122可以包括用于操作软件和数据的长期存储的介质,诸如硬驱动器。存储设备122还可以包括其他类型的有形机器可读介质,诸如只读存储器(ROM)、随机存取存储器(RAM)以及高速缓冲存储器。存储设备122可以包括在本技术的示例性实施例中所使用的软件。存储设备122可以包括DBMS 124、缺省表129、和查询128。DBMS 124可以是ー套计算机程序,其控制由组织和其端用户对数据库的创建、维护和使用。在本专利技术的示例性实施例中,DBMS 124可以是并行DBMS。參考图IB来更详细地描述DBMS 124。查询128可以是某类常见数据库查询中的任何。更具体地,查询128可以指定OUTER JOIN (外连接)操作。JOIN (连接)操作可以组合来自两个或多个数据库表的记录。JOIN可以通过使用对于每个而言共有的值来组合来自两个表的字段。JOIN的两个典型类型包括内和外。内连接可以通过基于连接谓词(join-predicate)组合两个表的列值来创建结果。连接谓词可以指定用于两个表中的列的条件表达式。此后,连接谓词的列可以被单独地称为连接列。内连接可以把第一表的连接列和第二表的连接列进行比较以找到满足该连接谓词的所有的行对。当满足连接谓词时,每个匹配的行对的列值可以被组合成结果行。使用以下表来进ー步图示连接的操作本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种对并行数据库管理系统执行外连接的计算机可执行方法,包括 接收外倾斜值列表(SVL),其包括对于所述外连接的外表而言被指示为是倾斜的ー个或多个值; 接收内SVL,其包括对于所述外连接的内表而言被指示为是倾斜的ー个或多个值; 基于所述外SVL和所述内SVL,跨多个连接实例对所述外表进行分区; 基于所述外SVL和所述内SVL,跨所述多个连接实例对所述内表进行分区; 标识缺失的倾斜值,所述缺失的倾斜值是所述内SVL的在所述内表中未找到的值;以及 基于所述缺失的倾斜值,使用所述多个连接实例施行所述外连接。2.如权利要求I所述的计算机可执行方法,其中施行所述外连接包括使用所述多个连接实例中的仅ー个连接实例针对所述缺失的倾斜值生成空实例化的行。3.如权利要求2所述的计算机可执行方法,包括选择所述仅ー个连接实例。4.如权利要求2所述的计算机可执行方法,其中生成所述空实例化的行包括 选择所述外表的外行; 确定所述外行包括所述缺失的倾斜值;以及 生成结果行,所述结果行包括针对所述外表的连接列值和针对所述内表的空值。5.如权利要求4所述的计算机可执行方法,包括生成包括所述内SVL的哈希表,其中确定所述外行包括所述缺失的倾斜值是基于所述哈希表的。6.如权利要求I所述的计算机可执行方法,包括编译所述查询,其中编译所述查询包括生成查询计划,所述查询计划接收所述外SVL、接收所述内SVL、对所述外表进行分区、对所述内表进行分区、标识所述缺失的倾斜值以及施行所述外连接。7.如权利要求6所述的计算机可执行方法,其中编译所述查询包括选择所述仅ー个连接实例。8.如权利要求6所述的计算机可执行方法,其中编译所述查询包括 生成所述内SVL ; 生成所述外SVL ;以及 协调所述内SVL和所述外SVL。9.如权利要求8所述的计算机可执行方法,其中协调所述内SVL和所述外SVL包括 标识所述外SVL和所述内SVL的共有值;以及 基于所述共有值是否以更小的频率出现在所述内表或者所述外表中,从所述内SVL和所述外SVL中的ー个去除所述共有值。10.如权利要求I所述的计算机可执行方法,其中对所述外表进行分区包括下列中的至少ー个 把所述外表的外行的拷贝指派给所述多个连接实例中的所有连接实例; 基于均匀分配算法把所述外行指派给所述多个连接实例中的ー个连接实例;以及 基于按值分区算法把所述外行指派给所述多个连接实例中的该ー个连接实例。11.ー种用于对并行数据库管理系统(DBMS)执行外连接的计算机系统,所述计算机系统包括 多个处理器,其被适配为执行存储的指令;和存储器设备,其存储指令,所述存储器设备包括 并行DBMS ; 被适配为对指定外连接的查询进行编译的计算机可执行代码; 被适配为接收外倾斜值列表(SVL)的计算机可执行代码,所述外倾斜值列表(SVL)包括被指示为倾斜的用于所述外连接的外表的一个或多个值; 被适配为接收内SVL的计算机可执行代码,所述内SVL包括被指示为倾斜的用于所述外连接的内表的一个或多个值; 被适配为基于所述外SVL和所述内SVL跨多个连接实例对所述外表进行分区的计算机可执行代码; 被适配为基于所述外SVL和所述内SVL跨多个连接实例对所述内表进行分区的计算机可执行代码; 被适配为标识缺失的倾斜值的计算机可执行代码,所述缺失的倾斜值是所述内SVL的不存在于所述内表中的值;以及 被适配为基于所述缺失的倾斜值、使用...

【专利技术属性】
技术研发人员:AK阿尔奥马里Q陈
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:
国别省市:

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

1