CN116049133A - 数据迁移分发方法、装置、电子设备及存储介质 - Google Patents

数据迁移分发方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116049133A
CN116049133A CN202211530013.0A CN202211530013A CN116049133A CN 116049133 A CN116049133 A CN 116049133A CN 202211530013 A CN202211530013 A CN 202211530013A CN 116049133 A CN116049133 A CN 116049133A
Authority
CN
China
Prior art keywords
information
data
distribution
target
distribution rule
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.)
Pending
Application number
CN202211530013.0A
Other languages
English (en)
Inventor
马成飞
买建华
沈文宽
黄健
付裕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinzhuan Xinke Co Ltd
Original Assignee
Jinzhuan Xinke Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinzhuan Xinke Co Ltd filed Critical Jinzhuan Xinke Co Ltd
Priority to CN202211530013.0A priority Critical patent/CN116049133A/zh
Publication of CN116049133A publication Critical patent/CN116049133A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据迁移分发方法、装置、电子设备及存储介质,所述数据迁移分发方法通过确定源数据库中待分配数据的表分发键信息和表数据信息,并基于表数据信息从至少一个预设分发规则信息中,确定表数据信息对应的目标分发规则信息,以使得通过表分发键信息与目标分发规则信息,生成待分配数据对应的分发结果信息,根据分发结果信息将待分配数据分发至目标数据库,从而解决了现有技术中分发逻辑单一导致出现数据倾斜、查询效率低的问题,实现了针对待分配数据进行适应性分发至目标数据库的效果。

Description

数据迁移分发方法、装置、电子设备及存储介质
技术领域
本申请涉及数据库领域,尤其涉及一种数据迁移分发方法、装置、电子设备及存储介质。
背景技术
分布式数据库指数据在物理上分布而在逻辑上集中管理的数据库系统,分布式数据库具有透明性、数据冗余性和易扩展性,其中,易扩展性是分布式数据库重要地特性,指的是分布式数据库可以通过水平扩展来提升数据库的处理能力,数据可以被动态地分布到新增节点之上,消除数据倾斜,而易扩展性的提高主要是依赖数据分区。
数据分区把数据拆分到多个数据节点上,在多个节点上进行存储和处理,这种技术叫做数据分区,也叫做数据分片;数据分区有水平分区和垂直分区两种,水平分区是将表的内容按照某种规则分散到多个节点上,每个节点包含表的部分数据;垂直分区是将不同的表分布到不同的节点,或者表的不同列信息分布到不同的节点;但是无论是水平分区还是垂直分区均只是按照单一的逻辑进行分发数据,导致出现数据倾斜、查询效率低的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种数据迁移分发方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种数据迁移分发方法,所述方法包括:
确定源数据库中待分配数据的表分发键信息和表数据信息;
基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息;
基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息;
基于所述分发结果信息将所述待分配数据分发至目标数据库。
可选的,确定源数据库中待分配数据的表分发键信息和表数据信息,包括:
获取所述待分配数据的至少一个表信息;
确定所述表信息中的至少一种基本信息;
基于预设优先级信息对所述基本信息进行遍历,确定目标基本信息;
将所述目标基本信息作为所述表分发键信息;
对所述表信息进行统计,得到所述表信息对应的表数据信息。
可选的,基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息,包括:
基于所述表数据信息确定表数据量边界值;
基于所述表数据量边界值,从所述预设分发规则信息中,筛选出所述表数据信息对应的候选分发规则信息;
在所述候选分发规则信息为哈希表分发规则信息的情况下,将所述哈希表分发规则信息确定为所述目标分发规则信息。
可选的,还包括:
在所述候选分发规则信息为复制表分发规则信息的情况下,判断所述表数据信息是否存在关联表信息;
若所述表数据信息存在所述关联表信息,则确定多节点复制表分发规则信息为所述目标分发规则信息;
若所述表数据信息不存在所述关联表信息,则确定单节点复制表分发规则信息为所述目标分发规则信息。
可选的,基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息,包括:
获取所述目标数据库中的至少一个数据节点;
基于所述目标分发规则信息对所述数据节点进行分类,确定可用节点集合;
基于所述表分发键信息从所述可用节点集合中确定目标数据节点;
将所述目标数据节点作为所述分发结果信息。
可选的,基于所述目标分发规则信息对所述数据节点进行分类,确定可用节点集合,包括:
确定所述分发键信息对应的表容量信息;
确定所述数据节点对应的节点容量信息;
基于所述目标分发规则信息与所述表容量信息,判断所述节点容量信息是否满足要求;
当所述节点容量信息满足要求时,将所述节点容量信息对应的所述数据节点确定为可用节点;
基于所述可用节点,生成所述可用节点集合。
可选的,基于所述分发结果信息将所述待分配数据进行分发至目标数据库,包括:
确定所述分发键信息对应的所述待分配数据;
基于所述目标分发规则信息将所述待分配数据分发至所述目标数据节点。
第二方面,本申请提供了一种数据迁移分发装置,所述装置包括:
确定模块,用于确定源数据库中待分配数据的表分发键信息和表数据信息;
规则模块,用于基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息;
生成模块,用于基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息;
分发模块,用于基于所述分发结果信息将所述待分配数据进行分发至目标数据库。
第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的数据迁移分发方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的数据迁移分发方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例通过确定源数据库中待分配数据的表分发键信息和表数据信息,并基于表数据信息从至少一个预设分发规则信息中,确定表数据信息对应的目标分发规则信息,随后基于表分发键信息与目标分发规则信息生成待分配数据对应的分发结果信息,以在分发数据至目标数据库之前通过表分发键信息和表数据信息确定待分配数据对应的分发结果信息,从而可以根据分发结果信息将待分配数据分发至目标数据库,解决了现有技术中分发逻辑单一导致出现数据倾斜、查询效率低的问题,实现了针对待分配数据进行适应性分发至目标数据库的效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据迁移分发方法的流程示意图;
图2为本申请实施例提供的一种数据迁移分发系统的结构示意图;
图3为本申请实施例提供的一种数据迁移分发装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着互联网在线业务的发展,业务访问的并发量成指数上升,海量的数据计算和分析需求越来越普遍,传统的单机系统在业务、成本和开放性方面面临巨大挑战,分布式数据库的出现能够更好的迎接这些挑战。因此,分布式数据库越来越得到青睐,与其他数据库之间的数据交互也越来越多,数据向分布式数据库迁移也越来普遍。
现有的数据迁移通常是采用数据分区的方式,也即上述说明的水平分区和垂直分区两种方式,而在无论是水平分区还是垂直分区均只是按照单一的逻辑进行分发数据,之所以导致出现数据倾斜、查询效率低的问题,是因为在单一的逻辑下进行分发数据至各个节点上时,并不会根据数据的重要程度、使用频次、热点等类型对数据进行适应性分发,导致部分使用频次高的数据分发至提取效率低的数据热点也即存在查询效率低的问题,或者是将过的数据存储与同一个数据节点上,使得部分节点存储数据过多而部分节点存储数据过少,导致数据倾斜的问题。
图1为本申请实施例提供的一种数据迁移分发方法的流程示意图。
本申请公开一实施例,提供了一种数据迁移分发方法,所述方法包括:
S110:确定源数据库中待分配数据的表分发键信息和表数据信息。
源数据库用于表示需要将数据进行迁移的数据库,可以是ORACLE、MYSQL、DB2等数据库,而待分配数据用于表示需要进行迁移的数据,表分发键信息和表数据信息用于表示待分配数据的属性,需要说明的是数据库中的数据通常是以表的形式存储,也即待分配数据至少包括一个表,而表中可以包括有多种数据元素例如表的主键、唯一键、外键、普通索引、关联字段、where条件字段等,用于表示表存储的数据特征;而在表的维度上,还可以包括有表数据量、关联表信息、单数据节点容量等,用于表示表整体的属性特征;其中表分发键信息可以用于表示表存储的数据特征,表数据信息可以用于表示表整体的属性特征。
S111:步骤S110还可以包括:
S112:获取待分配数据的至少一个表信息;
S113:确定表信息中的至少一种基本信息;
S114:基于预设优先级信息对基本信息进行遍历,确定目标基本信息;
S115:将目标基本信息作为表分发键信息;
S116:对表信息进行统计,得到表信息对应的表数据信息。
本实施例中待分配数据中包括至少一个表信息,表信息为数据库存储的数据,而表信息中至少包括一种基本信息,基本信息用于表示表的主键、唯一键、外键、普通索引、关联字段、where条件字段等信息,而本实施例中的表分发键信息是选取基本信息中的一种信息作为分发待分配数据的标准;后续步骤基于表分发键信息与目标分发规则信息,生成待分配数据对应的分发结果信息,会基于主键确定分发结果信息,因此设置不同的基本信息作为表分发键信息,则会起到根据对不同待分配数据进行适应性生成不同分发结果信息的作用,起到适应性分发待分配数据的效果,例如选择主键作为表分发键信息时,可以根据主键进行筛选确定将该表分发至哪个数据节点,以此实现根据数据的具体情况进行分发的效果,如主键A对应的表信息与主键B对应的表信息分发至不同的数据,以此实现数据均衡分配的效果,或者是主键A对应的表信息获取频次较高,主键B对应的表信息获取频次较低,此时则可以基于主键将主键A对应的表信息分发至提取效率较高的数据节点,将主键B对应的表信息分发至提取效率较低的数据节点,以实现充分利用各个类型的数据节点提高查询效率低的效果。
因为表分发键信息为基本信息中的一种信息,因此需要对表信息的基本信息进行遍历,如上例子,若表分发键信息为主键时,当时由于表信息中的基本信息并不一定包括有主键,所以可以根据预设优先级信息确定表分发键信息,例如预设优先级信息为主键、唯一键、外键、普通索引、关联字段、where条件字段的优先级依次降低,此时则会按顺序对上述基本信息进行遍历判断是否存在,若某一基本信息存在时则确定该基本信息为表分发键信息,此时终止后续基本信息的遍历,例如当基本信息中未设置主键、唯一键、外键时,基于预设优先级信息会以此遍历主键、唯一键、外键,直至遍历到普通索引时,会将普通索引作为表分发键信息,并终止后续基本信息的遍历;以此获取优先级最高的基本信息作为表分发键信息。
S120:基于表数据信息从至少一个预设分发规则信息中,确定表数据信息对应的目标分发规则信息。
预设分发规则信息可以是用户根据需求预先设置的分发规则,也可以是默认的分发规则,可以是哈希表分发规则信息、复制表分发规则信息;其中,哈希表分发规则信息用于对哈希表类型的表进行分发,哈希表用于表示在一个表的数据分发至多个数据节点上,使得每个数据节点上存储的数据均是不同的,需要说明的是复制表可以是多单节点复制表和单节点复制表,多节点复制表用于表示在多个数据节点均设置相同的表,而单节点复制表用于表示仅设置于一个数据节点的表。
因此对于不同的表需要采用不同的预设分发规则信息,所以步骤S120基于表数据信息从至少一个预设分发规则信息中,确定表数据信息对应的目标分发规则信息,还可以包括:
S121:基于表数据信息确定表数据量和表数据量边界值;
S122:基于表数据量边界值,从预设分发规则信息中,筛选出表数据信息对应的候选分发规则信息;
S123:在候选分发规则信息为哈希表分发规则信息的情况下,将哈希表分发规则信息确定为目标分发规则信息。
本实施例中表数据信息用于表示表整体的属性特征,其中表数据量和表数据量边界值就属于表的属性特征,表数据量用于表示表的大小,例如100兆;而表数据量边界值则是用于判断不同分发规则信息的表数据的边界值,例如表数据量边界值100兆对应哈希表分发规则信息,表数据量边界值10兆对应复制表分发规则信息;因此在确定表数据量和表数据量边界值后,可以通过将表数据量与表数据量边界值进行对比,从预设分发规则信息中,筛选出表数据信息对应的候选分发规则信息,预设分发规则信息是用于表示哈希表分发规则信息、复制表分发规则信息等类型的分发规则,因此可以通过表数据量对不同表数据量进行初步筛选确定其候选分发规则信息为哈希表分发规则信息还是复制表分发规则信息,其中,哈希表分发规则信息是对将一个表信息分发至多个不同的数据节点,因此根据表数据量以及表数据量边界值确定候选分发规则信息为哈希表分发规则信息时,可以之间将哈希表分发规则信息确定为目标分发规则信息。
而因为复制表包括有单节点复制表和多节点复制表,因此在根据表数据量以及表数据量边界值确定候选分发规则信息为复制表分发规则信息时,还需要对候选分发规则信息进行进一步的判断,也即步骤S120还可以包括:
S124:在候选分发规则信息为复制表分发规则信息的情况下,判断表数据信息是否存在关联表信息;
S125:若表数据信息存在关联表信息,则确定多节点复制表分发规则信息为目标分发规则信息;
S126:若表数据信息不存在关联表信息,则确定单节点复制表分发规则信息为目标分发规则信息。
本实施例中在候选分发规则信息为复制表分发规则信息的情况下,判断表数据信息是否存在关联表信息,以此确定待分配数据的表信息为多节点复制表还是单节点复制表,若表数据信息存在关联表信息,则说明是多节点复制表,此时确定多节点复制表分发规则信息为目标分发规则信息,若表数据信息不存在关联表信息,则说明是单节点复制表,此时确定单节点复制表分发规则信息为目标分发规则信息。
通过上述步骤可以确定目标分发规则信息为哈希表分发规则信息、多节点复制表分发规则信息或者单节点复制表分发规则信息,其中,哈希表分发规则信息的分配逻辑包括确定分发范围和数据节点确定;确定待分配数据的表信息分发范围:首先根据表信息的表数据量(考虑数据膨胀系数)和实际单个节点容量按照指定的规则确定表要分发的数据节点数和每个节点的平均数据量。数据节点的确定:遍历现存的数据节点,寻找剩余容量足够的数据节点:若数据节点剩余容量能容纳下该表的平均数据量,则该数据节点为该表的一个分发数据节点,并继续寻找下一个数据节点;若现存的数据节点遍历结束,该表还未找到足够的数据节点,则新增剩余数量的数据节点。
多节点复制表分发规则信息的分配逻辑为:由于多节点表信息在每个数据节点有相同的数据,所以首先计算所有多节点表信息总的表数据量(考虑数据膨胀系数),将单数据节点容量减去多节点表信息总的表数据量,剩下的是实际单个节点的容量。
单节点复制表分发规则信息的分配逻辑为:遍历现存的数据节点,若数据节点剩余容量能容纳下该表信息的平均数据量,则该数据节点为该表信息的分发数据节点;若现存的数据节点遍历结束,该表还未找到的合适数据节点,则新增一个数据节点。
由于待分配数据中会包括多个表信息,因此对于不同的表信息会存在不同的目标分发规则信息,因此当存在多个目标分发规则信息时,会依据多节点复制表分发规则信息、哈希表分发规则信息以及单节点复制表分发规则信息的顺序进行有序分发不同类型的表数据,之所以采用上述的分发顺序,是因为对于多节点复制表分发规则信息对应的表信息是需要分发至多个数据节点,因此其每个表数据量是相同且分发方式为固定形式,将其分发完成后对同样需要分发至多个数据节点的哈希表分发规则信息进行分发,最后对仅需要分发至单个数据节点的单节点复制表分发规则信息进行分发,以此提高了待分配数据的分发效率。
在一例子中,多节点复制表分发规则信息对应的表数据量为10兆,哈希表分发规则信息对应的表数据量为100兆,单节点复制表分发规则信息对应的表数据量为10兆,目标数据库目前设有10个数据节点,数据节点的容量为100兆,首先对多节点复制表分发规则信息对应的表数据量为10兆的表信息分发至10个数据节点上,此时各数据节点仅剩余90兆,接着对哈希表分发规则信息对应的表数据量为100兆的表信息分发至10个数据节点上,也即每个节点分发10的的表信息,此时各数据节点仅剩余80兆,在该过程中则可以根据表分发键信息选择将获取频次高表信息分发至获取效率高的数据节点上,最后对单节点复制表分发规则信息对应的表数据量为10兆分的表信息分其中一个发数据节点。
S130:基于表分发键信息与目标分发规则信息,生成待分配数据对应的分发结果信息。
因为目标分发规则信息为用于确定将待分配数据的分发方式,而待分配数据中包括有多个表信息,将各个表信息具体分发至哪个数据节点则是通过分发键信息进行确定;
因此步骤S130可以包括:
S131:获取目标数据库中的至少一个数据节点;
S132:基于目标分发规则信息对数据节点进行分类,确定可用节点集合;
S133:基于表分发键信息从可用节点集合中确定目标数据节点;
S134:将目标数据节点作为分发结果信息。
本实施例中目标数据库为需要将待分配数据迁移至的数据库,可以是分布式数据库,目标数据库中包括有多个数据节点,而每个数据节点均其容量信息,当数据节点的可以容量小于表信息的容量时,则无法存储表信息,因此基于目标分发规则信息对数据节点进行分类,确定可用节点集合,因此可用节点集合用于表示待分配数据的分发范围,目标分发规则信息会确定可分配数据的分发方式,也即可以确定分发至数据节点的表信息的表容量信息,以此确定各个数据节点是否可以用于存储该表容量信息的表信息,可以存储则确定为可用节点,所有的可用节点称为可以节点集合;接着,在确定可用节点集合后,可用节点集合中存在多个数据节点,而不同的数据节点存储数据的效果并不相同,例如不同的数据节点提取效率不同,因此基于表分发键信息从可用节点集合中确定目标数据节点,提高未分配数据的分发效率。
步骤S132可以包括:
S1321:确定分发键信息对应的表容量信息;
S1322:确定数据节点对应的节点容量信息;
S1323:基于目标分发规则信息与表容量信息,判断节点容量信息是否满足要求;
S1324:当节点容量信息满足要求时,将节点容量信息对应的数据节点确定为可用节点;
S1325:基于可用节点,生成可用节点集合。
本实施例中表容量信息用于表示所述分发键信息对应的表信息的表数据量,节点容量信息用于表示数据节点的容量大小,以此基于所述目标分发规则信息与所述表容量信息,判断所述节点容量信息是否满足要求,其中是否满足表示若基于目标分发规则信息进行分发表信息,节点容量信息是否大于表容量信息,其中节点容量信息用于表示数据的可用容量,例如数据节点虽然拥有100兆的容量,但是设置其存储数据不能大于50兆,则此时节点容量信息则为50兆;若节点容量信息大于表容量信息则认为满足要求,将节点容量信息对应的数据节点确定为可用节点,以此逐一确定各个数据节点,将所有可用节点进行收集,生成可用节点集合。
在将目标数据节点作为分发结果信息后,包括:
S140:基于分发结果信息将待分配数据分发至目标数据库。
步骤S140可以包括:
S141:确定分发键信息对应的待分配数据;
S142:基于目标分发规则信息将待分配数据分发至目标数据节点。
本实施例中目标数据库包括多个数据节点,待分配数据包括多个表信息,多个表信息需要分发至多个数据节点,而对于每个表信息对于其所要分发至的数据节点则位目标数据节点,以此通过表分发键信息与表数据信息确定出待分配数据中各个表信息中的数据所分发至对应的目标数据节点的效果,并且可以基于用户需求对表分发键信息和目标分发规则信息进行调整,以实现满足用户需求的分发,完成对数据迁移的数据均衡,以及迁移后数据使用效率高的效果。
在一实施例中,基于前述执行步骤生成的表分发键信息、目标规则分发信息和分发范围以及目标库的语法,生成分发规则和拼接分发规则sql。
如图2所示的,本申请还公开一实施例,提供了一种数据迁移分发系统,系统包括采集模块210、分析模块220、分发规则生成模块230以及输出模块240;
采集模块210,用于对源端数据库进行采集数据库基本信息、DDL信息和DML信息。
业务数据分析模块220,用于通过对源端数据库的基本信息、DDL和DML语句分析,统计出表主键、唯一键、外键、普通索引、关联表及关联字段、where条件字段的信息,为生成分发规则做准备。
分发规则生成模块230,用于根据分析模块统计的信息和目标库信息逐步生成分发规则,用于执行:分发键筛选、分发方式选择、确定分发范围和数据节点数量、生成分发规则和sql。
输出模块240,用于根据多个维度信息统计,输出报告,包括分发规则相报告。
上述系统中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
如图3所示的,本申请还公开一实施例,提供了一种数据迁移分发装置,装置包括:
确定模块310,用于确定源数据库中待分配数据的表分发键信息和表数据信息;
规则模块320,用于基于表数据信息从至少一个预设分发规则信息中,确定表数据信息对应的目标分发规则信息;
生成模块330,用于基于表分发键信息与目标分发规则信息,生成待分配数据对应的分发结果信息;
分发模块340,用于基于分发结果信息将待分配数据进行分发至目标数据库。
在一实施例中,确定模块310可以包括:
获取单元,用于获取待分配数据的至少一个表信息;
基本信息单元,用于确定表信息中的至少一种基本信息;
遍历单元,用于基于预设优先级信息对基本信息进行遍历,确定目标基本信息;
表分发键单元,用于将目标基本信息作为表分发键信息;
表数据单元,用于对表信息进行统计,得到表信息对应的表数据信息。
在一实施例中,规则模块320可以包括:
边界值单元,用于基于表数据信息确定表数据量边界值;
筛选单元,用于基于表数据量边界值,从预设分发规则信息中,筛选出表数据信息对应的候选分发规则信息;
第一确定单元,用于在候选分发规则信息为哈希表分发规则信息的情况下,将哈希表分发规则信息确定为目标分发规则信息。
所述装置,还包括:
第一判断单元,用于在候选分发规则信息为复制表分发规则信息的情况下,判断表数据信息是否存在关联表信息;
第二确定单元,用于若表数据信息存在关联表信息,则确定多节点复制表分发规则信息为目标分发规则信息;
第三确定单元,用于若表数据信息不存在关联表信息,则确定单节点复制表分发规则信息为目标分发规则信息。
在一实施例中,生成模块330可以包括:
节点单元,用于获取目标数据库中的至少一个数据节点;
分类单元,用于基于目标分发规则信息对数据节点进行分类,确定可用节点集合;
目标单元,用于基于表分发键信息从可用节点集合中确定目标数据节点;
结果单元,用于将目标数据节点作为分发结果信息。
在一实施例中,分类单元可以包括:
表容量子单元,用于确定分发键信息对应的表容量信息;
节点容量子单元,用于确定数据节点对应的节点容量信息;
判断子单元,用于基于目标分发规则信息与表容量信息,判断节点容量信息是否满足要求;
确定子单元,用于当节点容量信息满足要求时,将节点容量信息对应的数据节点确定为可用节点;
生成单元,用于基于可用节点,生成可用节点集合。
在一实施例中,分发模块340可以包括:
第四确定单元,用于确定分发键信息对应的待分配数据;
分发单元,用于基于目标分发规则信息将待分配数据分发至目标数据节点。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
如图4所示,本申请实施例提供了一种电子设备,包括处理器210、通信接口220、存储器230和通信总线240,其中,处理器210,通信接口220,存储器230通过通信总线240完成相互间的通信,
存储器230,用于存放计算机程序;
在本申请一个实施例中,处理器210,用于执行存储器230上所存放的程序时,实现前述任意一个方法实施例提供的数据迁移分发方法,包括:
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据迁移分发方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
上述对本说明书实施例特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据迁移分发方法,其特征在于,所述方法包括:
确定源数据库中待分配数据的表分发键信息和表数据信息;
基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息;
基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息;
基于所述分发结果信息将所述待分配数据分发至目标数据库。
2.根据权利要求1所述的方法,其特征在于,确定源数据库中待分配数据的表分发键信息和表数据信息,包括:
获取所述待分配数据的至少一个表信息;
确定所述表信息中的至少一种基本信息;
基于预设优先级信息对所述基本信息进行遍历,确定目标基本信息;
将所述目标基本信息作为所述表分发键信息;
对所述表信息进行统计,得到所述表信息对应的表数据信息。
3.根据权利要求1所述的方法,其特征在于,基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息,包括:
基于所述表数据信息确定表数据量边界值;
基于所述表数据量边界值,从所述预设分发规则信息中,筛选出所述表数据信息对应的候选分发规则信息;
在所述候选分发规则信息为哈希表分发规则信息的情况下,将所述哈希表分发规则信息确定为所述目标分发规则信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述候选分发规则信息为复制表分发规则信息的情况下,判断所述表数据信息是否存在关联表信息;
若所述表数据信息存在所述关联表信息,则确定多节点复制表分发规则信息为所述目标分发规则信息;
若所述表数据信息不存在所述关联表信息,则确定单节点复制表分发规则信息为所述目标分发规则信息。
5.根据权利要求1所述的方法,其特征在于,基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息,包括:
获取所述目标数据库中的至少一个数据节点;
基于所述目标分发规则信息对所述数据节点进行分类,确定可用节点集合;
基于所述表分发键信息从所述可用节点集合中确定目标数据节点;
将所述目标数据节点作为所述分发结果信息。
6.根据权利要求5所述的方法,其特征在于,基于所述目标分发规则信息对所述数据节点进行分类,确定可用节点集合,包括:
确定所述分发键信息对应的表容量信息;
确定所述数据节点对应的节点容量信息;
基于所述目标分发规则信息与所述表容量信息,判断所述节点容量信息是否满足要求;
当所述节点容量信息满足要求时,将所述节点容量信息对应的所述数据节点确定为可用节点;
基于所述可用节点,生成所述可用节点集合。
7.根据权利要求5所述的方法,其特征在于,基于所述分发结果信息将所述待分配数据进行分发至目标数据库,包括:
确定所述分发键信息对应的所述待分配数据;
基于所述目标分发规则信息将所述待分配数据分发至所述目标数据节点。
8.一种数据迁移分发装置,其特征在于,所述装置包括:
确定模块,用于确定源数据库中待分配数据的表分发键信息和表数据信息;
规则模块,用于基于所述表数据信息从至少一个预设分发规则信息中,确定所述表数据信息对应的目标分发规则信息;
生成模块,用于基于所述表分发键信息与所述目标分发规则信息,生成所述待分配数据对应的分发结果信息;
分发模块,用于基于所述分发结果信息将所述待分配数据进行分发至目标数据库。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一项所述的数据迁移分发方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的数据迁移分发方法的步骤。
CN202211530013.0A 2022-11-30 2022-11-30 数据迁移分发方法、装置、电子设备及存储介质 Pending CN116049133A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211530013.0A CN116049133A (zh) 2022-11-30 2022-11-30 数据迁移分发方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211530013.0A CN116049133A (zh) 2022-11-30 2022-11-30 数据迁移分发方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116049133A true CN116049133A (zh) 2023-05-02

Family

ID=86129085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211530013.0A Pending CN116049133A (zh) 2022-11-30 2022-11-30 数据迁移分发方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116049133A (zh)

Similar Documents

Publication Publication Date Title
US20200167315A1 (en) Multi-range and runtime pruning
US8386463B2 (en) Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table
US6801903B2 (en) Collecting statistics in a database system
CN111247518B (zh) 用于数据库分片的方法和系统
US10866970B1 (en) Range query capacity allocation
US8082239B2 (en) Defining sub-cube scope based upon a query
US20130151535A1 (en) Distributed indexing of data
US20130110873A1 (en) Method and system for data storage and management
US20150269215A1 (en) Dependency-aware transaction batching for data replication
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
US11768825B2 (en) System and method for dependency analysis in a multidimensional database environment
CN108959510B (zh) 一种分布式数据库的分区级连接方法和装置
CN103299267A (zh) 用于执行多租户存储中的交叉存储连接的方法和系统
US9330158B1 (en) Range query capacity allocation
WO2016191995A1 (zh) 一种分布式数据库中关联表分区的方法和设备
CN108536808A (zh) 一种基于Spark计算框架的数据获取方法和装置
US11321359B2 (en) Review and curation of record clustering changes at large scale
EP1196867B1 (en) A method and an apparatus for the processing of queries to a database
CN115114294A (zh) 数据库存储模式的自适应方法、装置、计算机设备
US7984072B2 (en) Three-dimensional data structure for storing data of multiple domains and the management thereof
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
CN110381136A (zh) 一种数据读取方法、终端、服务器及存储介质
CN112507026B (zh) 基于键值模型、文档模型和图模型的分布式高速存储方法
US8548980B2 (en) Accelerating queries based on exact knowledge of specific rows satisfying local conditions
CN116049133A (zh) 数据迁移分发方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination