用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法

文档序号:8548087阅读:506来源:国知局
用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法
【专利说明】用于灵活的分布式大规模并行处理(MPP)数据库的系统和方法
[0001]相关申请案交叉申请
[0002]本发明要求于2012年10月29日递交的发明名称为“用于灵活的分布式大规模并行处理(MPP)数据库的系统和方法”的第13/663,237号美国专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
[0003]本发明涉及一种大规模并行处理(MPP)数据库管理系统,以及在特定实施例中,涉及一种能将数据库分区数与固定处理器数分离的管理系统。
【背景技术】
[0004]大规模并行处理(MPP)的概念是指多个处理器对一个程序的协调处理,其中每个处理器处理所述程序的不同部分。每个处理器使用自身的操作系统与内存资源,各处理器之间互相通信以完成任务。
[0005]MPP数据库系统基于无共享架构,数据库表划分成多个部分,并分配至不同的处理节点。处理节点间无数据共享。当数据库查询到达时,每条查询的任务会进行划分,并根据数据分配计划与优化的执行计划将其分配给其中的一个处理节点。每个处理节点中的处理实体只管理各自的一部分数据。但是,这些处理实体在执行工作时可互相通信以交换必要的信息。每条查询可拆分成多个子查询,这些子查询可以在部分或所有处理节点上并行执行或以最佳顺序执行。子查询结果可以汇聚以进行进一步的处理,其后可根据该结果执行更多的子查询。
[0006]建立分布式系统及分发数据一直是MPP数据库系统面临的一个挑战。数据如何分发以及分发在多大程度上与业务逻辑保持一致在很大程度上决定了系统的整体性能。

【发明内容】

[0007]一种用来在逻辑上将数据库拆分为多个独立运行的小数据库的实施例方法,包括:将主键分配给数据库中的第一数据表、将外键分配给所述数据库中的第二数据表,所述第二数据表的外键与所述第一数据表的主键完全相同;确定所述数据库需要的分区组数;基于分配的所述主键和需要的分区组数将所述第一数据表划分成多个第一分区;基于分配的所述外键和需要的分区组数将所述第二数据表划分成多个第二分区;根据分区情况将所述第一分区和第二分区分发到所述分区组。
[0008]一个用来在逻辑上将数据库拆分为多个独立运行的小数据库的实施例,包括:确定数据库需要的分区组数;基于第一属性与需要的分区组数将第一数据表划分成多个第一分区;基于第二属性与需要的分区组数将第二数据表划分成多个第二分区;根据分区情况将所述第一分区和第二分区分发到所述分区组。
[0009]一种用来建立大规模并行处理系统的实施例装置,包括:处理器、以及数据库建立模块,当数据库建立模块被处理器执行时,用于分配主键给数据库中的第一数据表,分配外键给所述数据库中的第二数据表,其中所述第二数据表的外键与所述第一数据表的主键完全相同;确定数据库需要的分区组数;基于分配的所述主键和需要的分区组数将所述第一数据表划分成多个第一分区;基于分配的所述外键和需要的分区组数将所述第二数据表划分成多个第二分区;根据分区情况将所述第一分区和第二分区分发到所述分区组。
[0010]一种大规模并行处理的实施例数据库系统,包括:至少一个内存,以及存储在至少一个内存上的数据库,所述数据库包括第一数据表和第二数据表,其中所述第一数据表和第二数据表通过以下建立:分配主键给所述数据库中的所述第一数据表和外键给所述数据库中的第二数据表,其中所述第二数据表的外键与所述第一数据表的主键完全相同;确定数据库需要的分区组数;基于分配的所述主键和需要的分区组数将所述第一数据表划分成多个第一分区;基于分配的所述外键和需要的分区组数将所述第二数据表划分成多个第二分区;根据分区情况将所述第一分区和所述第二分区分发到所述分区组。
【附图说明】
[0011]为了更全面地理解本发明及其优点,请参考下文结合附图进行的描述,其中:
[0012]图1示出了具有无分区的数据表(例如,tl至t4)的传统数据库;
[0013]图2示出了具有已分区数据表(例如,tl至t3)和无分区数据表(例如t4)的传统数据库;
[0014]图3示出了实施例数据库,其具有包含了已分区数据表(例如,tl至t3)和无分区数据表(例如,t4)的各类分区(tl-pl、tl-p2、tl-p3、t2-pl等)的分区组(例如,DBPartit1n-1、DBPartit1n_2、DBPartit1n-3);
[0015]图4为创建图3中的数据库、数据表和分区组的概要流程图;
[0016]图5为创建图3中分区组的流程图;
[0017]图6为用于流程图3中分区组的插入操作的流程图;
[0018]图7为从图3的分区组中检索数据过程的流程图;
[0019]图8为在图3的分区组中更新数据过程的流程图;
[0020]图9为一种用于建立大规模并行处理系统的装置;
[0021]图10为一种大规模并行处理数据库系统。
[0022]除非另有说明,在不同的图中,相应的编号和符号通常指对应的部件。图形的绘制旨在清楚地说明实施例的相关方面,但未必按比例绘制。
【具体实施方式】
[0023]下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供许多可在各种具体环境中具体实现的适用的发明性概念。所论述的具体实施例仅为说明性的,并不限制本发明的范围。
[0024]本发明将结合具体环境下的优选实施例,即大规模并行处理(MPP)数据库及其管理,进行说明,但本发明中的概念也可适用于其他种类的数据库与数据管理系统。
[0025]现在参照图1,出于参考的目的,图1示出了无分区的传统或典型的大规模并行处理(MPP)数据库10。如图所示,数据库10包括四个数据表12(即tl至t4)。每个所述数据表12包括若干列14(例如,cl、c2、c3等)。随着附加数据或新数据的填充,数据表12的大小会快速扩张,使单个处理器无法有效处理。为提高效率,可对变大的数据表14进行分区。
[0026]现在参照图2,出于参考的目的,图2示出了具有已分区数据表18(例如,tl至t3)和无分区数据表20(例如,t4)的传统或典型的大规模并行处理(MPP)数据库20。如图所示,已分区数据表18 (例如,tl至t3)已划分为分区22 (例如,tl-分区l、tl-分区2、tl-分区3、t2-分区2等)。其中一个所述数据表20 (例如,t4)与其他数据表相比可能相对较小,没有进行分区。不巧的是,每个所述分区22与所述未分区数据表20被分配给了不同的处理器,并保存在不同的内存或存储设备上。因此,对所述数据库16的任何查询可能要使用连接命令,需要使用数个处理器,并必须访问数个不相关的内存或存储设备,以在各个分区中检索数据。这种查询过程效率较低。
[0027]现在参照图3,图3示出了一种大规模并行处理(MPP)数据库24的实施例。图3中的数据库24通过分配主键给第一数据表26 (即tl,分区前)、分配外键给第二数据表28 (即t2,分区前)而创建。所述第二数据表28的外键与所述第一数据表26的主键完全相同。这样,第一、第二数据表之间就建立了关系。所述主/外键可以基于数据类型或数据表每列(例如,Cl、c2、c3等)存储的值分配给每个所述的数据表。
[0028]还可以将主、外键分配给数据库24中的第三数据表30 (例如,t3,分区前)或者附加数据表。举例来说,第三数据表30的外键与第一数据表26的主键或者第二数据表28的主键完全相同。这样,第一、第三数据表之间或者第二、第三
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1