一种数据分区方法和设备技术

技术编号:14567032 阅读:75 留言:0更新日期:2017-02-06 00:35
本发明专利技术实施例提供一种数据分区方法和设备,涉及数据库领域,能够消除远程join操作,减少数据查询过程中的网络带宽,同时创造备份数据。其方法为:通过将分布式数据库中的维表进行数据分区,根据所述维表的分区特征并按照预设算法建立分区映射表,将所述维表对应的事实表按照所述分区映射表进行分区,并按照所述分区映射表备份所述事实表中的数据,这样在分区的时候,通过预设的算法使得分区时记录出现冲突,利用冲突造成冗余记录,用于数据备份。本发明专利技术实施例用于分布式数据库的数据分区。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据库领域,尤其涉及一种数据分区方法和设备。
技术介绍
在联机分析处理(OnlineAnalyticalProcessing,OLAP)这种分析性数据库中,处理的数据量都比较大,单机的性能已经不能满足需要,大规模并行处理(Massiveparallelprocessing,MPP)架构可以将数据分布到多个节点上,由多个节点并行处理,从而提高处理速度。为了使每个节点都并行处理一定量的数据,一般情况下需要将表水平分割,放到不同的节点上。但是如果没有考虑到表之间的关系,当两表之间有join(连接查询)操作时,会产生大量的网络传输,join操作效率低下。Oracle提出引用分区(ReferencePartitioning)方案,可以根据数据表之间的关系,由根数据表开始进行分区,先在根数据表指定一列作为分区列,在分区该表的同时分区子表中的相关数据,从而使相关的数据放在同一节点上,使join过程可以本地完成,但是该方案只适用于数据关系存在层次结构的,而数据分配随着层次结构的加深,复杂度不断加大。当每个数据表各自指定一列作为分区列,每个数据表单独区分,但是分区函数相同,如果两表选择的分区列刚好是需要join的列,则这两个表的join操作刚好可以本地完成,如果需要join的列不是用于区分的列,则将这个需要join的列再进行一次重新分区,join操作便用重新分区的表进行操作,从而使join操作本地化,但是这样一来导致数据传输量大,浪费网络和存储空间。
技术实现思路
本专利技术提供一种数据分区方法和设备,能够消除远程join操作,减少数据查询过程中的网络带宽,同时创造备份数据。第一方面,提供一种数据分区方法,包括:将分布式数据库中的维表进行数据分区;根据所述维表的分区特征并按照预设算法建立分区映射表;将所述维表对应的事实表按照所述分区映射表进行分区,并按照所述分区映射表备份所述事实表中的数据。结合第一方面,在第一种可能实现的方式中,所述将分布式数据库中的维表进行数据分区包括:按照哈希算法,将所述分布式数据库中的维表进行数据分区,以获取分区后各个节点对应的维表的数据。结合第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述根据所述维表的分区特征并按照预设算法建立分区映射表包括:根据所述分区后各个节点对应的维表和所述事实表的连接键,与待建立的分区映射表的纵坐标的预设数量,按照预设算法获取余数;根据所述余数建立所述分区映射表,所述分区映射表为比特向量表,所述比特向量表的横坐标表示各个节点的标识符,纵坐标表示所述连接键与所述预设数量进行预设算法后的余数;其中,所述预设运算为取模运算、模P加法、模P减法和模P乘法中的其中一个,所述预设数量小于所述维表的维表记录数。结合第一方面的第二种可能实现的方式,在第三种可能实现的方式中,所述将所述维表对应的事实表按照所述分区映射表进行分区,并按照所述分区映射表备份所述事实表中的数据包括:根据所述事实表中所述连接键与所述预设数量按照所述预设算法获取的余数确定所述分区映射表的纵坐标,选取所述纵坐标对应比特值为1的节点为所述连接键对应的事实表数据的分区节点;将所述事实表的数据按照确定的分区节点进行分区,其中,当根据所述连接键获取的所述纵坐标对应的比特值为1有至少两个节点时,将所述连接键对应的事实表数据同时分布在所述至少两个节点上。结合第一方面的第三种可能实现的方式,在第四种可能实现的方式中,所述方法还包括:若在将所述事实表按照所述分区映射表进行分区时,出现备份的事实表数据没有同时备份在所述至少两个节点上,则根据所述分区映射表查找将所述事实表数据备份成功的节点;根据所述备份成功的节点中的事实表数据和所述分区映射表,获取丢失的备份事实表数据,以便于从所述备份成功的节点获取所述丢失的备份事实表数据。第二方面,提供一种设备,包括:第一分区单元,用于将分布式数据库中的维表进行数据分区;建立单元,用于根据所述维表的分区特征并按照预设算法建立分区映射表;第二分区单元,用于将所述维表对应的事实表按照所述分区映射表进行分区;以及备份单元,用于按照所述分区映射表备份所述事实表中的数据。结合第二方面,在第二方面的第一种可能实现的方式中,所述第一分区单元具体用于:按照哈希算法,将所述分布式数据库中的维表进行数据分区,以获取分区后各个节点对应的维表的数据。结合第二方面的第一种可能实现的方式,在第二方面的第二种可能实现的方式中,所述建立单元具体用于:根据所述分区后各个节点对应的维表和所述事实表的连接键,与待建立的分区映射表的纵坐标的预设数量,按照预设算法获取余数;根据所述余数建立所述分区映射表,所述分区映射表为比特向量表,所述比特向量表的横坐标表示各个节点的标识符,纵坐标表示所述连接键与所述预设数量进行预设算法后的余数;其中,所述预设运算为取模运算、模P加法、模P减法和模P乘法中的其中一个,所述预设数量小于所述维表的维表记录数。结合第二方面的第二种可能实现的方式,在第二方面的第三种可能实现的方式中,所述第二分区单元和所述备份单元具体用于:根据所述事实表中所述连接键与所述预设数量按照所述预设算法获取的余数确定所述分区映射表的纵坐标,选取所述纵坐标对应比特值为1的节点为所述连接键对应的事实表数据的分区节点;将所述事实表的数据按照确定的分区节点进行分区,其中,当根据所述连接键获取的所述纵坐标对应的比特值为1有至少两个节点时,将所述连接键对应的事实表数据同时分布在所述至少两个节点上。结合第二方面的第三种可能实现的方式,在第二方面的第四种可能实现的方式中,还包括:查找单元,用于若在将所述事实表按照所述分区映射表进行分区时,出现备份的事实表数据没有同时备份在所述至少两个节点上,则根据所述分区映射表查找将所述事实表数据备份成功的节点;获取单元,用于根据所述备份成功的节点中的事实表数据和所述分区映射表,获取丢失的备份事实表数据,以便于从所述备份成功的节点获取所述丢失的备份事实表数据。第三方面,提供一种设备,包括:处理器,用于将分布式数据库中的维表进行数据分区;所述处理器,还用于根据所述维表的分区特征并按照预设算法建立分区映射表;所述处理器,还用于将所述维表对应的事实表按照所述分区映射本文档来自技高网
...

【技术保护点】
一种数据分区方法,其特征在于,包括:将分布式数据库中的维表进行数据分区;根据所述维表的分区特征并按照预设算法建立分区映射表;将所述维表对应的事实表按照所述分区映射表进行分区,并按照所述分区映射表备份所述事实表中的数据。

【技术特征摘要】
【国外来华专利技术】1.一种数据分区方法,其特征在于,包括:
将分布式数据库中的维表进行数据分区;
根据所述维表的分区特征并按照预设算法建立分区映射表;
将所述维表对应的事实表按照所述分区映射表进行分区,并按照
所述分区映射表备份所述事实表中的数据。
2.根据权利要求1所述的方法,其特征在于,所述将分布式数据
库中的维表进行数据分区包括:
按照哈希算法,将所述分布式数据库中的维表进行数据分区,以
获取分区后各个节点对应的维表的数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述维表
的分区特征并按照预设算法建立分区映射表包括:
根据所述分区后各个节点对应的维表和所述事实表的连接键,与
待建立的分区映射表的纵坐标的预设数量,按照预设算法获取余数;
根据所述余数建立所述分区映射表,所述分区映射表为比特向量
表,所述比特向量表的横坐标表示各个节点的标识符,纵坐标表示所
述连接键与所述预设数量进行预设算法后的余数;
其中,所述预设运算为取模运算、模P加法、模P减法和模P乘
法中的其中一个,所述预设数量小于所述维表的维表记录数。
4.根据权利要求3所述的方法,其特征在于,所述将所述维表对
应的事实表按照所述分区映射表进行分区,并按照所述分区映射表备
份所述事实表中的数据包括:
根据所述事实表中所述连接键与所述预设数量按照所述预设算法
获取的余数确定所述分区映射表的纵坐标,选取所述纵坐标对应比特
值为1的节点为所述连接键对应的事实表数据的分区节点;
将所述事实表的数据按照确定的分区节点进行分区,其中,当根
据所述连接键获取的所述纵坐标对应的比特值为1有至少两个节点时,
将所述连接键对应的事实表数据同时分布在所述至少两个节点上。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若在将所述事实表按照所述分区映射表进行分区时,出现备份的
事实表数据没有同时备份在所述至少两个节点上,则根据所述分区映
射表查找将所述事实表数据备份成功的节点;
根据所述备份成功的节点中的事实表数据和所述分区映射表,获
取丢失的备份事实表数据,以便于从所述备份成功的节点获取所述丢

\t失的备份事实表数据。
6.一种设备,其特征在于,包括:
第一分区单元,用于将分布式数据库中的维表进行数据分区;
建立单元,用于根据所述维表的分区特征并按照预设算法建立分
区映射表;
第二分区单元,用于将所述维表对应的事实表按照所述分区映射
表进行分区;以及
备份单元,用于按照所述分区映射表备份所述事实表中的数据。
7.根据权利要求6所述的设备,其特征在于,所述第一分区单元
具体用于:
按照哈希算法,将所述分布式数据库中的维表进行数据分区,以
获取分区后各个节点对应的维表的数据。
8.根据权利要求7所述的设备,其特征在于,所述建立单元具体
用于:
根据所述分区后各个节点对应的维表和所述事实表的连接键,与
待建立的分区映射表的纵坐标的预设数量,按照预设算法获取余数;
根据所述余数建立所述分区映射表,所述分区映射表为比特向量
表,所述比特向量表的横坐标表示各个节点的标识符,纵坐标表示所
述连接键与所述预设数量进行预设算法后的余数;
其中,所述预设运算为...

【专利技术属性】
技术研发人员:时家幸黄乐王玉虎
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1