CN105814562A - 用于在线无共享数据库的扩充的递增和并置的重新分布 - Google Patents
用于在线无共享数据库的扩充的递增和并置的重新分布 Download PDFInfo
- Publication number
- CN105814562A CN105814562A CN201480067841.2A CN201480067841A CN105814562A CN 105814562 A CN105814562 A CN 105814562A CN 201480067841 A CN201480067841 A CN 201480067841A CN 105814562 A CN105814562 A CN 105814562A
- Authority
- CN
- China
- Prior art keywords
- data
- new
- interval
- distribution key
- subregion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于在线无共享数据库的扩充的递增和并置的重新分布。提供了用于在线无共享数据库中进行数据的重新分布的系统、方法和计算机程序产品,所述无共享数据库包括多个原始分区和至少一个新分区。所述方法包括:并置集合标识符,用于识别原始分区中要在原始分区和至少一个新分区上重新分布的两个或更多个并置表,所述表具有数据行,每个数据行驻留在由分布键支配的分区上;表工厂,用于在新分区中创建对应的新表;视图创建器,用于利用检查约束创建来自原始表和新表二者的所有数据的UNION ALL视图,所述检查约束又基于分布键;计数器,用于在分布键范围上定义区间的循环;数据移动器,用于在当前的分布键区间上执行每个数据行从原始表到新表的数据移动;数据改变器,用于更改针对每个分布键区间的检查约束,使得UNION ALL视图被保留,由此确保并置和数据完整性得以维持;及循环完成器,用于循环回下一个分布键区间,直到所有分布键区间都已经被处理,使得所有数据都被移动到新表,由此并置和数据完整性得以维持、重新分布对于对数据库执行的查询是透明的并且表在重新分布期间对于读和写是完全可用的。
Description
技术领域
本发明涉及用于在线无共享数据库的扩充的递增和并置的重新分布的方法和装置。
背景技术
在无共享(sharednothing,SN)数据库中,数据被划分成分区(也被称为碎片)并且放在具有本地盘储存器、存储器和中央处理单元(CPU)的一个或多个节点或个人机器上。分区、节点和机器通过高速互连连接到彼此,通过这种高速互连,所有数据库的分区间通信得以促进。除了通过该高速互连,每个分区不能对其它分区和节点上的数据直接进行访问。通常,每节点存在被自动配置的固定数量的分区,如由配置文件所定义的。
SN数据库管理器在跨分区数据库的多个数据库分区传播数据时允许很大的灵活性。用户可以通过声明分布键来选择如何分布他们的数据,并且可以通过选择其中数据要被存储的数据库分区组和表空间来确定他们的表数据可以跨哪些以及多少数据库分区进行传播。此外,(可更新的)分布图指定散列分配键值到数据库分区的映射。这使得有可能跨分区数据库对大的表有灵活的工作负荷并行化,同时允许较小的表存储在一个或少数几个数据库分区上,如果应用设计者这样选择的话。
在分区数据库中,分布键被用来跨一组数据库分区分布表和索引数据。用于分区数据库分区组上的表空间中的表的分布键在CREATETABLE语句或ALTERTABLE语句中指定。行被如下放在数据库分区中:散列算法(数据库分区函数)被应用到分布键的所有列,这导致分布映射索引值的生成;并且在分布映射中处于那个索引值的数据库分区编号识别行要被存储在其中的数据库分区。
参考图1中的示例分布映射和分布键,分布键是用于映射到分布映射中的分区(在该例中是p5)上的一行数据的一列或多列(在该例中是c1和c3)的内容,这是利用散列分布键值2通过分布映射索引来识别的。
数据库管理器支持部分去聚类,这意味着表可以跨系统中数据库分区的子集(即,数据库分区组)来分布。表不必跨系统中所有数据库分区分布。数据库管理器具有识别对于连接或子查询被访问的数据何时位于同一数据库分区组中同一数据库分区的能力。这被称为表并置。并置表中具有相同分布键值的行位于相同的数据库分区上。数据库管理器可以选择在数据被存储在其中的数据库分区执行连接或子查询处理。这具有非常显著的性能优势。
并置表必须:在相同的数据库分区组中并且具有相同的分布映射;具有带相同数量的列的分布键;分布键的对应列是数据库分区兼容的(例如,兼容的数据类型);并且在相同的数据库分区上定义的单个分区数据库分区组中。
在数据仓库中,事实表和它最大的维度表通常被并置。例如,图2绘出了众所周知的基准工作量中两个最大的表的连接。在这个例子中,ORDERS表(维度表)和LINEITEM表(事实表)都分布在orderkey列上并且跨这两个表的连接操作在包含分区组的每个分区上本地处理,从而产生显著的性能节省。
挑战是在通过新节点的添加扩充SN分区数据库的同时维持性能。当分区数据库被扩充成包括新供应的节点和分区时,分区组必须被扩充成包括新供应的分区。为了维持数据对于跨扩充的系统的每个表的平衡分配,并且为了允许现有分区的未来增长,数据必须跨系统重新分布。重新分布过程涉及横跨扩充的系统中所有分区的分区组的分配,然后是该分区组中每个表行基于新分区映射的重新分派。这个过程会花费显著量的时间,例如,重新分派数十或数百TB的数据要花几天的时间。通常,这个过程是作为离线活动执行的并且会需要数天中断。
在重新分布过程中的一个主要困难是并置在操作期间没有得以维持。由于分区组中的表是按顺序一次一个重新分布的,因此连接的表的分区映射将有所不同,直到分区组中的所有这些连接的表都已经被重新分布。另一个挑战是在维持对数据的完全访问的同时,对于新的数据库映射,递增地将每个表和其中的行数据透明地重新分布到最终用户而不会招致需要数据的两个拷贝(现有的和新的)被移动的能力。
在现有技术中存在用于将表在线移动到新分区组/映射的技术。例如,US20090319581A1公开了一种用于表的在线移动的方法,其需要表的两个拷贝被移动,但在移动期间不维持表之间的并置。
另一个现有专利公开US20110295907A1公开了用于扩充SN数据库的装置和方法以及在最小化停机时间的同时重新分布SN数据库的技术,但是,这种方法不提供数据的并置的保存或完全可用性并且需要数据的两个拷贝。
另一个现有专利公开US20120246194A1提供了通过将具有先前遇到的分布键的数据放在相同的数据库分区中并且将其分布键先前没有遇到的数据放在新数据库分区中来维持并置。换句话说,这种方法尝试完全省却数据重新分布。但是,这种方法实际上会导致永久不平衡的分区组(因为仅用于新分布键的数据被放在新分区上),从而总是导致性能和调整问题,并且会导致现有节点耗尽可用存储的临界场景,尤其是在基于同质设备的集群中。
发明内容
在本发明的第一方面,提供了用于在在线无共享数据库中进行数据的重新分布的系统,所述无共享数据库包括多个原始分区和至少一个新分区,所述方法包括:并置集合标识符,用于识别原始分区中要在原始分区和至少一个新分区上重新分布的两个或更多个并置表,所述表具有数据行,每个数据行驻留在由分布键支配的分区上;表工厂,用于在新分区中创建对应的新表;视图创建器,用于利用检查约束创建来自原始表和新表的所有数据的UNIONALL视图,所述检查约束又基于分布键;计数器,用于在分布键范围上定义区间的循环;数据移动器,用于在当前的分布键区间上执行每个数据行从原始表到新表的数据移动;数据改变器,用于对每个分布键区间更改检查约束,使得UNIONALL视图被保留,由此确保并置和数据完整性得以维持;循环完成器,用于循环回下一个分布键区间,直到所有分布键区间都被处理,使得所有数据都被移动到新表,由此并置和数据完整性得以维持、重新分布对于对数据库执行的查询是透明的,并且表在重新分布期间对于读和写是完全可用的。
重新分布是在无共享数据库在线时发生的;即,无共享数据对于由任何连接的外部实体进行的读和写是完全可用的。
在本发明的第二方面,提供了用于在在线无共享数据库中进行数据的重新分布的方法,所述无共享数据库包括多个原始分区和至少一个新分区,所述方法包括:识别原始分区中要在原始分区和至少一个新分区上重新分布的两个或更多个并置表,所述表具有数据行,每个数据行驻留在由分布键支配的分区上;在新分区中创建对应的新表;利用检查约束创建来自原始表和新表的所有数据的UNIONALL视图,所述检查约束又基于分布键;在分布键范围上定义区间的循环;在当前的分布键区间上执行每个数据行从原始表到新表的数据移动;对每个分布键区间更改检查约束,使得UNIONALL视图被保留,由此确保并置和数据完整性得以维持;循环回下一个分布键区间,直到所有分布键区间都被处理,使得所有数据都被移动到新表,由此并置和数据完整性得以维持、重新分布对于对数据库执行的查询是透明的,并且表在重新分布期间对于读和写是完全可用的。
实施例确保查询性能在重新分布期间被维持。
有利地,通过利用UNIONALL视图的行移动特征,数据在原始表与新表之间被重新定位。
更有利地,在当前区间中更新用于给定行的指示符列将启动行移动特征并且将行从原始表移动到新表中。
甚至更有利地,创建横跨现有分区和新分区的新分区组,具有关联的新分布映射,其中各个分区被定义为被移动的数据的发送者或接收者。分区从来都不会同时是数据的发送者和接收者并且这减少了重新分布期间网络流量的量。
还有更有利地,新分区组是通过以下创建的:提取现有分区组的数据定义;修改数据定义,以结合新分区;执行修改后的数据定义。
优选地,并置表的两个或更多个集合位于现有分区组内的两个或更多个分区上。该分区组中被重新分布的表被分类为属于“并置集”。并置集是一组并置表,即,参与并置连接的表。
更优选地,每个区间相对于整个表是小的(通常是大约1%),以便最小化空中数据对性能的任何影响。
还有更优选地,行从原始表递增移动到新表并且是按批提交的。提交尺寸相对于整个区间保持小(通常是大约10000行),使得递增移动最小化锁定并且维持表对查询或者其它数据操纵语言(DML)操作的完全可用性。
还有更优选地,对当前分布键区间插入的新行被转移到新表。这被执行,因为没有为指示符列(也被称为空中指示符)供给值并且在该区间中不需要第二次通过所述行。
作为替代,区间可以利用来自数据库目录的统计数据重新分布进行加权,使得所有的区间都包含大致相同的数据量。对于这种备选实施例的描述,参见图8B。
一种如前所述的方法,其中性能数据(为了以后分析)在移动行之后被存储。
指示符列被添加到原始表和新表,作为可为空的列,最初在现有表上具有缺省值Y并且在目标表上具有NULL。这是个隐藏列,其对用户是不可见的。重要的是,对于可为空的列,实际上不需要对表进行结构变化和数据更新,因此它是个瞬时操作,无需附加的存储。数据库管理系统(DBMS)只在这个指示符列被查询时才返回缺省值(或者,如果没有设置的话,为NULL)。
在每个区间都完成后,分布键值的范围在表的原始版本与新版本之间是一致的,因此并置连接在原始表之间并且在新表之间实现。
在每个区间后,现有的DBMS在线重组实用程序被执行,以回收在该区间中从原始表被删除的行的盘存储。
在最后的分布键区间被处理后,对于并置集中的每个表,UNIONALL视图和现在空的原始表被丢弃并且新表被重命名为原始名字。以这种方式,分区组中的所有并置集被依次重新分布。然后,独立且未并置的任何表以类似的方式被重新分布,但无需维持并置。
最后,原始分区组和关联的分区映射从数据库目录中被除去。在这个时候,在线重新分布完成,并且数据跨所有数据库分区均匀且统一地平衡。
新分区是新数据库分区,也被称为碎片或水平分区。为每个原始表创建新表,在新扩充的分区组中具有新分区映射。UNIONALL视图在原始表和新表中的每一个上创建,以便作为用于重新分布操作的持续时间的单个实体给出驻留在表中的数据。对分布键列的检查约束应用到原始表和新表。最初检查约束强制所有行都位于原始表中。分布键横跨的值范围被细分成固定数量的升序值的区间。迭代地,用于每个区间的行对于并置集中的每个表从关联的原始表移动到关联的新表。检查约束对每个区间更改,以反映用于关联的分布键范围的数据的新位置。
UNIONALL视图是一种特殊形式的视图,它允许来自多个表的数据呈现给最终用户,就好像数据驻留在单个表中。UNIONALL视图不是数据的物理物化,而是纯粹为了将对视图的查询路由到底层表的机制。可以有两个或更多个基础表。如果包括对表T1和T2的SELECT的UNIONALL视图V1连接到包括对表T3和T4的SELECT的另一UNIONALL视图V2,并且如果T1和T3并置并且T2和T4也并置,并且在视图中存在将分布键约束到并置表(T1&T3和T2&T4)上相同范围的检查约束或谓词,则DBMS优化器将把V1到V2的连接重写为T1到T3的并置连接与T2和T4的并置连接的联合。换句话说,如果两个视图V1和V2是如下被创建的:
CREATEVIEWV1asSELECT*FROMT1UNIONALLSELECT*FRPMT2WITHROWMOVEMENT
CREATEVIEWV2asSELECT*FROMT3UNIONALLSELECT*FROMT4WITHROWMOVEMENT
则,SELECT*FROMv1JOINV2ONV1.keycol=V2.keycol
被优化器重写为:
SELECT*FROMT1JOINT3ONTI.keycol=T3.keycolUNIONALLSELECT*FROMT2JOINT4ONT2.keycol=T4.keycol
重要的是,包括UNIONALL视图的表可被放在不同的分区组中或者具有不同的分区映射。
优化器依靠“检查约束”来解析哪个表包含匹配所提供的谓词的行。用于UNIONALL视图的每个构成表的检查约束是强制执行的约束,它们是不重叠的并且唯一地定义对其应用DML操作(例如SELECT、INSERT、UPDATE或DELETE)的表。ROWMOVEMENT子句指示被改变成使检查约束被违反的任何行都被自动移动到视图中的另一个表。
由于SN数据库中的重新分布进行操作并且对于使用SN数据库的数据库过程是不可见的,实施例提高了在SN数据库外部执行的数据库过程的质量和效率。
实施例具有在计算机系统的系统级操作的效果,其中系统级是透明的并且在叠加的应用级下方。
实施例具有导致使SN数据库重新分布实时地并且因而以新方式操作的效果。
实施例具有导致SN数据库的速度或可靠性提高的效果。
在本发明的第三方面,提供了用于在无共享数据库中进行数据的在线重新分布的计算机程序产品,该计算机程序产品包括其中包含计算机可读程序代码的计算机可读存储介质并且计算机可读程序代码被配置为执行方法的所有步骤。
计算机程序产品包括一系列计算机可读指令,所述指令或者固定在有形介质上,该介质诸如计算机可读介质,例如光盘、磁光盘、固态驱动器,或者利用调制解调器或其它接口设备经有形介质,包括但不限于光学或模拟通信线路,或无形地利用无线技术,包括但不限于微波、红外线或其它传输技术,可发送到计算机系统。计算机可读指令系列体现前述功能的全部或部分。
本领域技术人员将认识到,这种计算机可读指令可以以多种编程语言编写,供许多计算机体系架构或操作系统一起使用。另外,这种指令可以利用现在的或将来的任何存储技术存储,该存储技术包括但不限于半导体、磁或光,或利用现在的或将来的任何通信技术发送,该通信技术包括但不限于光、红外线或微波。可以预期,这种计算机程序产品可以作为具有附带的打印或电子文档的可移动介质分发,例如,预加载了计算机系统的收缩薄膜包装的软件,例如在系统ROM或固定盘上,或者经网络,例如互联网或万维网,从服务器或电子公告板分发。
在本发明的第四方面,提供了存储在计算机可读介质上并加载到计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行方法权利要求的所有步骤。
在本发明的第五方面,提供了包括功能性计算机数据结构的优选实施例的数据载体方面,当该数据结构被加载到计算机系统中并由此对其操作时,使得所述计算机系统执行方法权利要求的所有步骤。合适的数据载体可以是固态存储器、磁驱动器或光盘。用于数据传输的信道同样可以包括所有描述的存储介质以及信号承载介质,诸如有线或无线信号承载介质。
附图说明
现在将参考以下附图仅仅作为例子描述本发明的优选实施例,其中:
图1是现有无共享数据库的示例分布映射和键的关系图;
图2是众所周知的基准工作量中两个最大的表的图;
图3是优选实施例的示意性部署图;
图4是优选实施例的示意性部件图;
图5A至5D是优选实施例方法的流程图;
图6是并置表从原始分区到新分区被重新分布的示例分布,同时对所有分区维持同时的UNIONALL视图;
图7示出了用于优选实施例的分布键区间的表;
图8A和图8B分别比较用于优选实施例与备选实施例的两种类型的区间分布;及
图9A、9B和9C示出了在重新分布操作期间对原始表的简单SELECT查询的示例执行计划图。
具体实施方式
参照图3,描述无共享数据库10中优选实施例的部署。无共享数据库10对于众多其它通用或专用计算系统环境或配置是可操作的。可适合与无共享数据库10一起使用的众所周知的计算机处理系统、环境和/或配置的例子包括,但不限于,个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机系统、大型机计算机系统和包括任何上述系统或设备的分布式云计算环境。
无共享数据库10可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机处理器执行的程序模块。一般而言,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、逻辑以及数据结构。无共享数据库10可以在分布式云计算环境中体现,其中任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质二者中。
优选实施例的无共享数据库10包括:多个通用计算机服务器12A至12N、直接附连到计算机服务器12A和高速互连20的一个或多个输入设备14A和输出设备16A。无共享数据库10利用输入设备14A和输出设备16A与用户18A通信。输入设备14A包括键盘、扫描仪、鼠标、轨迹球或其它定点设备当中一个或多个。输出设备16A包括显示器或打印机当中一个或多个。
计算机服务器12A被更详细地进行描述并且这种详细描述也适用于对计算机服务器12B至12N的对应变化。因此,计算机服务器12B至12N包括与12A类似的部件,但只示出关键的实施例部件。
计算机服务器12A包括:中央处理单元(CPU)22A;高速网络适配器24A;设备适配器26A;总线28A和存储器30A。
CPU22从存储器30A加载机器指令并且响应于指令而执行机器操作。这种机器操作包括:递增或递减寄存器(未示出)中的值;从存储器30A将值转移到寄存器或者反过来;如果条件为真或假,则分支到存储器中的不同位置(也称为条件分支指令);以及将两个不同的寄存器中的值相加或相减并且在另一个寄存器中加载结果。典型的CPU可以执行许多不同的机器操作。一组机器指令被称为机器代码程序,机器指令是用被称为低级语言的机器代码语言编写的。用高级语言编写的计算机程序需要在可以运行之前被编译成机器代码程序或者代替地根据机器指令被解释。
高速网络适配器24A连接到总线28A和高速互连20,用于启用计算机服务器12A与计算机服务器12B至12N之间的通信。
设备适配器26A连接到总线28A以及输入设备14A和输出设备16A,用于启用计算机服务器12A与输入设备14A和输出设备16A之间的通信。
总线28A将主要系统部件耦合在一起,包括存储器30A到CPU22A。总线28A代表若干类型的总线结构当中任何一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系架构当中任何一种的处理器或本地总线。作为例子而非限制,这种体系架构包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线,视频电子标准协会(VESA)本地总线,以及外围部件互连(PCI)总线。
存储器30A包括形式为易失性存储器32A和非易失性或持久性存储器34A的计算机系统可读介质。易失性存储器32A的例子是随机存取存储器(RAM)36A和高速缓冲存储器38A。一般而言,使用易失性存储器是因为它更快,并且一般而言,使用非易失性存储器是因为它将保持数据更长时间。无共享数据库10还可以包括其它可移动和/或不可移动、易失性和/或非易失性计算机系统存储介质。仅仅作为例子,可以提供持久性存储器34A,用于从不可移动、非易失性磁介质(未示出,并且通常是磁性硬盘或固态驱动器)读或写到其。虽然未示出,但还可以提供进一步的存储介质,包括:用于可移动、非易失性固态存储器的外部端口;以及用于从可移动、非易失性光盘,诸如光盘(CD)、数字视频盘(DVD)或蓝光(Blu-ray),读或写到其的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线28A。如下面将进一步绘出并描述的,存储器30A可以包括至少一个具有一组(例如,至少一个)程序模块的程序产品,其中程序模块被配置为执行本发明的实施例的功能。
这组被配置为执行优选实施例的功能的程序模块包括碎片重新分布模块400A、数据库管理系统402A,以及数据库分区404A1至404An。支持优选实施例但未示出的进一步的程序模块包括固件、自举程序、操作系统,以及支持应用程序。操作系统、支持应用程序、其它程序模块和程序数据当中每一个或者它们的某种组合可以包括联网环境的实现。
为计算机服务器12N示出的对应程序模块包括:碎片重新分布模块400N;数据库管理系统402N;以及数据库分区404N1至404Nn。
对计算机服务器12B至12N暗示了(但未示出)对应的程序模块。
无共享数据库10经高速互连20通信。网络适配器24A经由与高速互连执行得一样快或更快的总线28A与计算机服务器12A的其它部件,包括数据库分区,通信。
数据库管理系统(DBMS)402A是标准的无共享数据库管理系统。
数据库分区404A1至404An在持久性存储器和盘34A中被创建。分区可以被除去或添加。
参照图4,碎片重新分布模块400A包括以下部件:原始分区寄存器402;新分区寄存器404;并置集寄存器406;对应的并置表寄存器408;分布式键寄存器410;UNIONALL寄存器412;检查约束寄存器414;以及重新分布方法500。
原始分区寄存器402用于存储原始分区的位置。
新分区寄存器404用于存储新分区的位置。
并置集寄存器406用于存储并置集的位置。对应的并置表寄存器408用于存储对应并置表的位置。
分布式键寄存器410用于存储分布式键的范围和区间。
UNIONALL寄存器412用于存储UNIONALL视图的参数。
检查约束寄存器414用于存储检查约束。
重新分布方法500包括逻辑处理步骤501至510(参见图5A)。步骤507调用逻辑处理步骤507a至507r(参见图5B至5C)。步骤507m调用逻辑处理步骤507m1至507m9(参见图5D)。
参照图5A,描述逻辑处理步骤501至510。
步骤501用于从用户获得一组并置表的规范(例如,以XML文件格式)。示例ORDERS和LINEITEM表构成标准的模式,从而形成用于该方法的简单示例并置集。
步骤502用于创建跨扩充的数据库中的所有分区的新分区组。
步骤503用于构建目标分区映射,使得分区是被重新分布的数据的发送者或接收者(但绝不会两者都是)并且将映射分派到新分区组。
步骤504用于从被重新分布的现有分区组提取所有表空间、表和从属对象(例如,物化视图、视图、外键约束)的数据定义(按数据定义语言(DDL))。
步骤505用于修改提取出的数据定义,以调整表空间定义来引用新的扩充的分区组并分派新名字,并且类似地调整其它关联的对象来引用新的表空间名字,等等。
步骤506用于执行调整后的数据定义,以便在新的数据库分区组中创建重复的表空间。
步骤507用于对数据库分区组中的每个表重新分布数据,并发地处理相同并置集中的表。子方法步骤507a至507r在图5B和5C中描述。
步骤508用于对每个并置集和任何其余的非并置表重复步骤507。
步骤509用于丢弃现有的表空间和其中的对象。
步骤510用于丢弃现有的分区组。
参照图5B至5C,子方法步骤507包括逻辑处理步骤507a至507r。
步骤507a用于除去对并置集中基础表的权限。
步骤507b用于非物化任何关联的物化查询表(MQT),换句话说,暂时将这些MQT转换成规则表(这是个即时操作)。
步骤507c用于将并置表中的所有表重命名为<original_table_name>_O,其中_O表示_Original(原始的)并且可选地,添加唯一的系统时间和随机后缀,以保证表名是唯一的。
步骤507d用于使用在步骤504中提取出的数据定义,在新分区组中为并置集中的每个表创建具有名字<original_table_name>_N的匹配的新表,其中_N表示_New(新的)。
步骤507e用于更改原始表和新表,以添加隐藏的INFLIGHT列,该列在原始表上具有缺省值Y并且在新表上具有缺省值NULL。
步骤507f用于更改原始表和新表上对分布键的检查约束,使得所有数据操纵语言操作(INSERT、DELETE、UPDATE、SELECT)都被指向适当的表(最初全都指向原始表)。
步骤507g用于为并置集中的每个表创建UNIONALL视图,如SELECT*FROM<original_table_name>_OUNIONALLSELECT*FROM<original_table_name>_NWITHROWMOVEMENT。
步骤507h用于对照新UNIONALL视图重新物化任何关联的MQT。当MQT在当前并置集中时,将其转换为用户维护的MQT,以便它也可以被重新分布(这是个即时操作)。
步骤507i用于使涉及这个表的所有包失效,以强迫编译器获得新表信息并相应地生成包。
步骤507j用于确定分布键中的列。
步骤507k用于从并置集中的父/维度表确定分布键的低和高值。对于复合分布键,选择具有最高基数(不同值的个数)的构成列。
步骤507l用于对分布键范围初始化具有大约100个步长/区间的迭代循环。
步骤507m用于移动数据,其关于图5D进行描述。步骤507n用于非物化任何关联的MQT。
步骤507o用于丢弃关联的UNIONALL视图并且对于并置集中的每个表将关联的新表重命名为原始表名(即,除去_N后缀)。
步骤507p用于从每个表丢弃空中列(同样,没有实现结构性变化并且这个操作是即时的)。
步骤507q用于对照重命名的新表重新物化任何关联的MQT。
步骤507r用于使涉及这个表的所有包失效,以强迫编译器获得新表信息并相应地生成包。
参照图5D,子方法步骤507m包括对每个区间执行的逻辑处理步骤507m1至507m9。
步骤507m1用于更改原始表(<表名>_O)和新表(<表名>_N)的检查约束,以实现那个数据区间的移动(利用INFLIGHT列)。
步骤507m2用于对当前分布键区间执行从原始表到新表的数据移动。
步骤507m3用于通过更新指示符列递增地将数据从并置集中的父/维度表移动到新表(<表名>_N)。
步骤507m4用于更新原始表上的空中指示符列。例如,利用数据库命令,诸如UPDATE<table_name>SETinflight=NULLWHERE<distributionkey>BETWEENmandm+n//(其中n达到例如10000的期望行数并且m是计数器)。
步骤507m5用于按(例如)大约10000行的批提交数据并用于循环回步骤507m4,一直到所有行都已经从原始表移动到新表。
步骤507m6用于执行等效的MOVE阶段,以便将并置集中用于当前分布键区间的每个关联的事实/子表(一个或多个)移动到新表。
步骤507m7用于,可选地,回收盘存储。例如,通过对并置集中每个表的原始版本执行在线REORG操作来回收用于被删除的行的盘存储。
步骤507m8用于,可选地,获取对移动的性能统计信息,例如,通过对并置集中每个表的新和原始版本执行在线RUNSTATS操作或者,作为替代,通过拷贝并内插来自原始表的统计信息。
步骤507m9用于在步骤507m1处理下一个区间,直到所有区间都已被处理。
图6示出了用于对原始分区1、2和3以及新分区4的LINEITEM和ORDERS例的重新分布的方法。经由该图通过UNIONALL视图实现了并置连接,其中UNIONALL视图是呈现给最终用户的东西。LI_O和OR_O表是在现有数据库分区1上的原始LINEITEM和原始ORDERS表。LI_N和OR_N表是跨扩充的数据库中所有分区被分区的等效新表。对每个表的检查约束允许优化器将最终用户18A的SELECT语句指引到适当的基础表。并行重新分布是通过简单地将INFLIGHT指示符列更新为NULL来实现的,这导致行从原始表移动到新表。
图7总结对于每个重新分布区间关于每个表的原始和新版本设置的检查约束。经由该时间轴,对于每个区间(在这个例子中,共有60个区间),ORDERS表是父/维度表并且首先被移动,然后是LINEITEM表。从原始表到新表重新分布数据所需的实际行移动是通过简单地将INFLIGHT列的值更新为NULL来实现的。这种更新导致对原始表的检查约束被违反,这导致行被重定位到新表,如UNIONALL视图的WITHROWMOVEMENT子句所允许的。更新以小的批&提交递增地执行,以便最小化重新分布操作的资源使用情况简档,由此使重新分布操作是低影响的后台过程。同时,对照UNIONALL视图执行的任何数据操纵语言操作都将基于检查约束(例如,选择、更新、插入和/或删除)被指引到适当相应的基础表。特别地,凭借由于其是隐藏的而没有值被提供给指示符列的事实,对于被移动的区间的任何插入操作都将被指引到新表,并且这意味着对于在那个区间的重新分布其间插入的任何数据不需要对于原始表执行第二遍。当区间内的所有行都已被移动时,检查约束被调整,以反映下一区间的开始位置并且重复该过程,直到所有的区间都已经被处理。检查约束的实际调整只需要对每个表的暂时独占锁,以便耗尽(drain)当前在进行中的任何数据操纵操作,以维持优化器计划一致性。由于DBMS在控制该过程,因此检查约束可以被更改,而不需要检查数据对新约束的符合。
图8A和8B分别比较用于优选实施例和备选实施例的两种类型的区间分布。
图8A示出了对应于区间数的分布键范围的偶数级数。可以看出,在370万与0之间变化的对应数据传输速率造成不均匀的工作流。
图8B示出了另一实施例,其中提交大小利用DBMS的内置工作量管理能力被动态调整和/或调节。在这里,数据速率更均匀地为200万,而分布键区间从50万至980万至3030万变化,从而保持工作流更加均匀。
图9A示出了在开始重新发布操作之前对原始表(9A1和9A2)的简单SELECT查询的执行计划图。
SELECTSUM(EXTENDEDPRICE)FROMLINEITEM1,ORDERSoWHERE
l.ORDERKEY=o.ORDERKEYANDo.ORDERSTATUS=′P′
该图是SELECT查询执行的自下而上的视图。在该图的底部是矩形中的表9A1和9A2,并且在这些之上是将从表获得的结果处理成返回到位于图顶部的最终用户的结果集所需的各种运算符。如从图中可以看出的,LINEITEM和ORDERS表利用散列连接(9A5-用于大规模数据仓库查询的高效操作)被连接。重要的是,连接被并置并且没有表队列(TQ)操作(运算符负责经网络互连在分区之间发送数据),直到连接已经完成之后。换句话说,连接被并置。
图9B示出了在第34个重新分布区间后对于同一查询的执行计划。如从图中可以看到的,现在执行树被分成两个主要分支。在左侧分支处理每个表(9B1和9B2)的新版本,同时与其并行地,原始表(9B3和9B4)在右手侧分支进行处理。再次,表队列(TQ)运算符9B13和9B14一直到连接9B9和9B10已经被执行之后才出现,从而清楚地示出连接被并置。查询的估计执行成本(资源使用的单位的标称概念)在每个运算符形状的底部示出。如所看到的,整体的总成本反映了两个分支的成本总和,并且在每个分支上的成本与已经被重新分布的数据的量和表被放在其上的分区的个数成正比。因此,对于左手侧分支的估计成本较少,因为新表被放在扩充的数据库中所有四个数据库分区之上。重要的是,由于每个分支被并行处理,因此总体执行时间相称地减少并且实际执行时间大约为重新分布开始之前的三分之二。
图9C再次示出了相同的查询,这次是在第35个重新分布区间期间,同时数据实际上正在空中被移动。这一次有三个子分支。在左侧,示出了在原始表(9C1和9C2)之上的并置连接并且在右侧是新表之上的并置连接。但是,由于用于这个重新分布区间的数据现在在原始与新表之间移动,因此还存在第三个分支(图的中间),其执行实际上在空中的数据的连接。但重要的是,在这个第三分支中被连接的数据量小,例如小于的整个数据集的六十分之一,并且因此优化器对于这个空中数据选择表之间的嵌套循环连接(NLJOIN)运算符9C18。LJOIN运算符是选择性的并且在LINEITEM表上导航索引,而不是表扫描(这在经由左和右分支的大规模散列连接中更合适)。以这种方式,在空中的数据的总体影响是微不足道的并且对整体成本和执行时间具有可以忽略的影响(在这个时候查询的实际持续时间仍然近似为原始重新分布之前的持续时间的三分之二)。
分布键通常对每个表加索引,这有助于移动阶段期间的性能。在分布键还没有加索引的特殊情况下,索引可以利用在线索引创建操作自动在表上创建,其在重新分布操作完成之后再次被丢弃。
在每个区间中被移动的行数是全部表行的相对非常小的部分(通常为1%),以便最小化空中数据对执行计划的影响。这是本发明的重要方面,因为它维护用户查询性能。实际上,如上面的例子中看到的,查询的性能将随着重新分布的过程持续改进,因为更多分区正在促进查询检索。
INFLIGHT指示符被用来区分在当前重新分布区间期间被移动的行。给定区间内相对较少的行数,INFLIGHT有条件谓词(INFLIGHT不为null)的开销是可以忽略不计的。
检查约束被强制执行(对于更新、插入和删除DML操作)。通常情况下,更改被强制执行的检查约束涉及对表的数据的扫描,以便验证约束是有效的。但是,由于DBMS在管理重新分布数据移动,因此这些检查约束的强制执行可以省却数据验证扫描,由此使这个操作是瞬间的。
跨被重新分布的表上的区间长时间运行的查询可以使用读稳定性(RS)隔离级别,以保证不存在由于空中行造成的不一致的结果。
更复杂的实施例可以允许定义用于重新分布的处理窗口。
本发明提供的优点包括:
·并置被保留;
·查询性能在整个过程中被维持并且非常快,这实际上变得越来越好;
·表在整个过程中维持对DML查询完全可用并且在线;
·重新分布操作是完全事务记录的。例如,在盘介质故障的情况下,重新分布过程可以在数据库已经恢复时从它停止的地方无缝地重新开始;
·无需用于空中表的双倍盘空间。在线重新组织操作可以在每次迭代后发出,以回收用于从原始表中删除的行的空间;
·在重新分布操作之前、期间或之后无需特殊备份。标准的在线备份方法与重新分布过程兼容;
·促进基于百分比的进度的可靠监视,即,如果被分割成100次迭代,则可以看到%吞吐量;
·重新分布可以随时暂停并且可以通过减少插入选择批/提交大小以及利用现有的工作量管理功能调整优先级而被调节;及
·由于父维度表总是首先被移动,因此外键约束在重新分布操作期间得以维持。
现在描述本发明的进一步的实施例。本领域技术人员将清楚,优选实施例的逻辑处理步骤的全部或部分可以作为替代地体现在一个逻辑装置或多个逻辑装置中,包括被布置成执行方法的逻辑处理步骤的逻辑元件并且这种逻辑元件可以包括硬件部件、固件部件或其组合。
本领域技术人员将同样清楚,优选实施例的逻辑部件的全部或部分可以作为替代地体现在包括执行方法步骤的逻辑元件的逻辑装置中,并且这种逻辑元件可以在例如可编程逻辑阵列或专用集成电路中包括诸如逻辑门的部件。这种逻辑布置还可以体现在使能元件中,用于利用例如虚拟硬件描述符语言临时或永久地在这种阵列或电路中建立逻辑结构,其中虚拟硬件描述符语言可利用固定或可发送的载体介质被存储并发送。
在进一步的备选实施例中,本发明可以以部署服务的计算机实现方法的形式实现,包括部署计算机程序代码的步骤,其中计算机程序代码可操作为,当被部署到计算机基础设施并在其上执行时,使计算机系统执行方法的所有步骤。
应当认识到的是,优选实施例的方法和部件可以作为替代地完全或部分地体现在包括用于执行并行软件的两个或更多个处理器的并行计算系统中。
本领域技术人员将清楚,在不背离本发明范围的情况下,可以对以上示例性实施例进行许多改进和修改。
Claims (22)
1.一种用于在在线无共享数据库中进行数据的重新分布的系统,所述无共享数据库包括多个原始分区和至少一个新分区,所述方法包括:
并置集合标识符,用于识别原始分区中要在原始分区和至少一个新分区上重新分布的两个或更多个并置表,所述表具有数据行,每个数据行驻留在由分布键支配的分区上;
表工厂,用于在新分区中创建对应的新表;
视图创建器,用于利用检查约束创建来自原始表和新表二者的所有数据的UNIONALL视图,所述检查约束又基于分布键;
计数器,用于在分布键范围上定义区间的循环;
数据移动器,用于在当前的分布键区间上执行每个数据行从原始表到新表的数据移动;
数据改变器,用于更改针对每个分布键区间的检查约束,使得UNIONALL视图被保留,由此确保并置和数据完整性得以维持;及
循环完成器,用于循环回下一个分布键区间,直到所有分布键区间都已经被处理,使得所有数据都被移动到新表,由此并置和数据完整性得以维持、重新分布对于对数据库执行的查询是透明的并且表在重新分布期间对于读和写是完全可用的。
2.如权利要求1所述的系统,其中,通过使用UNIONALL视图的行移动特征,数据在原始表与新表之间被重新定位。
3.如权利要求2所述的系统,其中,更新用于当前区间内给定行的指示符列将启动行移动特征并且将行从原始表移动到新表。
4.如权利要求1至3中任何一项所述的系统,还包括:
跨现有分区和新分区的新分区组,具有关联的新分区映射,其中各个分区被定义为被移动的数据的发送者或接收者。
5.如权利要求4所述的系统,其中,新分区组包括:
已经被修改为结合新分区的现有分区组的被执行的数据定义。
6.如权利要求1至5中任何一项所述的系统,其中,并置表的两个或更多个集合位于现有分区组中的两个或更多个分区上。
7.如权利要求1至5中任何一项所述的系统,其中,区间能够利用来自数据库目录的统计数据重新分布进行加权,使得所有的区间都包含大致相同量的数据。
8.如权利要求1至7中任何一项所述的系统,其中每个区间相对于整个表是小的,以便最小化空中数据对性能的任何影响。
9.如权利要求1至8中任何一项所述的系统,其中行从原始表递增地移动到新表并且是按批提交的。
10.如权利要求1至9中任何一项所述的系统,其中对当前分布键区间插入的新行被转移到新表。
11.一种用于在在线无共享数据库中进行数据的重新分布的方法,所述无共享数据库包括多个原始分区和至少一个新分区,所述方法包括:
识别原始分区中要在原始分区和至少一个新分区上重新分布的两个或更多个并置表,所述表具有数据行,每个数据行驻留在由分布键支配的分区上;
在新分区中创建对应的新表;
利用检查约束创建来自原始表和新表二者的所有数据的UNIONALL视图,所述检查约束又基于分布键;
在分布键范围上定义区间的循环;
在当前的分布键区间上执行每个数据行从原始表到新表的数据移动;
更改针对每个分布键区间的检查约束,使得UNIONALL视图被保留,由此确保并置和数据完整性得以维持;及
循环回下一个分布键区间,直到所有分布键区间都已经被处理,使得所有数据都被移动到新表,由此并置和数据完整性得以维持、重新分布对于对数据库执行的查询是透明的并且表在重新分布期间对于读和写是完全可用的。
12.如权利要求11所述的方法,其中,通过使用UNIONALL视图的行移动特征,数据在原始表与新表之间被重新定位。
13.如权利要求12所述的方法,其中,更新用于当前区间内给定行的指示符列将启动行移动特征并且将行从原始表移动到新表。
14.如权利要求11至13中任何一项所述的方法,还包括:
创建跨现有分区和新分区的新分区组,其具有关联的新分区映射,其中各个分区被定义为被移动的数据的发送者或接收者。
15.如权利要求14所述的方法,其中新分区组是通过以下创建的:
提取现有分区组的数据定义;
修改数据定义以结合新分区;
执行修改后的数据定义。
16.如权利要求11至15中任何一项所述的方法,其中,并置表的两个或更多个集合位于现有分区组中的两个或更多个分区上。
17.如权利要求11至15中任何一项所述的方法,其中,区间能够利用来自数据库目录的统计数据重新分布进行加权,使得所有的区间都包含大致相同量的数据。
18.如权利要求11至17中任何一项所述的方法,其中,每个区间相对于整个表是小的,以便最小化空中数据对性能的任何影响。
19.如权利要求11至18中任何一项所述的方法,其中,行从原始表递增地移动到新表并且是按批提交的。
20.如权利要求11至19中任何一项所述的方法,其中,对当前分布键区间插入的新行被转移到新表。
21.一种用于在在线无共享数据库中进行数据的重新分布的计算机程序产品,该计算机程序产品包括其中具有计算机可读程序代码的计算机可读存储介质,计算机可读程序代码被配置为执行任何方法权利要求。
22.一种存储在计算机可读介质上并可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行任何所述方法权利要求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1322049.6A GB2521197A (en) | 2013-12-13 | 2013-12-13 | Incremental and collocated redistribution for expansion of an online shared nothing database |
GB1322049.6 | 2013-12-13 | ||
PCT/IB2014/066726 WO2015087237A1 (en) | 2013-12-13 | 2014-12-09 | Incremental and collocated redistribution for expansion of online shared nothing database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105814562A true CN105814562A (zh) | 2016-07-27 |
CN105814562B CN105814562B (zh) | 2019-06-04 |
Family
ID=50030868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480067841.2A Active CN105814562B (zh) | 2013-12-13 | 2014-12-09 | 用于在线无共享数据库中数据的重新分布的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10387422B2 (zh) |
JP (1) | JP6410825B2 (zh) |
CN (1) | CN105814562B (zh) |
GB (1) | GB2521197A (zh) |
WO (1) | WO2015087237A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109379762A (zh) * | 2018-09-10 | 2019-02-22 | 中国联合网络通信集团有限公司 | 一种随机信号数据统计方法和系统 |
CN110100242A (zh) * | 2016-09-02 | 2019-08-06 | 斯诺弗雷克公司 | 表的增量聚类维护 |
CN111221857A (zh) * | 2018-11-08 | 2020-06-02 | 华为技术有限公司 | 从分布式系统中读数据记录的方法和装置 |
CN111984977A (zh) * | 2020-08-06 | 2020-11-24 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN112437916A (zh) * | 2018-07-17 | 2021-03-02 | 斯诺弗雷克公司 | 数据库表的增量群集 |
CN114443654A (zh) * | 2022-01-14 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种在线修改数据库表空间数据块长度的方法及系统 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2521197A (en) | 2013-12-13 | 2015-06-17 | Ibm | Incremental and collocated redistribution for expansion of an online shared nothing database |
CN107193813B (zh) | 2016-03-14 | 2021-05-14 | 阿里巴巴集团控股有限公司 | 数据表连接方式处理方法及装置 |
US10628416B2 (en) * | 2016-05-31 | 2020-04-21 | International Business Machines Corporation | Enhanced database query processing |
US10380112B2 (en) | 2017-07-31 | 2019-08-13 | International Business Machines Corporation | Joining two data tables on a join attribute |
US10740318B2 (en) * | 2017-10-26 | 2020-08-11 | Sap Se | Key pattern management in multi-tenancy database systems |
US11347712B2 (en) * | 2017-11-07 | 2022-05-31 | International Business Machines Corporation | Preventing long running transactions from holding record locks |
US11138230B2 (en) * | 2018-03-26 | 2021-10-05 | Mcafee, Llc | Methods, apparatus, and systems to aggregate partitioned computer database data |
US10423662B1 (en) * | 2019-05-24 | 2019-09-24 | Hydrolix Inc. | Efficient and scalable time-series data storage and retrieval over a network |
US11321314B2 (en) | 2020-05-22 | 2022-05-03 | International Business Machines Corporation | Query content-based data generation |
CN112115146B (zh) * | 2020-09-15 | 2023-09-15 | 北京人大金仓信息技术股份有限公司 | 数据库的数据重分布方法、装置、设备和存储介质 |
US11775182B2 (en) * | 2021-07-22 | 2023-10-03 | EMC IP Holding Company LLC | Expanding raid systems |
CN113806372B (zh) * | 2021-09-29 | 2024-02-06 | 中国平安人寿保险股份有限公司 | 新数据信息构建方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110295907A1 (en) * | 2010-05-26 | 2011-12-01 | Brian Hagenbuch | Apparatus and Method for Expanding a Shared-Nothing System |
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
CN103345519A (zh) * | 2013-07-11 | 2013-10-09 | 华为技术有限公司 | 无共享分布式数据库的数据分布的方法和装置 |
CN103440345A (zh) * | 2013-09-11 | 2013-12-11 | 从兴技术有限公司 | 一种基于关系型数据库的分布式数据库扩展方法及系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625593B1 (en) * | 1998-06-29 | 2003-09-23 | International Business Machines Corporation | Parallel query optimization strategies for replicated and partitioned tables |
US7103626B1 (en) * | 2000-05-24 | 2006-09-05 | Hewlett-Packard Development, L.P. | Partitioning in distributed computer system |
US6789071B1 (en) * | 2001-04-20 | 2004-09-07 | Microsoft Corporation | Method for efficient query execution using dynamic queries in database environments |
US7469253B2 (en) * | 2003-04-01 | 2008-12-23 | Microsoft Corporation | Associative hash partitioning using pseudo-random number generator |
JP2005196602A (ja) | 2004-01-09 | 2005-07-21 | Hitachi Ltd | 無共有型データベース管理システムにおけるシステム構成変更方法 |
JP2008533564A (ja) * | 2005-02-24 | 2008-08-21 | ゼラウンド システムズ リミテッド | データ管理のための方法および装置 |
US7792798B2 (en) | 2007-08-31 | 2010-09-07 | International Business Machines Corporation | Dynamic data compaction for data redistribution |
US8949192B2 (en) | 2007-11-19 | 2015-02-03 | International Business Machines Corporation | Technique of controlling access to database |
US8090700B2 (en) * | 2008-02-26 | 2012-01-03 | International Business Machines Corporation | Method for updating databases |
US20090319581A1 (en) | 2008-06-19 | 2009-12-24 | International Business Machines Corporation | Online Table Move |
US8078825B2 (en) | 2009-03-11 | 2011-12-13 | Oracle America, Inc. | Composite hash and list partitioning of database tables |
US8990185B2 (en) * | 2010-02-19 | 2015-03-24 | International Business Machines Corporation | Evaluating reference based operations in shared nothing parallelism systems |
CA2702133A1 (en) | 2010-05-21 | 2010-07-24 | Ibm Canada Limited - Ibm Canada Limitee | Redistribute native xml index key shipping |
US20120036146A1 (en) | 2010-10-26 | 2012-02-09 | ParElastic Corporation | Apparatus for elastic database processing with heterogeneous data |
US9684702B2 (en) | 2010-12-07 | 2017-06-20 | International Business Machines Corporation | Database redistribution utilizing virtual partitions |
US8341134B2 (en) * | 2010-12-10 | 2012-12-25 | International Business Machines Corporation | Asynchronous deletion of a range of messages processed by a parallel database replication apply process |
WO2013116308A1 (en) * | 2012-01-31 | 2013-08-08 | Kent State University | Systems, methods, and software for unified analytics environments |
US9355127B2 (en) * | 2012-10-12 | 2016-05-31 | International Business Machines Corporation | Functionality of decomposition data skew in asymmetric massively parallel processing databases |
US9305074B2 (en) * | 2013-06-19 | 2016-04-05 | Microsoft Technology Licensing, Llc | Skew-aware storage and query execution on distributed database systems |
GB2521197A (en) | 2013-12-13 | 2015-06-17 | Ibm | Incremental and collocated redistribution for expansion of an online shared nothing database |
-
2013
- 2013-12-13 GB GB1322049.6A patent/GB2521197A/en not_active Withdrawn
-
2014
- 2014-12-09 CN CN201480067841.2A patent/CN105814562B/zh active Active
- 2014-12-09 US US15/100,454 patent/US10387422B2/en not_active Expired - Fee Related
- 2014-12-09 WO PCT/IB2014/066726 patent/WO2015087237A1/en active Application Filing
- 2014-12-09 JP JP2016538028A patent/JP6410825B2/ja active Active
-
2019
- 2019-07-02 US US16/460,919 patent/US11341139B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110295907A1 (en) * | 2010-05-26 | 2011-12-01 | Brian Hagenbuch | Apparatus and Method for Expanding a Shared-Nothing System |
CN102521297A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 无共享数据库集群中实现系统动态扩展的方法 |
CN103345519A (zh) * | 2013-07-11 | 2013-10-09 | 华为技术有限公司 | 无共享分布式数据库的数据分布的方法和装置 |
CN103440345A (zh) * | 2013-09-11 | 2013-12-11 | 从兴技术有限公司 | 一种基于关系型数据库的分布式数据库扩展方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110100242A (zh) * | 2016-09-02 | 2019-08-06 | 斯诺弗雷克公司 | 表的增量聚类维护 |
CN110100242B (zh) * | 2016-09-02 | 2024-03-12 | 斯诺弗雷克公司 | 表的增量聚类维护 |
CN112437916A (zh) * | 2018-07-17 | 2021-03-02 | 斯诺弗雷克公司 | 数据库表的增量群集 |
CN109379762A (zh) * | 2018-09-10 | 2019-02-22 | 中国联合网络通信集团有限公司 | 一种随机信号数据统计方法和系统 |
CN109379762B (zh) * | 2018-09-10 | 2021-09-14 | 中国联合网络通信集团有限公司 | 一种随机信号数据统计方法和系统 |
CN111221857A (zh) * | 2018-11-08 | 2020-06-02 | 华为技术有限公司 | 从分布式系统中读数据记录的方法和装置 |
CN111984977A (zh) * | 2020-08-06 | 2020-11-24 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN111984977B (zh) * | 2020-08-06 | 2022-07-19 | 成都安恒信息技术有限公司 | 一种基于运维审计系统的多租户权限鉴权方法 |
CN114443654A (zh) * | 2022-01-14 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种在线修改数据库表空间数据块长度的方法及系统 |
CN114443654B (zh) * | 2022-01-14 | 2024-01-26 | 苏州浪潮智能科技有限公司 | 一种在线修改数据库表空间数据块长度的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US10387422B2 (en) | 2019-08-20 |
GB201322049D0 (en) | 2014-01-29 |
GB2521197A (en) | 2015-06-17 |
CN105814562B (zh) | 2019-06-04 |
US20160299952A1 (en) | 2016-10-13 |
US11341139B2 (en) | 2022-05-24 |
US20190377737A1 (en) | 2019-12-12 |
JP6410825B2 (ja) | 2018-10-24 |
WO2015087237A1 (en) | 2015-06-18 |
JP2017507378A (ja) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105814562B (zh) | 用于在线无共享数据库中数据的重新分布的系统和方法 | |
Chambers et al. | Spark: The definitive guide: Big data processing made simple | |
US11281596B2 (en) | Mapping attributes of keyed entities | |
Stonebraker et al. | MapReduce and parallel DBMSs: friends or foes? | |
US9081837B2 (en) | Scoped database connections | |
US11593323B2 (en) | Parallel and efficient technique for building and maintaining a main memory CSR based graph index in a RDBMS | |
CN102918530B (zh) | 数据集市自动化 | |
US7849114B2 (en) | Method, system, and program product for generating a virtual database | |
US11341134B2 (en) | Apparatus and method for accelerated query processing using eager aggregation and analytical view matching | |
US7814045B2 (en) | Semantical partitioning of data | |
US10877995B2 (en) | Building a distributed dwarf cube using mapreduce technique | |
US11068504B2 (en) | Relational database storage system and method for supporting fast query processing with low data redundancy, and method for query processing based on the relational database storage method | |
WO2017070533A1 (en) | System and method for automatic inference of a cube schema from a tabular data for use in a multidimensional database environment | |
Gudivada et al. | Renaissance in database management: navigating the landscape of candidate systems | |
Eldawy et al. | Sphinx: empowering impala for efficient execution of SQL queries on big spatial data | |
US10289723B1 (en) | Distributed union all queries | |
US10671411B2 (en) | Cloning for object-oriented environment | |
KR101628676B1 (ko) | 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법 | |
US20180096007A1 (en) | Leveraging sql with user defined aggregation to efficiently merge inverted indexes stored as tables | |
Jindal et al. | Cartilage: adding flexibility to the hadoop skeleton | |
Soroush et al. | Hybrid merge/overlap execution technique for parallel array processing | |
Li et al. | Surrounding join query processing in spatial databases | |
Tzotsos et al. | Towards open big geospatial data for geodata. gov. gr | |
Grigoriev et al. | Hadoop/Hive Data Query Performance Comparison Between Data Warehouses Designed by Data Vault and Snowflake Methodologies | |
Wassan | Emergence of NoSQL Platforms for Big Data Needs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |