在数据库集群中重分布表数据制造技术

技术编号:24808064 阅读:33 留言:0更新日期:2020-07-07 22:43
一种用于在分布式数据库中重定位数据的计算机实现方法,包括:通过一个或多个处理器在所述分布式数据库中创建第二表,所述第二表包括第一表中的所有列;通过所述一个或多个处理器将第一组元组从所述第一表复制到所述第二表;在所述复制所述第一组元组期间,通过所述一个或多个处理器根据修改对所述第一表中的数据进行修改;在所述复制所述第一组元组之后,通过所述一个或多个处理器根据所述修改对所述第二表中的数据进行修改;通过所述一个或多个处理器在所述分布式数据库的目录中将所述第一表替换为所述第二表。

【技术实现步骤摘要】
【国外来华专利技术】在数据库集群中重分布表数据本申请要求于2017年11月30日递交的专利技术名称为“在数据库集群中重分布表数据”的第15/827,660号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
本专利技术涉及数据库集群,在一特定实施例中,涉及在数据库集群中重分布表数据。
技术介绍
分布式数据库由数据库群集中的多个节点组成。表数据分为多个分区,每个节点存储一个分区。其中一种分布方法是散列法,以便为每个节点分配一系列哈希值。表数据的每一行都将进行散列处理并存储在分配给所述哈希值的节点上。一个节点最终可能会耗尽存储空间或包含不成比例的数据量(数据倾斜)。由于每个节点以并行方式处理查询,因此所述分布式数据库的响应时间由最缓慢节点控制。因此,当数据分布不均匀时,所述分布式数据库的性能就会受到影响。所述分布式数据库的性能可以通过添加节点来执行,或者在数据倾斜的情况下,可以通过选择不同的哈希函数来执行。
技术实现思路
现描述各种示例从而以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本
技术实现思路
的目的不在于识别权利要求书保护的主题的关键或必要特征,也不在于限制权利要求书保护的主题的范围。根据本专利技术的一个方面,提供了一种用于在分布式数据库中重定位数据的计算机实现方法,包括:通过一个或多个处理器在所述分布式数据库中创建第二表,所述第二表包括第一表中的所有列;通过所述一个或多个处理器将第一组元组从所述第一表复制到所述第二表;在所述复制所述第一组元组期间,通过所述一个或多个处理器根据修改对所述第一表中的数据进行修改;在所述复制所述第一组元组之后,通过所述一个或多个处理器根据所述修改对所述第二表中的数据进行修改;通过所述一个或多个处理器,在所述分布式数据库的目录中将所述第一表替换为所述第二表。可选地,在前述任一实施例中,所述方法还包括:基于第一哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据;其中,将所述第一组元组从所述第一表复制到所述第二表包括:基于不同于所述第一哈希函数的第二哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据。可选地,在前述任一实施例中,所述根据所述修改对所述第一表中的所述数据进行修改包括:向所述第一表中的所述数据附加元组。可选地,在前述任一实施例中,所述创建所述第二表包括:使用并非来自所述第一表的附加列创建所述第二表。可选地,在前述任一实施例中,所述方法还包括:在所述目录中将所述第一表替换为所述第二表之前,丢弃所述附加列。可选地,在前述任一实施例中,所述方法还包括:创建第三表,以跟踪所述第一表中的删除项;接收从所述第一表中删除第一元组的请求;响应所述请求,向所述第三表添加第二元组,所述第二元组包括所述元组的标识符;其中,所述根据所述修改对所述第一表中的所述数据进行修改包括从所述第一表中的所述数据中删除所述第一元组。可选地,在前述任一实施例中,所述根据所述修改对所述第二表中的所述数据进行修改包括:基于所述第三表的所述第二元组和所述第二表的第三元组中包括的所述标识符,从所述第二表中删除所述第三元组。可选地,在前述任一实施例中,所述方法还包括:创建第三表,以跟踪所述第一表中的删除项;接收更新所述第一表中的第一元组的请求,所述请求包括修改数据;响应所述请求:向所述第三表添加第二元组,所述第二元组包括所述第一元组的标识符;向包括所述修改数据的所述第一表附加第三元组;其中,所述根据所述修改对所述第二表中的所述数据进行修改包括:基于所述第三表的所述第二元组和所述第二表的第四元组中包括的所述标识符,从所述第二表中删除所述第四元组;向包括所述修改数据的所述第二表附加第五元组。可选地,在前述任一实施例中,所述方法还包括:在所述分布式数据库的所述目录中将所述第一表替换为所述第二表之前,锁定所述第一表。可选地,在前述任一实施例中,所述方法还包括:确定要对所述第二表应用的剩余修改次数;其中,所述锁定所述第一表基于所述修改次数和预先确定的阈值。可选地,在前述任一实施例中,所述方法还包括:确定要对所述第二表应用的剩余修改次数;基于要对所述第二表应用的所述剩余修改次数和预先确定的阈值,在不锁定所述第一表的情况下对所述第二表应用所述修改的至少一个子集。根据本专利技术的一个方面,提供了一种分布式数据库,包括:多个数据存储节点;内存存储器,包括指令;一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行所述指令以执行以下操作:在所述分布式数据库中创建第二表,所述第二表包括第一表中的所有列;将第一组元组从所述第一表复制到所述第二表;在所述复制所述第一组元组期间,根据修改对所述第一表中的数据进行修改;在所述复制所述第一组元组之后,根据所述修改对所述第二表中的数据进行修改;在所述分布式数据库的目录中将所述第一表替换为所述第二表。可选地,在前述任一实施例中,所述一个或多个处理器还执行以下操作:基于第一哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据;其中,将所述第一组元组从所述第一表复制到所述第二表包括:基于不同于所述第一哈希函数的第二哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据。可选地,在前述任一实施例中,所述根据所述修改对所述第一表中的所述数据进行修改包括:向所述第一表中的所述数据附加元组。可选地,在前述任一实施例中,所述创建所述第二表包括:使用并非来自所述第一表的附加列创建所述第二表。可选地,在前述任一实施例中,所述一个或多个处理器还执行以下操作:在所述目录中将所述第一表替换为所述第二表之前,丢弃所述附加列。可选地,在前述任一实施例中,所述一个或多个处理器还执行以下操作:创建第三表,以跟踪所述第一表中的删除项;接收从所述第一表中删除第一元组的请求;响应所述请求,向所述第三表添加第二元组,所述第二元组包括所述元组的标识符;其中,所述根据所述修改对所述第一表中的所述数据进行修改包括从所述第一表中的所述数据中删除所述第一元组。可选地,在前述任一实施例中,所述根据所述修改对所述第二表中的所述数据进行修改包括:基于所述第三表的所述第二元组和所述第二表的第三元组中包括的所述标识符,从所述第二表中删除所述第三元组。可选地,在前述任一实施例中,所述一个或多个处理器还执行以下操作:创建第三表,以跟踪所述第一表中的删除项;接收更新所述第一表中的第一元组的请求,所述请求包括修改数据;响应所述请求:向所述第三表添加第二元组,所述第二元组包括所述第一元组的标识符;向包括所述修改数据的所述第一表附加第三元组;其中,所述根据所述修改对所述第二表中的所述数据进行修改包括:基于所述第三表的所述第二元组和所述第二表的第四元组中包括的所述标识符,从所述第二表中删除所述第四元组;向包括所述修改数据的所述第二表附加第五元组。根据本专利技术的一个方面,提供了一种存储用于在分布式数据库中定位数据的计算机指令的非瞬时性计算机可读介质,其中所述计算机指令在由一个或多个处理器本文档来自技高网...

【技术保护点】
1.一种用于在分布式数据库中重定位数据的计算机实现方法,其特征在于,包括:/n通过一个或多个处理器在所述分布式数据库中创建第二表,所述第二表包括第一表中的所有列;/n通过所述一个或多个处理器将第一组元组从所述第一表复制到所述第二表;/n在所述复制所述第一组元组期间,通过所述一个或多个处理器根据修改对所述第一表中的数据进行修改;/n在所述复制所述第一组元组之后,通过所述一个或多个处理器根据所述修改对所述第二表中的数据进行修改;/n通过所述一个或多个处理器,在所述分布式数据库的目录中将所述第一表替换为所述第二表。/n

【技术特征摘要】
【国外来华专利技术】20171130 US 15/827,6601.一种用于在分布式数据库中重定位数据的计算机实现方法,其特征在于,包括:
通过一个或多个处理器在所述分布式数据库中创建第二表,所述第二表包括第一表中的所有列;
通过所述一个或多个处理器将第一组元组从所述第一表复制到所述第二表;
在所述复制所述第一组元组期间,通过所述一个或多个处理器根据修改对所述第一表中的数据进行修改;
在所述复制所述第一组元组之后,通过所述一个或多个处理器根据所述修改对所述第二表中的数据进行修改;
通过所述一个或多个处理器,在所述分布式数据库的目录中将所述第一表替换为所述第二表。


2.根据权利要求1所述的方法,其特征在于,还包括:
基于第一哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据;
其中,将所述第一组元组从所述第一表复制到所述第二表包括:基于不同于所述第一哈希函数的第二哈希函数,在所述分布式数据库的节点之间分布所述第一表的数据。


3.根据权利要求1所述的方法,其特征在于,所述根据所述修改对所述第一表中的所述数据进行修改包括:向所述第一表中的所述数据附加元组。


4.根据权利要求1所述的方法,其特征在于,所述创建所述第二表包括:使用并非来自所述第一表的附加列创建所述第二表。


5.根据权利要求4所述的方法,其特征在于,还包括:
在所述目录中将所述第一表替换为所述第二表之前,丢弃所述附加列。


6.根据权利要求1所述的方法,其特征在于,还包括:
创建第三表,以跟踪所述第一表中的删除项;
接收从所述第一表中删除第一元组的请求;
响应所述请求,向所述第三表添加第二元组,所述第二元组包括所述元组的标识符;其中,
所述根据所述修改对所述第一表中的所述数据进行修改包括从所述第一表中的所述数据中删除所述第一元组。


7.根据权利要求6所述的方法,其特征在于,所述根据所述修改对所述第二表中的所述数据进行修改包括:
基于所述第三表的所述第二元组和所述第二表的第三元组中包括的所述标识符,从所述第二表中删除所述第三元组。


8.根据权利要求1所述的方法,其特征在于,还包括:
创建第三表,以跟踪所述第一表中的删除项;
接收更新所述第一表中的第一元组的请求,所述请求包括修改数据;
响应所述请求:
向所述第三表添加第二元组,所述第二元组包括所述第一元组的标识符;
向包括所述修改数据的所述第一表附加第三元组;其中,
所述根据所述修改对所述第二表中的所述数据进行修改包括:
基于所述第三表的所述第二元组和所述第二表的第四元组中包括的所述标识符,从所述第二表中删除所述第四元组;
向包括所述修改数据的所述第二表附加第五元组。


9.根据权利要求1所述的方法,其特征在于,还包括:
在所述分布式数据库的所述目录中将所述第一表替换为所述第二表之前,锁定所述第一表。


10.根据权利要求9所述的方法,其特征在于,还包括:
确定要对所述第二表应用的剩余修改次数;其中,
所述锁定所述第一表基于所述修改次数和预先确定的阈值。


11.根据权利要求1所述的方法,其特征在于,还包括:
确定要对所述第二表应用的剩余修改次数;
基于要对所述第二表应用的所述剩余修改次数和预先确定的阈值,在不锁定所述第一表的情况下对所述第二表应用所述修改的至少一个子集。


12.一...

【专利技术属性】
技术研发人员:杰森·扬·孙朱成蔡乐周庆庆
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1
相关领域技术
  • 暂无相关专利