CN116701356A - 数据迁移方法、装置、终端设备及存储介质 - Google Patents
数据迁移方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN116701356A CN116701356A CN202310704694.6A CN202310704694A CN116701356A CN 116701356 A CN116701356 A CN 116701356A CN 202310704694 A CN202310704694 A CN 202310704694A CN 116701356 A CN116701356 A CN 116701356A
- Authority
- CN
- China
- Prior art keywords
- migration
- data
- data source
- migrated
- dynamic
- 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
- 230000005012 migration Effects 0.000 title claims abstract description 606
- 238000013508 migration Methods 0.000 title claims abstract description 583
- 238000000034 method Methods 0.000 title claims abstract description 98
- 230000003068 static effect Effects 0.000 claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 28
- 230000000007 visual effect Effects 0.000 claims description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000009941 weaving Methods 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
技术领域
本申请涉及数据管理技术领域,尤其涉及一种数据迁移方法、装置、终端设备及存储介质。
背景技术
数据库上云是指将数据库部署在云端,以便用户通过互联网访问和使用数据库。这种方法可以提高数据库的可用性、可扩展性和安全性,同时降低了维护成本。为了实现数据库上云,需要对不同数据库的数据进行迁移,例如将SQLServer数据库的数据迁移至MySQL数据库。
在迁移过程中,数据库也可以视为数据源。目前通常以静态数据源作为迁入方,静态数据源是记载了迁移配置信息的数据源。在此迁移方式下,静态数据源既负责接收迁入的数据,同时也负责提供迁移配置信息以控制迁移过程,如果需要对迁移配置信息进行修改以适应不同的迁移需求,则需要重启对应的迁移应用,如此导致迁移效率低下。
发明内容
本申请的主要目的在于提供一种数据迁移方法、装置、终端设备及存储介质,旨在解决或改善目前数据迁移效率低的问题。
为实现上述目的,本申请提供一种数据迁移方法,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移方法包括:
基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
可选地,所述基于所述静态数据源的迁移配置信息,控制所述若干个动态数据源之间进行数据迁移的步骤之前,还包括:
基于预设的资源标识,将待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组;
将所述迁移配置参数组存储于所述静态数据源。
可选地,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤之前,还包括:
响应于用户通过预设的可视化迁移任务设置界面的第一类选择操作,确定所述待迁出的动态数据源和所述待迁入的动态数据源;
查询所述待迁出的动态数据源和所述待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息;
将所述待选迁出表信息和所述待选迁入表信息显示于预设的可视化迁移任务设置界面;
响应于用户通过所述可视化迁移任务设置界面的第二类选择操作,确定所述待迁出的动态数据源的目标迁出表和所述待迁入的动态数据源的目标迁入表;
基于所述目标迁出表和所述目标迁入表创建对应的迁移任务;
将所述迁移任务存储于所述静态数据源。
可选地,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤包括:
基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表。
可选地,所述基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表的步骤包括:
基于所述静态数据源的迁移配置参数和迁移任务,查询得到所述目标迁出表的目标数据;
基于预设的插入更新语句,将所述目标数据插入更新至所述目标迁入表。
可选地,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤之后,还包括:
基于预设的数据表总数检查规则以及表内数据抽查规则,对所述迁出表和所述迁入表进行自检,得到对应的自检结果。
可选地,所述迁移配置信息包括迁移任务,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤包括:
在执行所述迁移任务的过程中,基于预设的切面判断规则和所述迁移任务对应的资源标识,确定所述资源标识对应的迁移配置参数组是否存在;
若否,则基于预设的切入点注解将所述迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组,并将所述迁移配置参数组存储于所述静态数据源;
将所述资源标识存储于所述迁移任务对应的线程的本地线程变量之中;
通过所述线程基于所述本地线程变量中的资源标识获取对应的迁移配置参数组,并基于所述迁移配置参数和所述迁移任务,在所述待迁出的动态数据源和所述待迁入的动态数据源之间进行数据迁移。
本申请实施例还提出一种数据迁移装置,所述数据迁移装置应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移装置包括:
迁移模块,用于基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如上所述的数据迁移方法的步骤。
本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如上所述的数据迁移方法的步骤。
本申请实施例提出的数据迁移方法、装置、终端设备及存储介质,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移方法包括:基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。基于本申请方案,采用动态数据源作为数据的迁出方或者迁入方,而静态数据源则提供迁移配置信息用于控制数据迁移过程,在此数据迁移架构下,即使对迁移配置信息进行修改,也无需重启对应的迁移应用,有效提高了数据迁移的灵活性以及效率。
附图说明
图1为本申请数据迁移装置所属终端设备的功能模块示意图;
图2为本申请数据迁移方法第一示例性实施例流程示意图;
图3为本申请数据迁移方法涉及的数据迁移系统功能架构示意图;
图4为本申请数据迁移方法涉及的数据迁移系统的数据源示意图;
图5为本申请数据迁移方法第二示例性实施例流程示意图;
图6为本申请数据迁移方法第三示例性实施例流程示意图;
图7为本申请数据迁移方法涉及的迁移任务创建流程示意图;
图8为本申请数据迁移方法第四示例性实施例流程示意图;
图9为本申请数据迁移方法涉及的迁移任务执行示意图;
图10为本申请数据迁移方法第五示例性实施例流程示意图;
图11为本申请数据迁移方法第六示例性实施例流程示意图;
图12为本申请数据迁移方法第七示例性实施例流程示意图;
图13为本申请数据迁移方法涉及的动态数据源注册方案示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图作进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移方法包括:基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。基于本申请方案,采用动态数据源作为数据的迁出方或者迁入方,而静态数据源则提供迁移配置信息用于控制数据迁移过程,在此数据迁移架构下,即使对迁移配置信息进行修改,也无需重启对应的迁移应用,有效提高了数据迁移的灵活性以及效率。
具体地,参照图1,图1为本申请数据迁移装置所属终端设备的功能模块示意图。该数据迁移装置可以为独立于终端设备的、能够进行数据迁移的装置,其可以通过硬件或软件的形式承载于终端设备上。该终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备或服务器等。
在本实施例中,该数据迁移装置所属终端设备至少包括输出模块110、处理器120、存储器130以及通信模块140。
存储器130中存储有操作系统以及数据迁移程序,数据迁移装置可以将基于静态数据源的迁移配置信息;若干个动态数据源之间被迁移的数据等信息存储于该存储器130中;输出模块110可为显示屏等。通信模块140可以包括WIFI模块、移动通信模块以及蓝牙模块等,通过通信模块140与外部设备或服务器进行通信。
其中,存储器130中的数据迁移程序被处理器执行时实现以下步骤:
基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
基于预设的资源标识,将待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组;
将所述迁移配置参数组存储于所述静态数据源。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
响应于用户通过预设的可视化迁移任务设置界面的第一类选择操作,确定所述待迁出的动态数据源和所述待迁入的动态数据源;
查询所述待迁出的动态数据源和所述待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息;
将所述待选迁出表信息和所述待选迁入表信息显示于预设的可视化迁移任务设置界面;
响应于用户通过所述可视化迁移任务设置界面的第二类选择操作,确定所述待迁出的动态数据源的目标迁出表和所述待迁入的动态数据源的目标迁入表;
基于所述目标迁出表和所述目标迁入表创建对应的迁移任务;
将所述迁移任务存储于所述静态数据源。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
基于所述静态数据源的迁移配置参数和迁移任务,查询得到所述目标迁出表的目标数据;
基于预设的插入更新语句,将所述目标数据插入更新至所述目标迁入表。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
基于预设的数据表总数检查规则以及表内数据抽查规则,对所述迁出表和所述迁入表进行自检,得到对应的自检结果。
进一步地,存储器130中的数据迁移程序被处理器执行时还实现以下步骤:
在执行所述迁移任务的过程中,基于预设的切面判断规则和所述迁移任务对应的资源标识,确定所述资源标识对应的迁移配置参数组是否存在;
若否,则基于预设的切入点注解将所述迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组,并将所述迁移配置参数组存储于所述静态数据源;
将所述资源标识存储于所述迁移任务对应的线程的本地线程变量之中;
通过所述线程基于所述本地线程变量中的资源标识获取对应的迁移配置参数组,并基于所述迁移配置参数和所述迁移任务,在所述待迁出的动态数据源和所述待迁入的动态数据源之间进行数据迁移。
本实施例通过上述方案,具体通过基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。本实施例中,采用动态数据源作为数据的迁出方或者迁入方,而静态数据源则提供迁移配置信息用于控制数据迁移过程,在此数据迁移架构下,即使对迁移配置信息进行修改,也无需重启对应的迁移应用,有效提高了数据迁移的灵活性以及效率。
参照图2,本申请数据迁移方法第一实施例提供一种流程示意图,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移方法包括:
步骤S10,基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
具体地,为了实现数据库上云,需要对不同数据库的数据进行迁移,例如将SQLServer数据库的数据迁移至MySQL数据库。在迁移过程中,数据库也可以视为数据源。目前通常以静态数据源作为迁入方,静态数据源是记载了迁移配置信息的数据源。在此迁移方式下,静态数据源既负责接收迁入的数据,同时也负责提供迁移配置信息以控制迁移过程,如果需要对迁移配置信息进行修改以适应不同的迁移需求,则需要重启对应的迁移应用,如此导致迁移效率低下。
为此,本实施例提出了一种数据迁移系统,数据迁移系统包括一个静态数据源和若干个动态数据源。其中,静态数据源对应一种关系型数据库,记载了迁移配置信息,用于控制迁移过程;动态数据源可分为待迁出的动态数据源和待迁入的动态数据源。如图3所示,图3为本申请数据迁移方法涉及的数据迁移系统功能架构示意图,数据迁移系统提供一种在线配置界面,在线配置界面可以是一种Web界面,在线配置界面的可操作项包括迁移数据源配置、迁移任务创建、迁移任务查询、迁移日志查询。另外,数据迁移系统的后台异步执行功能包括迁移任务执行/自检、动态数据源注册/切换、迁移日志记录。
如图4所示,图4为本申请数据迁移方法涉及的数据迁移系统的数据源示意图。静态数据源包括动态数据源配置表、迁移任务表以及迁移日志表。其中,动态数据源配置表中的每条记录对应一个资源标识(Resource ID,资源ID),并代表一个迁移对,一个迁移对由一个待迁出的动态数据源和一个待迁入的动态数据源构成,一条记录包括待迁出的动态数据源(即源库)的连接信息、用户名、密码,以及待迁入的动态数据源(即目标库)的连接信息、用户名、密码。可以理解的是,动态数据源配置表的各条记录包括对应的迁移对的迁移配置参数组。另外,迁移任务表中的每条记录对应一个迁移任务,迁移任务的颗粒度为表,即迁移任务在表维度上进行数据迁移。此外,迁移日志表用于记录迁移任务的执行结果、影响行数、执行耗时,以及自检结果等信息。
动态数据源可以分为待迁出的动态数据源和待迁入的动态数据源。如图3所示,待迁出的动态数据源为动态数据源1,对应数据库迁移源数据库,其数据库类型为SQLServer。待迁入的动态数据源为动态数据源2,对应数据库迁移目标数据库,其数据库类型为MySQL。在创建迁移任务时,分别将资源标识对应的源库信息和目标库信息实例化为数据源(DataSource),并使用连接池管理。另外,若迁移任务横跨N个数据库迁移源数据库,则应用中同时存在N个SQLServer数据库连接池;若迁移任务横跨N个数据库迁移目标数据库,则应用中同时存在N个MySQL数据库连接池。
上述关于SQLServer/MySQL的数据库类型举例仅为更好地理解本方案,实际上待迁出的动态数据源和待迁入的动态数据源各自对应的数据库的类型并不局限于SQLServer和MySQL。
静态数据源的迁移配置信息包括待迁出的动态数据源和待迁入的动态数据源对应的迁移参数组和迁移任务,基于待迁出的动态数据源和待迁入的动态数据源对应的迁移参数组和迁移任务,可以将待迁出的动态数据源的数据迁移至待迁入的动态数据源。
本实施例通过上述方案,具体通过基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。本实施例中,采用动态数据源作为数据的迁出方或者迁入方,而静态数据源则提供迁移配置信息用于控制数据迁移过程,在此数据迁移架构下,即使对迁移配置信息进行修改,也无需重启对应的迁移应用,有效提高了数据迁移的灵活性以及效率。
进一步地,参照图5,本申请数据迁移方法第二实施例提供一种流程示意图,基于上述图2所示的实施例,步骤S10,基于所述静态数据源的迁移配置信息,控制所述若干个动态数据源之间进行数据迁移之前,还包括:
步骤S01,基于预设的资源标识,将待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组。
步骤S02,将所述迁移配置参数组存储于所述静态数据源。
具体地,基于预设的资源标识,将待迁出的动态数据源待迁出的动态数据源(即源库)的连接信息、用户名、密码,以及待迁入的动态数据源(即目标库)的连接信息、用户名、密码进行串联,得到对应的迁移配置参数组,并将迁移配置参数组和资源标识记录于静态数据源的动态数据源配置表之中。也就是说,迁移配置参数包括对应的动态数据源(数据库)的连接信息、用户名、密码,而迁移配置参数组包括对应的迁移对的连接信息、用户名、密码。
动态数据源配置表中的每条记录对应一个资源标识(Resource ID,资源ID),并代表一个迁移对,一个迁移对由一个待迁出的动态数据源和一个待迁入的动态数据源构成,一条记录包括待迁出的动态数据源(即源库)的连接信息、用户名、密码,以及待迁入的动态数据源(即目标库)的连接信息、用户名、密码。可以理解的是,动态数据源配置表的各条记录包括对应的迁移对的迁移配置参数组。
本实施例通过上述方案,具体通过基于预设的资源标识,将待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组;将所述迁移配置参数组存储于所述静态数据源。本实施例中,采用资源标识串联待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数,能够保证数据迁移过程的数据一致性和完整性。并且资源标识能够确认待迁出的动态数据源和待迁入的动态数据源的迁移对关系,确保数据迁移的各步骤能够有效执行。
进一步地,参照图6,本申请数据迁移方法第三实施例提供一种流程示意图,基于上述图5所示的实施例,步骤S10,基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移之前,还包括:
步骤S03,响应于用户通过预设的可视化迁移任务设置界面的第一类选择操作,确定所述待迁出的动态数据源和所述待迁入的动态数据源。
具体地,如图7所示,图7为本申请数据迁移方法涉及的迁移任务创建流程示意图。本实施例在数据迁移系统的在线配置界面的基础上,提供一种可视化迁移任务设置界面。用户可以通过对预设的可视化迁移任务设置界面的第一类选择操作,确定待迁出的动态数据源和待迁入的动态数据源。例如,可视化迁移任务设置界面提供待迁出的动态数据源下拉选择菜单和待迁入的动态数据源下拉选择菜单,用户可以通过下拉选择,从数据迁移系统的若干个动态数据源之中确定待迁出的动态数据源和待迁入的动态数据源。在确定待迁出的动态数据源和待迁入的动态数据源之后,数据迁移系统首先会检查对应的数据源是否已配置,如果对应的数据源未配置,则需要先配置数据源才能重新回到本界面创建迁移任务;如果对应的数据源已配置,则允许用户继续创建迁移任务。
步骤S04,查询所述待迁出的动态数据源和所述待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息。
具体地,迁移任务是基于表维度的,单个迁移任务支持将待迁出的动态数据源的单个源表的数据迁移至待迁入的动态数据源的单个目标表,每个表的迁移工作即为一个迁移任务。为此,数据迁移系统查询待迁出的动态数据源和待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息。
步骤S05,将所述待选迁出表信息和所述待选迁入表信息显示于预设的可视化迁移任务设置界面。
具体地,为了方便用户选择迁出表和迁入表,可以将待选迁出表信息和待选迁入表信息显示于预设的可视化迁移任务设置界面。待选迁出表信息和待选迁入表信息优选下拉菜单的形式进行显示,下拉菜单可以是支持搜索的下拉菜单。同理也可以采用单选框、多选框、单选按钮、多选按钮、滑块、开关等形式显示待选迁出表信息和待选迁入表信息,以供用户进行选择操作。
步骤S06,响应于用户通过所述可视化迁移任务设置界面的第二类选择操作,确定所述待迁出的动态数据源的目标迁出表和所述待迁入的动态数据源的目标迁入表。
具体地,可视化迁移任务设置界面显示的待选迁出表信息和待选迁入表信息分别包括多张可选的表,用户可以通过可视化迁移任务设置界面进行第二类选择操作,即从待选迁出表信息和待选迁入表信息提供的多张可选的表之中选择目标迁出表和目标迁入表。相应地,数据迁移系统响应于用户的选择,确定待迁出的动态数据源的目标迁出表和待迁入的动态数据源的目标迁入表。
步骤S07,基于所述目标迁出表和所述目标迁入表创建对应的迁移任务。
具体地,在确定待迁出的动态数据源、目标迁出表、待迁入的动态数据源、目标迁入表之后,用户可以进一步进行确认提交操作。在用户的确认提交操作完成之后,数据迁移系统会进一步进行校验。如果校验不成功,则返回提示用户重新选择目标迁入表;如果校验成功,则基于目标迁出表和目标迁入表创建对应的迁移任务。
值得注意的是,如图3所示,在用户可视化迁移任务设置界面提供的待选迁出表信息对应的下拉菜单选择目标迁入表之后,还可以按需配置迁移选项,迁移选项包括字段映射、源表忽略字段、迁移数据范围以及单词查询条数/单词插入条数限制。其中,源表忽略字段和迁移数据范围的配置可以起到降低数据冗余以及降低迁移后的资源占用的作用。
步骤S08,将所述迁移任务存储于所述静态数据源。
具体地,在创建迁移任务之后,可以将迁移任务存储于静态数据源的迁移任务表之中,迁移任务表的一条记录即代表一个迁移任务。
本实施例通过上述方案,具体通过响应于用户通过预设的可视化迁移任务设置界面的第一类选择操作,确定所述待迁出的动态数据源和所述待迁入的动态数据源;查询所述待迁出的动态数据源和所述待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息;将所述待选迁出表信息和所述待选迁入表信息显示于预设的可视化迁移任务设置界面;响应于用户通过所述可视化迁移任务设置界面的第二类选择操作,确定所述待迁出的动态数据源的目标迁出表和所述待迁入的动态数据源的目标迁入表;基于所述目标迁出表和所述目标迁入表创建对应的迁移任务;将所述迁移任务存储于所述静态数据源。本实施例中,数据迁移系统提供了一种可视化迁移任务设置界面,用户可以通过可视化迁移任务设置界面创建表维度的迁移任务,以使数据迁移系统自动执行迁移任务,完成数据迁移工作,提高了数据迁移的效率。另外,用户也可以根据实际需求创建参数不同的迁移任务,以控制数据迁移的具体过程,提高了数据迁移过程的可控性。
进一步地,参照图8,本申请数据迁移方法第四实施例提供一种流程示意图,基于上述图6所示的实施例,步骤S10,基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移进一步细化,包括:
步骤S101,基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表。
具体地,如图9所示,图9为本申请数据迁移方法涉及的迁移任务执行示意图。在执行迁移任务的过程中,首先生成任务标识(任务ID),从线程池获取线程资源,然后获取对应的任务参数(TaskParam)。为确保任务参数的有效性,此时会对任务参数进行检查,如果检查不通过,则结束执行迁移任务;如果检查通过,则进一步基于迁移配置参数以及双循环模式进行数据迁移。在双循环模式下,外层循环为分段从目标迁出表查询目标数据,内层循环负责分段将目标数据插入更新至目标迁入表。分段依据为任务参数中的数据库单次查询数量(dbQrySize)和单次插入数量(dbInsSize),值得注意的是,通过调整单次查询数量和单次插入数量到合适的值可提升迁移速度。
在迁移任务执行完毕之后,可以更新对应的任务状态。
本实施例通过上述方案,具体通过基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表。本实施例中,基于静态数据源的迁移配置参数和迁移任务可以将目标迁出表的数据迁移至目标迁入表,实现了表维度的自动数据迁移,提高了数据迁移效率。
进一步地,参照图10,本申请数据迁移方法第五实施例提供一种流程示意图,基于上述图8所示的实施例,步骤S101,基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表进一步细化,包括:
步骤S1011,基于所述静态数据源的迁移配置参数和迁移任务,查询得到所述目标迁出表的目标数据。
步骤S1012,基于预设的插入更新语句,将所述目标数据插入更新至所述目标迁入表。
具体地,在双循环模式下,外层循环为分段从目标迁出表查询目标数据,内层循环负责分段将目标数据插入更新至目标迁入表。对于MySQL数据库类型的待迁入的动态数据源,可以采用replace into插入更新语句执行上述插入更新动作。replace into插入更新语句的特点是:如果表中已经存在要插入的数据(根据主键或唯一索引判断),则先删除原有的数据,然后插入新的数据;否则,直接插入新的数据,采用replace into插入更新语句可以避免数据重复或冲突。
本实施例通过上述方案,具体通过基于所述静态数据源的迁移配置参数和迁移任务,查询得到所述目标迁出表的目标数据;基于预设的插入更新语句,将所述目标数据插入更新至所述目标迁入表。本实施例中,将插入更新语句引入数据迁移过程,可以有效避免数据重复或冲突的情况发生,确保迁移数据的一致性。
进一步地,参照图11,本申请数据迁移方法第六实施例提供一种流程示意图,基于上述图8所示的实施例,步骤S10,基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移之后,还包括:
步骤S09,基于预设的数据表总数检查规则以及表内数据抽查规则,对所述迁出表和所述迁入表进行自检,得到对应的自检结果。
具体地,如图9所示,在迁移任务执行完毕并更新任务状态之后,可以执行任务自检,任务自检的过程基于预设的数据表总数检查规则以及表内数据抽查规则进行。
在数据表总数检查规则下,查询目标迁出表和目标迁入表各自对应的数据表总数,比较目标迁出表和目标迁入表各自对应的数据表总数是否相等,得到数据表总数检查结果。
在表内数据抽查规则下,随机抽取N条(可配置)目标迁出表的抽查数据,再根据N条目标迁出表的抽查数据的主键查询得到N条目标迁入表的抽查数据。进一步地,按照任务配置的字段映射方法,比较目标迁出表的抽查数据和目标迁入表的抽查数据的字段值是否相同,得到表内数据抽查结果。
在此基础上,根据数据表总数检查结果和表内数据抽查结果可以综合得到对应的自检结果,自检结果有助于迁移用户迁移任务执行结果是否符合预期,以及识别出潜在的风险点。同时,自检结果也会被存储于对应的迁移日志表中。
本实施例通过上述方案,具体通过基于预设的数据表总数检查规则以及表内数据抽查规则,对所述迁出表和所述迁入表进行自检,得到对应的自检结果。本实施例中,在迁移任务执行完毕之后进行自检得到自检结果,用户可以根据自检结果判断是否符合预期,也可以根据自检结果识别出潜在的风险点,提高了数据迁移过程的可控性。
进一步地,参照图12,本申请数据迁移方法第七实施例提供一种流程示意图,基于上述图8所示的实施例,所述迁移配置信息包括迁移任务,步骤S10,基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移进一步细化,包括:
步骤S102,在执行所述迁移任务的过程中,基于预设的切面判断规则和所述迁移任务对应的资源标识,确定所述资源标识对应的迁移配置参数组是否存在。
步骤S103,若否,则基于预设的切入点注解将所述迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组,并将所述迁移配置参数组存储于所述静态数据源。
步骤S104,将所述资源标识存储于所述迁移任务对应的线程的本地线程变量之中。
步骤S105,通过所述线程基于所述本地线程变量中的资源标识获取对应的迁移配置参数组,并基于所述迁移配置参数和所述迁移任务,在所述待迁出的动态数据源和所述待迁入的动态数据源之间进行数据迁移。
具体地,迁移任务可正确执行的最重要前提是能够正确获取到待迁出的动态数据源的连接信息和待迁入的动态数据源的连接信息。由于本实施例的待迁出方和待迁入方均为动态数据源,如何在多个迁移任务中识别当前迁移任务对应的动态数据源并获取对应的连接信息是重点和难点。
为此,本实施例提出了基于AOP(Aspect Oriented Programming,面向切面编程)技术的动态数据源注册方案,如图13所示,图13为本申请数据迁移方法涉及的动态数据源注册方案示意图。数据源(DataSource)和线程绑定,动态数据源的配置可以通过继承抽象路由数据源(AbstractRoutingDataSource)类实现,通过抽象路由数据源类获取当前线程的数据源的键值,并将通过当前线程的本地线程变量(ThreadLocal)来保存数据源的键值,通过改变数据源的键值来决定生成哪个数据库的连接,从连接池返回给应用。
根据此原理,本数据迁移系统采用AOP技术,自定义切入点注解@MigrateSource和@MigrateTarget。将与待迁出的动态数据源对应的数据库交互的业务逻辑层(Service层)的相关的所有方法,添加待迁出的动态数据源的切入点注解@MigrateSource,将与待迁入的动态数据源对应的数据库交互的业务逻辑层(Service层)的相关的所有方法,添加待迁入的动态数据源的切入点注解@MigrateTarget,并在方法首个参数中传入资源标识,也即通过上述步骤基于预设的切入点注解将迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联。
在预设的切面判断规则下,前置通知方法(beforeAspect方法)中,判断当前迁移任务对应的资源标识对应的迁移配置参数组是否已存在,若不存在则创建数据库连接池(HikariDataSource),动态织入迁移配置参数组,把当前迁移任务对应的资源标识存储于对应的线程的本地线程变量之中。如此,线程都可以取到对应的迁移配置参数组进行数据迁移。至此,已实现以资源标识为串联的待迁出的动态数据源和待迁入的动态数据源同时动态切换的目标。
本实施例通过上述方案,具体通过在执行所述迁移任务的过程中,基于预设的切面判断规则和所述迁移任务对应的资源标识,确定所述资源标识对应的迁移配置参数组是否存在;若否,则基于预设的切入点注解将所述迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组,并将所述迁移配置参数组存储于所述静态数据源;将所述资源标识存储于所述迁移任务对应的线程的本地线程变量之中;通过所述线程基于所述本地线程变量中的资源标识获取对应的迁移配置参数组,并基于所述迁移配置参数和所述迁移任务,在所述待迁出的动态数据源和所述待迁入的动态数据源之间进行数据迁移。本实施例中,基于AOP技术使得待迁出的动态数据源和待迁入的动态数据源可以动态切换,可以满足多样化的数据迁移需求,也提高了数据迁移过程的可控性。
此外,本申请实施例还提出一种数据迁移装置,所述数据迁移装置应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移装置包括:
迁移模块,用于基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
本实施例实现数据迁移的原理及实施过程,请参照上述各实施例,在此不再赘述。
此外,本申请实施例还提出一种终端设备,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如上所述的数据迁移方法的步骤。
由于本数据迁移程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如上所述的数据迁移方法的步骤。
由于本数据迁移程序被处理器执行时,采用了前述所有实施例的全部技术方案,因此至少具有前述所有实施例的全部技术方案所带来的所有有益效果,在此不再一一赘述。
相比现有技术,本申请实施例提出的数据迁移方法、装置、终端设备及存储介质,通过基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。基于本申请方案,采用动态数据源作为数据的迁出方或者迁入方,而静态数据源则提供迁移配置信息用于控制数据迁移过程,在此数据迁移架构下,即使对迁移配置信息进行修改,也无需重启对应的迁移应用,有效提高了数据迁移的灵活性以及效率。
需要说明的是,在本文中,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据迁移方法,其特征在于,所述数据迁移方法应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移方法包括:
基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
2.如权利要求1所述的数据迁移方法,其特征在于,所述基于所述静态数据源的迁移配置信息,控制所述若干个动态数据源之间进行数据迁移的步骤之前,还包括:
基于预设的资源标识,将待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组;
将所述迁移配置参数组存储于所述静态数据源。
3.如权利要求2所述的数据迁移方法,其特征在于,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤之前,还包括:
响应于用户通过预设的可视化迁移任务设置界面的第一类选择操作,确定所述待迁出的动态数据源和所述待迁入的动态数据源;
查询所述待迁出的动态数据源和所述待迁入的动态数据源,分别得到待选迁出表信息和待选迁入表信息;
将所述待选迁出表信息和所述待选迁入表信息显示于预设的可视化迁移任务设置界面;
响应于用户通过所述可视化迁移任务设置界面的第二类选择操作,确定所述待迁出的动态数据源的目标迁出表和所述待迁入的动态数据源的目标迁入表;
基于所述目标迁出表和所述目标迁入表创建对应的迁移任务;
将所述迁移任务存储于所述静态数据源。
4.如权利要求3所述的数据迁移方法,其特征在于,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤包括:
基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表。
5.如权利要求4所述的数据迁移方法,其特征在于,所述基于所述静态数据源的迁移配置参数和迁移任务,将所述目标迁出表的数据迁移至所述目标迁入表的步骤包括:
基于所述静态数据源的迁移配置参数和迁移任务,查询得到所述目标迁出表的目标数据;
基于预设的插入更新语句,将所述目标数据插入更新至所述目标迁入表。
6.如权利要求4所述的数据迁移方法,其特征在于,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤之后,还包括:
基于预设的数据表总数检查规则以及表内数据抽查规则,对所述迁出表和所述迁入表进行自检,得到对应的自检结果。
7.如权利要求1所述的数据迁移方法,其特征在于,所述迁移配置信息包括迁移任务,所述基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移的步骤包括:
在执行所述迁移任务的过程中,基于预设的切面判断规则和所述迁移任务对应的资源标识,确定所述资源标识对应的迁移配置参数组是否存在;
若否,则基于预设的切入点注解将所述迁移任务指定的待迁出的动态数据源和待迁入的动态数据源各自对应的迁移配置参数进行串联,得到对应的迁移配置参数组,并将所述迁移配置参数组存储于所述静态数据源;
将所述资源标识存储于所述迁移任务对应的线程的本地线程变量之中;
通过所述线程基于所述本地线程变量中的资源标识获取对应的迁移配置参数组,并基于所述迁移配置参数和所述迁移任务,在所述待迁出的动态数据源和所述待迁入的动态数据源之间进行数据迁移。
8.一种数据迁移装置,其特征在于,所述数据迁移装置应用于数据迁移系统,所述数据迁移系统包括静态数据源和若干个动态数据源,所述数据迁移装置包括:
迁移模块,用于基于所述静态数据源的迁移配置信息,在所述若干个动态数据源之间进行数据迁移。
9.一种终端设备,其特征在于,所述终端设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据迁移程序,所述数据迁移程序被所述处理器执行时实现如权利要求1-7中任一项所述的数据迁移方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据迁移程序,所述数据迁移程序被处理器执行时实现如权利要求1-7中任一项所述的数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704694.6A CN116701356A (zh) | 2023-06-14 | 2023-06-14 | 数据迁移方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310704694.6A CN116701356A (zh) | 2023-06-14 | 2023-06-14 | 数据迁移方法、装置、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701356A true CN116701356A (zh) | 2023-09-05 |
Family
ID=87833634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310704694.6A Pending CN116701356A (zh) | 2023-06-14 | 2023-06-14 | 数据迁移方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701356A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349025A (zh) * | 2023-12-01 | 2024-01-05 | 中控技术股份有限公司 | 一种组态迁移方法、装置、电子设备和存储介质 |
-
2023
- 2023-06-14 CN CN202310704694.6A patent/CN116701356A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349025A (zh) * | 2023-12-01 | 2024-01-05 | 中控技术股份有限公司 | 一种组态迁移方法、装置、电子设备和存储介质 |
CN117349025B (zh) * | 2023-12-01 | 2024-02-02 | 中控技术股份有限公司 | 一种组态迁移方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104392B (zh) | 一种数据库迁移方法、装置、电子设备及存储介质 | |
US20160171978A1 (en) | Voice recognition system and construction method thereof | |
CN109492053B (zh) | 用于访问数据的方法和装置 | |
US10394805B2 (en) | Database management for mobile devices | |
US11416677B2 (en) | Dynamic resource management systems and form integration methods | |
CN116701356A (zh) | 数据迁移方法、装置、终端设备及存储介质 | |
CN109614312A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN109933486B (zh) | 一种物流数据的监控处理方法,装置及系统 | |
US11704114B2 (en) | Data structures for managing configuration versions of cloud-based applications | |
CN115130679A (zh) | 数据管控方法及相关装置和介质程序产品 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
US9201960B2 (en) | Virtual agent response to customer inquiries | |
CN108334333B (zh) | 一种源代码库更新方法及装置 | |
CN113807955A (zh) | 信息审核方法及相关设备 | |
US11567808B2 (en) | Dependency handling for configuration transport | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
CN114968505A (zh) | 任务处理系统、方法、装置、设备、存储介质及程序产品 | |
CN112445600A (zh) | 一种离线数据处理任务发布方法及系统 | |
CN111966460A (zh) | 一种优化容器内显示进程信息的方法、系统、设备及介质 | |
CN112395340A (zh) | 一种数据资产管理方法及装置 | |
CN112286894A (zh) | 日志生成方法、装置以及可读存储介质 | |
CN108073559B (zh) | 一种实现表格数据更新的方法、装置及系统 | |
CN113127501B (zh) | 执行多条sql语句的方法、装置、智能终端及存储介质 | |
US10778514B1 (en) | Universal configurations | |
EP3989078A1 (en) | Method and apparatus for realizing global unique 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 |