数据均匀化方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:24455869 阅读:29 留言:0更新日期:2020-06-10 15:31
本发明专利技术公开了一种数据均匀化方法、装置、计算机设备及存储介质。所述方法包括:获取数据表的所有主键内容;根据Region的最大数据存储量和各主键内容对应的总数据量确定各主键内容对应的Region的个数;获取主键内容对应的RowKey数据集;自RowKey数据集中各RowKey中提取第一关键值后,根据第一关键值对主键内容对应的各个主键数据进行排序后得到序列值;根据主键内容对应的Region的个数以及序列值,自所有主键数据中,确定出与主键内容对应的各Region的边界范围;获取主键内容中的主键数据的第一关键值,并在确认第一关键值的大小在位于Region的边界范围之内时,将主键内容中与第一关键值对应的主键数据分配至该Region中进行存储。本发明专利技术可将数据表中的数据均匀化于各Region中。

Data homogenization method, device, computer equipment and storage medium

【技术实现步骤摘要】
数据均匀化方法、装置、计算机设备及存储介质
本专利技术涉及数据存储领域,尤其涉及一种数据均匀化方法、装置、计算机设备及存储介质。
技术介绍
Region是HBase集群分布的最小单元,HBase会将每张业务表所拥有的Region分布在各个RegionServer上。一般情况下,一张业务数据表刚开始只有一个对应的Region,但随着业务数据表的数据量的增大,并在数据量达到阀值时,Region会继续分裂成多个Region,若在业务数据表的数据量处于较多的情况下,会造成每张业务数据表的数据在Region中出现数据分布不均匀的现象,也会对Region关联的RegionServer造成压力,从而影响到RegionServer关联的HBase的读写性能。并且频繁对Region进行分裂操作,也会大大占用HBase集群所在服务器的资源,从而也会影响到HBase的读写性能。因此,亟需寻找一种技术方案解决上述所提到的问题。
技术实现思路
基于此,有必要针对上述技术问题,提供一种数据均匀化方法、装置、计算机设备及存储介质,用于将数据表中的数据均匀化于每一个Region中,进而提高Region对应的RegionServer的读写性能。一种数据均匀化方法,包括:将HBase集群中的Region的最大数据存储量设定为预设数据阈值;接收对所述HBase集群中的数据表的数据均匀化指令,获取所述数据表的所有主键内容;其中,一个所述主键内容关联所述数据表的其中一类存储数据的总数据量;与所述主键内容对应的一类存储数据中包含至少一个主键数据;根据所述预设数据阈值和每一个所述主键内容对应的所述总数据量确定所述数据表中与每一个所述主键内容对应的Region的个数;利用预设Hash算法获取所述数据表中的每一个所述主键内容对应的RowKey数据集;所述RowKey数据集包括所述主键内容对应的每一个主键数据的RowKey;自与所述主键内容对应的所述RowKey数据集中各所述RowKey中提取第一关键值后,根据所述第一关键值对所述主键内容对应的每一个主键数据进行排序,并获取排序之后的序列值;根据所述主键内容对应的Region的个数以及所述序列值,自与所述主键内容对应的所有主键数据中,确定出与所述主键内容对应的每一个Region的两个边界元素,并通过与所述主键内容对应的每一个Region的两个所述边界元素确定该Region的前边界值和后边界值;所述前边界值和后边界值均为与所述边界元素对应的第一关键值;每一个Region的前边界值和后边界值之间的范围记录为该Region的边界范围;获取所述主键内容对应的主键数据的所述第一关键值,在确认获取的所述第一关键值的大小在与所述主键内容对应的Region的边界范围之内时,将所述主键内容中与所述第一关键值对应的主键数据分配至该Region中进行存储。一种数据均匀化装置,包括:设定模块,用于将HBase集群中的Region的最大数据存储量设定为预设数据阈值;第一获取模块,用于接收对所述HBase集群中的数据表的数据均匀化指令,获取所述数据表的所有主键内容;其中,一个所述主键内容关联所述数据表的其中一类存储数据的总数据量;与所述主键内容对应的一类存储数据中包含至少一个主键数据;第一确定模块,用于根据所述预设数据阈值和每一个所述主键内容对应的所述总数据量确定所述数据表中与每一个所述主键内容对应的Region的个数;第二获取模块,用于利用预设Hash算法获取所述数据表中的每一个所述主键内容对应的RowKey数据集;所述RowKey数据集包括所述主键内容对应的每一个主键数据的RowKey;第三获取模块,用于自与所述主键内容对应的所述RowKey数据集中各所述RowKey中提取第一关键值后,根据所述第一关键值对所述主键内容对应的每一个主键数据进行排序,并获取排序之后的序列值;第二确定模块,用于根据所述主键内容对应的Region的个数以及所述序列值,自与所述主键内容对应的所有主键数据中,确定出与所述主键内容对应的每一个Region的两个边界元素,并通过与所述主键内容对应的每一个Region的两个所述边界元素确定该Region的前边界值和后边界值;所述前边界值和后边界值均为与所述边界元素对应的第一关键值;每一个Region的前边界值和后边界值之间的范围记录为该Region的边界范围;分配模块,用于获取所述主键内容对应的主键数据的所述第一关键值,在确认获取的所述第一关键值的大小在与所述主键内容对应的Region的边界范围之内时,将所述主键内容中与所述第一关键值对应的主键数据分配至该Region中进行存储。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据均匀化方法。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据均匀化方法。上述数据均匀化方法、装置、计算机设备及存储介质,通过预设数据阈值和数据表中的每一个主键内容的总数据量限制了Region的个数,防止频繁对Region进行无限制的分裂操作,防止大量占用HBase集群的资源,从而影响到HBase集群整体的读写性能,因此HBase集群的稳定性也将随之提高;将主键内容对应的该类存储数据中与第一关键值对应的主键数据分配至每一个Region中进行存储,从而基本实现将数据表中的主键内容对应的主键数据进行平均化至每一个Region中,因而与Region对应的RegionServer的运行负载压力将会减少,进而RegionServer的运行速度将会得到提高,也即RegionServer的读写性能将会得到提高。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例中数据均匀化方法的一应用环境示意图;图2是本专利技术一实施例中数据均匀化方法的一流程图;图3是本专利技术一实施例中数据均匀化方法步骤S40在一个应用环境下的流程示意图;图4是本专利技术一实施例中数据均匀化方法步骤S70之后在一个应用环境下的流程示意图;图5是本专利技术一实施例中数据均匀化装置的结构示意图;图6是本专利技术一实施例中计算机设备的一示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供的数据均匀化方法,可应用在如图1的应用环境中,其中,客户端通过网络与服本文档来自技高网...

【技术保护点】
1.一种数据均匀化方法,其特征在于,包括:/n将HBase集群中的Region的最大数据存储量设定为预设数据阈值;/n接收对所述HBase集群中的数据表的数据均匀化指令,获取所述数据表的所有主键内容;其中,一个所述主键内容关联所述数据表的其中一类存储数据的总数据量;与所述主键内容对应的一类存储数据中包含至少一个主键数据;/n根据所述预设数据阈值和每一个所述主键内容对应的所述总数据量确定所述数据表中与每一个所述主键内容对应的Region的个数;/n利用预设Hash算法获取所述数据表中的每一个所述主键内容对应的RowKey数据集;所述RowKey数据集包括所述主键内容对应的每一个主键数据的RowKey;/n自与所述主键内容对应的所述RowKey数据集中各所述RowKey中提取第一关键值后,根据所述第一关键值对所述主键内容对应的每一个主键数据进行排序,并获取排序之后的序列值;/n根据所述主键内容对应的Region的个数以及所述序列值,自与所述主键内容对应的所有主键数据中,确定出与所述主键内容对应的每一个Region的两个边界元素,并通过与所述主键内容对应的每一个Region的两个所述边界元素确定该Region的前边界值和后边界值;所述前边界值和后边界值均为与所述边界元素对应的第一关键值;每一个Region的前边界值和后边界值之间的范围记录为该Region的边界范围;/n获取所述主键内容对应的主键数据的所述第一关键值,在确认获取的所述第一关键值的大小在与所述主键内容对应的Region的边界范围之内时,将所述主键内容中与所述第一关键值对应的主键数据分配至该Region中进行存储。/n...

【技术特征摘要】
1.一种数据均匀化方法,其特征在于,包括:
将HBase集群中的Region的最大数据存储量设定为预设数据阈值;
接收对所述HBase集群中的数据表的数据均匀化指令,获取所述数据表的所有主键内容;其中,一个所述主键内容关联所述数据表的其中一类存储数据的总数据量;与所述主键内容对应的一类存储数据中包含至少一个主键数据;
根据所述预设数据阈值和每一个所述主键内容对应的所述总数据量确定所述数据表中与每一个所述主键内容对应的Region的个数;
利用预设Hash算法获取所述数据表中的每一个所述主键内容对应的RowKey数据集;所述RowKey数据集包括所述主键内容对应的每一个主键数据的RowKey;
自与所述主键内容对应的所述RowKey数据集中各所述RowKey中提取第一关键值后,根据所述第一关键值对所述主键内容对应的每一个主键数据进行排序,并获取排序之后的序列值;
根据所述主键内容对应的Region的个数以及所述序列值,自与所述主键内容对应的所有主键数据中,确定出与所述主键内容对应的每一个Region的两个边界元素,并通过与所述主键内容对应的每一个Region的两个所述边界元素确定该Region的前边界值和后边界值;所述前边界值和后边界值均为与所述边界元素对应的第一关键值;每一个Region的前边界值和后边界值之间的范围记录为该Region的边界范围;
获取所述主键内容对应的主键数据的所述第一关键值,在确认获取的所述第一关键值的大小在与所述主键内容对应的Region的边界范围之内时,将所述主键内容中与所述第一关键值对应的主键数据分配至该Region中进行存储。


2.根据权利要求1所述的数据均匀化方法,其特征在于,所述利用预设Hash算法获取所述数据表中的每一个所述主键内容对应的RowKey数据集,包括:
通过对所述数据表中的每一个所述主键内容对应的该类存储数据中的每一个主键数据运用Hash,得到各个所述主键内容中的各个主键数据的HashKey,并提取各个所述HashKey对应的各个第二关键值;
获取各个所述主键内容中的各个主键数据的字符长度,并分别将各个所述第二关键值与各个所述字符长度利用绝对值算法进行运算,得到各个第三关键值;
自预设字符分布表中获取各个所述第三关键值所对应的字符,并将获取的各所述字符和对应的主键数据通过预设符号对应进行拼接,得到所述RowKey数据集;所述RowKey数据集中的每一个所述RowKey均由至少一个所述字符与一个所述主键内容中的一个主键数据通过预设符号拼接而成。


3.根据权利要求1所述的数据均匀化方法,其特征在于,所述将所述主键内容中与所述第一关键值对应的主键数据分配至该Region中进行存储之后,还包括:
获取所述主键内容对应的所述RowKey数据集中需检索的RowKey,根据与所述RowKey对应的所述第一关键值,确定所述RowKey对应的主键数据在所述HBase集群中存储的目标Region;
定位与已确定的所述目标Region存在调度关系的至少一个RegionServer,建立起与所述RegionServer的通信连接后,通过所述RegionServer读取与所述RowKey对应的主键数据,并将所述RegionServer读取的主键数据通过通信连接写入至本地的预设数据表中。


4.根据权利要求3所述的数据均匀化方法,其特征在于,所述定位与已确定的所述目标Region存在调度关系的至少一个RegionServer之后,还包括:
实时监控参与读写任务的所述RegionServer的运行状态,并在其中一个所述RegionServer的运行状态为宕机时,获取与宕机的所述RegionServer关联的所述目标Region;
令所述Region解除与宕机的所述RegionServer之间的调度关系,并根据预设的调度规则建立所述目标Region与至少一个运行状态为正常的所述RegionServer之间的调度关系。


5.根据权利要求3所述的数据均匀化方法,其特征在于,所述将所述RegionServer读取的数据通过通信连接写入至本地中的预设数...

【专利技术属性】
技术研发人员:郑金伟
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东;44

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

1