本申请涉及数据存储,例如涉及一种用于数据的扩容方法及装置、电子设备。
背景技术:
1、目前,随着数据量的增多,数据库中表格的访问压力逐步增大,当业务量增至高峰阈值时甚至造成数据库宕机。基于此,在数据量逐步增多而对数据库具有分表要求时,如何对数据库进行合理的分表操作成为当前亟需解决的技术难题。
2、为了对数据库进行合理的分表操作,相关技术公开了一种用于数据库的分表方法,包括以下步骤:利用业务键值取哈希值,确定业务键值,基于业务键值对分表后的表格数量进行取余操作。
3、在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
4、在执行分表操作时,分表后的表格数量为固定值。随着数据量的增多,固定的表格数量限制了分表后的表格总数。倘若在此基础上再次增加分表,则需要迁移表格中的全部数据,可操作性较差且数据迁移效率低下。
5、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
2、本公开实施例提供了一种用于数据的扩容方法及装置、电子设备,以增加分表操作的灵活性,提高数据迁移的效率。
3、在一些实施例中,所述方法包括:确定每个初始表格扩容后所对应的新表序号,扩容后的新表表格数量为初始表格数量的预设倍数,预设倍数为2的幂次方;确定每个初始表格对应的迁移区间以及每个初始表格中每个待迁移数据所对应的余数;根据每个待迁移数据所对应的余数与迁移区间的匹配情况,确定目标待迁移数据以及目标待迁移数据对应的目标新表序号,并将目标待迁移数据迁移至具有目标新表序号的新表中。
4、在一些实施例中,确定每个初始表格扩容后所对应的新表序号,包括:获得每个初始表格的表格序号n;确定第n个初始表格扩容后所对应的第一新表序号为2n-1;确定第n个初始表格扩容后所对应的第二新表序号为2n。
5、在一些实施例中,根据每个待迁移数据所对应的余数与迁移区间的匹配情况,确定目标待迁移数据以及目标待迁移数据对应的目标新表序号,并将目标待迁移数据迁移至具有目标新表序号的新表中,包括:将第n个初始表格中的待迁移数据迁移至该初始表格对应的具有第一新表序号的新表中;获得具有第一新表序号的新表中的待迁移数据所对应的余数;在余数位于迁移区间的情况下,将余数对应的待迁移数据确定为目标待迁移数据,并将目标待迁移数据迁移至该初始表格对应的具有第二新表序号的新表中。
6、在一些实施例中,将目标待迁移数据迁移至该初始表格对应的具有第二新表序号的新表中,包括:根据目标待迁移数据所对应的余数数值,确定目标待迁移数据的迁移顺序,目标待迁移数据的迁移顺序由余数数值由小到大确定;基于迁移顺序,依次将余数对应的目标待迁移数据迁移至具有第二新表序号的新表中。
7、在一些实施例中,获得每个初始表格中每个待迁移数据所对应的余数,包括:将每个待迁移数据的哈希值对设定阈值进行取余运算,获得每个待迁移数据的余数。
8、在一些实施例中,确定每个初始表格对应的迁移区间,包括:确定每个初始表格的起始参考迁移位置和终止参考迁移位置;根据每个初始表格的起始参考迁移位置和终止参考迁移位置,确定每个初始表格对应的迁移区间。
9、在一些实施例中,确定每个初始表格的起始参考迁移位置和终止参考迁移位置,包括:确定初始表格数量及新表表格数量;将设定阈值与初始表格数量作比值,获得初始表格索引数量;将设定阈值与新表表格数量作比值,获得新表表格索引数量;获得每个初始表格的表格序号;根据初始表格索引数量及每个初始表格的表格序号、新表表格索引数量,确定每个初始表格的起始参考迁移位置;根据起始参考迁移位置及新表表格索引数量,确定每个初始表格的终止参考迁移位置。
10、在一些实施例中,根据每个初始表格的起始参考迁移位置及终止参考迁移位置,确定每个初始表格对应的迁移区间,包括:根据第n个初始表格的起始参考迁移位置及终止参考迁移位置,确定第n个初始表格的迁移区间为[起始参考迁移位置,终止参考迁移位置]。
11、在一些实施例中,所述装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如前述的用于数据的扩容方法。
12、在一些实施例中,所述电子设备,包括:设备本体;如前述的用于数据的扩容装置,安装于所述设备本体。
13、本公开实施例提供的用于数据的扩容方法及装置、电子设备,可以实现以下技术效果:
14、本公开实施例首先确定每个初始表格扩容后所对应的新表序号,再确定每个初始表格对应的迁移区间及每个待迁移数据所对应的余数;最后,根据每个待迁移数据所对应的余数与迁移区间的匹配情况,确定目标待迁移数据以及目标待迁移数据对应的目标新表序号,并将目标待迁移数据迁移至具有目标新表序号的新表中。由于扩容后的新表表格数量为初始表格数量的2的幂次方,因此,在需要进行扩容后,每次在初始表格上增加的分表均可以从初始表格中进行数据拆分并针对拆分后的待迁移数据进行数据迁移以实现数据扩容的目的。以上数据扩容方法可以增加分表操作的灵活性,提高数据迁移的效率。
15、以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
1.一种用于数据的扩容方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,确定每个初始表格扩容后所对应的新表序号,包括:
3.根据权利要求2所述的方法,其特征在于,根据每个待迁移数据所对应的余数与迁移区间的匹配情况,确定目标待迁移数据以及目标待迁移数据对应的目标新表序号,并将目标待迁移数据迁移至具有目标新表序号的新表中,包括:
4.根据权利要求3所述的方法,其特征在于,将目标待迁移数据迁移至该初始表格对应的具有第二新表序号的新表中,包括:
5.根据权利要求1所述的方法,其特征在于,获得每个初始表格中每个待迁移数据所对应的余数,包括:
6.根据权利要求1所述的方法,其特征在于,确定每个初始表格对应的迁移区间,包括:
7.根据权利要求6所述的方法,其特征在于,确定每个初始表格的起始参考迁移位置和终止参考迁移位置,包括:
8.根据权利要求7所述的方法,其特征在于,根据每个初始表格的起始参考迁移位置及终止参考迁移位置,确定每个初始表格对应的迁移区间,包括:
9.一种用于数据的扩容装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至8任一项所述的用于数据的扩容方法。
10.一种电子设备,其特征在于,包括:
