CN110580246B - 迁徙数据的方法、装置、计算机设备及存储介质 - Google Patents
迁徙数据的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110580246B CN110580246B CN201910696304.9A CN201910696304A CN110580246B CN 110580246 B CN110580246 B CN 110580246B CN 201910696304 A CN201910696304 A CN 201910696304A CN 110580246 B CN110580246 B CN 110580246B
- Authority
- CN
- China
- Prior art keywords
- data
- service
- database
- source database
- dividing
- 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
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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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)
- 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
技术领域
本申请涉及到计算机领域,特别是涉及到迁徙数据的方法、装置、计算机设备及存储介质。
背景技术
由于系统内调用数据量的剧增,原来的关系型数据库在读写效率、存储软硬件成本上已经很难满足业务需求了,所以选用了新型的非关系数据库,这需要对两种数据库进行数据切换。但是生产上必须保证有效数据无丢失、平台用户无感知。业内更多的是同类型数据库之间的数据迁徙,没有数据结构差异化较大的数据库之间的数据迁徙方案,比如从oracle数据库到cassandra数据库。从oracle到cassandra的数据迁徙需要一次性连续完成,则导致迁徙的新旧系统在很长一段时间内有大量的网络IO,会对系统的正常业务造成干扰。若单纯采用少量数据的分片迁徙,即不携带数据的业务属性,而是简单的进行数据的等量迁徙,则没有考虑到数据对业务的不同重要程度,也没有考虑到新旧数据库的格式差异,会造成大量的新库数据的被随机写,旧库的数据被随机读,对迁徙数据的性能有很大影响。需要设计安全稳定的数据源切换方案,以满足一次性连续完成数据迁徙,操作上具有事务性、时间上具有连续性,且不对系统的正常业务造成干扰,且需避免数据迁徙过程中的事务性操作因为中途某项较小的失败,而导致全局的失败。
发明内容
本申请的主要目的为提供迁徙数据的方法,旨在解决现有无法实现从oracle数据库到cassandra数据库的数据稳定迁徙的技术问题。
本申请提出一种迁徙数据的方法,包括:
获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;
根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;
获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;
根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库。
优选地,所述根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据的步骤,包括:
获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序;
从所述优先级排序中选择指定序号前的第一业务属性对应的分区,作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性;
根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引;
判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内;
若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量。
优选地,所述判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内的步骤之后,包括:
若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个;
根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
优选地,所述根据预设规则获取所有所述源数据库的业务属性分别对应的优先级排序的步骤,包括:
按照预设采集规则,从所述源数据库中采集第一数量的数据集;
获取服务系统单次迁徙数据的数据量;
根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数;
计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;
根据各所述接近程度确定所述优先级排序,其中,所述接近程度越高的聚合结果集对应的优先级越高。
优选地,所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,所述根据各所述业接近程度形成所述优先级排序的步骤,包括:
判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性;
若存在,则获取所述第三业务属性对应于所述均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于所述均分结果集中数据集的数量的第二曼哈顿距离;
判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离;
若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
优选地,所述目标数据库中的数据结构为多层数据嵌套结构,所述获取各所述分片数据分别与目标数据库中的数据结构的对应关系的步骤,包括:
获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的所有指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中;
将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
优选地,所述根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库的步骤,包括:
判断当前时刻对应的业务流量是否处于预设阈值;
若是,则启动预设迁徙线程,并从所述源数据库中查寻出待迁徙数据;
将待迁徙数据存放于缓存服务器中,并转换数据格式;
按照预设线程方式运行所述预设迁徙线程,并将待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
本申请还提供了一种迁徙数据的装置,包括:
第一获取模块,用于获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;
划分模块,用于根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;
第二获取模块,用于获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;
迁徙模块,用于根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
本申请通过分片数据转移方式,实现不同数据库类型的数据库之间的数据转移,比如从关系型数据库到非关系型数据库,且根据数据结构的映射关系,实现两个数据库中存储数据的对应关系。通过业务属性优先级排序选择第一索引表的数据划分标准,比如源数据库对应的服务所在机房优先级最高,且源数据库对应的服务所在机房对应三个分区,通过服务所在机房对应三个分区对源数据库进行分片,源数据库的数据被分成三个分片数据。通过从源数据库中采集指定数量的数据集,以评价各业务属性的划分能力系数,以实现分片数据的优化。优选在J=N/K附件的索引项属性;J值相同,需要考虑通过曼哈顿距离进一步分析划分能力。
附图说明
图1本申请一实施例的迁徙数据的方法流程示意图;
图2本申请一实施例的迁徙数据的装置结构示意图;
图3本申请一实施例的计算机设备内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的迁徙数据的方法,包括:
S1:获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表。
本实施例的业务属性包括但不仅限于:源数据库对应的服务所在机房、网络环境、链路角色,服务所属专业公司、服务所属系统、服务注册编码、服务域名等。源数据库为存放待迁徙数据的数据库,比如oracle关系型数据库。数据库的索引表包括索引项属性、信息目录和地址链接,便于在数据库中查询数据,通过先遍历索引表,再根据索引表中的地址链接,去获取数据。
S2:根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据。
本实施例根据所述第一索引表的分区以及业务属性对源数据库中的数据进行分片划分,并通过业务属性对各分片数据进行标注,以便对各分片数据进行管理与区分。上述预设划分方式包括通过对第一索引表进行分区化形成各分索引,通过分索引实现对源数据库中的数据进行分片划分,形成分片数据。
S3:获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库。
本实施例的目标数据库为存放迁徙后的所述迁徙数据的数据库,比如非关系型数据库cassandra,以满足数据从从oracle数据库迁徙到cassandra数据库。本实施例通过将源数据库中的数据分片划分形成分片数据,以通过分片数据分别转移的方式,实现数据从源数据库到目标数据库的数据转移,以避免数据迁徙过程中因连续进行,妨碍系统中正常业务的进行,且避免因偶然因素的干扰造成局部时间段的数据转移失败,而导致整个数据转移事务失效。上述的对应关系,根据预设的映射关系形成,包括源数据库的各分片数据,在目标数据库中的存储结构位置的关联关系。
S4:根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库。
本实施例通过分片数据分别依次转移的方式,实现不同数据库类型的数据库之间的数据转移,比如从关系型数据库到非关系型数据库,且根据数据结构的映射关系,实现两个数据库中存储数据的一一对应关系。
进一步地,所述根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据的步骤S2,包括:
S21:获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序。
S22:从所述优先级排序中选择指定序号前的第一业务属性对应的各分区,作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性。
S23:根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引。
S24:判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内。
S25:若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量。
本实施例通过业务属性的优先级排序选择数据划分的标准,比如源数据库对应的服务所在机房优先级最高,且源数据库对应的服务所在机房对应三个分区,通过服务所在机房对应三个分区对源数据库进行分片,依据服务所在机房对应三个分区将源数据库的数据被分成三个分片数据。上述第一业务属性可同时包括多个,比如包括业务属性A和业务属性B,业务属性A有三个分区A1、A2和A3,业务属性B有两个分区B1和B2,则对应的第一索引表的数据划分标准的分区个数为6个,且根据优先级排序分别为A1B1、A1B2、A2B1、A2B2、A3B1和A3B2。上述业务属性包括第一索引表中的索引项属性以及其他属性,且优先选用索引项属性进行分区,因为索引建立的原则是能够均衡的划分数据,所以用索引项属性对待迁徙数据进行分片,得到的分片数据的均衡性更好。本实施例通过先将索引表划分为分索引,然后通过分索引引领对应的数据,成为分片数据。
进一步地,所述判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内的步骤S24之后,包括:
S241:若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个。
S242:根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库的数据划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
本实施例中当通过索引项属性进行分片数据后,分片数据的数据量不在单次传输量之内,起不到单次快速转移的效果,可通过加入除索引项属性之外的其他属性,与索引项属性共同完成对源数据库中的数据分片,以便使分片数据的数据量在预设单次传输量之内,实现数据的快速转移,且不影响系统中正常运行的业务。
进一步地,所述获取所有所述源数据库的业务属性分别对应的优先级排序的步骤S21,包括:
S211:按照预设采集规则,从所述源数据库中采集第一数量的数据集。
S212:获取服务系统单次迁徙数据的数据量。
S213:根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数。
S214:计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;
S215:根据各所述接近程度确定所述优先级排序,其中,接近程度越高的聚合结果集对应的优先级越高。
本实施例通过从源数据库中采集指定数量的数据集,以评价各业务属性的划分能力系数,以实现分片数据的优化。上述预设采集规则比如包括每隔指定时间段采集一个数据集,使采集的数据集更具有分析代表性。比如共采集了100个数据集,将100个数据集作为样本,按照索引列index1(比如是专业公司编码)分批,得到聚合结果集的数量等于分片划分的数据种类数量,比如上述100个数据集分布属于3个专业公司,比如为科技、产险、寿险,则聚合结果集的数量为三个。上述三个专业公司中科技、产险、寿险分别对应的数量集为:30个,10个和60个。上述划分能力系数表示为均分结果集,均分结果集中数据集的数量等于采集的数据集总量除以聚合结果集的数量,即等于100除以3等于33.3333,即均分结果集中数据集的数量为33.3333个。首先考察数据集的总量,比如总量为N,而系统能够承受的单次迁徙数量在K,那么优选聚合结果集的数量在J=N/K附件的索引项属性,聚合结果集的数量在J=N/K附件的索引项属性,具有将分片数据划分更均衡更合理的划分能力,尽量满足数据的单次迁徙需求。
进一步地,所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,所述根据各所述接近程度确定所述优先级排序的步骤S215,包括:
S2151:判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性,其中,第三业务属性和第四业务属性包含于所有所述源数据库的业务属性中。
S2152:若存在,则获取所述第三业务属性对应于均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于均分结果集中数据集的数量的第二曼哈顿距离。
S2153:判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离。
S2154:若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
本实施例中,当多个业务属性对应的J值相同,需要考虑通过曼哈顿距离进一步分析划分能力。相同的聚合结果集数量,曼哈顿距离越小,划分能力越好。如上述实例中100个数据集按照索引列index1分布属于3个专业公司,分别为科技、产险、寿险;而且3个专业公司中科技、产险、寿险分别对应的数量集为:30个,10个和60个。索引列index1对应的曼哈顿距离为:Manhattan距离表示为D,则D=|30-33.3|+|10-33.3|+|60-33.3|=53.3,上述33.3为均分结果集中的数据集数量,Manhattan距离是绝对值距离。
进一步地,所述目标数据库中的数据结构为多层数据嵌套结构,所述获取各所述分片数据分别与目标数据库中的数据结构的对应关系的步骤S3,包括:
S31:获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中。
S32:将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
本实施例的目标数据库包括非关系型数据库,比如cassandra数据库,cassandra数据库的数据结构为主键构建结构,本实施例以待迁徙数据中确定的数据分片,作为cassandra数据库的主键参考,cassandra中的主键是数据组织的结构,cassandra中的数据是按主键顺序嵌套存储,比如主键是:K1,K2,K3..,可以理解为K1数据中嵌套K2数据,K2数据中再嵌套了K3数据。本实施例根据业务属性的优先级次序,映射为cassandra中的数据主键顺序,比如优先级级别高的业务属性对应的分片数据,映射为cassandra中的数据中最外层嵌套层的数据,以便实现数据在不同数据库之间迁徙时,具有清晰、合理的对应关系,文件数据顺序写,提高数据写入的效率,且方便数据的调用和管理。
进一步地,所述根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库的步骤S4,包括:
S41:判断当前时刻对应的业务流量是否处于预设阈值内。
S42:若是,则启动预设迁徙线程,并从所述源数据库中查寻出待迁徙数据。
S43:将待迁徙数据存放于缓存服务器中,并转换数据格式。
S44:按照预设线程方式运行所述预设迁徙线程,并将待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
本实施例通过对数据分片实现数据迁徙分批次有序进行,每批次之间可以独立进行,互相不具有依赖性,且每批次迁徙量与系统支撑的单次的传输量相匹配,单次迁徙失败,只需再次重复执行当前失败的单次传输,不影响整体数据的迁徙效果。且通过分批次迁徙,使得可利用系统运行其他业务的碎片时间完成数据迁徙,提高系统处理事务的效率。本实施例通过识别系统运行负荷状态判断当前为业务低谷期还是高峰期,比如业务流量处于预设阈值内,说明处于业务低谷期,则启动数据迁徙线程进行数据迁徙;业务流量未处于预设阈值内,说明处于业务高峰期,则挂起数据迁徙线程终止数据迁徙。不仅支持按业务属性控制迁徙任务,且保证业务数据按类别完整地进行迁徙,且避开业务高峰期。本实施例形成分片数据后,就可以启动线程开始执行数据迁徙。迁徙过程中将数据从oracle数据库中按分片信息查询并切割出来,切割的数据结果放在高速缓存服务器中,然后进行格式转换处理,再注入到cassandra数据库中;如此往复,一个分片数据一个分片数据的通过同一线程分阶段处理。也可以将不同的分片数据分配到不同的线程中并行处理,提高分片迁徙的效率,但需合理控制并行运行的线程数量,避免两端数据库过载。
参照图2,本申请一实施例的迁徙数据的装置,包括:
第一获取模块1,用于获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表。
本实施例的业务属性包括但不仅限于:源数据库对应的服务所在机房、网络环境、链路角色,服务所属专业公司、服务所属系统、服务注册编码、服务域名等。源数据库为存放待迁徙数据的数据库,比如oracle关系型数据库。数据库的索引表包括索引项属性、信息目录和地址链接,便于在数据库中查询数据,通过先遍历索引表,再根据索引表中的地址链接,去获取数据。
划分模块2,用于根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据。
本实施例根据所述第一索引表的分区以及业务属性对源数据库中的数据进行分片划分,并通过业务属性对各分片数据进行标注,以便对各分片数据进行管理与区分。上述预设划分方式包括通过对第一索引表进行分区化形成各分索引,通过分索引实现对源数据库中的数据进行分片划分,形成分片数据。
第二获取模块3,用于获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库。
本实施例的目标数据库为存放迁徙后的所述迁徙数据的数据库,比如非关系型数据库cassandra,以满足数据从从oracle数据库迁徙到cassandra数据库。本实施例通过将源数据库中的数据分片划分形成分片数据,以通过分片数据分别转移的方式,实现数据从源数据库到目标数据库的数据转移,以避免数据迁徙过程中因连续进行,妨碍系统中正常业务的进行,且避免因偶然因素的干扰造成局部时间段的数据转移失败,而导致整个数据转移事务失效。上述的对应关系,根据预设的映射关系形成,包括源数据库的各分片数据,在目标数据库中的存储结构位置的关联关系。
迁徙模块4,用于根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库。
本实施例通过分片数据分别依次转移的方式,实现不同数据库类型的数据库之间的数据转移,比如从关系型数据库到非关系型数据库,且根据数据结构的映射关系,实现两个数据库中存储数据的一一对应关系。
进一步地,所述划分模块2,包括:
第一获取子模块,用于获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序。
选择子模块,用于从所述优先级排序中选择指定序号前的第一业务属性对应的各分区,作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性。
第一划分子模块,用于根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引。
第一判断子模块,用于判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内。
第二划分子模块,用于若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量。
本实施例通过业务属性的优先级排序选择数据划分的标准,比如源数据库对应的服务所在机房优先级最高,且源数据库对应的服务所在机房对应三个分区,通过服务所在机房对应三个分区对源数据库进行分片,依据服务所在机房对应三个分区将源数据库的数据被分成三个分片数据。上述第一业务属性可同时包括多个,比如包括业务属性A和业务属性B,业务属性A有三个分区A1、A2和A3,业务属性B有两个分区B1和B2,则对应的第一索引表的数据划分标准的分区个数为6个,且根据优先级排序分别为A1B1、A1B2、A2B1、A2B2、A3B1和A3B2。上述业务属性包括第一索引表中的索引项属性以及其他属性,且优先选用索引项属性进行分区,因为索引建立的原则是能够均衡的划分数据,所以用索引项属性对待迁徙数据进行分片,得到的分片数据的均衡性更好。本实施例通过先将索引表划分为分索引,然后通过分索引引领对应的数据,成为分片数据。
进一步地,划分模块2,包括:
添加子模块,用于若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个。
第三划分子模块,用于根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库的数据划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
本实施例中当通过索引项属性进行分片数据后,分片数据的数据量不在单次传输量之内,起不到单次快速转移的效果,可通过加入除索引项属性之外的其他属性,与索引项属性共同完成对源数据库中的数据分片,以便使分片数据的数据量在预设单次传输量之内,实现数据的快速转移,且不影响系统中正常运行的业务。
进一步地,所述获取子模块,包括:
采集单元,用于按照预设采集规则,从所述源数据库中采集第一数量的数据集。
获取单元,用于获取服务系统单次迁徙数据的数据量。
得到单元,用于根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数。
计算单元,用于计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;
确定单元,用于根据各所述接近程度确定所述优先级排序,其中,接近程度越高的聚合结果集对应的优先级越高。
本实施例通过从源数据库中采集指定数量的数据集,以评价各业务属性的划分能力系数,以实现分片数据的优化。上述预设采集规则比如包括每隔指定时间段采集一个数据集,使采集的数据集更具有分析代表性。比如共采集了100个数据集,将100个数据集作为样本,按照索引列index1(比如是专业公司编码)分批,得到聚合结果集的数量等于分片划分的数据种类数量,比如上述100个数据集分布属于3个专业公司,比如为科技、产险、寿险,则聚合结果集的数量为三个。上述三个专业公司中科技、产险、寿险分别对应的数量集为:30个,10个和60个。上述划分能力系数表示为均分结果集,均分结果集中数据集的数量等于采集的数据集总量除以聚合结果集的数量,即等于100除以3等于33.3333,即均分结果集中数据集的数量为33.3333个。首先考察数据集的总量,比如总量为N,而系统能够承受的单次迁徙数量在K,那么优选聚合结果集的数量在J=N/K附件的索引项属性,聚合结果集的数量在J=N/K附件的索引项属性,具有将分片数据划分更均衡更合理的划分能力,尽量满足数据的单次迁徙需求。
进一步地,所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,所述确定单元,包括:
第一判断子单元,用于判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性,其中,第三业务属性和第四业务属性包含于所有所述源数据库的业务属性中。
获取子单元,用于若存在,则获取所述第三业务属性对应于均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于均分结果集中数据集的数量的第二曼哈顿距离。
第二判断子单元,用于判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离。
排序子单元,用于若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
本实施例中,当多个业务属性对应的J值相同,需要考虑通过曼哈顿距离进一步分析划分能力。相同的聚合结果集数量,曼哈顿距离越小,划分能力越好。如上述实例中100个数据集按照索引列index1分布属于3个专业公司,分别为科技、产险、寿险;而且3个专业公司中科技、产险、寿险分别对应的数量集为:30个,10个和60个。索引列index1对应的曼哈顿距离为:Manhattan距离表示为D,则D=|30-33.3|+|10-33.3|+|60-33.3|=53.3,上述33.3为均分结果集中数据集的数量,Manhattan距离是绝对值距离。
进一步地,所述目标数据库中的数据结构为多层数据嵌套结构,所述第二获取模块3,包括:
第二获取子模块,用于获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中。
映射子模块,用于将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
本实施例的目标数据库包括非关系型数据库,比如cassandra数据库,cassandra数据库的数据结构为主键构建结构,本实施例以待迁徙数据中确定的数据分片划分点,作为cassandra数据库的主键参考,cassandra中的主键是数据组织的结构,cassandra中的数据是按主键顺序嵌套存储,比如主键是:K1,K2,K3..,可以理解为K1数据中嵌套K2数据,K2数据中再嵌套了K3数据。本实施例根据业务属性的优先级次序,映射为cassandra中的数据主键顺序,比如优先级级别高的业务属性对应的分片数据,映射为cassandra中的数据中最外层嵌套层的数据,以便实现数据在不同数据库之间迁徙时,具有清晰、合理的对应关系,文件数据顺序写,提高数据写入的效率,且方便数据的调用和管理。
进一步地,所述迁徙模块4,包括:
第二判断子模块,用于判断当前时刻对应的业务流量是否处于预设阈值内。
启动子模块,用于若是,则启动预设迁徙线程,并从所述源数据库中查寻出待迁徙数据。
存放子模块,用于将待迁徙数据存放于缓存服务器中,并转换数据格式。
运行子模块,用于按照预设线程方式运行所述预设迁徙线程,并将待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
本实施例通过对数据分片实现数据迁徙分批次有序进行,每批次之间可以独立进行,互相不具有依赖性,且每批次迁徙量与系统支撑的单次的传输量相匹配,单次迁徙失败,只需再次重复执行当前失败的单次传输,不影响整体数据的迁徙效果。且通过分批次迁徙,使得可利用系统运行其他业务的碎片时间完成数据迁徙,提高系统处理事务的效率。本实施例通过识别系统运行负荷状态判断当前为业务低谷期还是高峰期,比如业务流量处于预设阈值内,说明处于业务低谷期,则启动数据迁徙线程进行数据迁徙;业务流量未处于预设阈值内,说明处于业务高峰期,则挂起数据迁徙线程终止数据迁徙。不仅支持按业务属性控制迁徙任务,且保证业务数据按类别完整地进行迁徙,且避开业务高峰期。本实施例形成分片数据后,就可以启动线程开始执行数据迁徙。迁徙过程中将数据从oracle数据库中按分片信息查询并切割出来,切割的数据结果放在高速缓存服务器中,然后进行格式转换处理,再注入到cassandra数据库中;如此往复,一个分片数据一个分片数据的通过同一线程分阶段处理。也可以将不同的分片数据分配到不同的线程中并行处理,提高分片迁徙的效率,但需合理控制并行运行的线程数量,避免两端数据库过载。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储迁徙数据的过程需要的所有数据。该计算机设备的网络接口用于与外部的端通过网络连接通信。该计算机程序被处理器执行时以实现迁徙数据的方法。
上述处理器执行上述迁徙数据的方法,包括:获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库。
上述计算机设备,通过分片数据转移方式,实现不同数据库类型的数据库之间的数据转移,比如从关系型数据库到非关系型数据库,且根据数据结构的映射关系,实现两个数据库中存储数据的对应关系。通过业务属性优先级排序选择第一索引表的数据划分标准,比如源数据库对应的服务所在机房优先级最高,且源数据库对应的服务所在机房对应三个分区,通过服务所在机房对应三个分区对源数据库进行分片,源数据库的数据被分成三个分片数据。通过从源数据库中采集指定数量的数据集,以评价各业务属性的划分能力系数,以实现分片数据的优化。优选在J=N/K附件的索引项属性;J值相同,需要考虑通过曼哈顿距离进一步分析划分能力。
在一个实施例中,上述处理器根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据的步骤,包括:获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序;从所述优先级排序中选择指定序号前的第一业务属性对应的分区,作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性;根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引;判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内;若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量。
在一个实施例中,上述处理器判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内的步骤之后,包括:若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个;根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库的数据划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
在一个实施例中,上述处理器获取所有所述源数据库的业务属性分别对应的优先级排序的步骤,包括:按照预设采集规则,从所述源数据库中采集第一数量的数据集;获取服务系统单次迁徙数据的数据量;根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数;计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;根据各所述接近程度确定所述优先级排序,其中,所述接近程度越高的聚合结果集对应的优先级越高。
在一个实施例中,所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,上述处理器根据各所述接近程度确定所述优先级排序的步骤,包括:判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性;若存在,则获取所述第三业务属性对应于所述均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于所述均分结果集中数据集的数量的第二曼哈顿距离;判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离;若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
在一个实施例中,所述目标数据库中的数据结构为多层数据嵌套结构,上述处理器获取各所述分片数据分别与目标数据库中的数据结构的对应关系的步骤,包括:获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的所有指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中;将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
在一个实施例中,上述处理器根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库的步骤,包括:判断当前时刻对应的业务流量是否处于预设阈值;若是,则启动预设迁徙线程,并从所述源数据库中查寻出待迁徙数据;将待迁徙数据存放于缓存服务器中,并转换数据格式;按照预设线程方式运行所述预设迁徙线程,并将待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现迁徙数据的方法,包括:获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库。
上述计算机可读存储介质,通过分片数据转移方式,实现不同数据库类型的数据库之间的数据转移,比如从关系型数据库到非关系型数据库,且根据数据结构的映射关系,实现两个数据库中存储数据的对应关系。通过业务属性优先级排序选择第一索引表的数据划分标准,比如源数据库对应的服务所在机房优先级最高,且源数据库对应的服务所在机房对应三个分区,通过服务所在机房对应三个分区对源数据库进行分片,源数据库的数据被分成三个分片数据。通过从源数据库中采集指定数量的数据集,以评价各业务属性的划分能力系数,以实现分片数据的优化。优选在J=N/K附件的索引项属性;J值相同,需要考虑通过曼哈顿距离进一步分析划分能力。
在一个实施例中,上述处理器根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据的步骤,包括:获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序;从所述优先级排序中选择指定序号前的第一业务属性对应的分区,作为所述第一索引表的第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性;根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引;判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内;若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量。
在一个实施例中,上述处理器判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内的步骤之后,包括:若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个;根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库的数据划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
在一个实施例中,上述处理器获取所有所述源数据库的业务属性分别对应的优先级排序的步骤,包括:按照预设采集规则,从所述源数据库中采集第一数量的数据集;获取服务系统单次迁徙数据的数据量;根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数;计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;根据各所述接近程度确定所述优先级排序,其中,所述接近程度越高的聚合结果集对应的优先级越高。
在一个实施例中,所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,上述处理器根据各所述接近程度确定所述优先级排序的步骤,包括:判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性;若存在,则获取所述第三业务属性对应于所述均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于所述均分结果集中数据集的数量的第二曼哈顿距离;判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离;若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
在一个实施例中,所述目标数据库中的数据结构为多层数据嵌套结构,上述处理器获取各所述分片数据分别与目标数据库中的数据结构的对应关系的步骤,包括:获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的所有指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中;将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
在一个实施例中,上述处理器根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库的步骤,包括:判断当前时刻对应的业务流量是否处于预设阈值;若是,则启动预设迁徙线程,并从所述源数据库中查寻出待迁徙数据;将待迁徙数据存放于缓存服务器中,并转换数据格式;按照预设线程方式运行所述预设迁徙线程,并将待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (7)
1.一种迁徙数据的方法,其特征在于,包括:
获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;
根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;
获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;
根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库;
所述根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据的步骤,包括:
获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序;
从所述优先级排序中选择指定序号前的第一业务属性对应的各分区作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性;
根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引;
判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内;
若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量;
所述获取所有所述源数据库的业务属性分别对应的优先级排序的步骤,包括:
按照预设采集规则,从所述源数据库中采集第一数量的数据集;
获取服务系统单次迁徙数据的数据量;
根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数;
计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;
根据各所述接近程度确定所述优先级排序,其中,所述接近程度越高的聚合结果集对应的优先级越高;
所述划分能力系数表示为均分结果集,所述均分结果集包括按照预设采集规则间隔采集的数据集总量除以聚合结果集的数量的数据集,所述根据各所述接近程度确定所述优先级排序的步骤,包括:
判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性;
若存在,则获取所述第三业务属性对应于所述均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于所述均分结果集中数据集的数量的第二曼哈顿距离;
判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离;
若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
2.根据权利要求1所述的迁徙数据的方法,其特征在于,所述判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内的步骤之后,包括:
若各所述分索引分别对应的数据量不在预设单次传输量之内,则添加第二业务属性对应的分区,其中,所述第二业务属性为所有所述源数据库的业务属性中除索引项属性之外的属性,所述第二业务属性至少包括一个;
根据各所述分索引以及所述第二业务属性对应的分区,将所述源数据库的数据划分成第二指定数量的第二分片数据,使各所述第二分片数据的数据量在预设单次传输量之内,其中,所述第二指定数量为所述第一业务属性的分区数量与所述第二业务属性的分区数量的乘积。
3.根据权利要求1所述的迁徙数据的方法,其特征在于,所述目标数据库中的数据结构为多层数据嵌套结构,所述获取各所述分片数据分别与目标数据库中的数据结构的对应关系的步骤,包括:
获取对所述源数据库进行分片数据划分时,调用的所述优先级排序中的所有指定业务属性,其中,所述指定业务属性包含于所有所述源数据库的业务属性中;
将各所述指定业务属性对应的优先级次序,与所述目标数据库中的多层数据嵌套结构建立一一对应映射关系,其中最高优先级的指定业务属性对应所述多层数据嵌套结构的最外层。
4.根据权利要求1所述的迁徙数据的方法,其特征在于,所述根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库的步骤,包括:
判断当前时刻对应的业务流量是否处于预设阈值;
若是,则启动预设迁徙线程,并从所述源数据库中查寻出所述待迁徙数据;
将所述待迁徙数据存放于缓存服务器中,并转换数据格式;
按照预设线程方式运行所述预设迁徙线程,并将所述待迁徙数据按照分片数据的方式,依次注入到所述目标数据库。
5.一种迁徙数据的装置,其特征在于,包括:
第一获取模块,用于获取源数据库的业务属性,其中,所述源数据库为存放待迁徙数据的数据库,所述源数据库包括第一索引表;
划分模块,用于根据所述第一索引表的分区以及所述源数据库的业务属性,按照预设划分方式将所述源数据库的数据划分成指定数量的分片数据;
第二获取模块,用于获取各所述分片数据分别与目标数据库中的数据结构的对应关系,其中,所述目标数据库为存放迁徙后的所述迁徙数据的数据库;
迁徙模块,用于根据所述对应关系,将各所述分片数据按照预设迁徙方式从所述源数据库迁徙至所述目标数据库;
第一获取子模块,用于获取所有所述源数据库的业务属性分别对应的优先级排序,其中,所述优先级排序为优先级级别从高到低的排序;
选择子模块,用于从所述优先级排序中选择指定序号前的第一业务属性对应的各分区,作为所述第一索引表的数据划分标准,其中,所述第一业务属性包含于所有所述源数据库的业务属性中,所述第一业务属性包括索引项属性;
第一划分子模块,用于根据所述第一索引表的数据划分标准,将所述第一索引表划分为各分区分别对应的分索引;
第一判断子模块,用于判断各所述分索引分别对应的所述源数据库的数据量是否在预设单次传输量之内;
第二划分子模块,用于若是,则根据各所述分索引将所述源数据库的数据划分成第一指定数量的第一分片数据,其中,所述第一指定数量为所述第一业务属性对应的各分区的数量;
采集单元,用于按照预设采集规则,从所述源数据库中采集第一数量的数据集;
获取单元,用于获取服务系统单次迁徙数据的数据量;
得到单元,用于根据所述第一数量除以所述单次迁徙数据的数据量,得到划分能力系数;
计算单元,用于计算各所述源数据库的业务属性分别对应的聚合结果集与所述划分能力系数的接近程度,其中,所述聚合结果集为数据集的聚合分类结果,所述聚合结果集的数量等于各所述源数据库的业务属性的分区数量;
确定单元,用于根据各所述接近程度确定所述优先级排序,其中,接近程度越高的聚合结果集对应的优先级越高;
第一判断子单元,用于判断是否存在与所述划分能力系数具有相同接近程度的第三业务属性和第四业务属性,其中,第三业务属性和第四业务属性包含于所有所述源数据库的业务属性中;
获取子单元,用于若存在,则获取所述第三业务属性对应于均分结果集中数据集的数量的第一曼哈顿距离,以及所述第四业务属性对应于均分结果集中数据集的数量的第二曼哈顿距离;
第二判断子单元,用于判断所述第一曼哈顿距离是否大于所述第二曼哈顿距离;
排序子单元,用于若是,则将所述第二曼哈顿距离对应的所述第四业务属性的优先级次序,排在所述第一曼哈顿距离对应的所述第三业务属性之前。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910696304.9A CN110580246B (zh) | 2019-07-30 | 2019-07-30 | 迁徙数据的方法、装置、计算机设备及存储介质 |
PCT/CN2019/116706 WO2021017269A1 (zh) | 2019-07-30 | 2019-11-08 | 迁徙数据的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910696304.9A CN110580246B (zh) | 2019-07-30 | 2019-07-30 | 迁徙数据的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110580246A CN110580246A (zh) | 2019-12-17 |
CN110580246B true CN110580246B (zh) | 2023-10-20 |
Family
ID=68810517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910696304.9A Active CN110580246B (zh) | 2019-07-30 | 2019-07-30 | 迁徙数据的方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110580246B (zh) |
WO (1) | WO2021017269A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760858B (zh) * | 2020-06-05 | 2024-03-19 | 中国移动通信集团湖北有限公司 | 内存库数据动态迁移方法、装置、计算设备及存储设备 |
CN113204538A (zh) * | 2021-04-27 | 2021-08-03 | 北京百度网讯科技有限公司 | 用于数据迁移的方法、装置、设备、介质和程序产品 |
CN113596153A (zh) * | 2021-07-28 | 2021-11-02 | 新华智云科技有限公司 | 一种数据均衡方法及系统 |
CN116205397B (zh) * | 2023-02-10 | 2023-10-20 | 广州市中大信息技术有限公司 | 一种基于大数据的数字化企业管理系统及方法 |
CN116401435B (zh) * | 2023-02-22 | 2023-11-10 | 北京麦克斯泰科技有限公司 | 一种日活跃栏目热度计算及调度方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN102959624A (zh) * | 2010-06-09 | 2013-03-06 | 阿德尔福伊有限公司 | 用于音频媒体识别的系统和方法 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN107346312A (zh) * | 2016-05-05 | 2017-11-14 | 中国移动通信集团内蒙古有限公司 | 一种大数据处理方法及系统 |
CN108304553A (zh) * | 2018-02-01 | 2018-07-20 | 平安普惠企业管理有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN109885256A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种基于数据分片的数据存储方法、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140222817A1 (en) * | 2013-02-04 | 2014-08-07 | David Allen Olsen | System and method for grouping segments of data sequences into clusters |
US20140280375A1 (en) * | 2013-03-15 | 2014-09-18 | Ryan Rawson | Systems and methods for implementing distributed databases using many-core processors |
CN106933859B (zh) * | 2015-12-30 | 2020-10-20 | 中国移动通信集团公司 | 一种医疗数据的迁移方法和装置 |
CN105868343B (zh) * | 2016-03-28 | 2019-05-21 | 上海携程商务有限公司 | 数据库迁移方法及系统 |
-
2019
- 2019-07-30 CN CN201910696304.9A patent/CN110580246B/zh active Active
- 2019-11-08 WO PCT/CN2019/116706 patent/WO2021017269A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959624A (zh) * | 2010-06-09 | 2013-03-06 | 阿德尔福伊有限公司 | 用于音频媒体识别的系统和方法 |
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN107346312A (zh) * | 2016-05-05 | 2017-11-14 | 中国移动通信集团内蒙古有限公司 | 一种大数据处理方法及系统 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN108304553A (zh) * | 2018-02-01 | 2018-07-20 | 平安普惠企业管理有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN109885256A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种基于数据分片的数据存储方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021017269A1 (zh) | 2021-02-04 |
CN110580246A (zh) | 2019-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110580246B (zh) | 迁徙数据的方法、装置、计算机设备及存储介质 | |
EP3238106B1 (en) | Compaction policy | |
CN110413611B (zh) | 数据存储、查询方法及装置 | |
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN106471501B (zh) | 数据查询的方法、数据对象的存储方法和数据系统 | |
CN112015820A (zh) | 分布式图数据库实现的方法、系统、电子装置和存储介质 | |
CN104424287B (zh) | 数据查询方法和装置 | |
CN103229173A (zh) | 元数据管理方法及系统 | |
CN105117502A (zh) | 一种基于大数据的检索方法 | |
WO2014058711A1 (en) | Creation of inverted index system, and data processing method and apparatus | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN102739622A (zh) | 一种可扩展的数据存储系统 | |
CN110427364A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US20190163795A1 (en) | Data allocating system and data allocating method | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
EP2778921B1 (en) | A method and a system for distributed processing of a dataset | |
CN116662019B (zh) | 请求的分配方法、装置、存储介质及电子装置 | |
CN110825953B (zh) | 数据查询方法、装置和设备 | |
US8818970B2 (en) | Partitioning a directory while accessing the directory | |
CN113515518A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN106970964B (zh) | 基于共享内存的gps数据信息查询方法及系统 | |
US8700583B1 (en) | Dynamic tiermaps for large online databases | |
CN114036104A (zh) | 基于分布式存储的重删数据的云归档方法、装置及系统 | |
Kvet | Database Block Management using Master Index |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |