CN116775613A - 一种数据迁移方法、装置、电子设备及计算机可读介质 - Google Patents
一种数据迁移方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN116775613A CN116775613A CN202310775602.3A CN202310775602A CN116775613A CN 116775613 A CN116775613 A CN 116775613A CN 202310775602 A CN202310775602 A CN 202310775602A CN 116775613 A CN116775613 A CN 116775613A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- generating
- data table
- file
- 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 92
- 230000005012 migration Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000011068 loading method Methods 0.000 claims abstract description 95
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013075 data extraction Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 3
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000306 component Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据迁移方法、装置、电子设备及计算机可读介质,涉及大数据数据存储技术领域,一具体实施方式包括接收数据迁移请求,获取对应的数据库实例和目标数据库标识;基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;获取导出数据表的表名,基于表名生成控制文件;根据控制文件,生成装载脚本;运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。以提高异构数据库之间进行数据迁移的效率和准确率。
Description
技术领域
本申请涉及大数据数据存储技术领域,尤其涉及一种数据迁移方法、装置、电子设备及计算机可读介质。
背景技术
目前,异构数据库的数据迁移转换到oracle数据库时,目标数据库受限于oracle,不支持导入到其他类型的数据库,如果要导入其他类型的数据库,要修改导入文件的逻辑,从而导致数据迁移效率低以及准确率低。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
异构数据库之间的数据迁移的效率低以及准确率低。
发明内容
有鉴于此,本申请实施例提供一种数据迁移方法、装置、电子设备及计算机可读介质,能够解决现有的异构数据库之间的数据迁移的效率低以及准确率低的问题。
为实现上述目的,根据本申请实施例的一个方面,提供了一种数据迁移方法,包括:
接收数据迁移请求,获取对应的数据库实例和目标数据库标识;
基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;
获取导出数据表的表名,基于表名生成控制文件;
根据控制文件,生成装载脚本;
运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
可选地,基于表名生成控制文件,包括:
调用预设脚本,获取表名对应的数据表字段以及数据表字段对应的字段值;
根据数据表字段和字段值,生成控制文件。
可选地,述生成装载脚本,包括:
调用装载脚本模版,确定控制文件中的数据表字段和字段值在装载脚本模版中的位置;
基于数据表字段、字段值和位置,以生成装载脚本。
可选地,生成装载脚本,包括:
基于数据表字段和字段值,执行局部变量定义程序,以得到定义的局部变量参数;
根据局部变量参数和位置,生成装载脚本。
可选地,在基于数据库实例连接到对应的源数据库之前,方法还包括:
确定数据库实例的数量,响应于数量大于预设阈值,基于各个数据库实例生成异步任务,并将各个异步任务推送至异步任务队列中以待执行;
响应于当前时间到达异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
可选地,提取源数据库中待迁移数据库表的数据文件至导出数据表,包括:
获取数据迁移请求对应的配置数据,基于配置数据生成查询语句;
调用数据提取引擎,以执行查询语句,将源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
可选地,在根据控制文件,生成装载脚本之前,方法还包括:
响应于对待迁移数据库表的数据表字段的增删改查操作,基于增删改查操作更新控制文件。
另外,本申请还提供了一种数据迁移装置,包括:
接收单元,被配置成接收数据迁移请求,获取对应的数据库实例和目标数据库标识;
数据提取单元,被配置成基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;
控制文件生成单元,被配置成获取导出数据表的表名,基于表名生成控制文件;
装载脚本生成单元,被配置成根据控制文件,生成装载脚本;
运行单元,被配置成运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
可选地,控制文件生成单元进一步被配置成:
调用预设脚本,获取表名对应的数据表字段以及数据表字段对应的字段值;
根据数据表字段和字段值,生成控制文件。
可选地,装载脚本生成单元进一步被配置成:
调用装载脚本模版,确定控制文件中的数据表字段和字段值在装载脚本模版中的位置;
基于数据表字段、字段值和位置,以生成装载脚本。
可选地,装载脚本生成单元进一步被配置成:
基于数据表字段和字段值,执行局部变量定义程序,以得到定义的局部变量参数;
根据局部变量参数和位置,生成装载脚本。
可选地,装置还包括任务执行单元,被配置成:
确定数据库实例的数量,响应于数量大于预设阈值,基于各个数据库实例生成异步任务,并将各个异步任务推送至异步任务队列中以待执行;
响应于当前时间到达异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
可选地,数据提取单元进一步被配置成:
获取数据迁移请求对应的配置数据,基于配置数据生成查询语句;
调用数据提取引擎,以执行查询语句,将源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
可选地,数据迁移装置还包括更新单元,被配置成:
响应于对待迁移数据库表的数据表字段的增删改查操作,基于增删改查操作更新控制文件。
另外,本申请还提供了一种数据迁移电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的数据迁移方法。
另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的数据迁移方法。
为实现上述目的,根据本申请实施例的又一个方面,提供了一种计算机程序产品。
本申请实施例的一种计算机程序产品,包括计算机程序,程序被处理器执行时实现本申请实施例提供的数据迁移方法。
上述发明中的一个实施例具有如下优点或有益效果:本申请通过接收数据迁移请求,获取对应的数据库实例和目标数据库标识;基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;获取导出数据表的表名,基于表名生成控制文件;根据控制文件,生成装载脚本;运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。以提高异构数据库之间进行数据迁移的效率和准确率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本申请,不构成对本申请的不当限定。其中:
图1是根据本申请一个实施例的数据迁移方法的主要流程的示意图;
图2是根据本申请一个实施例的数据迁移方法的主要流程的示意图;
图3是根据本申请一个实施例的数据迁移方法的主要流程示意图;
图4是根据本申请一个实施例的数据迁移方法的主要流程示意图;
图5是根据本申请实施例的数据迁移装置的主要单元的示意图;
图6是本申请实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,本申请的技术方案中,所涉及的用户个人信息的采集、分析、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且接受监管部门的监督管理。应当对用户个人信息采取必要措施,以防止对此类个人信息数据的非法访问,确保有权访问个人信息数据的人员遵守相关法律法规的规定,确保用户个人信息安全。一旦不再需要这些用户个人信息数据,应当通过限制甚至禁止数据收集和/或删除数据的方式将风险降至最低。
当使用时,包括在某些相关应用程序中,通过对数据去标识来保护用户隐私,例如在使用时通过移除特定标识符、控制所存储数据的量或特异性、控制数据如何被存储、和/或其他方法去标识。
图1是根据本申请一个实施例的数据迁移方法的主要流程的示意图,如图1所示,数据迁移方法包括:
步骤S101,接收数据迁移请求,获取对应的数据库实例和目标数据库标识。
本实施例中,数据迁移方法的执行主体(例如,可以是服务器)可以通过有线连接或无线连接的方式,接收数据迁移请求。具体地,数据迁移请求可以是将数据在异构数据库之间进行迁移的请求。执行主体在接收到数据迁移请求后,可以获取该请求中携带的数据库实例和目标数据库标识。其中,数据库实例即为访问数据库的应用程序,是位于用户和操作系统之间的一层数据管理软件。数据库实例即为用户访问数据库的通道,一个数据库实例对应一个数据库。本申请实施例中的数据库实例对应的可以是用于进行数据输出的源数据库。目标数据库标识可以是将数据迁移至的数据库的名称或者数据库地址等,本申请实施例对数据库标识不做具体限定。
步骤S102,基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表。
通过数据库实例连接到源数据库获取要进行迁移的数据,例如从数据库实例对应的待迁移数据库表中获取数据文件,并将获取的数据文件存放于作为中转站的导出数据表中。
具体地,在基于数据库实例连接到对应的源数据库之前,数据迁移方法还包括:确定数据库实例的数量,响应于数量大于预设阈值,基于各个数据库实例生成异步任务,并将各个异步任务推送至异步任务队列中以待执行;响应于当前时间到达异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
本申请实施例中,一个数据库实例可以对应一个数据库。当数据迁移请求对应的数据库实例的数量大于预设阈值时,当预设阈值为1时,即为数据库实例的数量大于1时,则需要通过异步任务执行的方式进行相对应的数据迁移。此时,执行主体可以调用异步任务生成程序以基于多个数据库实例生成对应的异步任务。通过执行异步任务队列中的异步任务,来进行数据迁移,通过异步任务调度的方式做到快速并有效地对数据迁移所需要用到的资源的控制,并可以提高数据迁移效率。
具体地,提取源数据库中待迁移数据库表的数据文件至导出数据表,包括:获取数据迁移请求对应的配置数据,基于配置数据生成查询语句;调用数据提取引擎,以执行查询语句,将源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
配置数据中可以存储有异构数据库之间进行数据迁移时的字符集转换映射关系,执行主体可以基于该映射关系生成查询语句,以便于在调用数据提取引擎进行数据查询的过程中直接进行异构数据库之间相对应的字符集的转换,提高数据查询效率,并提高异构数据库之间数据迁移的便捷性和准确率。
通过采用数据查询的方式卸载源数据库中的待迁移数据库表的数据文件,可以做到不同字符集的转换,并具有无视源数据库类型的通用性,适用场景广泛。
步骤S103,获取导出数据表的表名,基于表名生成控制文件。
导出数据表的表名可以作为一个键值对中的键存在,执行主体可以从导出数据表中获取与该键对应的数据表字段和字段值,基于获取的数据表字段和字段值生成数据表控制文件。
示例的,在数据处理模块,输入导出数据表的表名,通过shell脚本loadsqlfun.sh,查询导出数据表的字段,根据查询到的导出数据表的这些字段,生成数据表控制文件所需要的字段信息(例如字段值),然后通过中间文件处理,生成数据表的控制文件。
步骤S104,根据控制文件,生成装载脚本。
具体地,生成装载脚本,包括:基于数据表字段和字段值,执行局部变量定义程序,以得到定义的局部变量参数;根据局部变量参数和位置,生成装载脚本。
具体根据导出数据表的表名对应的数据表字段和字段值定义局部变量,以得到局部变量参数。在本申请实施例中,定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部,离开该函数后就是无效的,再使用就会报错。
示例的,在生成装载脚本中,通过shell脚本generate_execute_shell.sh,读取定义的局部变量参数,其中,局部变量参数用于表征要迁移的数据的名称、类型或者数量,并结合装载脚本模版(例如sqlldr导入语法),基于局部变量参数和局部变量参数在装载脚本模版中的位置拼接得到完整的sqlldr导入脚本,即生成数据表导入的文件装载脚本。然后,执行主体可以判断数据装载是否完成,若未完成则继续判断数据表装载文件是否异常,若异常则结束数据装载,若没有异常则继续判断数据表装载是否完成,直至数据表装载完成则结束数据装载。
步骤S105,运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
在生成装在脚本后,执行主体可以运行生成的装载脚本,根据装载脚本所对应的数据名称、数据类型、数据位置等执行对应数据的装载进程,以将对应数据装载至目标数据库。
本实施例通过接收数据迁移请求,获取对应的数据库实例和目标数据库标识;基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;获取导出数据表的表名,基于表名生成控制文件;根据控制文件,生成装载脚本;运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。以提高异构数据库之间进行数据迁移的效率和准确率。
图2是根据本申请一个实施例的数据迁移方法的主要流程示意图,如图2所示,数据迁移方法包括:
步骤S201,接收数据迁移请求,获取对应的数据库实例和目标数据库标识。
数据迁移请求,例如可以是将关系型数据库管理系统MYSQL、分布式数据库DB2的数据以一定的格式迁移到ORACLE数据库。
数据库实例对应的可以是向外迁移数据的源数据库。目标数据库标识对应的可以是接收迁移数据的数据库。
步骤S202,基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表。
步骤S203,获取导出数据表的表名。
步骤S204,调用预设脚本,获取表名对应的数据表字段以及数据表字段对应的字段值。
预设脚本,例如可以是shell脚本loadsqlfun.sh。调用预设脚本,根据导出数据表的表名获取与该表名匹配的数据表字段和字段值。
步骤S205,根据数据表字段和字段值,生成控制文件。
数据库的启动和正常运行都离不开控制文件。启动数据库时,Oracle从初始化参数文件中获得控制文件的名字及位置,打开控制文件,然后从控制文件中读取数据文件和联机日志文件的信息,最后打开数据库。数据库运行时,Oracle会修改控制文件,所以,一旦控制文件损坏,数据库将不能正常运行。
本申请实施例中,可以将数据表字段和对应的字段值关联,然后基于中间文件的处理,根据关联的数据表字段和字段值生成控制文件。
示例的,在数据处理模块,输入导出数据表的表名,通过shell脚本loadsqlfun.sh,查询数据库表的字段,根据这些字段,生成数据表控制文件所需要的字段信息,然后通过中间文件处理,生成数据表的控制文件。
步骤S206,根据控制文件,生成装载脚本。
具体地,在根据控制文件,生成装载脚本之前,方法还包括:响应于对待迁移数据库表的数据表字段的增删改查操作,基于增删改查操作更新控制文件。
示例的,当增加、重命名、删除一个数据文件或者一个联机日志文件时,Oracle服务器进程(Server Process)会立即更新控制文件以反映数据库结构的这种变化,以基于最新的控制文件保证数据库的启动和正常运行。
步骤S207,运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
执行主体可以运行基于控制文件生成的装载脚本,以将数据文件装载至目标数据库标识对应的目标数据库。提高异构数据库之间进行数据迁移的效率和准确率。
图3是根据本申请一个实施例的数据迁移方法的应用场景示意图。如图3所示,数据迁移方法包括:
步骤S301,接收数据迁移请求,获取对应的数据库实例和目标数据库标识。
步骤S302,基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表。
在基于数据库实例连接到对应的源数据库时,可以生成与数据库实例对应的异步任务,执行异步任务的管理,可以查看任务的调度、查询、完成状态等信息。通过任务调度的方式执行异步任务,以提取对应的源数据库中的待迁移数据表的数据文件并迁移至导出数据表,以实现通过异步任务调度做到快速并有效的资源及效率控制。
在进行数据卸载时,通过工具配置数据库连接信息,输入要导出数据库或具体表信息,建立导出数据表,加载待迁移数据库表的数据文件,调用数据库引擎将加载的数据文件导出至导出数据表。如果处理完成,就正常结束,如果处理未完成,需要判断导出数据表是否异常,若无异常,则处理完成,若存在异常则结束退出。
步骤S303,获取导出数据表的表名。
导出数据表的表名可以包含导出数据表中的字段以及字段值。本申请实施例对导出数据表的表名的形式和内容不做具体限定。
步骤S304,调用预设脚本,获取表名对应的数据表字段以及数据表字段对应的字段值。
步骤S305,根据数据表字段和字段值,生成控制文件。
步骤S306,调用装载脚本模版,确定控制文件中的数据表字段和字段值在装载脚本模版中的位置。
确定装载脚本模版中的占位符,以及占位符的类型。其中,占位符的类型可以为对应于数据表字段或对应于字段值。具体地,可以获取占位符的类型标识,该类型标识可以位于占位符的注解中,通过读取占位符的注解,获取占位符的类型标识,进而根据占位符的类型标识确定对应的是数据表字段还是字段值,从而将数据表字段和字段值对应的占位符的位置确定为在装载脚本模版中的位置。
步骤S307,基于数据表字段、字段值和位置,以生成装载脚本。
通过将数据表字段和字段值自动填充至装载脚本模版中的相应的占位符的位置处,以生成装载脚本。
步骤S308,运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
执行主体可以根据装载脚本中的数据名称、数据类型和数据位置自动定位到对应的数据存储位置处,以获取相对应的数据并装载至目标数据库。
在本申请实施例中,通过select语句把待迁移的数据读出来,满足按照定义好的格式、定义好的分隔符、定义好的换行来生成一个文件,在接收端定义好文件的格式,接收端根据这个规则来解析这个文件,然后调用sqlldr(大型数据仓库的加载方法)来导入到目标数据库中,可以无视源数据库的通用性,只要源数据库支持标准的SQL接口就可以使用接口文件来做数据的传输迁移。通过数据卸载模块,使用SQL查询把异构数据库的数据,通过查询数据库表,导出成文本数据格式,然后通过数据处理模块,创建对应的导出数据表,自动生成导入的控制文件,自动生成导入的数据脚本,调用sqlldr导入数据。本申请实施例用到的核心组件,包括:Reader、Writer、datax的核心模块组件。其中,Reader:数据采集模块,负责从源采集数据。Writer:数据写入模块,负责写入目标库;Framework:数据传输通道,负责处理数据缓冲等。datax的核心模块组件:datax完成单个数据同步的作业,称为Job,Job会负责数据清理、任务切分等工作。任务启动后,Job会根据不同数据源的切分策略,切分成多个任务Task并发执行,任务Task就是执行作业的最小单元。切分完成后,根据调度模块,将任务Task组合成任务组TaskGroup,每个任务组TaskGroup负责一定的并发和分配任务Task。
在本申请实施例中,SQLLDR:是SQL*LOADER的缩写,SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。异构数据库:(英文:heterogeneous database,简称HDB)异构性主要体现在计算机体系结构的异构、基础操作系统的异构、数据库管理系统本身的异构。SHELL:是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。CMDB:(Configuration Management Database配置管理数据库)存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。
图4是根据本申请一个实施例的数据迁移方法的主要流程示意图。本申请实施例的数据迁移方法能够实现异构数据库ORACLE、MYSQL、DB2的数据以一定的格式提取到文本文件,并调用SQLLDR装载到ORACLE数据库的功能。从模块划分的角度分为配置管理模块、数据生成模块、数据处理模块、数据装载模块。如图4所示,从工作流程上分析,本申请实施例的数据迁移从CMDB(配置管理数据库)中获得必要的配置信息,通过数据库引擎和Shell引擎,提取到要迁移数据库表的数据文件。通过数据处理模块,生成控制文件;根据一个表名生成该表的控制文件。通过数据处理模块,生成装载脚本;根据一个表名生成该表的装载脚本。执行装载脚本,根据一个数据库或表名来装载对应的数据文件,生成成功装载的日志和失败条目的日志。
从技术架构上分析,本申请实施例中的数据迁移转换是使用数据库引擎,结合Shell引擎脚本处理的,承载能力易于横向扩展的高性能数据转换工具。本申请实施例的数据迁移方法的第一部分主要是配置数据库实例,通过这些信息,可以方便快速的连接到数据库,定制要迁移的数据库表信息;第二部分是任务管理,可以查看生成任务的调度、查询、完成状态等信息;第三部分是通过数据库引擎和数据处理模块,生成数据文件和数据表的控制文件,生成数据加载的脚本,然后调用脚本进行数据的加载。本申请实施例的数据迁移方法的数据卸载是通过配置信息,结合数据库支持的标准SQL接口,通过配置好数据库连接,可以批量异步的完成数据卸载。方案采用数据查询方式卸载数据,可以做到不同字符集的转换,并具有无视数据库的通用性。数据的卸载是通过任务调度的异步方式执行的,通过任务调度做到快速并有效的资源及效率控制。数据处理模块,可以根据数据字典信息,读取对象信息,通过shell程序处理,自动生成数据表导入所需控制文件。无需再通过手工的方式,编写数据导入的控制文件,这样就可以做到批量生成,批量导入。本申请实施例的数据迁移方法对工具使用要求门槛低。本申请实施例不需要专业的数据库知识以及开发能力进行复杂的配置工作,只需要了解所基于的sql语句即可使用,给出用于连接到数据库的数据库实例及要迁移的对象,即可完成数据的卸载及装载,实现数据迁移自动化。通过配置迁移的数据库表,以及通过工具自动提取数据文件,并根据导入表信息,自动生成控制文件,通过SQLLDR装载数据,工具适配数据库易于扩展。通过查询抽取数据,具有无视导出数据的源数据库的通用性,只要源数据库支持的查询语句完成适配就可以直接添加相关数据库配置支持。
图5是根据本申请实施例的数据迁移装置的主要单元的示意图。如图5所示,数据迁移装置500包括接收单元501、数据提取单元502、控制文件生成单元503、装载脚本生成单元504和运行单元505。
接收单元501,被配置成接收数据迁移请求,获取对应的数据库实例和目标数据库标识。
数据提取单元502,被配置成基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表。
控制文件生成单元503,被配置成获取导出数据表的表名,基于表名生成控制文件。
装载脚本生成单元504,被配置成根据控制文件,生成装载脚本。
运行单元505,被配置成运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
在一些实施例中,控制文件生成单元503进一步被配置成:调用预设脚本,获取表名对应的数据表字段以及数据表字段对应的字段值;根据数据表字段和字段值,生成控制文件。
在一些实施例中,装载脚本生成单元504进一步被配置成:调用装载脚本模版,确定控制文件中的数据表字段和字段值在装载脚本模版中的位置;基于数据表字段、字段值和位置,以生成装载脚本。
在一些实施例中,装载脚本生成单元504进一步被配置成:基于数据表字段和字段值,执行局部变量定义程序,以得到定义的局部变量参数;根据局部变量参数和位置,生成装载脚本。
在一些实施例中,数据迁移装置还包括图5中未示出的任务执行单元,被配置成:确定数据库实例的数量,响应于数量大于预设阈值,基于各个数据库实例生成异步任务,并将各个异步任务推送至异步任务队列中以待执行;响应于当前时间到达异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
在一些实施例中,数据提取单元502进一步被配置成:获取数据迁移请求对应的配置数据,基于配置数据生成查询语句;调用数据提取引擎,以执行查询语句,将源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
在一些实施例中,数据迁移装置还包括图5中未示出的更新单元,被配置成:响应于对待迁移数据库表的数据表字段的增删改查操作,基于增删改查操作更新控制文件。
需要说明的是,本申请的数据迁移方法和数据迁移装置在具体实施内容上具有相应关系,故重复内容不再说明。
图6示出了可以应用本申请实施例的数据迁移方法或数据迁移装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有数据迁移处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所提交的数据迁移请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以接收数据迁移请求,获取对应的数据库实例和目标数据库标识;基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;获取导出数据表的表名,基于表名生成控制文件;根据控制文件,生成装载脚本;运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。以提高异构数据库之间进行数据迁移的效率和准确率。
需要说明的是,本申请实施例所提供的数据迁移方法一般由服务器605执行,相应地,数据迁移装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本申请实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有计算机系统700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶征信授权查询处理器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、数据提取单元、控制文件生成单元、装载脚本生成单元和运行单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备接收数据迁移请求,获取对应的数据库实例和目标数据库标识;基于数据库实例连接到对应的源数据库,提取源数据库中待迁移数据库表的数据文件至导出数据表;获取导出数据表的表名,基于表名生成控制文件;根据控制文件,生成装载脚本;运行装载脚本以将数据文件装载至目标数据库标识对应的目标数据库。
本申请的计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本申请实施例中的数据迁移方法。
根据本申请实施例的技术方案,可以提高异构数据库之间进行数据迁移的效率和准确率。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种数据迁移方法,其特征在于,包括:
接收数据迁移请求,获取对应的数据库实例和目标数据库标识;
基于所述数据库实例连接到对应的源数据库,提取所述源数据库中待迁移数据库表的数据文件至导出数据表;
获取所述导出数据表的表名,基于所述表名生成控制文件;
根据所述控制文件,生成装载脚本;
运行所述装载脚本以将所述数据文件装载至所述目标数据库标识对应的目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述基于所述表名生成控制文件,包括:
调用预设脚本,获取所述表名对应的数据表字段以及所述数据表字段对应的字段值;
根据所述数据表字段和所述字段值,生成控制文件。
3.根据权利要求2所述的方法,其特征在于,所述生成装载脚本,包括:
调用装载脚本模版,确定所述控制文件中的所述数据表字段和所述字段值在所述装载脚本模版中的位置;
基于所述数据表字段、所述字段值和所述位置,以生成装载脚本。
4.根据权利要求1所述的方法,其特征在于,所述生成装载脚本,包括:
基于所述数据表字段和所述字段值,执行局部变量定义程序,以得到定义的局部变量参数;
根据所述局部变量参数和所述位置,生成装载脚本。
5.根据权利要求1所述的方法,其特征在于,在所述基于所述数据库实例连接到对应的源数据库之前,所述方法还包括:
确定所述数据库实例的数量,响应于所述数量大于预设阈值,基于各个所述数据库实例生成异步任务,并将各个所述异步任务推送至异步任务队列中以待执行;
响应于当前时间到达所述异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
6.根据权利要求1所述的方法,其特征在于,所述提取所述源数据库中待迁移数据库表的数据文件至导出数据表,包括:
获取所述数据迁移请求对应的配置数据,基于所述配置数据生成查询语句;
调用数据提取引擎,以执行所述查询语句,将所述源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述控制文件,生成装载脚本之前,所述方法还包括:
响应于对所述待迁移数据库表的数据表字段的增删改查操作,基于所述增删改查操作更新所述控制文件。
8.一种数据迁移装置,其特征在于,包括:
接收单元,被配置成接收数据迁移请求,获取对应的数据库实例和目标数据库标识;
数据提取单元,被配置成基于所述数据库实例连接到对应的源数据库,提取所述源数据库中待迁移数据库表的数据文件至导出数据表;
控制文件生成单元,被配置成获取所述导出数据表的表名,基于所述表名生成控制文件;
装载脚本生成单元,被配置成根据所述控制文件,生成装载脚本;
运行单元,被配置成运行所述装载脚本以将所述数据文件装载至所述目标数据库标识对应的目标数据库。
9.根据权利要求8所述的装置,其特征在于,所述控制文件生成单元进一步被配置成:
调用预设脚本,获取所述表名对应的数据表字段以及所述数据表字段对应的字段值;
根据所述数据表字段和所述字段值,生成控制文件。
10.根据权利要求9所述的装置,其特征在于,所述装载脚本生成单元进一步被配置成:
调用装载脚本模版,确定所述控制文件中的所述数据表字段和所述字段值在所述装载脚本模版中的位置;
基于所述数据表字段、所述字段值和所述位置,以生成装载脚本。
11.根据权利要求8所述的装置,其特征在于,所述装载脚本生成单元进一步被配置成:
基于所述数据表字段和所述字段值,执行局部变量定义程序,以得到定义的局部变量参数;
根据所述局部变量参数和所述位置,生成装载脚本。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括任务执行单元,被配置成:
确定所述数据库实例的数量,响应于所述数量大于预设阈值,基于各个所述数据库实例生成异步任务,并将各个所述异步任务推送至异步任务队列中以待执行;
响应于当前时间到达所述异步任务队列中的任意一个异步任务对应的执行时间,执行所对应的异步任务以从源数据库中进行数据卸载。
13.根据权利要求8所述的装置,其特征在于,所述数据提取单元进一步被配置成:
获取所述数据迁移请求对应的配置数据,基于所述配置数据生成查询语句;
调用数据提取引擎,以执行所述查询语句,将所述源数据库中待迁移数据库表的数据文件以预设文本数据格式提取至导出数据表。
14.一种数据迁移电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310775602.3A CN116775613A (zh) | 2023-06-28 | 2023-06-28 | 一种数据迁移方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310775602.3A CN116775613A (zh) | 2023-06-28 | 2023-06-28 | 一种数据迁移方法、装置、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775613A true CN116775613A (zh) | 2023-09-19 |
Family
ID=87985686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310775602.3A Pending CN116775613A (zh) | 2023-06-28 | 2023-06-28 | 一种数据迁移方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775613A (zh) |
-
2023
- 2023-06-28 CN CN202310775602.3A patent/CN116775613A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148711B (zh) | 一种批处理任务的处理方法和装置 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN112000734A (zh) | 一种大数据处理方法和装置 | |
CN112860744A (zh) | 一种业务流程处理方法和装置 | |
CN112214250A (zh) | 一种应用程序组件的加载方法和装置 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN116775167A (zh) | 一种业务处理方法、装置、电子设备及计算机可读介质 | |
CN116204428A (zh) | 一种测试用例生成方法和装置 | |
CN113760274B (zh) | 一种前端组件逻辑注入方法和装置 | |
CN116775613A (zh) | 一种数据迁移方法、装置、电子设备及计算机可读介质 | |
CN113515306B (zh) | 一种系统移植的方法及装置 | |
CN109213815B (zh) | 控制执行次数的方法、装置、服务器终端以及可读介质 | |
CN113704242A (zh) | 一种数据处理方法和装置 | |
CN113760240A (zh) | 一种生成数据模型的方法和装置 | |
CN111177183B (zh) | 一种生成数据库访问语句的方法和装置 | |
CN115964052A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN108459914B (zh) | 一种中间件命令执行方法及装置 | |
CN118093719A (zh) | 数据同步方法、装置、电子设备和计算机可读介质 | |
CN115167847A (zh) | 应用日志采集方法、装置、设备及存储介质 | |
CN117194073A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN114996243A (zh) | 数据库操作方法、装置、电子设备及存储介质 | |
CN113111119A (zh) | 一种操作数据的方法和装置 | |
CN118069723A (zh) | 数据库中转换文件格式的方法、装置、设备和介质 | |
CN117633388A (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 |