CN118152373A - 数据库的数据迁移方法、装置、设备、介质和程序产品 - Google Patents
数据库的数据迁移方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN118152373A CN118152373A CN202410371472.1A CN202410371472A CN118152373A CN 118152373 A CN118152373 A CN 118152373A CN 202410371472 A CN202410371472 A CN 202410371472A CN 118152373 A CN118152373 A CN 118152373A
- Authority
- CN
- China
- Prior art keywords
- database
- entity object
- database table
- migrated
- target database
- 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 67
- 230000005012 migration Effects 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000013507 mapping Methods 0.000 claims description 39
- 238000012795 verification Methods 0.000 claims description 22
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000006978 adaptation Effects 0.000 abstract 1
- 230000002688 persistence Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据库的数据迁移方法、装置、计算机设备、存储介质和计算机程序产品,涉及数据库技术领域可用于金融科技等领域。方法包括:响应于迁移配置操作,确定源数据库和目标数据库;获取源数据库中的待迁移数据库表的元数据信息;构建包含元数据信息的实体对象,加载实体对象;使用实体对象,在目标数据库中创建目标数据库表;目标数据库表的表结构与待迁移数据库表的表结构相对应;基于实体对象,将待迁移数据库表中的数据插入至目标数据库表。本申请能够实现对多类型数据库的适配并节省数据迁移过程中的人力成本和时间成本。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据库的数据迁移方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着金融业务的开展,金融机构对数据的存储需求也不断发生变化。其中,为了满足变化的数据存储需求,往往需要将现有的金融业务数据从其所在的数据库迁移至新的数据库中。
目前的数据迁移方式有使用现成的数据库迁移工具进行数据迁移,或者是通过手动编写数据库语句来进行数据的迁移。然而,现成的数据库迁移工具通常是针对特定的几种数据库开发,难以实现对各种类型的数据库的广泛支持,而手动编写数据库语句的方式,则要求操作者对数据迁移所涉及的数据库的操作逻辑、语法规范等具备深入的了解,并且在数据迁移过程中仔细检查,以确保迁移的数据能够满足目标数据库的要求,耗费大量人力成本和时间成本。
发明内容
基于此,有必要针对上述技术问题,提供一种数据库的数据迁移方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据库的数据迁移方法,包括:
响应于迁移配置操作,确定源数据库和目标数据库;
获取所述源数据库中的待迁移数据库表的元数据信息;
构建包含所述元数据信息的实体对象,加载所述实体对象;
使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
在其中一个实施例中,所述基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表,包括:基于所述实体对象包含的所述元数据信息,建立所述待迁移数据库表与所述实体对象的第一映射关系,建立所述实体对象与所述目标数据库表的第二映射关系;基于所述第一映射关系,将所述待迁移数据库表中各行所述数据分别转换为所述实体对象的实例;基于所述第二映射关系,将所述实体对象的各所述实例对应的所述数据分别插入至所述目标数据库表。
在其中一个实施例中,所述获取所述源数据库中的待迁移数据库表的元数据信息,包括:通过所述源数据库提供的驱动程序,连接所述源数据库;使用所述驱动程序的元数据接口,获取所述源数据库中的所述待迁移数据库表的所述元数据信息。
在其中一个实施例中,所述使用所述实体对象,在所述目标数据库中创建目标数据库表,包括:通过所述目标数据库提供的驱动程序,连接所述目标数据库;根据所述实体对象包含的所述元数据信息,在所述目标数据库中创建所述目标数据库表。
在其中一个实施例中,所述构建包含所述元数据信息的实体对象,包括:获取所述实体对象的预设代码模板;使用模板引擎将所述元数据信息插入至所述预设代码模板,生成包含所述元数据信息的所述实体对象。
在其中一个实施例中,所述构建包含所述元数据信息的实体对象之后,还包括:对所述待迁移数据库表的所述数据进行分析,确定所述数据对应的校验规则;在所述实体对象中添加对应于所述校验规则的校验注解。
第二方面,本申请还提供了一种数据库的数据迁移装置,包括:
数据库确定模块,用于响应于迁移配置操作,确定源数据库和目标数据库;
元数据获取模块,用于获取所述源数据库中的待迁移数据库表的元数据信息;
实体构建模块,用于构建包含所述元数据信息的实体对象,加载所述实体对象;
目标表创建模块,用于使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
数据插入模块,用于基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
响应于迁移配置操作,确定源数据库和目标数据库;
获取所述源数据库中的待迁移数据库表的元数据信息;
构建包含所述元数据信息的实体对象,加载所述实体对象;
使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
响应于迁移配置操作,确定源数据库和目标数据库;
获取所述源数据库中的待迁移数据库表的元数据信息;
构建包含所述元数据信息的实体对象,加载所述实体对象;
使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
响应于迁移配置操作,确定源数据库和目标数据库;
获取所述源数据库中的待迁移数据库表的元数据信息;
构建包含所述元数据信息的实体对象,加载所述实体对象;
使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
上述数据库的数据迁移方法、装置、计算机设备、存储介质和计算机程序产品,响应于迁移配置操作确定源数据库和目标数据库,然后获取源数据库中的待迁移数据库表的元数据信息,并构建包含元数据信息的实体对象以及加载该实体对象,再使用实体对象在目标数据库中创建目标数据库表,使目标数据库表的表结构与待迁移数据库表的表结构相对应,然后基于实体对象,将待迁移数据库表中的数据插入至目标数据库表。在有益效果上,该方案中,利用实体对象与数据库进行交互,能够在数据迁移的过程中规避数据库的底层复杂逻辑,方便地适配多种不同类型的数据库。其中,根据源数据库中待迁移数据库表的元数据信息构建实体对象,能够得到对待迁移数据库表的表结构进行反映的实体对象,然后再利用该实体对象在目标数据库中创建目标数据库表,能够在满足目标数据库的要求的前提下,将待迁移数据库表的表结构最大限度地迁移至目标数据库中。继而,利用该实体对象进行从待迁移数据库表到目标数据库表的数据迁移,则能够在无需编写数据库语句、检查数据类型转换等人工干预的情况下,实现数据的平稳迁移,有效节省数据迁移过程中的人力成本和时间成本。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据库的数据迁移方法的流程示意图;
图2为一个实施例中将待迁移数据库表中的数据插入至目标数据库表步骤的流程示意图;
图3为另一个实施例中数据迁移方法的流程示意图;
图4为一个实施例中数据库的数据迁移装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是:
1、本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,本申请技术方案中对数据的获取、传输、存储、使用、处理等均符合国家法律法规的相关规定。
2、在本申请实施例中,可能提及某些软件、组件、模型等业界已有方案,应当将它们认为是示范性的,其目的仅仅是为了说明本申请技术方案实施中的可行性,但并不意味着申请人已经或者必然用到了该方案。
在一个实施例中,如图1所示,提供了一种数据库的数据迁移方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法可以包括以下步骤:
步骤S101,响应于迁移配置操作,确定源数据库和目标数据库。
其中,迁移配置操作可以是用户与计算机的交互操作,用户可以通过进行迁移配置操作,指定需要进行数据迁移的源数据库和目标数据库。基于此,响应于迁移配置操作,可以分别确定源数据库和目标数据库,并进一步确定其各自的地址、数据库名等信息。其中,源数据库和目标数据库可以是支持对象关系映射(Object Relational Mapping,ORM)的数据库,两者的数据库类型可以相同或者不同。
步骤S102,获取源数据库中的待迁移数据库表的元数据信息。
其中,元数据信息可以包括源数据库中待迁移数据库表的表名、表备注信息、字段名称、字段类型、字段长度、字段备注、索引等信息。其中,该元数据信息可以是预先存储于服务器,并在本步骤中根据该源数据库的数据库名查询得到。而在一些实施方式中,也可以在本步骤中根据源数据库的地址和数据库名等与源数据库进行连接,再从源数据库中查询得到其中待迁移数据库表的元数据信息。
其中,在一个示例性的实施例中,本步骤中的获取源数据库中的待迁移数据库表的元数据信息,可以包括:通过源数据库提供的驱动程序,连接源数据库;使用驱动程序的元数据接口,获取源数据库中的待迁移数据库表的元数据信息。
其中,本实施例中可以首先通过源数据库提供的驱动程序与源数据库进行连接,然后再获取该源数据库中待迁移数据库表的元数据信息。
示例性地,源数据库提供的驱动程序可以是Java数据库连接(Java Databaseconnect,JDBC)驱动程序,根据源数据库的地址、数据库名等信息,可以利用该驱动程序与源数据库进行连接。然后,利用该JDBC驱动程序提供的元数据接口,例如DatabaseMetaData接口,可以获取该源数据库中待迁移数据库表的元数据信息。
上述过程中,通过源数据库自身提供的驱动程序与源数据库进行连接,并利用该驱动程序的接口获取源数据库的元数据信息,能够有效保障与源数据库之间连接的稳定性,并得到能够最大程度还原源数据库的待迁移数据表的表结构的元数据信息,进而能够在后续处理中在目标数据库建立表结构与待迁移数据库表更适配的目标数据库表。
步骤S103,构建包含元数据信息的实体对象,加载实体对象。
其中,该实体对象可以是符合Java持久层API(Java Persistence API,JPA)技术规范的Java实体对象。其中,Java持久层API是一种对象关系映射规范,其定义了实体对象与关系数据库之间的持久化操作的通用接口,能够基于对象关系映射模式,使用注解或可扩展标记语言(Extensible Markup Language,XML)映射文件来定义实体对象和数据库表之间的映射关系,利用JPA技术能够在无需编写复杂的数据库语句的情况下直接使用实体对象执行数据库操作。
示例性,本步骤中可以创建符合JPA规范的实体对象,并根据步骤S102中得到的待迁移数据库表的元数据信息,对该实体对象进行注解标注,从而可以得到包含该元数据信息的实体对象,并进而对该实体对象进行加载。
步骤S104,使用实体对象,在目标数据库中创建目标数据库表。
其中,本步骤中可以根据目标数据库的地址、数据库名等信息,连接至目标数据库,然后使用步骤S103中得到的实体对象,在该目标数据库中创建目标数据库表。其中,由于该实体对象包含有源数据库的待迁移数据库表的表名、表备注信息、字段名称、字段类型、字段长度、字段备注、索引等元数据信息,因此基于该实体对象在目标数据库中创建的目标数据库表也将具有相同的表名、表备注信息、字段名称等信息,以及与待迁移数据库表的字段类型、索引类型等相对应的字段类型、索引类型等属性,从而目标数据库表的表结构可以与待迁移数据库表的表结构相对应。
其中,在一个示例性的实施例中,本步骤中的使用实体对象,在目标数据库中创建目标数据库表,可以包括:通过目标数据库提供的驱动程序,连接目标数据库;根据实体对象包含的元数据信息,在目标数据库中创建目标数据库表。
示例性地,本实施例中可以利用JPA技术进行目标数据库表的创建。其中,可以首先根据目标数据库的地址、数据库名等信息,在JPA的配置文件中配置与目标数据库的连接信息,使其能够通过目标数据库提供的驱动程序连接至目标数据库。其中,目标数据库提供的驱动程序可以是Java数据库连接(Java Database connect,JDBC)驱动程序。然后,可以对JPA的建表策略进行配置,例如可以配置为启动时创建表等。继而,JPA可以在启动之后对步骤S103中加载的实体对象进行识别,并根据该实体对象所包含的元数据信息,自动在目标数据库中创建具有相应表结构的目标数据库表。
上述过程中,通过目标数据库自身提供的驱动程序与目标数据库进行连接,能够有效保障与目标数据库之间的连接稳定性,从而可以顺利地在目标数据库中进行目标数据库表的创建。其中,利用实体对象进行目标数据库表的创建,能够基于实体对象与数据库之间的对象关系映射,根据实体对象的元数据信息,在目标数据库中创建与待迁移数据库表具有相同的表名、字段名、表备注等信息的数据库表,并且能够根据目标数据库的数据要求,自动将元数据信息中的字段类型、索引类型等转换为目标数据库支持的类型,从而可以在兼容目标数据库的数据要求的情况下,将待迁移数据库表的表结构迁移至目标数据库。
步骤S105,基于实体对象,将待迁移数据库表中的数据插入至目标数据库表。
具体地,由于待迁移数据库表和目标数据库表的表结构均与该实体对象的结构相对应,因此本步骤中可以继续使用此前构建的实体对象,将待迁移数据库表中的数据映射至该实体对象,再将该实体对象持久化至已创建的目标数据库表,从而实现将待迁移数据库表中的数据插入至目标数据库表中。
上述数据库的数据迁移方法中,响应于迁移配置操作确定源数据库和目标数据库,然后获取源数据库中的待迁移数据库表的元数据信息,并构建包含元数据信息的实体对象以及加载该实体对象,再使用实体对象在目标数据库中创建目标数据库表,使目标数据库表的表结构与待迁移数据库表的表结构相对应,然后基于实体对象,将待迁移数据库表中的数据插入至目标数据库表。该方案中,利用实体对象与数据库进行交互,能够在数据迁移的过程中规避数据库的底层复杂逻辑,方便地适配多种不同类型的数据库。其中,根据源数据库中待迁移数据库表的元数据信息构建实体对象,能够得到对待迁移数据库表的表结构进行反映的实体对象,然后再利用该实体对象在目标数据库中创建目标数据库表,能够在满足目标数据库的要求的前提下,将待迁移数据库表的表结构最大限度地迁移至目标数据库中。继而,利用该实体对象进行从待迁移数据库表到目标数据库表的数据迁移,则能够在无需编写数据库语句、检查数据类型转换等人工干预的情况下,实现数据的平稳迁移,有效节省数据迁移过程中的人力成本和时间成本。
在一个示例性的实施例中,如图2所示,上述方法中的步骤,基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表,可以包括:
步骤S201,基于实体对象包含的元数据信息,建立待迁移数据库表与实体对象的第一映射关系,建立实体对象与目标数据库表的第二映射关系。
其中,实体对象包含的元数据信息是来自于待迁移数据库表,而待迁移数据库表是使用该实体对象建立,因此,该实体对象包含的元数据信息同时与待迁移数据库表以及目标数据库表存在对应关系。其中,根据该元数据信息中的表名,可以将该实体对象分别与具有相同表名的待迁移数据库表以及目标数据库表关联,而根据元数据信息中的各字段名,则可以将实体对象中注解的各字段分别关联至待迁移数据库表以及目标数据库表中的同名字段。由此,可以分别建立待迁移数据库表与该实体对象的第一映射关系,以及该实体对象与目标数据库表的第二映射关系。
步骤S202,基于第一映射关系,将待迁移数据库表中各行数据分别转换为实体对象的实例。
步骤S203,基于第二映射关系,将实体对象的各实例对应的数据分别插入至目标数据库表。
其中,基于待迁移数据库表与该实体对象的第一映射关系,在步骤S202中可以分别将待迁移数据库表中的每行数据分别映射为该实体对象的一个实例。然后,在步骤S203中,可以基于实体对象与目标数据库表的第二映射关系,对步骤S202中得到的实体对象的实例进行持久化操作,从而将实体对象的各实例对应的待迁移数据库表中的数据插入至目标数据库表中。
本实施例中,根据实体对象的元数据信息,分别建立实体对象与待迁移数据库表的第一映射关系,以及与目标数据库表的第二映射关系,再基于该第一映射关系和第二映射关系,将待迁移数据库表中的数据映射至实体对象,再将实体对象持久化至目标数据库表,该过程将两个数据库之间的数据迁移简化为对实体对象的操作,从而能够在规避数据库的底层复杂逻辑的情况下,实现数据在两个数据库之间的平稳迁移。
在一个示例性的实施例中,上述方法中的步骤,构建包含元数据信息的实体对象,可以包括:获取实体对象的预设代码模板;使用模板引擎将元数据信息插入至预设代码模板,生成包含元数据信息的实体对象。
其中,模板引擎可以基于模板和数据,生成输出文本。在本实施例中,由于实体对象通常遵循一定的格式结构,因此可以根据该格式结构预先设置用于生成实体对象的预设代码模板,然后再利用模板引擎,将待迁移数据库表的元数据信息插入至预设代码模板中,生成包含该元数据信息的实体对象。
示例性地,本实施例中使用的模板引擎可以是FreeMarker,实体对象的预设代码模板可以是FreeMarker的模板文件,其中可以包含对应于实体对象的固有格式结构内容的文本内容,以及对应于元数据信息插入位置的插值。使用FreeMarker,可以将待迁移数据库表的元数据信息与实体对象的预设代码模板合并,将元数据信息中的各项数据分别插入至预设代码模板的对应位置,生成包含该元数据信息的实体对象。
本实施例中,通过预先设置实体对象的预设代码模板,并利用模板引擎进行实体对象的生成,能够有效提高实体对象的构建效率,并且能够将同一个预设代码模板应用至不同的数据迁移过程中,降低数据迁移所需的人力成本。
在一个示例性的实施例中,上述方法中的步骤,构建包含元数据信息的实体对象之后,还可以包括:对待迁移数据库表的数据进行分析,确定数据对应的校验规则;在实体对象中添加对应于校验规则的校验注解。
具体地,本实施例中,在构建包含元数据信息的实体对象之后,还可以在实体对象中添加校验注解,从而可以对写入目标数据表的数据进行校验。
其中,可以首先对待迁移数据库表的各字段的数据进行分析以确定每个字段的数据所符合的取值规律。示例性地,针对不同类型的字段可以进行不同的分析。例如,针对数值类型的字段,可以确定该字段对应的数据的最大值、最小值等信息,针对字符串类型的字段,可以确定该字段对应的数据的字符串长度范围、是否包含某些特定字符、是否符合特定的格式等信息。然后,根据各字段的数据所符合的取值规律,可以为每个字段设置对应的校验规则。例如,针对某个字符串类型的字段,其对应的校验规则可以是长度在设定的区间内,并且包含特定的字符。然后,根据各字段对应的校验规则,可以在实体对象中为每个字段分别添加对应的校验注解。基于此,在后续利用该实体对象将数据插入至目标数据库表时,可以根据各字段的校验注解对各字段的数据分别进行校验,当数据不符合对应的校验规则时,可以提示异常。
本实施例中,通过对待迁移数据库表的数据进行分析,即便在待迁移数据库表中未设置相应的约束的情况下也能提取待迁移数据库表的数据的取值规律,然后根据该规律设置数据的校验规则,并在实体对象中添加相应的校验注解,能够在数据迁移过程中,对将要被插入至目标数据库表中的数据进行校验,确保其中每个字段的数据是对应于待迁移数据库表中的相应字段的数据,进而可以避免将错误的数据插入至目标数据库表中,并且能够在数据迁移出现异常时及时提示用户,从而有效提升整个数据迁移过程的安全性和可靠性。
为了进一步阐述本申请的数据库的数据迁移方法,以下通过详细的实施例对其进行说明:
首先,请参考图3,其为本实施例中的数据迁移方法的流程示意图,其中的项目工程可以用于执行以下步骤:
步骤S301,响应于迁移配置操作,确定源数据库和目标数据库。
步骤S302,通过源数据库提供的JDBC驱动程序连接源数据库,并使用该JDBC驱动程序的元数据接口,获取源数据库中的待迁移数据库表的元数据信息。
步骤S303,获取实体对象的预设代码模板,使用模板引擎将元数据信息插入至预设代码模板,生成包含元数据信息的实体对象。其中,该模板引擎可以是FreeMarker,该实体对象可以是符合JPA技术规范的Java实体对象。其中,该实体对象还可以包含对应于待迁移数据库表的校验规则的校验注解。
步骤S304,动态加载步骤S303中生成的实体对象。
步骤S305,通过目标数据库提供的JDBC驱动程序连接目标数据库,根据实体对象包含的元数据信息,在目标数据库中创建目标数据库表。其中,本步骤中可以是利用JPA技术,在目标数据库中创建与待迁移数据库表具有相应的表结构的目标数据库表。
步骤S306,利用JPA技术建立待迁移数据库表与实体对象的第一映射关系,基于第一映射关系,将待迁移数据库表中各行数据分别转换为实体对象的实例。
步骤S307,利用JPA技术建立实体对象与目标数据库表的第二映射关系,基于第二映射关系,将实体对象的各实例对应的数据分别插入至目标数据库表。
本实施例所提供的数据库的数据迁移方法,通过数据库提供的JDBC驱动程序与数据库进行连接,并利用JPA技术在源数据库和目标数据库之间进行数据结构和数据的迁移,能够对数据结构和数据的还原性进行最大程度的保障,并且能够规避数据库的底层复杂逻辑,在提供JDBC驱动程序的数据库之间进行无差别的数据平稳迁移,能够广泛适用于各种满足JDBC规范的数据库。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据库的数据迁移方法的数据库的数据迁移装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库的数据迁移装置实施例中的具体限定可以参见上文中对于数据库的数据迁移方法的限定,在此不再赘述。
在一个示例性的实施例中,如图4所示,提供了一种数据库的数据迁移装置400,包括:
数据库确定模块401,用于响应于迁移配置操作,确定源数据库和目标数据库;
元数据获取模块402,用于获取所述源数据库中的待迁移数据库表的元数据信息;
实体构建模块403,用于构建包含所述元数据信息的实体对象,加载所述实体对象;
目标表创建模块404,用于使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
数据插入模块405,用于基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
在一个示例性的实施例中,所述数据插入模块405,还用于:基于所述实体对象包含的所述元数据信息,建立所述待迁移数据库表与所述实体对象的第一映射关系,建立所述实体对象与所述目标数据库表的第二映射关系;基于所述第一映射关系,将所述待迁移数据库表中各行所述数据分别转换为所述实体对象的实例;基于所述第二映射关系,将所述实体对象的各所述实例对应的所述数据分别插入至所述目标数据库表。
在一个示例性的实施例中,所述元数据获取模块402,还用于:通过所述源数据库提供的驱动程序,连接所述源数据库;使用所述驱动程序的元数据接口,获取所述源数据库中的所述待迁移数据库表的所述元数据信息。
在一个示例性的实施例中,所述目标表创建模块404,还用于:通过所述目标数据库提供的驱动程序,连接所述目标数据库;根据所述实体对象包含的所述元数据信息,在所述目标数据库中创建所述目标数据库表。
在一个示例性的实施例中,所述实体构建模块403,还用于:获取所述实体对象的预设代码模板;使用模板引擎将所述元数据信息插入至所述预设代码模板,生成包含所述元数据信息的所述实体对象。
在一个示例性的实施例中,所述实体构建模块403,还用于:对所述待迁移数据库表的所述数据进行分析,确定所述数据对应的校验规则;在所述实体对象中添加对应于所述校验规则的校验注解。
上述数据库的数据迁移装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待迁移数据库表的元数据信息等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库的数据迁移方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,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 RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种数据库的数据迁移方法,其特征在于,所述方法包括:
响应于迁移配置操作,确定源数据库和目标数据库;
获取所述源数据库中的待迁移数据库表的元数据信息;
构建包含所述元数据信息的实体对象,加载所述实体对象;
使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
2.根据权利要求1所述的方法,其特征在于,所述基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表,包括:
基于所述实体对象包含的所述元数据信息,建立所述待迁移数据库表与所述实体对象的第一映射关系,建立所述实体对象与所述目标数据库表的第二映射关系;
基于所述第一映射关系,将所述待迁移数据库表中各行所述数据分别转换为所述实体对象的实例;
基于所述第二映射关系,将所述实体对象的各所述实例对应的所述数据分别插入至所述目标数据库表。
3.根据权利要求1所述的方法,其特征在于,所述获取所述源数据库中的待迁移数据库表的元数据信息,包括:
通过所述源数据库提供的驱动程序,连接所述源数据库;
使用所述驱动程序的元数据接口,获取所述源数据库中的所述待迁移数据库表的所述元数据信息。
4.根据权利要求1所述的方法,其特征在于,所述使用所述实体对象,在所述目标数据库中创建目标数据库表,包括:
通过所述目标数据库提供的驱动程序,连接所述目标数据库;
根据所述实体对象包含的所述元数据信息,在所述目标数据库中创建所述目标数据库表。
5.根据权利要求1所述的方法,其特征在于,所述构建包含所述元数据信息的实体对象,包括:
获取所述实体对象的预设代码模板;
使用模板引擎将所述元数据信息插入至所述预设代码模板,生成包含所述元数据信息的所述实体对象。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述构建包含所述元数据信息的实体对象之后,还包括:
对所述待迁移数据库表的所述数据进行分析,确定所述数据对应的校验规则;
在所述实体对象中添加对应于所述校验规则的校验注解。
7.一种数据库的数据迁移装置,其特征在于,所述装置包括:
数据库确定模块,用于响应于迁移配置操作,确定源数据库和目标数据库;
元数据获取模块,用于获取所述源数据库中的待迁移数据库表的元数据信息;
实体构建模块,用于构建包含所述元数据信息的实体对象,加载所述实体对象;
目标表创建模块,用于使用所述实体对象,在所述目标数据库中创建目标数据库表;所述目标数据库表的表结构与所述待迁移数据库表的表结构相对应;
数据插入模块,用于基于所述实体对象,将所述待迁移数据库表中的数据插入至所述目标数据库表。
8.根据权利要求7所述的装置,其特征在于,所述数据插入模块,还用于:
基于所述实体对象包含的所述元数据信息,建立所述待迁移数据库表与所述实体对象的第一映射关系,建立所述实体对象与所述目标数据库表的第二映射关系;
基于所述第一映射关系,将所述待迁移数据库表中各行所述数据分别转换为所述实体对象的实例;
基于所述第二映射关系,将所述实体对象的各所述实例对应的所述数据分别插入至所述目标数据库表。
9.根据权利要求7所述的装置,其特征在于,所述元数据获取模块,还用于:
通过所述源数据库提供的驱动程序,连接所述源数据库;
使用所述驱动程序的元数据接口,获取所述源数据库中的所述待迁移数据库表的所述元数据信息。
10.根据权利要求7所述的装置,其特征在于,所述目标表创建模块,还用于:
通过所述目标数据库提供的驱动程序,连接所述目标数据库;
根据所述实体对象包含的所述元数据信息,在所述目标数据库中创建所述目标数据库表。
11.根据权利要求7所述的装置,其特征在于,所述实体构建模块,还用于:
获取所述实体对象的预设代码模板;
使用模板引擎将所述元数据信息插入至所述预设代码模板,生成包含所述元数据信息的所述实体对象。
12.根据权利要求7至11任一项所述的装置,其特征在于,所述实体构建模块,还用于:
对所述待迁移数据库表的所述数据进行分析,确定所述数据对应的校验规则;
在所述实体对象中添加对应于所述校验规则的校验注解。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410371472.1A CN118152373A (zh) | 2024-03-29 | 2024-03-29 | 数据库的数据迁移方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410371472.1A CN118152373A (zh) | 2024-03-29 | 2024-03-29 | 数据库的数据迁移方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152373A true CN118152373A (zh) | 2024-06-07 |
Family
ID=91288639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410371472.1A Pending CN118152373A (zh) | 2024-03-29 | 2024-03-29 | 数据库的数据迁移方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152373A (zh) |
-
2024
- 2024-03-29 CN CN202410371472.1A patent/CN118152373A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2005202285B2 (en) | Method, system, and apparatus for providing access to workbook models through remote function calls | |
CN109670053B (zh) | 数据对象映射方法、装置、设备和计算机可读存储介质 | |
US7873899B2 (en) | Mapping schemes for creating and storing electronic documents | |
US10409892B2 (en) | Formatting data by example | |
CN108388622B (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
CN110472068A (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
CN111784108B (zh) | 一种主数据管理平台的建模方法和装置 | |
US7587416B2 (en) | Advanced desktop reporting | |
CN117033249B (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
CN118152373A (zh) | 数据库的数据迁移方法、装置、设备、介质和程序产品 | |
CN112347160B (zh) | 一种基于呼叫中心系统的工单管理方法、系统及存储介质 | |
CN116257286B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN116204554B (zh) | 数据处理方法、系统、电子设备和存储介质 | |
CN113190264B (zh) | 一种基于jpa的自动化数据版本生成及应用的装置和方法 | |
CN114328965A (zh) | 知识图谱更新方法、装置及计算机设备 | |
CN116466917A (zh) | 一种基于人工智能的软件建模方法、计算机设备和存储介质 | |
CN115291875A (zh) | 数据展示方法、系统及装置 | |
CN117407002A (zh) | 代码转换方法、装置、计算机设备和存储介质 | |
CN117112424A (zh) | 测试用例的生成方法、装置、设备、介质和产品 | |
CN116755684A (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN117931707A (zh) | 微服务架构下基于元数据实现服务编排参数自适配处理的系统 | |
CN115629965A (zh) | 文档测试方法、装置、设备、介质及程序产品 | |
CN118193532A (zh) | 数据处理方法、装置、计算机设备、存储介质和产品 | |
CN118092921A (zh) | 文件生成方法、装置、设备、存储介质和计算机程序产品 | |
CN117348971A (zh) | 命名空间类调用方法、装置、设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |