CN117009318A - 数据迁移方法、装置、设备及存储介质 - Google Patents
数据迁移方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117009318A CN117009318A CN202310988523.0A CN202310988523A CN117009318A CN 117009318 A CN117009318 A CN 117009318A CN 202310988523 A CN202310988523 A CN 202310988523A CN 117009318 A CN117009318 A CN 117009318A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- target data
- type
- migration
- 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
Links
- 238000013508 migration Methods 0.000 title claims abstract description 200
- 230000005012 migration Effects 0.000 title claims abstract description 200
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012216 screening Methods 0.000 claims abstract description 27
- 238000003780 insertion Methods 0.000 claims description 35
- 230000037431 insertion Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移方法、装置、设备及存储介质。该方法包括:获取数据迁移请求;根据文件标识获取配置文件,配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成目标数据表对应的目标数据文件;确定目标数据库的数据库类型,根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句;执行多条程序语句,将目标数据集合迁移至目标数据库。提高了迁移数据的灵活性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据迁移方法、装置、设备及存储介质。
背景技术
数据库中可以存储有多条数据。在一些工作场景中,需要将源数据库中的数据迁移至目标数据库。
在相关技术中,通常是使用数据库自带的迁移工具,将待迁移的数据从源数据库中导出,再导入目标数据库。然而,在上述方式中,通常是对数据库进行整体迁移,且源数据库和目标数据库的类型需相同,导致对数据迁移的灵活性差。
发明内容
本申请提供一种数据迁移方法、装置、设备及存储介质,用以提高对数据迁移的灵活性。
第一方面,本申请提供一种数据迁移方法,包括:
获取数据迁移请求,所述数据迁移请求包括文件标识;
根据文件标识获取配置文件,所述配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;
根据所述数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定所述目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;
针对任意一个目标数据表,根据所述目标数据表中包括的多条目标数据,生成所述目标数据表对应的目标数据文件,所述目标数据文件中包括多条目标数据;
确定所述目标数据库的数据库类型,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,所述程序语句用于在目标数据库中迁入目标数据;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库。
在一种可能的实施方式中,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,包括:
根据所述迁移方式确定目标执行类型,所述目标执行类型包括批量插入类型、批量更新类型和单独插入类型;
根据所述目标数据库类型,确定目标语句类型;
根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句。
在一种可能的实施方式中,所述迁移方式包括初始化方式、更新方式、忽略冲突方式;根据所述迁移方式确定目标执行类型,包括:
若所述迁移方式为所述初始化方式,则确定所述目标执行类型为批量插入类型;
若所述迁移方式为更新方式,则确定所述目标执行类型为批量更新类型;
若所述迁移方式为忽略冲突方式,则确定所述目标执行类型为单独插入类型。
在一种可能的实施方式中,若所述目标执行类型为批量插入类型或批量更新类型;根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句,包括:
确定预设数据量;
确定每条目标数据的数据量得到多个数据量,将所述多个数据量中的最大值确定为最大数据量;
针对任意一条程序语句,根据所述预设数据量和所述最大数据量,在至少一个目标数据表对应的目标数据文件中确定N条目标数据,并根据所述N条目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述N条目标数据,N为大于或等于1的整数。
在一种可能的实施方式中,若所述目标执行类型为单独插入类型;根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句,包括:
针对任意一条程序语句,在至少一个目标数据表对应的目标数据文件中确定第一目标数据;
根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述第一目标数据。
在一种可能的实施方式中,根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,包括:
根据所述目标执行类型确定第一字段;
确定待迁入数据表的数据表标识,将所述数据表标识确定为第二字段;
将所述第一目标数据确定为第三字段;
对所述第一字段、所述第二字段和所述第三字段进行组装处理,生成所述程序语句,所述程序语句的语句类型为目标语句类型。
在一种可能的实施方式中,根据所述迁移范围在所述源数据库中确定多张目标数据表之后,所述方法还包括:
获取第一统计信息,所述第一统计信息中包括所述多个目标数据表的标识、以及每个目标数据表对应的目标数据量;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库时,所述方法还包括:
获取第二统计信息,所述第二统计信息中包括待迁入数据表的数据表标识、以及每个待迁入数据表对应的迁入数据量。
在一种可能的实施方式中,所述方法还包括:
对所述第一统计信息和所述第二统计信息进行对比处理;
若所述第一统计信息和所述第二统计信息一致,则确定所述迁移结果为迁移成功;
若所述第一统计信息和所述第二统计信息存在不一致,则确定所述迁移结果为部分迁移失败。
第二方面,本申请提供一种数据迁移装置,包括:第一获取模块、第二获取模块、确定模块、第一生成模块、第二生成模块和执行模块,其中,
所述第一获取模块用于,获取数据迁移请求,所述数据迁移请求包括文件标识;
所述第二获取模块用于,根据文件标识获取配置文件,所述配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;
所述确定模块用于,根据所述数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定所述目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;
所述第一生成模块用于,针对任意一个目标数据表,根据所述目标数据表中包括的多条目标数据,生成所述目标数据表对应的目标数据文件,所述目标数据文件中包括多条目标数据;
所述第二生成模块用于,确定所述目标数据库的数据库类型,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,所述程序语句用于在目标数据库中迁入目标数据;
所述执行模块用于,执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库。
在一种可能的实施方式中,所述第二生成模块具体用于:
根据所述迁移方式确定目标执行类型,所述目标执行类型包括批量插入类型、批量更新类型和单独插入类型;
根据所述目标数据库类型,确定目标语句类型;
根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句。
在一种可能的实施方式中,所述迁移方式包括初始化方式、更新方式、忽略冲突方式;所述第二生成模块具体用于:
若所述迁移方式为所述初始化方式,则确定所述目标执行类型为批量插入类型;
若所述迁移方式为更新方式,则确定所述目标执行类型为批量更新类型;
若所述迁移方式为忽略冲突方式,则确定所述目标执行类型为单独插入类型。
在一种可能的实施方式中,若所述目标执行类型为批量插入类型或批量更新类型;所述第二生成模块具体用于:
确定预设数据量;
确定每条目标数据的数据量得到多个数据量,将所述多个数据量中的最大值确定为最大数据量;
针对任意一条程序语句,根据所述预设数据量和所述最大数据量,在至少一个目标数据表对应的目标数据文件中确定N条目标数据,并根据所述N条目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述N条目标数据,N为大于或等于1的整数。
在一种可能的实施方式中,若所述目标执行类型为单独插入类型;所述第二生成模块具体用于:
针对任意一条程序语句,在至少一个目标数据表对应的目标数据文件中确定第一目标数据;
根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述第一目标数据。
在一种可能的实施方式中,所述第二生成模块具体用于:
根据所述目标执行类型确定第一字段;
确定待迁入数据表的数据表标识,将所述数据表标识确定为第二字段;
将所述第一目标数据确定为第三字段;
对所述第一字段、所述第二字段和所述第三字段进行组装处理,生成所述程序语句,所述程序语句的语句类型为目标语句类型。
在一种可能的实施方式中,根据所述迁移范围在所述源数据库中确定多张目标数据表之后,所述装置还包括:第三获取模块,所述第三获取模块用于:
获取第一统计信息,所述第一统计信息中包括所述多个目标数据表的标识、以及每个目标数据表对应的目标数据量;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库时,所述第三获取模块用于,获取第二统计信息,所述第二统计信息中包括待迁入数据表的数据表标识、以及每个待迁入数据表对应的迁入数据量。
在一种可能的实施方式中,所述装置还包括:对比模块,所述对比模块用于:
对所述第一统计信息和所述第二统计信息进行对比处理;
若所述第一统计信息和所述第二统计信息一致,则确定所述迁移结果为迁移成功;
若所述第一统计信息和所述第二统计信息存在不一致,则确定所述迁移结果为部分迁移失败。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的方法。
本申请提供一种数据迁移方法、装置、设备及存储介质,电子设备可以获取获取数据迁移请求,并根据数据迁移请求中的文件标识获取配置文件。电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表,进而可以针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成对应的目标数据文件。电子设备可以确定目标数据库的数据库类型,并根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句,将目标数据集合迁移至目标数据库。由于电子设备可以根据配置文件在源数据库中自动确定待迁移的目标数据集合,生成目标数据文件,进而生成程序语句,以执行程序语句将待迁移的目标数据集合迁移至目标数据库,实现了灵活迁移源数据库中的部分数据或全部数据,无需源数据库和目标数据库的类型相同,且无需源数据库和目标数据库位于同一网络环境,提高了迁移数据的灵活性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请示例性实施例提供的一种场景示意图;
图2为本申请实施例提供的一种数据迁移方法的流程示意图;
图3为本申请实施例提供的另一种数据迁移方法的流程示意图;
图4为本申请实施例提供的一种数据迁移方法的过程示意图;
图5为本申请实施例提供的一种数据迁移装置的结构示意图;
图6为本申请实施例提供的另一种数据迁移装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本申请中“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。
以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c中的每一个本身可以是元素,也可以是包含一个或多个元素的集合。
本申请中“至少一个”是指一个或多个。“多个”是指两个或两个以上。
在本申请中,“示例的”、“在一些实施例中”、“例如”、“在另一些实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”或“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请中数据迁移的方法和装置可用于计算机领域,也可用于除计算机领域之外的任意领域,本申请数据迁移的方法和装置的应用领域不做限定。
为了便于理解,下面,结合图1,对本申请实施例所适用的应用场景进行说明。
图1为本申请示例性实施例提供的一种场景示意图。请参见图1,包括源数据库、电子设备和目标数据库。
源数据库中可以包括多个数据表。例如,该多个数据表可以分别为数据表1、数据表2、……、数据表n(n为大于或等于1的整数)。
目标数据库中可以包括多个数据表。例如,该多个数据表可以为数据表1、数据表2、……、数据表m(m为大于或等于1的整数)。
针对任意一个数据表,数据表中可以包括多条数据。例如,针对源数据库中的数据表1,数据表1中可以包括数据1、数据2、……、数据100。
电子设备中可以预设有配置文件。电子设备可以根据配置文件,在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,进而生成每个目标数据表对应的目标数据文件,得到多个目标数据文件,以迁出多条目标数据。例如,电子设备可以根据数据筛选条件在源数据库确定待迁移的目标数据集合中包括100条数据,并确定该100条数据位于数据表1,则电子设备可以根据数据表1中的100条数据,生成对应的目标数据文件1,即在源数据库中导出数据表1中的100条数据。
电子设备可以根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句以将目标数据集合中的目标数据迁入目标数据库。例如,若目标数据文件1是根据数据表1中的100条数据生成的,若目标数据库类型为mysql类型,则电子设备可以根据目标数据文件1、mysql类型以及迁移方式,生成60条程序语句,并执行该60条程序语句,以将数据表1中的100条数据迁移至目标数据库,即将待迁移的目标数据集合迁移至目标数据库。
在相关技术中,通常是使用数据库自带的迁移工具,将待迁移的数据从源数据库中导出,再导入目标数据库。然而,在上述方式中,通常是对数据库进行整体迁移,且源数据库和目标数据库的类型需相同,导致对数据迁移的灵活性差。
在本申请实施例中,电子设备中预设有配置文件,配置文件中可以包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式。电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表。针对任意一个目标数据表,可以根据每个目标数据表中包括的多条目标数据,生成对应的目标数据文件,得到多个目标数据文件。电子设备可以确定目标数据库的数据库类型,根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句,将待迁移的目标数据集合迁移至目标数据库。由于电子设备可以根据配置文件在源数据库中自动确定待迁移的目标数据集合,生成目标数据文件,进而生成程序语句,以执行程序语句将待迁移的目标数据集合迁移至目标数据库,实现了灵活迁移源数据库中的部分数据或全部数据,且无需源数据库和目标数据库的类型相同,提高了迁移数据的灵活性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种数据迁移方法的流程示意图。请参见图2,该方法可以包括:
S201、获取数据迁移请求,数据迁移请求中包括文件标识。
本申请实施例的执行主体可以为电子设备,也可以为设置在电子设备中的数据迁移装置。数据迁移装置可以通过软件实现,也可以通过软件和硬件的结合实现。数据迁移装置可以为电子设备中的处理器。为了便于理解,在下文中,以执行主体为电子设备为例进行说明。
数据迁移请求可以包括文件标识。例如,文件标识可以为file-001。
可选地,用户可以在电子设备中输入文件标识,点击“迁移”控件,以使电子设备可以获取数据迁移请求。数据迁移请求中可以包括文件标识。例如,数据迁移请求1中可以包括file-001。
S202、根据文件标识获取配置文件。
配置文件中可以包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式。
数据筛选条件可以包括时间条件、区域条件和/或租户条件等。例如,数据筛选条件可以为筛选2023.1.1-2023.7.1的数据、筛选A市的租户数据等。
迁移方式可以包括初始化方式、更新方式、忽略冲突方式。
初始化方式是指清空目标数据库中的待迁入数据的数据表,再迁入目标数据。
更新方式是指更新目标数据库中的数据。
忽略冲突方式是指迁移存在于源数据库且不存在目标数据库中的数据。对于在源数据库和目标数据库中都存在的数据,无需从源数据库中迁移过来。
可选地,配置文件中还可以包括源数据库类型和源数据库的网络连接方式等源数据库信息、以及目标数据库的网络连接方式等目标数据库信息。
可选地,工作人员可以在配置文件中编写数据筛选条件、目标数据库类型和迁移方式等信息,并将配置文件预先存储在电子设备的预设存储空间中。电子设备中可以预存有多个配置文件。每个配置文件有对应的文件标识。
例如,电子设备可以根据文件标识file-001,在预设存储空间获取文件标识file-001对应的配置文件1,配置文件1中可以包括源数据库的标识为database01,数据筛选条件1、目标数据库的标识为database02、以及迁移方式为更新方式。
S203、根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表。
电子设备可以根据源数据库的标识,确定源数据库,并与源数据库进行通信连接。
源数据库中可以包括多个数据表。任意一个数据表中可以包括多条数据。任意一条数据中可以包括多个字段对应的值。
例如,源数据库中可以包括1万个数据表。每个数据表中可以包括5000条数据。若数据表1是关于多个租户的姓名、账号、开户时间等信息的数据表,则每条数据中可以包括一个租户的姓名、账号和开户时间等信息。例如,数据1中可以包括张三、A001和2020.1.12。
在一可选实施例中,电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合。目标数据集合中可以包括多条待迁移的数据。
例如,若数据筛选条件为筛选2023.1.1-2023.7.1的数据,电子设备可以根据数据筛选条件在源数据库中筛选2023.1.1-2023.7.1之间的数据,以确定待迁移的目标数据集合。假设电子设备筛选出2万条目标数据,则待迁移的目标数据集合中包括该2万条目标数据。
可选地,电子设备可以确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表。例如,若目标数据集合中包括2万条目标数据,分别为数据1、数据2、……、数据20000。若数据1-数据5000在数据表1中,数据5001-数据6000在数据表2中,数据6001-数据10000在数据表3中,数据10001-数据15000在数据表4中,数据15001-数据20000在数据表5中,则电子设备可以确定各目标数据所在的目标数据表,得到多个目标数据表,即数据表1、数据表2、数据表3、数据表4和数据表5。
S204、针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成目标数据表对应的目标数据文件。
目标数据文件的文件类型可以为dat文件。目标数据文件中包括多条目标数据。例如,目标数据文件1中可以包括5000条数据。
可选地,针对任意一个目标数据表,电子设备可以根据目标数据表中包括的多条目标数据,生成对应的目标数据文件。
例如,若存在5个目标数据表,分别为数据表1、数据表2、数据表3、数据表4和数据表5,每个数据表中包括的数据如表1中所示:
表1
则可以根据数据表1中的数据1-数据5000,生成目标数据文件1;可以根据数据表2中的数据5001-数据6000,生成目标数据文件2;……;可以根据数据表5中的数据15001-数据20000,生成目标数据文件5。目标数据文件1中可以包括数据1-数据5000,目标数据文件2中可以包括数据5001-数据6000,……,目标数据文件5中可以包括数据15001-数据20000。
S205、确定目标数据库的数据库类型,根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句。
可选地,电子设备可以在配置文件中确定目标数据库的数据库类型。目标数据库类型可以包括oracle类型或mysql类型等。
目标数据库类型与源数据库类型可以相同,也可以不同。例如,若源数据库类型为oracle类型,目标数据库类型可以为mysql类型。
程序语句可以用于在目标数据库中迁入目标数据。例如,程序语句1可以为INSERTINTO table1(field1)VALUES(data1),表示在数据表1的字段1中插入数据1。
在一可选实施例中,可以通过如下方式,根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句:根据迁移方式确定目标执行类型;根据目标数据库类型,确定目标语句类型;根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句。
目标执行类型可以包括批量插入类型、批量更新类型和单独插入类型。
批量插入类型是指通过一条程序语句插入至少一条目标数据。例如,若程序语句1为“INSERT INTO table1 VALUES(data1,data2,data3)”,可以用于在表格1的字段1中插入数据1、在字段2中插入数据2、在字段3中插入数据3,则程序语句1的执行类型为批量插入类型。
批量更新类型是指通过一条程序语句更新至少一条目标数据。例如,若程序语句2为“replace table1 VALUES(data1,data2,data3)”,可以用于在表格1中更新数据1、数据2和数据3,则程序语句2的执行类型为批量更新类型。
单独插入类型是指通过一条程序语句插入一条目标数据。例如,若程序语句3为INSERT INTO table1(field1)VALUES(data1),可以用于在表格1的字段1中插入数据1,则程序语句3的执行类型为单独插入类型。
可选地,电子设备可以根据迁移方式确定目标执行类型。例如,若迁移方式为初始化方式,则可以确定目标执行类型为批量插入类型。
目标语句类型可以包括oracle类型或mysql类型等。目标语句类型与目标数据库的类型相对应,目的是为了能执行程序语句在目标数据库中迁入数据。
可选地,电子设备可以根据目标数据库类型,确定目标语句类型。例如,若目标数据库类型为mysql类型,则目标语句类型也为mysql类型。
由于多个目标数据文件中包括多条目标数据,则电子设备确定目标执行类型、目标语句类型之后,可以根据目标执行类型和目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句。该多条程序语句可以位于一个程序脚本中。
例如,若存在5个目标数据文件,目标执行类型为批量插入类型、语句类型为mysql类型,则电子设备可以根据该5个目标数据文件,生成29条程序语句。该29条目标执行类型可以为批量插入类型、语句类型可以为mysql类型。
目标执行类型为批量插入类型或批量更新类型时,可以提高迁移数据的效率。
S206、执行多条程序语句,将目标数据集合迁移至目标数据库。
可选地,电子设备可以根据目标数据库的标识确定目标数据库,并与目标数据库进行通信连接,执行多条程序语句,将目标数据集合迁移至目标数据库。
例如,若目标数据集合中包括2万条目标数据,若电子设备生成了29条程序语句,则电子设备可以执行该29条程序语句,以将目标数据集合中的2万条目标数据迁移至目标数据库。
在本申请实施例中,电子设备可以获取获取数据迁移请求,并根据数据迁移请求中的文件标识获取配置文件。电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表,进而可以针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成对应的目标数据文件。电子设备可以确定目标数据库的数据库类型,并根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句,将目标数据集合迁移至目标数据库。由于电子设备可以根据配置文件在源数据库中自动确定待迁移的目标数据集合,生成目标数据文件,进而生成程序语句,以执行程序语句将待迁移的目标数据集合迁移至目标数据库,实现了灵活迁移源数据库中的部分数据或全部数据,无需源数据库和目标数据库的类型相同,且无需源数据库和目标数据库位于同一网络环境,提高了迁移数据的灵活性。
下面,在图2所示实施例的基础上,结合图3,对上述数据迁移方法进行详细说明。
图3为本申请实施例提供的另一种数据迁移方法的流程示意图。请参见图3,该方法可以包括:
S301、获取数据迁移请求,数据迁移请求中包括文件标识。
S302、根据文件标识获取配置文件。
S303、根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表。
需要说明的是,步骤S301~S303的执行过程可以参见步骤S201~S203,此处不再进行赘述。
S304、获取第一统计信息。
第一统计信息中可以包括多个目标数据表的标识、以及每个目标数据表对应的目标数据量。
针对任意一个目标数据表,目标数据表可以具有对应的标识。目标数据表的标识可以为目标数据表的名称、编号等。例如,数据表1的标识可以为table1。
例如,若存在5个目标数据表,分别为数据表1、数据表2、数据表3、数据表4和数据表5,每个目标数据表中包括的数据如表1中所示,若该5个目标数据表的标识分别为Table1、Table2、Table3、Table4和Table5,则第一统计信息可以如表2中所示:
表2
S305、针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成目标数据表对应的目标数据文件。
需要说明的是,步骤S305的执行过程可以参见步骤S204,此处不再进行赘述。
S306、根据迁移方式确定目标执行类型。
可选地,由于迁移方式包括初始化方式、更新方式和忽略冲突方式3种方式,则根据迁移方式确定目标执行类型可以包括如下3种情况:
情况1:迁移方式为初始化方式。
在该种情况下,说明目标数据库中待迁入数据的数据表中不存在数据,则可以确定目标执行类型为批量插入类型。
情况2:迁移方式为更新方式。
在该种情况下,说明目标数据库中待迁入数据的数据表中存在数据,则可以确定目标执行类型为批量更新类型。
情况3:迁移方式为忽略冲突方式。
在该种情况下,说明目标数据库中的部分数据和源数据库中的部分数据相同,则可以单独迁移存在于源数据库且不存在目标数据库中的数据,因此则确定目标执行类型为单独插入类型。
可选地,电子设备可以在配置文件中获取迁移方式,并根据迁移方式确定目标执行类型。例如,若电子设备可以配置文件中获取的迁移方式为初始化方式,则可以确定目标执行类型为批量插入类型。
S307、根据目标数据库类型,确定目标语句类型。
例如,若目标数据库类型为mysql类型,则目标语句类型为mysql类型;若目标数据库类型为oracle类型,则目标语句类型为oracle类型。
S308、确定目标数据库的数据库类型。
可选地,电子设备可以在配置文件中确定目标数据库的数据库类型。目标数据库类型可以包括oracle类型或mysql类型等。
S309、根据目标数据库类型、迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句。
可选地,根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句可以包括如下2种情况:
情况1:目标执行类型为批量插入类型或批量更新类型。
在该种情况下,可以通过如下可行的方式,根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句:确定预设数据量;确定每条目标数据的数据量得到多个数据量,将多个数据量中的最大值确定为最大数据量;针对任意一条程序语句,根据预设数据量和最大数据量,在至少一个目标数据表对应的目标数据文件中确定N条目标数据,并根据N条目标数据、目标执行类型、以及目标语句类型,生成程序语句。
可选地,预设数据量可以是人为预设的。例如,预设数据量可以为15MB(兆字节)。
针对任意一条目标数据,目标数据具有对应的数据量。电子设备可以在确定每条目标数据的数据量得到多个数据量,将多个数据量中的最大值确定为最大数据量。例如,若存在5000条目标数据,则电子设备可以确定该5000条目标数据分别对应的数据量,得到5000个数据量,假设其中目标数据3的数据量最大为20KB,则可以确定最大数据量为20KB。
可选地,针对任意一条程序语句,电子设备可以根据预设数据量,在至少一个数据表对应的目标数据文件中确定N条目标数据,并根据N个目标数据、目标执行类型、以及目标语句类型,生成程序语句。程序语句用于迁移N条目标数据,N为大于或等于1的整数。
例如,若目标数据文件1中包括数据1-数据5000,程序语句的预设数据量为15MB,一条目标数据的最大数据量为20KB,则可以在目标数据文件1中确定768条目标数据,分别为数据1-数据768,则可以根据该768条目标数据、目标执行类型、以及目标语句类型,生成程序语句1;同样的,可以在目标数据文件1中确定数据769-数据1537,根据该768条目标数据、目标执行类型、以及目标语句类型,生成程序语句2;……;可以在目标数据文件1中确定数据4609-数据5000,根据该768条目标数据、目标执行类型、以及目标语句类型,生成程序语句7。
在一可选实施例中,可以通过如下可行的方式,根据N条目标数据、目标执行类型、以及目标语句类型,生成程序语句:根据目标执行类型确定第一字段;确定待迁入数据表的数据表标识,将数据表标识确定为第二字段;将N条目标数据确定为多个第三字段;对第一字段、第二字段和多个第三字段进行组装处理,生成程序语句。程序语句的语句类型为目标语句类型。
可选地,电子设备可以确定待迁入数据表的数据表标识。例如,待迁入数据表的数据表标识为table1。
例如,若目标执行类型为批量插入类型,目标语句类型为mysql类型,目标数据为数据1-数据768,若待迁入数据表的数据表标识为table1,则可以根据目标执行类型确定第一字段为“INSERT INTO”,可以将table1确定为第二字段,将数据1-数据768确定为多个第三字段,则可以对第一字段、第二字段和多个第三字段进行组装处理,生成程序语句1。例如,程序语句1可以为“INSERT INTO table1 VALUES(data1,data2,data3,……data786)”,程序语句1用于迁移该768条目标数据,程序语句1的语句类型可以为mysql类型。
若目标执行类型为批量更新类型,目标语句类型为mysql类型,目标数据为数据1-数据768,若待迁入数据表的数据表标识为table1,则可以根据目标执行类型确定第一字段为“replace”,可以将table1确定为第二字段,将数据1-数据768确定为多个第三字段,则可以对第一字段、第二字段和多个第三字段进行组装处理,生成程序语句1。例如,程序语句1可以为“replace table1 VALUES(data1,data2,data3,……data786)”,程序语句1用于更新该768条目标数据。
若目标执行类型为批量更新类型,目标语句类型为oracle类型,目标数据为数据1-数据768,若待迁入数据表的数据表标识为table1,则可以根据目标执行类型确定第一字段为“merge”,可以将table1确定为第二字段,将数据1-数据768确定为多个第三字段,则可以对第一字段、第二字段和多个第三字段进行组装处理,生成程序语句1。例如,程序语句1可以为“merge table1 VALUES(data1,data2,data3,……data786)”,程序语句1用于更新该768条目标数据。
需要说明的是,当目标语句类型不同时,不同语句类型的程序语句中的部分语句关键词不同。例如,若目标执行类型为批量更新类型时,若语句类型为mysql类型,则程序语句中的“更新”用词为“replace”;若语句类型为oracle类型,则程序语句中的;“更新”用词可以为“merge”。
情况2:目标执行类型为单独插入类型。
在该种情况下,可以通过如下可行的方式,根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句:针对任意一条程序语句,在至少一个目标数据表对应的目标数据文件中确定第一目标数据;根据第一目标数据、目标执行类型、以及目标语句类型,生成程序语句。程序语句用于迁移第一目标数据。
在一可选实施例中,可以通过如下方式,根据第一目标数据、目标执行类型、以及目标语句类型,生成程序语句:根据目标执行类型确定第一字段;确定待迁入数据表的数据表标识,将数据表标识确定为第二字段;将第一目标数据确定为第三字段;对第一字段、第二字段和第三字段进行组装处理,生成程序语句,程序语句的语句类型为目标语句类型。
例如,若目标数据文件1中包括5000条目标数据,则可以在目标数据文件1中确定第一目标数据,假设第一目标数据为数据1,目标语句类型为mysql类型,目标执行类型为单独插入类型,若待迁入数据表的数据标识为table1,则可以根据单独插入类型确定第一字段为“INSERT INTO”,将“table1”确定为第二字段,将数据1确定为第三字段,可以对第一字段、第二字段和第三字段进行组装处理,生成程序语句1。例如,程序语句1可以为INSERTINTO table1(field1)VALUES(data1)。程序语句1用于迁移数据1,程序语句1的语句类型可以为mysql类型。
S310、执行多条程序语句,将目标数据集合迁移至目标数据库。
例如,若目标数据集合中包括2万条目标数据,若电子设备生成了29条程序语句,则电子设备可以执行该29条程序语句,以将目标数据集合中的2万个目标数据迁移至目标数据库。例如,若目标数据集合中包括的2万条目标数据,目标数据库中待迁入数据的数据表包括数据表A、数据表B、数据表C、数据表D和数据表E,假设该29条程序语句分别为程序语句1、程序语句2、……、程序语句29,如表3中所示:
表3
多条程序语句 | 目标数据集合 | 待迁入数据表 |
程序语句1-程序语句7 | 数据1-数据5000 | 数据表A |
程序语句8-程序语句9 | 数据5001-数据6000 | 数据表B |
程序语句10-程序语句15 | 数据6001-数据10000 | 数据表C |
程序语句16-程序语句22 | 数据10001-数据15000 | 数据表D |
程序语句23-程序语句29 | 数据15001-数据20000 | 数据表E |
则可以执行程序语句1-程序语句7,将数据1-数据5000迁移至目标数据库中的数据表A;可以执行程序语句8、程序语句9,将数据5001-数据6000迁移至目标数据库中的数据表B;可以执行程序语句10-程序语句15,将数据6001-数据10000迁移至目标数据库中的数据表C;可以执行程序语句16-程序语句22,将数据10001-数据15000迁移至目标数据库中的数据表D;可以执行程序语句23-程序语句29,将数据15001-数据20000迁移至目标数据库中的数据表E。
S311、获取第二统计信息。
第二统计信息是根据目标数据库中多个待迁入数据表生成的。
第二统计信息中包括多个待迁入数据表的数据表标识、以及每个待迁入数据表对应的迁入数据量。
例如,若目标数据集合中包括2万条数据,将该2万条数据迁移至目标数据库中的5张待迁入数据表,分别数据表A、数据表B、数据表C、数据表D和数据表E,假设该5个数据表的标识为TableA、TableB、TableC、TableD和TableE,则第二统计信息可以如表4所示:
表4
S312、对第一统计信息和第二统计信息进行对比处理,得到迁移结果。
若第一统计信息和第二统计信息一致,则确定迁移结果为迁移成功。
若第一统计信息和第二统计信息存在不一致,则确定迁移结果为部分迁移失败。
例如,若第一统计信息如表2中所示,第二统计信息如表4中所示,由于第一统计信息中数据表1中的目标数据量为5000条数据,第二统计信息中的数据表A中的迁入数据量为5000条数据,则可以确定已将源数据库的数据表1中的5000条数据均迁移至目标数据库中的数据表A中;同样的,可以确定已将源数据库的数据表2中的1000条数据均迁移至目标数据库中的数据表B中;……;可以确定已将源数据库的数据表5中的5000条数据均迁移至目标数据库中的数据表E中,则可以确定迁移结果为迁移成功。
例如,若第一统计信息如表2所示,第二统计信息如表5所示:
表5
由于第一统计信息中数据表1中的目标数据量为5000条数据,第二统计信息中的数据表A中的迁入数据量为4900条数据,目标数据量5000和迁入数据量4900不对等,说明有1000条数据未迁移至数据表A中,说明该1000条数据迁移失败;由于第一统计信息中数据表2中的目标数据量为1000条数据,第二统计信息中的数据表B中的迁入数据量为100条数据,则可以确定已将源数据库的数据表2中的1000条数据,均迁移至目标数据库中的数据表B中;同样地,可以确定将源数据库的数据表3中的4000条数据,迁移至目标数据库中的数据表C有300条数据迁移失败;可以确定将源数据库的数据表4中的5000条数据,迁移至目标数据库中的数据表D有200条数据迁移失败;可以确定已将源数据库的数据表5中的5000条数据均迁移至目标数据库中的数据表E中。由于部分目标数据迁移失败,则可以确定迁移结果为部分迁移失败。
可选地,第二统计信息中还可以包括迁移失败的多个目标数据的数据标识。
例如,若迁移失败的数据为数据1、数据3、数据9、数据10和数据12。该5个数据对应的数据标识分别为数据标识1、数据标识3、数据标识9、数据标识10和数据标识12,则第二统计信息中可以包括数据标识1、数据标识3、数据标识9、数据标识10和数据标识12。
可选地,若迁移结果为部分迁移失败,则可以根据第二统计信息中的数据标识对迁移失败的数据进行重新迁移。
需要说明的是,在实际工作中应用本申请的技术方案时,仅需要将目标数据库信息,数据筛选条件及迁移方式等信息写到配置文件中,即可对源数据库中的目标数据进行一键式迁出。考虑到目标数据库和源数据库可能不在一个网络环境下,迁移过程中迁出和迁入可以分开进行,即可以先进行迁出,再进行迁入。
通过本申请的技术方案可以完成复杂业务场景的数据迁移,弥补了官方工具的不足,可以实现一键式迁出与迁入,操作简单;且实现了在不同类型的数据库之间的数据迁移,提高了数据迁移的灵活性。
在本申请实施例中,电子设备可以获取获取数据迁移请求,并根据数据迁移请求中的文件标识获取配置文件。电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;可以获取第一统计信息。电子设备可以针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成对应的目标数据文件。电子设备可以根据迁移方式确定目标执行类型;可以根据目标数据库类型,确定目标语句类型;可以根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句,将目标数据集合迁移至目标数据库。电子设备可以获取第二统计信息,并对第一统计信息和第二统计信息进行对比处理,得到迁移结果。由于电子设备可以根据配置文件在源数据库中自动确定待迁移的目标数据集合,生成目标数据文件,进而生成程序语句,以执行程序语句将待迁移的目标数据集合迁移至目标数据库,实现了灵活迁移源数据库中的部分数据或全部数据,无需源数据库和目标数据库的类型相同,且无需源数据库和目标数据库位于同一网络环境,提高了迁移数据的灵活性。
下面,在上述任一实施例的基础上,结合图4,对上述数据迁移方法进行进一步详细说明。
图4为本申请实施例提供的一种数据迁移方法的过程示意图。请参见图4,包括源数据库、电子设备和目标数据库。
源数据库中可以包括多个数据表,任意一个数据表中可以包括多条数据。
电子设备可以获取数据迁移请求,并根据数据迁移请求中的文件标识,获取配置文件。配置文件中可以包括源数据库的标识、目标数据库的标识、数据筛选条件、源数据库类型和源数据库的网络连接方式等源数据库信息、以及目标数据库类型、迁移方式、目标数据库的网络连接方式等目标数据库信息。
在步骤①中,电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,目标数据集合中可以包括2万条目标数据。
电子设备可以确定目标数据集合中各目标数据所在的目标数据表分别为数据表1、数据表2、数据表3、数据表4和数据表5,进而根据每个目标数据表中包括的多条目标数据,生成对应的目标数据文件,得到目标数据文件1、目标数据文件2、目标数据文件3、目标数据文件4和目标数据文件5。
在步骤②中,电子设备可以获取第一统计信息。第一统计信息中可以包括多个目标数据表的标识、以及每个目标数据表对应的目标数据量。例如,第一统计信息可以如表2中所示。
在步骤③中,电子设备可以根据迁移方式确定目标执行类型,根据目标数据库类型,确定目标语句类型,进而根据目标执行类型、目标语句类型、以及多个目标数据文件,生成多条程序语句。例如,若迁移方式为初始化方式,则可以确定目标执行类型为批量插入类型;若目标数据库类型为mysql类型,则可以确定目标语句类型为mysql类型。若存在目标数据文件1、目标数据文件2、目标数据文件3、目标数据文件4和目标数据文件5,则可以根据该5个目标数据文件、批量插入类型、以及mysql类型,生成29条程序语句。
在步骤④,电子设备可以执行该29条程序语句,将目标数据集合的2万条目标数据迁移至目标数据库中的数据表A、数据表B、数据表C、数据表D和数据表E。电子设备还可以获取第二统计信息。第二统计信息可以如表4中所示。
在步骤⑤中,电子设备可以对第一统计信息和第二统计信息进行对比处理,得到迁移结果。若第一统计信息和第二统计信息一致,则确定迁移结果为迁移成功。若第一统计信息和第二统计信息存在不一致,则确定迁移结果为部分迁移失败。
可选地,第二统计信息中还可以包括迁移失败的多个目标数据的数据标识。
可选地,若迁移结果为部分迁移失败,则可以根据第二统计信息中的数据标识对迁移失败的数据进行重新迁移。
在本申请实施例中,电子设备可以获取获取数据迁移请求,并根据数据迁移请求中的文件标识获取配置文件。电子设备可以根据数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;可以获取第一统计信息。电子设备可以针对任意一个目标数据表,根据目标数据表中包括的多条目标数据,生成对应的目标数据文件。电子设备可以根据迁移方式确定目标执行类型;可以根据目标数据库类型,确定目标语句类型;可以根据目标执行类型、目标语句类型、以及每个目标数据表对应的目标数据文件,生成多条程序语句,并执行多条程序语句,将目标数据集合迁移至目标数据库。电子设备可以获取第二统计信息,并对第一统计信息和第二统计信息进行对比处理,得到迁移结果。由于电子设备可以根据配置文件在源数据库中自动确定待迁移的目标数据集合,生成目标数据文件,进而生成程序语句,以执行程序语句将待迁移的目标数据集合迁移至目标数据库,实现了灵活迁移源数据库中的部分数据或全部数据,无需源数据库和目标数据库的类型相同,且无需源数据库和目标数据库位于同一网络环境,提高了迁移数据的灵活性。
图5为本申请提供一种数据迁移装置的结构示意图。请参见图5,所述数据迁移装置10包括:第一获取模块11、第二获取模块12、确定模块13、第一生成模块14、第二生成模块15和执行模块16,其中,
所述第一获取模块11用于,获取数据迁移请求,所述数据迁移请求包括文件标识;
所述第二获取模块12用于,根据文件标识获取配置文件,所述配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;
所述确定模块13用于,根据所述数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定所述目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;
所述第一生成模块14用于,针对任意一个目标数据表,根据所述目标数据表中包括的多条目标数据,生成所述目标数据表对应的目标数据文件,所述目标数据文件中包括多条目标数据;
所述第二生成模块15用于,确定所述目标数据库的数据库类型,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,所述程序语句用于在目标数据库中迁入目标数据;
所述执行模块16用于,执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库。
本申请实施例提供的数据迁移装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
在一种可能的实施方式中,所述第二生成模块15具体用于:
根据所述迁移方式确定目标执行类型,所述目标执行类型包括批量插入类型、批量更新类型和单独插入类型;
根据所述目标数据库类型,确定目标语句类型;
根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句。
在一种可能的实施方式中,所述迁移方式包括初始化方式、更新方式、忽略冲突方式;所述第二生成模块15具体用于:
若所述迁移方式为所述初始化方式,则确定所述目标执行类型为批量插入类型;
若所述迁移方式为更新方式,则确定所述目标执行类型为批量更新类型;
若所述迁移方式为忽略冲突方式,则确定所述目标执行类型为单独插入类型。
在一种可能的实施方式中,若所述目标执行类型为批量插入类型或批量更新类型;所述第二生成模块15具体用于:
确定预设数据量;
确定每条目标数据的数据量得到多个数据量,将所述多个数据量中的最大值确定为最大数据量;
针对任意一条程序语句,根据所述预设数据量和所述最大数据量,在至少一个目标数据表对应的目标数据文件中确定N条目标数据,并根据所述N条目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述N条目标数据,N为大于或等于1的整数。
在一种可能的实施方式中,若所述目标执行类型为单独插入类型;所述第二生成模块15具体用于:
针对任意一条程序语句,在至少一个目标数据表对应的目标数据文件中确定第一目标数据;
根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述第一目标数据。
在一种可能的实施方式中,所述第二生成模块15具体用于:
根据所述目标执行类型确定第一字段;
确定待迁入数据表的数据表标识,将所述数据表标识确定为第二字段;
将所述第一目标数据确定为第三字段;
对所述第一字段、所述第二字段和所述第三字段进行组装处理,生成所述程序语句,所述程序语句的语句类型为目标语句类型。
本申请实施例提供的数据迁移装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
图6为本申请实施例提供的另一种数据迁移装置的结构示意图。请参见图6,在图5所示实施例的基础上,所述数据迁移装置10还可以包括第三获取模块17和对比模块18,其中,
所述第三获取模块17用于,获取第一统计信息,所述第一统计信息中包括所述多个目标数据表的标识、以及每个目标数据表对应的目标数据量;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库时,所述第三获取模块17用于,获取第二统计信息,所述第二统计信息中包括已迁入目标数据的多个数据表的标识、以及每个数据表对应的迁入数据量。
在一种可能的实施方式中,所述对比模块18用于:
对所述第一统计信息和所述第二统计信息进行对比处理;
若所述第一统计信息和所述第二统计信息一致,则确定所述迁移结果为迁移成功;
若所述第一统计信息和所述第二统计信息存在不一致,则确定所述迁移结果为部分迁移失败。
本申请实施例提供的数据迁移装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此次不再进行赘述。
图7为本申请实施例提供的电子设备的结构示意图。请参见图7,该电子设备20可以包括:存储器21、处理器22。示例性地,存储器21、处理器22,各部分之间通过总线23相互连接。
存储器21用于存储程序指令;
处理器22用于执行该存储器所存储的程序指令,用以使得电子设备20执行上述方法实施例所示的方法。
本申请实施例提供的电子设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现上述方法。
本申请实施例还可提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,可实现上述方法。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:Random Access Memory,缩写:RAM)、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种数据迁移方法,其特征在于,包括:
获取数据迁移请求,所述数据迁移请求包括文件标识;
根据文件标识获取配置文件,所述配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;
根据所述数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定所述目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;
针对任意一个目标数据表,根据所述目标数据表中包括的多条目标数据,生成所述目标数据表对应的目标数据文件,所述目标数据文件中包括多条目标数据;
确定所述目标数据库的数据库类型,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,所述程序语句用于在目标数据库中迁入目标数据;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,包括:
根据所述迁移方式确定目标执行类型,所述目标执行类型包括批量插入类型、批量更新类型和单独插入类型;
根据所述目标数据库类型,确定目标语句类型;
根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句。
3.根据权利要求2所述的方法,其特征在于,所述迁移方式包括初始化方式、更新方式、忽略冲突方式;根据所述迁移方式确定目标执行类型,包括:
若所述迁移方式为所述初始化方式,则确定所述目标执行类型为批量插入类型;
若所述迁移方式为更新方式,则确定所述目标执行类型为批量更新类型;
若所述迁移方式为忽略冲突方式,则确定所述目标执行类型为单独插入类型。
4.根据权利要求2或3所述的方法,其特征在于,若所述目标执行类型为批量插入类型或批量更新类型;根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句,包括:
确定预设数据量;
确定每条目标数据的数据量得到多个数据量,将所述多个数据量中的最大值确定为最大数据量;
针对任意一条程序语句,根据所述预设数据量和所述最大数据量,在至少一个目标数据表对应的目标数据文件中确定N条目标数据,并根据所述N条目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述N条目标数据,N为大于或等于1的整数。
5.根据权利要求2或3所述的方法,其特征在于,若所述目标执行类型为单独插入类型;根据所述目标执行类型、所述目标语句类型、以及每个目标数据表对应的目标数据文件,生成所述多条程序语句,包括:
针对任意一条程序语句,在至少一个目标数据表对应的目标数据文件中确定第一目标数据;
根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,所述程序语句用于迁移所述第一目标数据。
6.根据权利要求5所述的方法,其特征在于,根据所述第一目标数据、所述目标执行类型、以及所述目标语句类型,生成程序语句,包括:
根据所述目标执行类型确定第一字段;
确定待迁入数据表的数据表标识,将所述数据表标识确定为第二字段;
将所述第一目标数据确定为第三字段;
对所述第一字段、所述第二字段和所述第三字段进行组装处理,生成所述程序语句,所述程序语句的语句类型为目标语句类型。
7.根据权利要求1-6任一项所述的方法,其特征在于,根据所述迁移范围在所述源数据库中确定多张目标数据表之后,所述方法还包括:
获取第一统计信息,所述第一统计信息中包括所述多个目标数据表的标识、以及每个目标数据表对应的目标数据量;
执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库时,所述方法还包括:
获取第二统计信息,所述第二统计信息中包括待迁入数据表的数据表标识、以及每个待迁入数据表对应的迁入数据量。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
对所述第一统计信息和所述第二统计信息进行对比处理;
若所述第一统计信息和所述第二统计信息一致,则确定所述迁移结果为迁移成功;
若所述第一统计信息和所述第二统计信息存在不一致,则确定所述迁移结果为部分迁移失败。
9.一种数据迁移装置,其特征在于,包括:第一获取模块、第二获取模块、确定模块、第一生成模块、第二生成模块和执行模块,其中,
所述第一获取模块用于,获取数据迁移请求,所述数据迁移请求包括文件标识;
所述第二获取模块用于,根据文件标识获取配置文件,所述配置文件中包括源数据库的标识、数据筛选条件、目标数据库的标识和迁移方式;
所述确定模块用于,根据所述数据筛选条件在源数据库中确定待迁移的目标数据集合,并确定所述目标数据集合中各目标数据所在的目标数据表,得到多个目标数据表;
所述第一生成模块用于,针对任意一个目标数据表,根据所述目标数据表中包括的多条目标数据,生成所述目标数据表对应的目标数据文件,所述目标数据文件中包括多条目标数据;
所述第二生成模块用于,确定所述目标数据库的数据库类型,根据所述目标数据库类型、所述迁移方式、以及每个目标数据表对应的目标数据文件,生成多条程序语句,所述程序语句用于在目标数据库中迁入目标数据;
所述执行模块用于,执行所述多条程序语句,将所述目标数据集合迁移至所述目标数据库。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310988523.0A CN117009318A (zh) | 2023-08-07 | 2023-08-07 | 数据迁移方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310988523.0A CN117009318A (zh) | 2023-08-07 | 2023-08-07 | 数据迁移方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117009318A true CN117009318A (zh) | 2023-11-07 |
Family
ID=88572377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310988523.0A Pending CN117009318A (zh) | 2023-08-07 | 2023-08-07 | 数据迁移方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009318A (zh) |
-
2023
- 2023-08-07 CN CN202310988523.0A patent/CN117009318A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143368B (zh) | 一种关系型数据库数据对比方法及系统 | |
CN103838672A (zh) | 一种通用报表的自动化测试方法及装置 | |
US11481440B2 (en) | System and method for processing metadata to determine an object sequence | |
CN111176979B (zh) | 一种图数据库的测试用例生成方法和装置 | |
CN111708804A (zh) | 数据处理方法、装置、设备及介质 | |
CN110609839B (zh) | 区块链数据处理的方法、装置、设备及可读存储介质 | |
CN111813680A (zh) | 测试脚本的生成方法、装置、计算机设备和存储介质 | |
CN115470191A (zh) | 数据库更新系统、方法及相应计算机设备和存储介质 | |
CN109634585B (zh) | 一种基于表单自适应展示和更新服务端数据的方法 | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、系统及存储介质 | |
CN112817984B (zh) | 数据处理方法及装置、数据来源获取方法及装置 | |
US10185757B2 (en) | Non-uniform multi-row text file loading | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN117009318A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN110362540B (zh) | 一种数据存储、访客数获取方法及装置 | |
CN112825068A (zh) | 数据血缘生成方法及装置 | |
CN106569731B (zh) | 极限存储方法、装置及设备 | |
CN113001538B (zh) | 一种命令解析方法及系统 | |
CN109635032B (zh) | 一种数据转换的方法及终端 | |
CN109840213B (zh) | 一种gui测试的测试数据创建方法、装置、终端及存储介质 | |
CN108614868B (zh) | 一种数据库自动升级方法 | |
CN113780950A (zh) | 数据处理方法、装置、服务器和可读存储介质 | |
CN111767222A (zh) | 数据模型的验证方法、装置、电子设备、存储介质 | |
CN113254328B (zh) | 白盒测试方法、系统、移动终端及存储介质 | |
CN114595159B (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 |