CN112765262B - 一种数据重分布方法、电子设备及存储介质 - Google Patents
一种数据重分布方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112765262B CN112765262B CN201911070817.5A CN201911070817A CN112765262B CN 112765262 B CN112765262 B CN 112765262B CN 201911070817 A CN201911070817 A CN 201911070817A CN 112765262 B CN112765262 B CN 112765262B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- migrated
- number identifier
- barrel
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000005012 migration Effects 0.000 claims abstract description 69
- 238000013508 migration Methods 0.000 claims abstract description 69
- 239000012634 fragment Substances 0.000 claims abstract description 58
- 239000003795 chemical substances by application Substances 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 2
- 238000000638 solvent extraction Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 7
- 238000013467 fragmentation Methods 0.000 description 6
- 238000006062 fragmentation reaction Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及通信领域,公开了一种数据重分布方法、电子设备及存储介质。本发明中,方法包括:为待存储的数据记录添加桶号标识,并根据预先设置的桶号标识与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库;响应于数据重分布请求,获取待迁移数据的目标桶号标识;根据目标桶号标识,将待迁移数据迁移至目标分片数据库,通过在逻辑上对数据进行分区存储,提高了超大量数据重分布的可拓展性,避免了由于物理分区的受限而导致数据量过大时发生热点问题,提高***可靠性;以一个桶号标识对应的数据记录为基本单元进行数据迁移,保证了数据迁移的性能和质量,并且降低了对业务的影响,提高了数据重分布的可用性。
Description
技术领域
本发明实施例涉及分布式数据存储领域,特别涉及一种数据重分布方法、电子设备及存储介质。
背景技术
随着通信技术的发展和进步,当前对数据进行存储的方法已经不再仅仅局限于集中式存储,对于大数据的存储,开始将数据进行拆分并进行分布式存储,在分布式数据库中,数据根据分发键存储到不同的数据节点上,构成逻辑上的大型数据库,提高数据存储的能力的对存储资源的综合利用,若因分发键选择的不合理、或者热点数据等问题,可能导致部分数据节点的数据量远超其他数据节点,成为性能及存储容量的瓶颈,严重影响分布式数据库的服务。对当前的数据进行数据重分布,是分布式数据库一项重要的基本功能。在现有技术中,重分布的方法包括离线重分布和基于数据预分片计数进行在线数据重分布,离线重分布过程关闭业务运行,然后进行数据的重分布,基于数据预分片的在线数据分布,通过预先在各节点建立多张表格,采用物理分区的方式将数据拆分,然后将数据按照映射关系填入对应表格,表格按照映射关系存于对应分片,数据重分布时,以分片作为基本单元进行数据变更。
发明人发现相关技术中至少存在如下问题:离线重分布无法满足业务运行要求,现有计数在线重分布的方法不仅索引效率很低,而且会降低***可靠性;在进行超大量数据的重分布时,可拓展性较差,依旧会出现热点问题,并且在数据迁移过程中,可能会因为磁盘容量导致数据迁移失败。
发明内容
本发明实施方式的目的在于提供一种数据重分布方法、电子设备及存储介质,使得能够进行高效的数据在线重分布,降低数据迁移对业务造成的影响,提高数据重分布的可拓展性,避免热点问题,保证数据迁移的效率和质量。
为解决上述技术问题,本发明的实施方式提供了一种数据重分布方法,包括:为待存储的数据记录添加桶号标识,并根据预先设置的桶号标识与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库;响应于数据重分布请求,获取待迁移数据的目标桶号标识;根据目标桶号标识,将待迁移数据迁移至目标分片数据库。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述数据重分布方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的数据重分布方法。
本发明实施方式相对于现有技术而言,通过为接收到的每条数据记录添加桶号标识,并将数据按照自身桶号标识及桶号标识和分片数据库的对应关系进行存储,实现了在逻辑上对数据进行分区并存储,使得不再需要为每个分片数据库都单独维护一张数据库存储的数据记录的表格,避免根据物理分区建立表格进行数据存储的时候受到建表数量的限制,将业务数据划分成更小的单元进行存储,提高了数据重分布的可拓展性,从而避免了数据量过大带来的热点问题,提高***可靠性;在进行数据重分布的时候,通过确定要迁移数据的目标桶号标识,将目标桶号标识对应的数据迁移到目标数据库中,实现了以一个桶号标识对应的数据记录为基本单元进行数据迁移,保证了数据迁移的效率和质量,并且降低了对业务的影响,提高了数据重分布的可用性。
另外,根据目标桶号标识,将待迁移数据迁移至目标分片数据库,包括:将待迁移数据的目标桶号标识分成N组,同一组的目标桶号标识对应的待迁移数据作为同一批次的待迁移数据;其中,N为大于1的整数;根据各组的目标桶号标识,分批次迁移至目标数据库,通过对待迁移数据按照桶号标识进行分批迁移,避免了单次迁移的数据过多,占用存储资源过大,影响迁移性能,同时由于采用了分批迁移数据的方式,降低了迁移数据过程中,对业务造成的影响。
另外,根据各组的目标桶号标识,分批次迁移至目标数据库,包括:锁定当前批次的待迁移数据的目标桶号标识;将当前批次的待迁移数据迁移至目标数据库,并在完成迁移后解锁当前批次的待迁移数据的目标桶号标识,对一个分组内的数据标识对应的数据进行迁移时,通过根据数据标识,锁定数据的操作权限,避免了在数据迁移时对数据进行访问和操作导致数据丢失等问题,保证了数据迁移的质量。
另外,将当前批次的待迁移数据迁移至目标数据库,包括:向数据库代理发送数据迁移指令,数据迁移指令携带当前批次的待迁移数据的目标桶号标识和目标分片数据库,供数据库代理根据目标桶号标识从源分片数据库中获取当前批次的待迁移数据,并将当前批次的待迁移数据迁移至目标分片数据库,根据待迁移数据的桶号标识和数据迁移的目标分片数据库发布数据迁移命令,由数据库代理对待迁移数据进行读取和迁移,省去了将数据导出到文件***这一步骤,避免了额外的导出和导入,提高了数据迁移的性能和效率。
另外,为待存储的数据记录添加桶号标识前,还包括:按照以下公式计算桶号标识的数量M,
其中,S为预估的待存储数据记录的数量,L为各桶号标识预设最大使用次数,通过预先设置足够数量的桶号标识,避免了数据分布存储时出现热点问题,保证了数据尽可能均匀的分布。
另外,为待存储的数据记录添加桶号标识,包括:根据随机散列算法确定待添加的桶号标识;将确定的待添加的桶号标识,添加至待存储的数据记录的拓展字段中,通过随机散列算法为待存储数据记录分配待添加的桶号标识,从而保证了在根据桶号标识将数据记录存储到分片数据库中时,数据的均匀分布。
另外,为待存储的数据记录添加桶号标识后,还包括:检测添加的桶号标识的使用次数是否已达到预设最大使用次数;若已达到预设最大使用次数,则将添加的桶号标识标记为禁止使用;方法还包括;在根据随机散列算法确定待添加的桶号标识后,在将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段前,检测确定的待添加的桶号标识,是否为标记为禁止使用的桶号标识;若是标记为禁止使用的桶号标识,则重新根据随机散列算法确定待添加的桶号标识;若不是标记为禁止使用的桶号标识,则再执行将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段中,通过在一个桶号标识使用次数足够多的时候,禁用这个桶号标识,在计算出的数据结果对应已禁止使用的桶号标识时,重新进行桶号标识的分配,避免了一个桶号标识下对应的数据过多,导致数据迁移的性能下降。
另外,根据目标桶号标识,将待迁移数据迁移至目标分片数据库后,还包括:更新桶号标识与分片数据库的对应关系,通过对桶号标识和分片数据库对应关系的更新,避免了数据访问的错误,保证了数据迁移的质量。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是根据本发明第一实施方式中的数据重分布方法流程图;
图2是根据本发明第二实施方式中的数据重分布方法流程图;
图3是根据本发明第二实施方式中的数据重分布方法的***架构示意图;
图4是根据本发明第三实施方式中的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施方式涉及一种数据重分布方法,在本实施方式中,为待存储的数据记录添加桶号标识,并根据数据记录以及预先设置的桶号标识,与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库;响应于数据重分布请求,获取待迁移数据的目标桶号标识;根据目标桶号标识,将待迁移数据迁移至目标分片数据库,通过在逻辑上对数据进行分区存储,避免了物理分区存储时,拓展性较差导致容易发生热点问题,在进行数据重分布的时候,以一个桶号标识对应的数据记录作为基本单元进行数据迁移,避免了对数据迁移性能的影响,提高了数据迁移的效率和质量,并降低了数据迁移对业务的影响。
下面对本实施方式的一种数据重分布方法的实现细节进行说明,以下内容仅为方便理解提供的实现细节,并非本方案的必须。
本实施方式中的一种数据重分布方法的具体流程如图1所示,具体包括以下步骤:
步骤101,为待存储数据记录添加桶号标识并存入桶号标识对应的分片数据库。
具体地说,元数据服务器在接收到待存储的数据后,为待存储的数据记录添加桶号标识,并根据预先设置的桶号标识与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库。
在一个例子中,元数据服务器在进行数据存储之前,预估待存储的数据记录的数量,并结合数据迁移过程中对迁移数据的容量要求,为各桶号标识预设最大使用次数,然后结合预估待存储数据记录的数量及各桶号标识的预设最大使用次数,根据以下公式计算出待生成桶号标识的数量M,
其中,S为预估的待存储数据记录的数量,L为各桶号标识预设最大使用次数。
例如,元数据服务器预估出待存储的数据记录的数量为10亿条,而根据分片式数据库的分片特性及经验值,一个桶号标识对应的数据记录最多为100万条,即一个桶号标识的最大使用次数为100万,则根据公式,待生成桶号标识数量M=预估待存储数据记录数量S/桶号标识预设最大使用次数,即需要创建的桶号标识数量M=10亿/100万=1000个,则元数据服务器根据计算结果生成1000个桶号标识,并构建桶号标识和分片数据库的对应关系的BGMT映射表,并将各桶号标识根据对应的分片数据库填入映射表中。
在实际应用中,可以根据实际情况和需要对桶号标识的预设最大使用次数进行调整,对预设最大次数的设置,本实施方式不做限制。
在接收到待存储的数据时,元数据服务器借助随机散列算法确定待存储数据记录待添加的桶号标识,将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段中,并根据预先设置的桶号标识与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库。
例如,元数据服务器采用的随机散列算法为哈希算法,计算并创建的桶号标识数量是1000,由于哈希算法的结果与桶号标识一一对应,则可能得到的哈希值也有1000个,在接收到一条新的待存储数据的时候,将待存储的数据输入到哈希算法中,通过计算得到的哈希值是23,则在这条数据的数据记录拓展字段中添加桶号标识23的字段,然后在桶号标识和分片数据库对应关系的列表中查询桶号标识23对应的分片数据库,查询到的分片数据库为2,则将这条数据存入分片数据库2中。
在实际应用中,确定数据记录待添加的桶号标识及确定BGMT映射表中桶号标识和分片数据库对应关系时,采用的随机散列算法可以根据实际需要进行调整,在本实施方式中,对随机散列算法的选用不做限制。
步骤102,接收到数据重分布请求时,获取待迁移数据的目标桶号标识。
具体地说,元数据服务器在接收到数据重分布请求后,响应于数据重分布请求的时候,获取待迁移数据的目标桶号标识,即,确定哪些桶号标识对应的数据要进行迁移。
在一个例子中,元数据服务器在接收到上层下发的数据重分布请求后,根据要进行重分布的元数据的信息,生成完整的数据重分布任务计划,确定待迁移数据的桶号标识,例如,收到的数据重分布请求中,要进行数据重分布的桶号标识是5至9的5个桶号标识,则将5至9这5个桶号标识作为目标桶号标识。
步骤103,将待迁移数据迁移至目标分片数据库。
具体地说,元数据服务器在确定要进行数据迁移的桶号标识后,确定目标桶号标识的目标数据库,然后,根据目标桶号标识,将待迁移数据迁移至目标分片数据库。
在一个例子中,元数据服务器在确定了要进行数据迁移的桶号标识的同时,获取目标桶号标识对应的数据分别要迁往的分片数据库,例如,桶号标识为5-7的这3个桶号标记的目标分片数据库为数据库4,桶号标识7、8的目标分片数据库为数据库1,则将桶号标识为5至7的所有数据都迁移到数据库4中,将桶号标识为7或8的所有数据都迁移到数据库1中,并在数据迁移完成后,更新桶号标识和分片数据库之间的映射表。
由此,本实施方式提供了一种数据重分布方法,先根据预估待存储数据的数量建立足够数量的桶号标识,在接收到待存储的数据时,根据随机散列算法的计算结果为待存储的数据添加桶号标识,并根据桶号标识和分片数据库的对应关系,将待存储数据按照自身的桶号标识存入对应的分片数据库中,通过逻辑上对数据进行分区存储,使得不再需要为每个分片数据库都单独维护一张数据库存储的数据记录的表格,避免建立表格进行数据存储的时候受到物理建表的限制,可以将业务数据划分成更小的单元进行存储,提高了数据重分布的可拓展性,避免了可能发生的热点问题,进而避免了对***可靠性的影响;在进行数据重分布的时候,确定要进行数据迁移的目标桶号标识,根据目标桶号标识对应的目标分片数据库,将待迁移的数据迁移到目标分片数据库中进行存储,通过以一个桶号标记对应的数据作为数据迁移的基本单位,避免了对磁盘的要求和占用,提高了数据迁移的效率和质量,同时以一个桶号标识对应的数据作为数据迁移的基本单元也降低了数据迁移过程中对业务的影响,提高了在线重分布的可用性。
本发明的第二实施方式涉及一种数据重分布方法,第二实施方式与第一实施方式大致相同,在本实施方式中,通过随机散列算法为待存储数据分配桶号标识后,检测待添加的桶号标识是否为禁止使用的桶号标识,在桶号标识被禁止使用时,重新分配待添加的桶号标识;在进行数据重分布的时候,对要进行数据迁移的目标桶号标识进行分组,按照各分组中包含的桶号标识,对待迁移数据进行分批的迁移,并且,在进行一组桶号标识对应的数据的迁移时,先锁定待迁移的数据操作权限,在迁移完成后,再重新解锁操作权限。
本实施方式中的一种数据重分布方法的具体流程如图2所示,具体包括以下步骤:
步骤201,确定待存储数据待添加的桶号标识。
具体地说,在获取到待存储的数据记录时,元数据服务器借助随机散列算法确定待存储数据记录待添加的桶号标识。
步骤202,检测确定的待添加的桶号标识是否为标记为禁止使用的桶号标识;若是标记为禁止使用的桶号标识,则回到步骤201,若不是标记为禁止使用的桶号标识,则进入步骤203。
具体地说,在根据随机散列算法确定待添加的桶号标识后,在将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段中之前,检测确定的待添加的桶号标识是否为标记为禁止使用的桶号标识;若是标记为禁止使用的桶号标识,则回到步骤201,重新根据随机散列算法确定待添加的桶号标识;若不是标记为禁止使用的桶号标识,则进入步骤203。
步骤203,为待存储数据记录添加桶号标识并存入桶号标识对应的分片数据库。
具体地说,在待添加的桶号标识不是标记为禁止使用的桶号标识的时候,将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段中,为待存储的数据记录添加桶号标识后,检测添加的桶号标识的使用次数是否已达到预设最大使用次数;若已达到预设最大使用次数,则将添加的桶号标识标记为禁止使用,然后将待存储数据根据桶号标识和分片数据库的对应关系将数据存入分片数据库中。
在一个例子中,检测到待添加的桶号标识未被标记为禁用使用,将确定的待添加的桶号标识,添加至待存储的数据记录的扩展字段中,并根据预先设置的桶号标识与分片数据库的对应关系,将数据记录存储至与数据记录的桶号标识对应的分片数据库,然后对添加的桶号标识的使用次数进行检测,检测添加的桶号标识的使用次数是否已达到预设最大使用次数,若已达到预设最大使用次数,则将添加的桶号标识标记为禁止使用,若添加的桶号标识的使用次数未达到预设最大使用次数,则更新桶号标识的使用次数。
步骤204,获取待迁移数据的目标桶号标识并进行分组。
具体地说,在元数据服务器响应与数据重分布请求时,根据元数据信息生成完整的重分布计划,先获取待迁移数据的目标桶号标识,即确定所有对应数据记录要进行数据迁移的桶号标识,然后将待迁移数据的目标桶号标识分成N组,其中N为大于1的整数。
在一个例子中,元数据服务器收到数据重分布请求后,根据数据重分布请求的信息,确定要进行数据重分布的是桶号标识1至100对应的数据记录,为了保证数据迁移的性能,元数据服务器对这一百个待迁移数据的桶号标识进行分组,例如,按照1至10、11至20……将每十个桶号标识作为一组。
在实际应用中,可以根据实际需要,设置分组数量以及每个分组包含的桶号标识数量,对于目标桶号标识的分组方法,本实施方式不做限制。
步骤205,将待迁移数据分批次迁移至目标数据库。
具体地说,在对待迁移数据的目标桶号标识进行分组后,同一组的目标桶号标识对应的待迁移数据作为同一批次的待迁移数据,然后根据各组的目标桶号标识,分批次迁移至目标数据库,迁移过程中,元数据服务器锁定当前批次的待迁移数据的目标桶号标识,将当前批次的待迁移数据迁移至目标数据库,并更新桶号标识和分片数据库的对应关系,在完成迁移后解锁当前批次的待迁移数据的目标桶号标识,并继续下一批次的数据迁移,直到所有待迁移数据都完成数据迁移。
在一个例子中,元数据服务器对待迁移数据的桶号标识进行分组后,随机选取一组桶号标识,对桶号标识对应的数据进行数据迁移。例如,检测到当前批次待迁移数据的目标桶号标识为1至10,元数据服务器将待锁定的桶号标识信息存入元数据中,向各数据库代理下发锁桶请求,各数据库代理接收到元数据服务器下发的请求后,更新内存的锁桶信息,并检测自身各分片数据库对应的桶号标识,检测到需要进行锁定的桶号标识时,数据库代理停止对待锁定桶号标识对应的数据进行DML(数据操作语言)操作。在锁桶过程中,数据库代理检测桶号标识7对应的数据中,部分数据正在被运行中的业务访问和更改,而其余桶号标识对应的数据都处于未被访问的状态,此时,对桶号标识1至6、8至10的9个桶号标识下的数据进行操作权限的锁定,禁止业务对数据进行访问和更改,将这9个桶号标识对应的数据作为这一批次待迁移的数据,在检测不到针对桶号标识为7的数据进行数据的访问后,再对桶号标识为7的数据进行迁移。
在对当前批次的待迁移数据的桶号标识进行锁定后,向数据库代理发送数据迁移指令,数据迁移指令携带当前批次的待迁移数据的目标桶号标识和目标分片数据库,供数据库代理根据目标桶号标识从源分片数据库中获取当前批次的待迁移数据,并将当前批次的待迁移数据迁移至目标分片数据库,然后更新桶号标识和分片数据库的对应关系。
例如,在对待迁移数据的桶号标识进行锁定后,元数据服务器选取数据库代理1作为执行数据迁移的数据库代理,元数据服务器向数据库代理1发送数据迁移指令,由于桶号标识7对应的数据暂时不进行数据迁移,所以数据库代理根据数据迁移指令构建数据迁移SQL(结构化查询语言)语句,将桶号标识为1至6的数据分别从源分片数据库中提取到数据库代理1的存储空间中,然后将获取到的数据从数据库代理的存储空间中导入到分片数据库11,并清除自身的数据缓存,然后将桶号标识8至10的数据按照同样的方式迁移至分片数据库9中。
在本批次的数据迁移结束后,数据库代理1不仅将自身缓存的数据清除,同时,将进行了数据迁出的分片数据库中,已迁出的数据清除,并对每个分片数据库对应的桶号标识进行更新,然后向元数据服务器反馈数据迁移成功的消息。数据迁移方法的***架构示意图如图3所示,元数据服务器接收重分布请求,元数据服务器选定待迁移数据的一组桶号标识,并向各数据库代理发布锁桶指令对选定的桶号标识对应的数据进行锁定,然后向指定数据库代理发布数据迁移指令,由选定的数据库代理将一个分片数据库中一个桶号标识对应的数据(Bn)作为基本单位,缓存至自身存储空间,然后将缓存的数据导入待迁移数据的目标分片数据库,并对完成数据迁移的桶号标识进行解锁,最后更新桶号标识和分片数据库的对应关系。
在实际应用中,进行数据迁移的时候,可以根据实际情况自行确定优先进行数据迁移的桶号标识,对于数据迁移的顺序,本实施方式不做限制。
在完成了将当前批次的待迁移数据迁移至目标数据库后,解锁对应数据完成数据迁移的目标桶号标识,然后重新选取一组桶号标识对应的数据进行新的数据重分布,直到数据重分布请求对应的数据都完成数据迁移,并反馈数据迁移结果。
在一个例子中,元数据服务器接收到数据库代理反馈的桶号标识1至4对应的数据已经成功的迁移至分片数据库2后,元数据服务器将元数据中的针对桶号标识1至4的锁桶信息解除,并向各数据库代理下发解锁请求,数据库代理在接收到解锁请求后,对桶号标识1至4对应的数据进行操作权限的解锁,恢复数据库代理对数据进行访问和更改,并向元数据服务器反馈解锁成功的信息,在完成解锁后,元数据服务器根据数据迁移完成后的反馈消息,对桶号标识与分片数据库的对应关系进行更新,并恢复对桶号标识1至4对应的数据的更改和访问,然后,元数据服务器从分组完成的桶号标识中选取一组新的桶号标识,对桶号标识对应的数据进行数据迁移,直到数据重分布请求对应的数据都完成数据迁移,反馈数据迁移的结果。
由此本实施方式提供了一种数据重分布方法,通过对待添加的桶号标识的使用次数进行检测,避免了一个桶号标识对应的数据过多,降低数据迁移性能;在进行数据迁移时,通过对待迁移数据的桶号标识进行分组,实现了对数据的分批迁移,提高了数据迁移性能,降低了对业务的影响;通过在数据库代理内部完成数据迁移,避免了将待迁移数据在文件***中进行额外的导入、导出,提高了数据迁移的性能和效率;通过在数据迁移前对当前批次的数据进行操作权限的锁定,迁移完毕后再解锁,避免了数据的丢失和导致业务发生错误;从而实现了高效、准确的数据在线重分布,提升了数据重分布的灵活性和可用性,进而极大的提高了用户体验。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种电子设备,如图4所示,包括至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述的数据重分布方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种数据重分布方法,其特征在于,包括:
为待存储的数据记录添加桶号标识,并根据预先设置的桶号标识与分片数据库的对应关系,将所述数据记录存储至与所述数据记录的桶号标识对应的分片数据库;
响应于数据重分布请求,获取待迁移数据的目标桶号标识;
根据所述目标桶号标识,将所述待迁移数据迁移至目标分片数据库;
其中,在所述为待存储的数据记录添加桶号标识后,还包括:
检测添加的桶号标识的使用次数是否已达到预设最大使用次数;
若已达到所述预设最大使用次数,则将所述添加的桶号标识标记为禁止使用;
所述方法还包括;
在根据随机散列算法确定待添加的桶号标识后,在将确定的所述待添加的桶号标识,添加至所述待存储的数据记录的扩展字段前,检测所述确定的所述待添加的桶号标识,是否为标记为禁止使用的桶号标识;
若是标记为禁止使用的桶号标识,则重新根据随机散列算法确定待添加的桶号标识;
若不是标记为禁止使用的桶号标识,则再执行所述将确定的所述待添加的桶号标识,添加至所述待存储的数据记录的扩展字段中。
2.根据权利要求1所述的数据重分布方法,其特征在于,所述根据所述目标桶号标识,将所述待迁移数据迁移至目标分片数据库,包括:
将所述待迁移数据的目标桶号标识分成N组,同一组的目标桶号标识对应的待迁移数据作为同一批次的待迁移数据;其中,N为大于1的整数;
根据各组的目标桶号标识,分批次迁移至所述目标数据库。
3.根据权利要求2所述的数据重分布方法,其特征在于,所述根据各组的目标桶号标识,分批次迁移至所述目标数据库,包括:
锁定当前批次的待迁移数据的目标桶号标识;
将所述当前批次的待迁移数据迁移至所述目标数据库,并在完成迁移后解锁所述当前批次的待迁移数据的目标桶号标识。
4.根据权利要求3所述的数据重分布方法,其特征在于,所述将当前批次的待迁移数据迁移至所述目标数据库,包括:
向数据库代理发送数据迁移指令,所述数据迁移指令携带所述当前批次的待迁移数据的目标桶号标识和目标分片数据库,供所述数据库代理根据所述目标桶号标识从源分片数据库中获取所述当前批次的待迁移数据,并将所述当前批次的待迁移数据迁移至所述目标分片数据库。
6.根据权利要求1至5中任一项所述的数据重分布方法,其特征在于,所述为待存储的数据记录添加桶号标识,包括:
根据随机散列算法确定待添加的桶号标识;
将确定的所述待添加的桶号标识,添加至所述待存储的数据记录的拓展字段中。
7.根据权利要求1至5中任一项所述的数据重分布方法,其特征在于,所述根据所述目标桶号标识,将所述待迁移数据迁移至目标分片数据库后,还包括:
更新所述桶号标识与分片数据库的对应关系。
8.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的数据重分布方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的数据重分布方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911070817.5A CN112765262B (zh) | 2019-11-05 | 2019-11-05 | 一种数据重分布方法、电子设备及存储介质 |
PCT/CN2020/116284 WO2021088531A1 (zh) | 2019-11-05 | 2020-09-18 | 一种数据重分布方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911070817.5A CN112765262B (zh) | 2019-11-05 | 2019-11-05 | 一种数据重分布方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765262A CN112765262A (zh) | 2021-05-07 |
CN112765262B true CN112765262B (zh) | 2023-02-28 |
Family
ID=75692567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911070817.5A Active CN112765262B (zh) | 2019-11-05 | 2019-11-05 | 一种数据重分布方法、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112765262B (zh) |
WO (1) | WO2021088531A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392067A (zh) * | 2021-06-11 | 2021-09-14 | 北京金山云网络技术有限公司 | 一种针对分布式数据库的数据处理方法、装置及*** |
CN113438645A (zh) * | 2021-06-29 | 2021-09-24 | 恒安嘉新(北京)科技股份公司 | 一种5g网络下数据安全保护方法、装置、介质及电子设备 |
CN113377780A (zh) * | 2021-07-07 | 2021-09-10 | 杭州网易云音乐科技有限公司 | 一种数据库分片方法、装置、电子设备和可读存储介质 |
CN113468148B (zh) * | 2021-08-13 | 2023-02-17 | 上海浦东发展银行股份有限公司 | 一种数据库的数据迁移方法、装置、电子设备及其存储介质 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移*** |
CN113641686B (zh) * | 2021-10-19 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN114697376A (zh) * | 2022-03-16 | 2022-07-01 | 浪潮云信息技术股份公司 | 一种超大消息传输方法及装置 |
CN115118604B (zh) * | 2022-07-01 | 2023-04-11 | 杭州宇信数字科技有限公司 | 一种动态扩缩容的数据迁移方法、设备、***和介质 |
CN118113774A (zh) * | 2022-11-23 | 2024-05-31 | 华为云计算技术有限公司 | 一种数据库重分布的方法、***、设备集群及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613707B1 (en) * | 2006-12-22 | 2009-11-03 | Amazon Technologies, Inc. | Traffic migration in a multilayered data service framework |
US7774329B1 (en) * | 2006-12-22 | 2010-08-10 | Amazon Technologies, Inc. | Cross-region data access in partitioned framework |
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN105808340A (zh) * | 2014-12-29 | 2016-07-27 | 中移(苏州)软件技术有限公司 | 负载均衡方法及*** |
CN106936899A (zh) * | 2017-02-25 | 2017-07-07 | 九次方大数据信息集团有限公司 | 分布式统计分析***的配置方法及分布式统计分析*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504521B2 (en) * | 2005-07-28 | 2013-08-06 | Gopivotal, Inc. | Distributed data management system |
CN102033938B (zh) * | 2010-12-10 | 2012-06-06 | 天津神舟通用数据技术有限公司 | 基于二级映射的集群动态扩展方法 |
CN103905503B (zh) * | 2012-12-27 | 2017-09-26 | ***通信集团公司 | 数据存取方法、调度方法、设备及*** |
US9489239B2 (en) * | 2014-08-08 | 2016-11-08 | PernixData, Inc. | Systems and methods to manage tiered cache data storage |
CN104615657A (zh) * | 2014-12-31 | 2015-05-13 | 天津南大通用数据技术股份有限公司 | 一种节点支持多数据分片的分布式集群的扩容和缩容方法 |
CN108932256A (zh) * | 2017-05-25 | 2018-12-04 | 中兴通讯股份有限公司 | 分布式数据重分布控制方法、装置及数据管理服务器 |
-
2019
- 2019-11-05 CN CN201911070817.5A patent/CN112765262B/zh active Active
-
2020
- 2020-09-18 WO PCT/CN2020/116284 patent/WO2021088531A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613707B1 (en) * | 2006-12-22 | 2009-11-03 | Amazon Technologies, Inc. | Traffic migration in a multilayered data service framework |
US7774329B1 (en) * | 2006-12-22 | 2010-08-10 | Amazon Technologies, Inc. | Cross-region data access in partitioned framework |
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN105808340A (zh) * | 2014-12-29 | 2016-07-27 | 中移(苏州)软件技术有限公司 | 负载均衡方法及*** |
CN106936899A (zh) * | 2017-02-25 | 2017-07-07 | 九次方大数据信息集团有限公司 | 分布式统计分析***的配置方法及分布式统计分析*** |
Also Published As
Publication number | Publication date |
---|---|
WO2021088531A1 (zh) | 2021-05-14 |
CN112765262A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765262B (zh) | 一种数据重分布方法、电子设备及存储介质 | |
US9239741B2 (en) | System and method for flexible distributed massively parallel processing (MPP) | |
US10002148B2 (en) | Memory-aware joins based in a database cluster | |
US11500832B2 (en) | Data management method and server | |
US9576012B2 (en) | Hierarchical tablespace space management | |
US20160026684A1 (en) | Framework for volatile memory query execution in a multi node cluster | |
CN106682215B (zh) | 一种数据处理方法和管理节点 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
US10528580B2 (en) | Method and mechanism for efficient re-distribution of in-memory columnar units in a clustered RDBMS on topology change | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
US9785697B2 (en) | Methods and apparatus for implementing a distributed database | |
CN116150160A (zh) | 数据库集群处理节点的调整方法、装置及存储介质 | |
US20190372825A1 (en) | Communication apparatus, communication method, and recording medium | |
CN111459913B (zh) | 分布式数据库的容量扩展方法、装置及电子设备 | |
US11010410B1 (en) | Processing data groupings belonging to data grouping containers | |
CN112463786B (zh) | 数据同步方法、***、服务器及存储介质 | |
CN111782634B (zh) | 数据分布式存储方法、装置、电子设备及存储介质 | |
CN116204546A (zh) | Sql预编译方法、装置、服务器和存储介质 | |
CN116915510B (zh) | 一种基于高速加密算法的分布式存储*** | |
CN111221857A (zh) | 从分布式***中读数据记录的方法和装置 | |
US20240169072A1 (en) | Native multi-tenant row table encryption | |
CN112860654B (zh) | 数据分片处理方法、装置以及存储介质 | |
EP4174676A1 (en) | Data redistribution method and apparatus | |
CN117743337A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN116954514A (zh) | 基于集群的数据处理方法及其装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220110 Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone) Applicant after: Jinzhuan Xinke Co.,Ltd. Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Applicant before: ZTE Corp. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |