一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据迁移方法、装置、计算机设备和存储介质与流程

2022-11-19 10:55:38 来源:中国专利 TAG:


1.本技术涉及数据处理领域,特别是涉及一种数据迁移方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.在业务系统中,随着使用时间的增加原有的数据库会积累大量数据表单,占用大量存储空间,需要将部分业务数据的表单迁移到新的数据库中。现有的数据迁移方法是单表迁移,每次执行单个数据表单的迁移。然而,单表迁移的迁移速度慢耗时较长,在数据迁移时数据的完整性受到影响,不能保证业务数据的完整性。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种实现业务数据完整性的数据迁移方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
4.第一方面,本技术提供了一种数据迁移方法。所述方法包括:
5.获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
6.获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
7.基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
8.第二方面,本技术还提供了一种数据迁移装置。所述装置包括:
9.主数据迁移模块,用于获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
10.关联信息模块,用于获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
11.关联数据迁移模块,用于基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
12.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
13.获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储
执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
14.获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
15.基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
16.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
17.获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
18.获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
19.基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
20.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
21.获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
22.获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
23.基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
24.上述数据迁移方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待迁移主数据集和目标存储地址,基于所述待迁移主数据集生成主数据批量存储执行语句,按照所述目标存储地址将所述主数据批量存储执行语句发送到目标存储端,以使所述目标存储端执行所述主数据批量存储执行语句存储所述待迁移主数据集,然后通过预设主键关联信息查询到与主数据主键信息关联的关联主键信息,通过根据主数据主键信息和关联数据主键信息能够获取到待迁移的关联数据,从而将与主数据关联的关联数据迁移到目标存储中,完成了主数据和关联数据的同步迁移,从而保证了数据迁移的完整性。
附图说明
25.图1为一个实施例中数据迁移方法的应用环境图;
26.图2为一个实施例中数据迁移方法的流程示意图;
27.图3为一个实施例中主键关联信息的示意图;
28.图4为一个实施例中数据迁移的流程示意图;
29.图5为一个实施例中数据迁移中断的处理流程图;
30.图6为一个实施例中数据删除的流程示意图;
31.图7为一个实施例中数据迁移的整体流程示意图;
32.图8为一个实施例中数据迁移装置的结构框图;
33.图9为一个实施例中计算机设备的内部结构图;
34.图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
35.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
36.本技术实施例提供的数据迁移方法,可以应用于如图1所示的应用环境中。其中,服务器104通过网络与目标存储端102进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。目标存储端102可以是终端,也可以是服务器。服务器104获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;服务器104获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;服务器104基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
37.在一个实施例中,如图2所示,提供了一种数据迁移方法,以该方法应用于图1中的服务器为例进行说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
38.步骤202,获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集。
39.其中,待迁移主数据集是指需要进行迁移的主数据的集合,主数据(master data)是具有共享性的基础数据,是需要优先迁移的数据集,可以是实体数据。目标存储地址是指数据迁移后的存储地址。主数据批量存储执行语句是指在目标存储中执行存储待迁移主数据集的语句。目标存储端是指目标存储地址对应的目标存储空间,可以是终端,也可以是服
务器。
40.具体地,服务器与目标存储端建立通信连接,并对通信连接进行连接测试,当连接测试完成后响应于数据迁移指令,获取迁移指令中的待迁移主数据集和目标存储地址,服务器根据待迁移主数据集通过预先设置好的执行语句模板生成主数据批量存储执行语句。然后服务器根据目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句将待迁移主数据存储到本地。
41.步骤204,获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集。
42.其中,主数据主键信息是指待迁移主数据集对应的主键信息,该主数据主键信息与关联数据集的关联属性信息关联,关联数据集的关联属性信息与关联数据集的主键信息关联,主键信息是指数据集的唯一标识信息,关联属性信息是表征该关联数据集所属的数据集的信息,关联属性信息可以与关联数据集的主键信息相同。预设主键关联信息是指预先设置好的各个数据集之间的关联关系的信息,各个数据集之间的关联关系可以通过主键信息和关联属性信息的关联关系体现。关联数据主键信息是指与待迁移主数据集关联的数据集对应的主键信息。关联数据集是指与待迁移主数据关联的数据集。
43.具体地,服务器可以通过数据迁移指令获取待迁移主数据集对应的主数据主键信息,然后服务器获取本地存储的配置信息,配置信息中保存有预先设置好的主键关联信息,服务器根据主数据主键信息在主键关联信息中查找对应的关联数据的关联属性信息和关联数据主键信息。然后服务器将主数据主键信息、关联数据的关联属性信息和关联数据主键信息作为查询条件,在数据存储空间中查询并获取待迁移主数据集对应的关联数据集。
44.在一个实施例中,配置信息中存储有预先设置好的主键关联信息,该主键关联信息存储有主数据主键信息与关联数据集的关联关系和关联数据集的主键信息与子关联数据集的关联关系。终端获取待迁移主数据集对应的主数据主键信息,根据主数据主键信息通过主键关联信息可以直接获取到待迁移主数据集对应的关联数据集。然后终端可以根据关联数据集对应的关联数据主键信息通过主键关联信息直接获取到子关联数据集。
45.步骤206,基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
46.其中,关联数据批量存储执行语句是指在目标存储中执行存储关联数据集的语句。
47.具体地,服务器根据关联数据集生成关联数据批量存储执行语句,然后根据目标存储地址通过通信连接将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句将关联数据集存储到本地。
48.本实施例中,通过预设主键关联信息能够查询到与主数据主键信息关联的关联主键信息,通过根据主数据主键信息和关联数据主键信息能够获取到待迁移的关联数据,从而将与主数据关联的关联数据迁移到目标存储中,完成了主数据和关联数据的同步迁移,从而保证了数据迁移的完整性。
49.在一个实施例中,在步骤206,基于关联数据集生成关联数据批量存储执行语句,
按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集之后,还包括:
50.当检测到关联数据集存在子关联数据集时,从预设主键关联信息中查找关联数据主键信息对应的子关联数据主键信息,基于关联数据主键信息和子关联数据主键信息获取子关联数据集;
51.将子关联数据集作为关联数据集,并返回到基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集的步骤执行,直到子关联数据集遍历完成。
52.其中,子关联数据集是指与关联数据集关联的数据集。子关联数据主键信息是指与关联数据集关联的数据集对应的主键信息。
53.具体地,服务器在将关联数据集迁移到目标存储端后,在数据存储空间中检测是否存在关联数据集对应的子关联数据集。当检测到未存在关联数据集对应的子关联数据集时,服务器确定待迁移主数据集和关联数据集迁移完成,数据迁移结束。
54.当检测到存在关联数据集对应的子关联数据集时,服务器根据关联数据主键信息在主键关联信息中查找对应的子关联数据主键信息和子关联数据集的关联属性信息。然后服务器将关联数据主键信息、子关联数据集的关联属性信息和子关联数据主键信息作为查询条件,在数据存储空间中查询并获取子关联数据集。然后服务器将子关联数据集作为关联数据集,并返回到基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集的步骤执行,此时,服务器将子关联数据集迁移到目标存储端。然后服务器检测是否存在子关联数据集对应的关联数据集,当检测到存在时,实施上述步骤,若检测到未存在时,确定子关联数据集迁移完成。
55.本实施例中,通过检测关联数据集是否存在子关联数据集,当检测到存在时,将子关联数据集同步迁移到目标存储中,保证了待迁移主数据集、关联数据集和子关联数据集的数据完整性,使目标存储能根据待迁移主数据集、关联数据集和子关联数据集进行业务处理,从而提高了业务处理效率。
56.在一个实施例中,步骤202,获取待迁移主数据集,包括步骤:
57.获取至少两个目标主数据集,从至少两个目标主数据集中确定当前主数据集,将当前主数据集作为待迁移主数据集;
58.在步骤206之后,在基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集之后,还包括步骤:
59.返回从至少两个目标主数据集中确定当前主数据集,将当前主数据集作为待迁移主数据集的步骤执行,直到至少两个目标主数据集遍历完成。
60.其中,目标主数据集是指待迁移的主数据集。当前主数据集是指当前需要迁移的主数据集。
61.具体地,关联数据集可以是业务数据中的业务表数据。由于多个业务表数据存在关联关系,目标主数据集可以是多个关联业务表数据的表头数据,存储多个关联的业务表
数据的业务总关联信息。比如,目标主数据集可以存储订单的重要信息字段,包括订单id(身份标识)字段、订单时间字段、订单金额字段等,其中订单编号字段可以作为目标主数据集对应的主数据主键信息。不同的目标主数据集对应的主数据主键信息不同。
62.关联数据集可以包括待迁移主数据集对应的扩展主数据集和分录数据集,扩展主数据集是指对待迁移主数据集进行补充的数据集,待迁移主数据集与扩展主数据集可以是从同一个原始业务表数据拆分得到的,因此待迁移主数据集与扩展主数据集存在一对一的实体关联关系。扩展主数据集比如包括订单编号字段、客户名称字段、客户地址字段等,其中订单编号字段可以作为扩展主数据集对应的关联数据主键信息和关联属性信息。分录数据集是指待迁移主数据集对应的下级业务数据,比如包括订单id字段、商品编号字段、商品数量字段等,其中商品编号可以作为分录数据集对应的关联数据主键信息,订单id作为分录数据集对应的关联属性信息,表示该分录数据集的商品信息所属的订单。不同的分录数据集对应的关联数据主键信息不同。待迁移主数据集与扩展主数据集存在一对多的实体关联关系。待迁移主数据集对应的关联数据集存在对应的扩展关联数据集,表示对关联数据集进行补充的数据集,关联数据集和扩展关联数据集对应的主键信息相同。
63.服务器检查到数据存储空间中存在至少两个目标主数据集时,获取至少两个目标主数据对应的主数据主键信息和主数据主键信息对应的主键顺序。服务器根据主数据主键信息对应的主键顺序在至少两个目标主数据集中确定当前主数据集,然后将当前主数据集作为待迁移主数据集进行数据迁移。然后服务器根据当前主数据集对应的主数据主键信息在主键关联信息中查找到当前主数据集对应的扩展主数据集的关联属性信息和关联数据主键信息,以及当前主数据集对应的分录数据集的关联属性信息和关联数据主键信息,服务器分别将扩展主数据集和分录数据集作为关联数据集进行数据迁移。当服务器检测到存在分录数据集对应的子关联数据集时,将子关联数据集作为关联数据集进行数据迁移,直到检测到未存在子关联数据集对应的关联数据集。当服务器检测到未存在分录数据集对应的子关联数据集时,确定当前主数据集、扩展主数据集和分录数据集迁移完成。然后服务器返回到从至少两个目标主数据集中确定当前主数据集,将当前主数据集作为待迁移主数据集的步骤执行,按照主键顺序依次将各个目标主数据集和其对应的关联数据集迁移到目标存储中。
64.在一个具体实施例中,如图3所示,提供一种主键关联信息的示意图;表头数据表示待迁移主数据集;表头扩展表数据表示扩展主数据集;分录表数据表示扩展主数据集对应的下级业务数据,包括分录数据集;子分录表数据表示分录数据集对应下级业务数据,即分录数据集对应的子关联数据集。fid表示表头数据和表头扩展表数据对应的主键信息;fentryid表示分录表数据和分录扩展表数据对应的主键信息;fdetailid表示子分录表数据和子分录扩展表数据对应的主键信息。fid和fentryid关联、fentryid和fdetailid关联、表头数据的fid和表头扩展表数据的fid关联、分录表数据的fentryid和分录扩展表数据的fentryid关联、子分录表数据的fdetailid和子分录扩展表数据的fdetailid关联。表头数据、表头扩展表数据、分录表数据、分录扩展表数据、子分录表数据和子分录扩展表数据都具有对应的表名称。上级业务数据的主键可以直接与下级业务数据进行关联,通过上级业务数据的主键可以直接获取下级业务数据。
65.在一个具体实施例中,如图4所示,提供一种数据迁移的流程示意图;服务器响应
于对表头数据的按页查询指令,比如:
66.select top 10000fid,field1...fieldn from t_cbsxdb_mvtest where fbizdate》'2022-01-01 00:00:00'and fbizdate《='2022-03-31 23:59:59'and fid》lastpk order by fid。其中,lastpk为前一页数据的最后一行数据主键fid值。表示查询2022-01-01 00:00:00至2022-03-31 23:59:59时间段内lastpk所在页的后一页表头数据,包括多条子数据。然后服务器根据查询到的该页表头数据生成主数据批量存储执行脚本,将主数据批量存储执行脚本发送到目标存储端,使目标存储端执行主数据批量存储执行脚本将该页表头数据中的多条子数据批量存储到目标存储端数据库中。比如,将表头数据存储到目标存储段的执行脚本为:insert into t_cbsxdb_mvtest(fid,field1

fieldn)values(1,

)

(n,

),其中,t_cbsxdb_mvtest为表头数据。
67.然后服务器根据主键关联信息获取该页表头数据对应的主键值,并根据该主键值生成表头中间表,表头中间表用于存储表头数据对应的主键值并查询关联数据。服务器将表头中间表存储到本地,比如:insert into t_cbsxdb_mvtest$m(fid)values(1)

(n),t_cbsxdb_mvtest$m为表头中间表,保存一个字段,即表头数据对应的主键值。
68.然后根据表头中间表和关联表数据的关联属性信息和关联数据主键信息生成关联数据的按页查询指令,比如,查询关联表数据中分录表数据的按页查询指令:select top 10000b.fentryid,b.field1

b.fieldn from t_cbsxdb_mvtest$m ainner join t_cbsxdb_mvtest_entry b on a.fid=b.fid and b.fentryid》lastentryid order by b.fentryid,其中,fentryid为分录表数据的主键,lastentryid为前一页数据的最后一行数据主键fentryid值,a.fid表示数据a的主键信息,b.fid表示分录数据b的关联属性信息。表示根据表头中间表中的主键fid查询与表头数据的主键fid关联的一页分录表数据。
69.服务器根据表头中间表和关联表数据的关联属性信息和主键查询到当前待迁移的一页关联表数据,包括表头扩展表数据和分录表数据,每页的表头扩展表数据和分录表数据都包括多条子数据。然后服务器根据查询到的该页关联表数据生成关联数据批量存储执行脚本,将关联数据批量存储执行脚本发送到目标存储端,使目标存储端执行关联数据批量存储执行脚本将该页关联表数据的多条子数据批量存储到目标存储端数据库中。服务器可以通过关联数据批量存储执行脚本分别将扩展表数据和分录表数据迁移到目标存储端,比如,将分录表数据存储到目标存储端的执行语句:insert into t_cbsxdb_mvtest_entry(fentryid,field1

fieldn)values(1,

)

(n,

)。
70.服务器检测到该关联表数据存在子关联表数据时,将子关联表数据作为关联表数据递归到关联表数据的数据迁移过程执行,根据关联表数据的主键生成关联数据对应的节点中间表,节点中间表用于存储关联表数据对应的主键值并查询子关联表数据,并在主键关联信息中获取与关联表数据的主键关联的子关联表数据的主键和关联属性信息。然后服务器根据节点中间表和子关联表数据的主键和关联属性信息按页查询子关联表数据,将子关联表数据作为关联表数据执行上述步骤,将子关联表数据迁移到目标存储端中。若未检测到子关联表数据存在对应的关联数据,则返回到节点中间表和子关联表数据的主键和关联属性信息按页查询子关联表数据的步骤查询是否存在下一页的子关联表数据,若存在下一页的子关联表数据,则将下一页的子关联表数据迁移到目标存储端,直到所有的子关联表数据迁移完成。然后服务器返回到根据表头中间表和关联表数据的主键和关联属性信息
查询到当前待迁移的一页关联表数据的步骤,检查是否存在下一页的关联表数据,若存在则将下一页的关联表数据及其所有的子关联表数据迁移到目标存储端,直到所有的关联表数据以及所有的子关联表数据迁移到目标存储端,确定查询到的当前页表头数据和其对应的所有关联表数据迁移完成,将该页表头数据的最后一行数据作为lastpk更新到迁移日志信息中。若未存在下一页的关联表数据,则直接将该页表头数据的最后一行数据作为lastpk更新到迁移日志信息中,然后查询下一页表头数据并循环执行上述步骤,将下一页表头数据和其对应的所有关联表数据迁移到目标存储端,直到所有表头数据迁移完成。
71.本实施例中,通过根据主键关联信息将当前页的表头数据、关联表数据和子关联表数据逐步迁移到目标存储端中,然后迁移下一页表头数据及其所有关联表数据,不仅能够实现表头数据及其所有关联表数据的数据完整性,并且数据迁移的最大延迟是当前正在迁移的一页表头数据及其关联表数据,目标存储端能直接使用已迁移的表头数据及其所有关联表数据,从而提高了迁移数据的完整性和使用效率。
72.在一个实施例中,所述方法,还包括:
73.获取已遍历的目标主数据集对应的主数据主键信息,基于已遍历的目标主数据集对应的主数据主键信息生成迁移日志信息。
74.其中,迁移日志信息是指记录所有待迁移主数据集的迁移进度的日志信息。
75.具体地,服务器按页查询到第一页的目标主数据集,并将第一页的目标主数据集及其所有的关联数据集迁移到目标存储端,服务器在检测到第一页的目标主数据集迁移及其所有的关联数据集迁移完成后,根据第一页的目标主数据集中最后一行数据的主键值更新到迁移日志信息。然后服务器按页查询下一页的目标主数据集并将该页的目标主数据集及其关联数据集进行迁移,直到所有目标主数据集及其关联数据集迁移完成。终端可以检测到当前迁移的一页目标主数据集中的数据量不满足该页的数据全量时,判断该页目标主数据集是最后一页的目标主数据集,进行下一个目标主数据集的迁移。
76.服务器在每页的目标主数据集及其关联数据集迁移完成后,根据每页的目标主数据集对应的主键值对迁移日志信息进行更新。服务器可以在所有目标主数据集及其关联数据集迁移完成后删除本地所有目标主数据集及其关联数据集。
77.本实施例中,通过生成迁移日志信息能够实时监测目标主数据集的迁移进度,从而保证目标主数据集的迁移完整性。
78.在一个实施例中,如图5所示,提供一种数据迁移中断的处理流程图;所述方法还包括:
79.步骤502,当检测到迁移中断时,基于迁移日志信息从至少两个目标主数据集中确定中断主数据集和中断主数据集对应的中断主数据主键信息;
80.步骤504,基于中断主数据集生成主数据删除执行语句,向目标存储端发送主数据删除执行语句,以使目标存储端基于主数据删除执行语句删除中断主数据集;
81.步骤506,从预设主键关联信息中查找中断主数据主键信息对应的中断关联数据主键信息,基于中断主数据主键信息和中断关联数据主键信息获取中断主数据集对应的中断关联数据集,基于中断关联数据集生成关联数据删除执行语句,按照目标存储地址将关联数据删除执行语句发送到目标存储端,以使目标存储端执行关联数据删除执行语句删除中断关联数据集;
82.步骤508,获取目标存储端返回的删除完成信息,基于删除完成信息将中断主数据集作为待迁移主数据集,并返回基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集的步骤执行,直到至少两个目标主数据集遍历完成。
83.其中,中断主数据集是指迁移过程中发生迁移中断的目标主数据集。中断主数据主键信息是指中断主数据集对应的主键信息。主数据删除执行语句是指在目标存储端执行删除中断主数据集的语句。中断关联数据主键信息是指与中断主数据主键信息关联的关联数据集的主键信息。中断关联数据集是指与中断主数据集关联的关联数据集。关联数据删除执行语句是指在目标存储端执行删除中断关联数据集的语句。
84.具体的,服务器检查到数据迁移中断时获取迁移日志信息,根据迁移日志信息中的已迁移的目标主数据集对应的主键信息确定发生迁移中断的中断主数据集,然后根据中断数据集生成主数据删除执行语句,向目标存储端发送主数据删除执行语句,以使目标存储端基于主数据删除执行语句删除已迁移的中断主数据集。然后服务器从预设主键关联信息中查找中断主数据主键信息对应的中断关联数据主键信息和关联属性信息,根据中断主数据主键信息和中断关联数据主键信息、关联属性信息获取中断主数据集对应的中断关联数据集,根据中断关联数据集生成关联数据删除执行语句,按照目标存储地址将关联数据删除执行语句发送到目标存储端,以使目标存储端执行关联数据删除执行语句删除已迁移的关联数据集。目标存储端确认删除完成后向服务器返回删除完成信息,服务器根据删除完成信息将中断主数据集作为待迁移主数据集,并返回到根据待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集的步骤执行,将中断主数据集及其所有的关联数据集迁移到目标存储端,然后在至少两个目标主数据中确定当前主数据集,然后执行当前主数据集及其所有的关联数据集的数据迁移,直到所有的目标主数据集及其关联数据集迁移完成。
85.本实施例中,当检测到数据迁移发生中断时,通过迁移日志信息确定中断主数据集,然后在目标存储端中将已迁移的中断主数据集及其关联数据集清除,避免在重新迁移的过程中发生主键冲突导致中断主数据集及其关联数据集不能正常迁移到目标存储端,从而保证了数据迁移的完整性。
86.在一个实施例中,中断主数据主键信息包括当前页主数据主键信息,方法还包括:
87.基于当前页主数据主键信息对应的当前页主数据集生成当前页主数据删除执行语句,向目标存储端发送当前页主数据删除执行语句,以使目标存储端基于当前页主数据删除执行语句删除当前页主数据集;
88.从预设主键关联信息中查找当前页主数据主键信息对应的各个关联页数据主键信息,基于各个关联页数据主键信息分别获取对应的关联页数据集,基于各个关联页数据主键信息对应的关联页数据集分别生成关联页数据删除执行语句,按照目标存储地址将关联页数据删除执行语句发送到目标存储端,以使目标存储端执行关联页数据删除执行语句删除各个关联页数据主键信息对应的关联页数据集。
89.其中,当前页主数据主键信息是指中断主数据集中发生迁移中断的一页主数据集
对应的主键信息。页是指数据存储的基本单元,中断主数据集按页存储。当前页主数据集是指中断主数据集中发生迁移中断的一页子数据集。当前页主数据删除执行语句是指在目标存储端执行删除当前页主数据集的语句。关联页数据主键信息是指关联数据集按页存储后得到的各页子数据集对应的主键信息。关联页数据集是指关联数据集按页存储后得到的各页子数据集。关联页数据删除执行语句是指在目标存储端执行删除关联页数据集的语句。
90.具体地,服务器根据迁移日志信息确定迁移中断的当前页主数据主键信息,根据当前页主数据主键信息获取当前页主数据集,并根据当前页主数据集生成当前页主数据删除执行语句并发送到目标存储端中,以使目标存储端基于当前页主数据删除执行语句删除当前页主数据集。
91.服务器检测到当前页主数据集对应的关联数据集未存在子关联数据集时,从预设主键关联信息中查找当前页主数据主键信息对应的至少一个关联页数据主键信息,并根据各个关联页数据主键信息获取对应的关联页数据集。服务器根据各个关联页数据集生成对应的关联页数据删除执行语句,按照目标存储地址将关联页数据删除执行语句发送到目标存储端,以使目标存储端执行关联页数据删除执行语句删除各个关联页数据主键信息对应的关联页数据集。
92.服务器检测到当前页主数据集对应的关联数据集存在子关联数据集时,根据各个关联页数据主键信息对应的主键顺序确定当前需要处理的当前关联页数据主键信息,然后根据当前关联页数据主键信息在预设主键关联信息中查找当前关联页数据主键信息对应的各个子关联页数据主键信息,子关联页数据主键信息表示子关联数据集按页存储后得到的各页子数据集对应的主键信息,根据各个子关联页数据主键信息按照上述步骤对目标存储中的子关联页数据集进行删除。然后服务器返回到根据各个关联页数据主键信息对应的主键顺序确定当前需要处理的当前关联页数据主键信息的步骤执行,直到各个关联页数据主键信息遍历完成。此时,目标存储端中的当前页主数据集、当前页主数据集对应的关联数据集和子关联数据集删除完成。
93.在一个具体实施例中,如图6所示,提供一种数据删除的流程示意图;服务器检测到数据迁移中断时,比如在进行关联数据集的迁移过程中断电,重启后服务器获取最近的迁移日志信息的迁移记录点,根据迁移日志信息中的页信息,比如上一页的表头数据的主键信息,服务器根据主键顺序确定正在迁移的当前页的表头数据对应的主键信息,即当前页主数据集对应的当前页主数据主键信息。然后服务器根据当前页主数据主键信息获取当前页的表头数据,并根据当前页的表头数据生成当前页主数据删除执行脚本发送到目标存储端,使目标存储端删除已迁移的当前页的表头数据。
94.然后服务器根据当前页的表头数据的主键生成表头中间表,然后在主键关联信息中获取当前页的表头数据的主键对应的关联表数据的主键和关联属性信息,根据表头中间表和关联表数据的主键和关联属性信息分页查询并获取关联表数据对应的至少一页关联数据。服务器检测到关联表数据未存在对应的子关联表数据时,根据至少一页关联数据分别生成关联页数据删除执行脚本并发送到目标存储端,使目标存储端删除已迁移的关联表数据。服务器检测到目标存储端中当前页的表头数据及其所有的已迁移的关联表数据删除完成后,确定中断脏数据清理完成,根据迁移日志信息重新执行当前页的表头数据及其所有关联表数据的数据迁移。
95.服务器检测到关联表数据存在对应的子关联表数据时,将子关联表数据作为关联表数据执行上述关联表数据的删除步骤,在目标存储端删除已迁移的子关联表数据,直到目标存储端当前页的表头数据及其所有已迁移的关联表数据和子关联表数据删除完成,根据迁移日志信息重新执行当前页的表头数据及其所有关联表数据的数据迁移。
96.本实施例中,当检测到数据迁移发生中断时,通过迁移日志信息确定中断主数据集,然后在目标存储端中将已迁移的中断主数据集及其关联数据集清除,避免在重新迁移的过程中发生主键冲突导致中断主数据集及其关联数据集不能正常迁移到目标存储端,从而保证了数据迁移的完整性。
97.在一个实施例中,关联数据集包括至少两个;步骤206,基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集,包括:
98.从至少两个关联数据集中确定当前关联数据集,基于当前关联数据集生成当前关联数据批量存储执行语句,按照目标存储地址将当前关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行当前关联数据批量存储执行语句存储当前关联数据集;
99.当当前关联数据集未存在对应的子关联数据集时,返回从至少两个关联数据集中确定当前关联数据集的步骤执行,直到至少两个关联数据集遍历完成。
100.其中,当前关联数据集是指当前待迁移的关联数据集。
101.具体地,服务器在将待迁移主数据集迁移到目标存储端后,在主键关联信息中根据主数据主键信息查找到对应的至少两个关联数据主键信息,服务器根据至少两个关联数据集对应的关联数据主键信息的主键顺序确定当前关联数据集对应的关联数据主键信息,然后服务器根据当前关联数据集生成当前关联数据批量存储执行脚本,按照目标存储地址将当前关联数据批量存储执行脚本发送到目标存储端,以使目标存储端执行当前关联数据批量存储执行脚本存储当前关联数据集。
102.当服务器检测到当前关联数据集未存在对应的子关联数据集时,根据主键顺序确定下一个待迁移的关联数据集,并将下一个待迁移的关联数据集作为当前关联数据集进行数据迁移,直到待迁移主数据集对应的所有关联数据集迁移完成,更新迁移日志信息。
103.当服务器检测到当前关联数据集存在对应的单个子关联数据集时,将该子关联数据集作为当前关联数据集进行数据迁移,并且该子关联数据集未存在对应的关联数据集时,返回从至少两个关联数据集中确定当前关联数据集的步骤执行,直到所有的关联数据集及其子关联数据集迁移完成,并更新迁移日志信息。
104.当服务器检测到当前关联数据集存在对应的多个子关联数据集时,根据当前关联数据集对应的关联数据主键信息在主键关联信息中查找多个子关联数据集对应的子关联数据主键信息和关联属性信息,并根据子关联数据主键信息的主键顺序在多个子关联数据集中确定当前待迁移的子关联数据集,并将当前待迁移的子关联数据集作为当前关联数据集进行数据迁移,当检测到当前待迁移的子关联数据集未存在对应的关联数据集时,返回到根据子关联数据主键信息的主键顺序在多个子关联数据集中确定当前待迁移的子关联数据集的步骤,直到当前关联数据集对应的所有子关联数据集迁移完成,然后返回从至少两个关联数据集中确定当前关联数据集的步骤执行,直到所有的关联数据集及其子关联数据集迁移完成,并更新迁移日志信息。
105.本实施例中,关联数据集包括至少两个时,通过关联数据集的主键顺序确定当前关联数据集进行数据迁移,然后检测当前关联数据集是否存在对应的子关联数据集,若存在则将当前关联数据集对应的所有子关联数据集迁移完成后执行下一个关联数据集及其所有的子关联数据集的数据迁移,保证了关联数据集及其对应的子关联数据集的数据迁移的完整性,从而实现了数据迁移的完整性。
106.在一个具体实施例中,如图7所示,提供一种数据迁移的整体流程示意图;在进行数据迁移前,服务器存储预先配置好实体关联关系,即主键关联信息。实体关联关系包括父表和父表拆分表之间的一对一的实体关联关系,父表和子表之间的一对n的实体关联关系,子表和子表拆分表之间的一对一的实体关联关系等。父表可以是待迁移主数据集,也可以是关联数据集等。子表可以是待迁移主数据集对应的关联数据集,也可以是关联数据集对应的子关联数据集等。
107.然后服务器响应于数据迁移指令,开始进行数据迁移,服务器在本地存储中执行迁移服务,迁移服务包括表头数据抽取,即将表头数据写入到目标存储端;实体关联数据抽取,即根据实体关联关系获取表头数据对应的实体关联数据;组装实体关联数据批量写入脚本,服务器通过迁移服务生成实体关联数据批量写入脚本将本地存储中的表头数据和实体关联数据写入到目标存储端,数据迁移过程结束。
108.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
109.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据迁移方法的数据迁移装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据迁移装置实施例中的具体限定可以参见上文中对于数据迁移方法的限定,在此不再赘述。
110.在一个实施例中,如图8所示,提供了一种数据迁移装置800,包括:主数据迁移模块800、关联信息模块802和关联数据迁移模块804,其中:
111.主数据迁移模块802,用于获取待迁移主数据集和目标存储地址,基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集;
112.关联信息模块804,用于获取待迁移主数据集对应的主数据主键信息,基于主数据主键信息从预设主键关联信息中查找主数据主键信息对应的关联数据主键信息,使用主数据主键信息和关联数据主键信息获取待迁移主数据集对应的关联数据集;
113.关联数据迁移模块806,用于基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集。
114.在一个实施例中,数据迁移装置800,还包括:
115.子关联数据集遍历单元,用于当检测到关联数据集存在子关联数据集时,从预设主键关联信息中查找关联数据主键信息对应的子关联数据主键信息,基于关联数据主键信息和子关联数据主键信息获取子关联数据集;将子关联数据集作为关联数据集,并返回到基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集的步骤执行,直到子关联数据集遍历完成。
116.在一个实施例中,主数据迁移模块802,包括:
117.当前主数据集确定单元,用于获取至少两个目标主数据集,从至少两个目标主数据集中确定当前主数据集,将当前主数据集作为待迁移主数据集;在基于关联数据集生成关联数据批量存储执行语句,按照目标存储地址将关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行关联数据批量存储执行语句存储关联数据集之后,还包括:返回从至少两个目标主数据集中确定当前主数据集,将当前主数据集作为待迁移主数据集的步骤执行,直到至少两个目标主数据集遍历完成。
118.在一个实施例中,数据迁移装置800,还包括:
119.迁移日志生成单元,用于获取已遍历的目标主数据集对应的主数据主键信息,基于已遍历的目标主数据集对应的主数据主键信息生成迁移日志信息。
120.在一个实施例中,数据迁移装置800,还包括:
121.数据清理单元,用于当检测到迁移中断时,基于迁移日志信息从至少两个目标主数据集中确定中断主数据集和中断主数据集对应的中断主数据主键信息;基于中断主数据集生成主数据删除执行语句,向目标存储端发送主数据删除执行语句,以使目标存储端基于主数据删除执行语句删除中断主数据集;从预设主键关联信息中查找中断主数据主键信息对应的中断关联数据主键信息,基于中断主数据主键信息和中断关联数据主键信息获取中断主数据集对应的中断关联数据集,基于中断关联数据集生成关联数据删除执行语句,按照目标存储地址将关联数据删除执行语句发送到目标存储端,以使目标存储端执行关联数据删除执行语句删除关联数据集;获取目标存储端返回的删除完成信息,基于删除完成信息将中断主数据集作为待迁移主数据集,并返回基于待迁移主数据集生成主数据批量存储执行语句,按照目标存储地址将主数据批量存储执行语句发送到目标存储端,以使目标存储端执行主数据批量存储执行语句存储待迁移主数据集的步骤执行,直到至少两个目标主数据集遍历完成。
122.在一个实施例中,数据迁移装置800,还包括:
123.分页清理单元,用于基于所述当前页主数据主键信息对应的当前页主数据集生成当前页主数据删除执行语句,向所述目标存储端发送所述当前页主数据删除执行语句,以使所述目标存储端基于所述当前页主数据删除执行语句删除所述当前页主数据集;从预设主键关联信息中查找所述当前页主数据主键信息对应的各个关联页数据主键信息,基于所述各个关联页数据主键信息分别获取对应的关联页数据集,基于所述各个关联页数据主键信息对应的关联页数据集分别生成关联页数据删除执行语句,按照所述目标存储地址将所述关联页数据删除执行语句发送到所述目标存储端,以使所述目标存储端执行所述关联页数据删除执行语句删除所述各个关联页数据主键信息对应的关联页数据集。
124.在一个实施例中,关联数据迁移模块806,包括:
125.当前关联数据集确定单元,用于从至少两个关联数据集中确定当前关联数据集,基于当前关联数据集生成当前关联数据批量存储执行语句,按照目标存储地址将当前关联数据批量存储执行语句发送到目标存储端,以使目标存储端执行当前关联数据批量存储执行语句存储当前关联数据集;当当前关联数据集未存在对应的子关联数据集时,返回从至少两个关联数据集中确定当前关联数据集的步骤执行,直到至少两个关联数据集遍历完成。
126.上述数据迁移装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
127.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待迁移主数据集、关联数据集、主键关联信息等。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据迁移方法。
128.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据迁移方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
129.本领域技术人员可以理解,图9-图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
130.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
131.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计
算机程序被处理器执行时实现上述各方法实施例中的步骤。
132.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
133.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
134.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
135.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
136.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献