一种多源数据库数据移植方法及装置、设备及存储介质转让专利

申请号 : CN202310243043.1

文献号 : CN115934684B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋海张保平

申请人 : 布比(北京)网络技术有限公司

摘要 :

本公开涉及一种多源数据库数据移植方法及装置、设备及存储介质,所述方法包括:获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,提供系统化整合后的数据迁移集合解决方案,从根本上解决避免数据迁移适配困难等诸多问题,减少出错疏漏和降低改造成本。

权利要求 :

1.一种多源数据库数据移植方法,其特征在于,所述方法包括:获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;

响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;

提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;

按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,其中,所述提供与所述第一数据库的数据匹配的第一预设标准规则,包括:提取所述第一数据库的数据的特征参数;

根据所述特征参数与至少两种预设标准规则之间的对应关系,将与所述特征参数对应的预设标准规则,作为与所述第一数据库的数据匹配的第一预设标准规则,其中,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比,包括:按照对比内容,将第一预设标准规则分为多个校验模块,其中,校验模块至少包括SQL合法性模块;

调用每一个校验模块,提取当前校验模块的内容信息与抽取的不同类型的数据进行自动比对校验;

输出对比得到的数据差异。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:建立所述第一数据库的数据的副本集,将副本集数据与抽取的不同类型的数据进行对比;

响应于抽取的不同类型的数据与所述第一数据库的数据不一致,对所述第一数据库的数据中指定的不同类型的数据进行重新抽取。

3.根据权利要求1所述的方法,其特征在于,所述抽取的不同类型的数据包括结构化查询语言数据、数据库内置函数、自定义函数、视图、存储过程和索引结构数据中的至少两种。

4.根据权利要求1所述的方法,其特征在于,所述抽取的不同类型的数据包括索引结构数据,所述方法还包括:确定索引结构数据的条数;

响应于索引结构数据的条数超过预设数量,对索引结构数据进行拆分,以对拆分后的索引结构数据按照预设的拆分顺序进行转换。

5.根据权利要求1所述的方法,其特征在于,所述为所述第一数据库的数据提供脚本文件,包括:从所述第一数据库的数据中提取预设关键字;

根据提取的预设关键字确定与所述第一数据库的数据匹配的脚本文件。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:对于不符合第一预设标准规则的抽取的不同类型的数据,进行修正,直到修正后的数据符合第一预设标准规则,生成数据迁移报告。

7.一种多源数据库数据移植装置,其特征在于,包括:获取模块,用于获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;

抽取模块,用于响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;

对比模块,用于提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;

转换模块,用于按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,其中,所述提供与所述第一数据库的数据匹配的第一预设标准规则,包括:提取所述第一数据库的数据的特征参数;

根据所述特征参数与至少两种预设标准规则之间的对应关系,将与所述特征参数对应的预设标准规则,作为与所述第一数据库的数据匹配的第一预设标准规则,其中,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比,包括:按照对比内容,将第一预设标准规则分为多个校验模块,其中,校验模块至少包括SQL合法性模块;

调用每一个校验模块,提取当前校验模块的内容信息与抽取的不同类型的数据进行自动比对校验;

输出对比得到的数据差异。

8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑6中任一项所述的多源数据库数据移植方法。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑6中任一项所述的多源数据库数据移植方法。

说明书 :

一种多源数据库数据移植方法及装置、设备及存储介质

技术领域

[0001] 本公开涉及数据处理技术领域,尤其涉及一种多源数据库数据移植方法及装置、设备及存储介质。

背景技术

[0002] 数据库在服务运行状态下无法复制、移动和发送,在必要情况下需要对目标数据库进行合法的移植操作。
[0003] 相关技术中,通常可以通过以下两种方法对目标数据库进行合法的移植操作:第一种是,部署业务需要的目标数据库,将数据从其他源数据库导入到目标数据库,依次解决语法兼容性、函数兼容性、是否支持自定义函数、存储过程适配问题等不兼容,功能不支持和代码写法等问题;第二种是,安装配置数据库自带可视化软件工具,通过可视化Web界面导出,导入数据,部分格式转换等操作,通过代码,自研发工具,脚本等方式依次排查,解决结构化查询语言语法兼容性问题。
[0004] 然而,以上两种方法具有以下缺陷:数据移植耗时长,数据库适配数据改造工作量大,不同业务环境下,数据库对应业务系统结构化查询语言兼容性、语法兼容性、函数支持和视图存储过程的变化等诸多问题,改造成本非常大,非常复杂,而且容易疏漏,需要投入大量的人力和物力,因技术人员技术层次不一样进度掌控困难而造成项目延期和活动无法按期开展。
[0005] 因此,如何快速高效平滑的实现多源数据库数据移植适配,是亟待解决的问题。

发明内容

[0006] 为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种多源数据库数据移植方法及装置、设备及存储介质。
[0007] 第一方面,本公开的实施例提供了一种多源数据库数据移植方法,包括:
[0008] 获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;
[0009] 响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;
[0010] 提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;
[0011] 按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据。
[0012] 在一种可能的实施方式中,所述方法还包括:
[0013] 建立所述第一数据库的数据的副本集,将副本集数据与抽取的不同类型的数据进行对比;
[0014] 响应于抽取的不同类型的数据与所述第一数据库的数据不一致,对所述第一数据库的数据中指定的不同类型的数据进行重新抽取。
[0015] 在一种可能的实施方式中,所述抽取的不同类型的数据包括结构化查询语言数据、数据库内置函数、自定义函数、视图、存储过程和索引结构数据中的至少两种。
[0016] 在一种可能的实施方式中,所述抽取的不同类型的数据包括索引结构数据,所述方法还包括:
[0017] 确定索引结构数据的条数;
[0018] 响应于索引结构数据的条数超过预设数量,对索引结构数据进行拆分,以对拆分后的索引结构数据按照预设的拆分顺序进行转换。
[0019] 在一种可能的实施方式中,所述提供与所述第一数据库的数据匹配的预设标准规则,包括:
[0020] 提取所述第一数据库的数据的特征参数;
[0021] 根据所述特征参数与至少两种预设标准规则之间的对应关系,将与所述特征参数对应的预设标准规则,作为与所述第一数据库的数据匹配的预设标准规则。
[0022] 在一种可能的实施方式中,所述为所述第一数据库的数据提供脚本文件,包括:
[0023] 从所述第一数据库的数据中提取预设关键字;
[0024] 根据提取的预设关键字确定与所述第一数据库的数据匹配的脚本文件。
[0025] 在一种可能的实施方式中,所述方法还包括:
[0026] 对于不符合第一预设标准规则的抽取的不同类型的数据,进行修正,直到修正后的数据符合第一预设标准规则,生成数据迁移报告。
[0027] 第二方面,本公开的实施例提供了一种多源数据库数据移植装置,包括:
[0028] 获取模块,用于获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;
[0029] 抽取模块,用于响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;
[0030] 对比模块,用于提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;
[0031] 转换模块,用于按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据。
[0032] 第三方面,本公开的实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
[0033] 存储器,用于存放计算机程序;
[0034] 处理器,用于执行存储器上所存放的程序时,实现上述的多源数据库数据移植方法。
[0035] 第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的多源数据库数据移植方法。
[0036] 本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:
[0037] 本公开实施例所述的多源数据库数据移植方法,获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,提供系统化整合后的数据迁移集合解决方案,从根本上解决避免数据迁移适配困难等诸多问题,减少出错疏漏和降低改造成本,同时减少对不同源数据库改造过程和对后端业务的改造痛点问题,同时也会对适配过程和移植过程存在诸多的差异化内容进行相应记录和汇总分析,同时针对存在的适配过程的问题提供相应的解决方案,从根本上解决当前不同数据源数据迁移适配过程存在的诸多问题。

附图说明

[0038] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0039] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1示意性示出了根据本公开实施例的多源数据库数据移植方法流程示意图;
[0041] 图2示意性示出了根据本公开实施例的多源数据库数据移植装置的结构框图;以及
[0042] 图3示意性示出了根据本公开实施例的电子设备的结构框图。

具体实施方式

[0043] 为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0044] 参见图1,本公开的实施例提供了一种多源数据库数据移植方法,包括:
[0045] S1,获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;
[0046] 在一些实施例中,第一数据库可以为Oracle数据库,第二数据库为MYSQL数据库,为所述第一数据库的数据提供的脚本文件,用于按照预设数据抽取顺序对Oracle数据库中不同类型的数据进行抽取。第一数据库的数据可以通过定时任务按照第一数据库的数据路径获取得到。
[0047] 在一些实施例中,第一数据库可以为MYSQL数据库,第二数据库为Oracle数据库。
[0048] 在一些实施例中,在第一数据库为Oracle数据库的情况下,通过SQLPLUS工具从Oracle数据库迁移导出数据,其中,SQLPLUS工具为与oracle数据库进行交互的客户端工具,借助sqlplus可以查看、修改数据库记录,在sqlplus中,可以运行sqlplus命令与sql语句。
[0049] S2,响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;
[0050] 在一些实施例中,所述抽取的不同类型的数据包括结构化查询语言数据、数据库内置函数、自定义函数、视图、存储过程和索引结构数据中的至少两种。
[0051] 在一些实施例中,基于符合PT(Percona Toolkit,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位输入输出占用高的表文件、在线DDL等)工具规范的脚本文件,分别抽取每一种类型的数据,达到拆分数据,归档数据流,使得后期数据改造和转换效率非常高效,而且降低误差率。
[0052] 在一些实施例中,数据抽取通过封装一个函数方法,传参调用带抽取数据的名称实现,数据抽取具体流程以提取存储过程为例如下:
[0053] 通过cusor.callproc()函数调用 P1 存储过程,传入4个参数
[0054] 返回获得的集合,即存储函数中的 SELECT * FROM tmp;
[0055] 以Python固定格式获取返回的值:@_存储过程名_0, 第一个返回值。
[0056] S3,提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;
[0057] 在一些实施例中,预设标准规则可以为数据库官方标准。
[0058] 在一些实施例中,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比,包括:
[0059] 基于脚本文件中预设的对比规则,对于抽取的不同类型的数据中每一种数据,第一预设标准规则中的数据与当前数据进行对比。
[0060] 在一些实施例中,对比流程如下:
[0061] 内置数据库自动化对比规范,接入官方的标准规范和收集到的本地规范,作为第一预设标准规则;
[0062] 按照对比内容,将第一预设标准规则分为多个校验模块,其中,校验模块至少包括SQL合法性模块;
[0063] 调用每一个校验模块,提取当前校验模块的内容信息与抽取的不同类型的数据进行自动比对校验,例如调用SQL合法性模块语法校验;
[0064] 输出对比得到的数据差异,为后续的数据转换提供基础。
[0065] S4,按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据。
[0066] 在一些实施例中,按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,包括:
[0067] 基于脚本文件中预设的转换规则,对符合第一预设标准规则的抽取的不同类型的数据,进行格式、SQL编写逻辑规则,函数功能和索引结构的转换,确定SQL语法、函数、自定义函数和代码写法的兼容性和功能支持性以及存储过程适配性,使得转换后的数据适配第二数据库的数据。
[0068] 在一些实施例中,大小写规则转换,可以利用.lower()函数方法进行转换。
[0069] 在一些实施例中,第一数据库与第二数据库之间的差异信息包括但不限于,数据类型的差异和存储过程的差异。
[0070] 在一些实施例中,第一数据库与第二数据库之间的差异信息为数据类型的差异,且第一数据库为oracle,第二数据库为mysql的情况下,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,包括:
[0071] 利用python封装数据类型转换函数,其中,数据类型转换函数为replace函数,用于将oracle数据的数据类型转换为mysql数据的数据类型;
[0072] 利用blob()方法将mysql数据的数据类型转换为符合mysql标准规则的数据类型和取值范围;
[0073] 将符合mysql标准规则的数据类型和取值范围合并为标准SQL代码。
[0074] 在一些实施例中,第一数据库与第二数据库之间的差异信息为存储过程的差异,且第一数据库为oracle,第二数据库为mysql的情况下,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据,包括:
[0075] 用于创建存储过程和函数的Oracle PL/SQL(SQL 过程语言扩展)命令包含可选的OR REPLACE子句,更改为MySQL中的存储过程:先使用DROP  PROCEDURE再使用CREATEPROCEDURE语句;
[0076] 创建MySQL存储过程或函数时,代码必须指定非默认分隔符“;”(分号)的其他分隔符。因为MySQL会将以 ";" 结尾的每一行视为一个新行,所以我们建议您
[0077] 创建MySQL存储过程或函数时,Oracle中的非默认分隔符“;”(分号),在MySQL中指定非默认分隔符“;”(分号)的其他分隔符,比如使用不同的分隔符(如"$$")来解析所有存储过程。
[0078] 在本实施例中,所述方法还包括:
[0079] 基于脚本文件,将转换的第二数据库的数据录入第二数据库中;
[0080] 记录并分析录入过程中存在的问题,以根据所述问题重新定义转换规则;
[0081] 按照重新定义的转换规则,重新转换第一数据库的数据,并将重新转换后的第二数据库的数据重新录入第二数据库。
[0082] 在本实施例中,将转换的第二数据库的数据录入第二数据库中,包括:
[0083] 对转换的第二数据库的数据进行备份;
[0084] 将备份后的第二数据库的数据录入第二数据库中;
[0085] 对于录入的第二数据库的数据,自动校验数据量、数据表、字段、索引结构和函数功能;
[0086] 根据自动校验的结果生成数据移植适配报告,其中,所述数据移植适配报告包括第二数据库的数据中不同类型数据的适配状态。
[0087] 在本实施例中,可以通过变量传参的方式从第一数据库抽取数据,或者将数据录入第二数据库。
[0088] 在本实施例中,录入的数据为转换完成的数据,例如转换完成的SQL脚本。
[0089] 在一些实施例中,录入方式有两种:第一种,通过PYTHON代码直接将校验好的数据写入目标数据库即可,效率更高,误差率更低,导入操作更规范,节省时间,效率更高,误差率更低,导入操作更规范,节省时间;第二种,也可以通过程序生产规范的SQL脚本,通过MYSQL客户端导入SQL脚本,其中,导入的数据量脚本大小会根据数据量的大小做合理的切割,分批次导入。Python代码直接写入规定的数据方法包括:自定义一个导入数据函数,通过拼接函数,格式化数据后直接导入目标数据库中。
[0090] 在本实施例中,所述方法还包括:
[0091] 基于脚本文件中的SQL命令,提取第一数据库的数据对应的业务数据;
[0092] 对比录入第二数据库的数据与业务数据的数据量;
[0093] 响应于录入第二数据库的数据与业务数据的数据量不一致,记录并输出存在差异的数据;
[0094] 根据有差异的数据调整脚本文件,直到录入第二数据库的数据与业务数据的数据量一致为止。
[0095] 在本实施例中,所述方法还包括:
[0096] 基于与第二数据库匹配的第二预设标准规则,将第二预设标准规则中的数据与转换后的数据进行对比,以确定转换后的数据与第二数据库的适配性。
[0097] 在本实施例中,所述方法还包括:
[0098] 建立所述第一数据库的数据的副本集,将副本集数据与抽取的不同类型的数据进行对比,其中,抽取的不同类型的数据所在索引表为拆分后的索引表的情况下,按照索引表的拆分规则对副本集进行拆分后,将副本集数据与抽取的不同类型的数据进行对比;
[0099] 响应于抽取的不同类型的数据与所述第一数据库的数据不一致,对所述第一数据库的数据中指定的不同类型的数据进行重新抽取;
[0100] 响应于抽取的不同类型的数据与所述第一数据库的数据一致,不予响应。
[0101] 在本实施例中,所述抽取的不同类型的数据包括索引结构数据,所述方法还包括:
[0102] 确定索引结构数据的条数;
[0103] 响应于索引结构数据的条数超过预设数量,对索引结构数据进行拆分,以对拆分后的索引结构数据按照预设的拆分顺序进行转换。
[0104] 在本实施例中,所述抽取的不同类型的数据包括索引结构数据,所述方法还包括:
[0105] 确定索引结构数据所占的存储空间;
[0106] 响应于索引结构数据所占的存储空间超过预设存储空间,对索引结构数据进行拆分,以对拆分后的索引结构数据按照预设的拆分顺序进行转换。
[0107] 在本实施例,步骤S3中,所述提供与所述第一数据库的数据匹配的预设标准规则,包括:
[0108] 提取所述第一数据库的数据的特征参数;
[0109] 根据所述特征参数与至少两种预设标准规则之间的对应关系,将与所述特征参数对应的预设标准规则,作为与所述第一数据库的数据匹配的预设标准规则。
[0110] 在本实施例,步骤S1中,所述为所述第一数据库的数据提供脚本文件,包括:
[0111] 从所述第一数据库的数据中提取预设关键字;
[0112] 根据提取的预设关键字确定与所述第一数据库的数据匹配的脚本文件。
[0113] 在本实施例中,所述方法还包括:
[0114] 对于不符合第一预设标准规则的抽取的不同类型的数据,进行修正,直到修正后的数据符合第一预设标准规则,生成数据迁移报告。
[0115] 在一些实施例中,对于不符合第一预设标准规则的抽取的不同类型的数据通过以下步骤得到:
[0116] 对分类抽取的数据进行分类分模块化的存储,得到存储的多种数据;
[0117] 通过将存储的每一种数据与第一预设标准规则进行对比,得到不符合第一预设标准规则的数据,用于下一步对不符合第一预设标准规则的数据进行修改
[0118] 在一些实施例中,不符合第一预设标准规则的数据为非法字符串或者大小写语法不合法的数据等。
[0119] 在本实施例中,流程化,模块化,高效率的处理不符合第一预设标准规则的数据的内容,无误差的处理不符合第一预设标准规则的数据,能够保证高效的数据迁移,同时可移植嫁接更多更复杂的业务数据流处理模块,优势是流程化,代码化高效的解决迁移问题。
[0120] 以将Oracle数据库数据移植至MYSQL数据库为例,进一步说明本公开的多源数据库数据移植方法:
[0121] 抽取MYSQL数据库的核心业务指标,所述核心业务指标包括:函数、存储过程、视图、索引结构、自定义函数和功能方法等;
[0122] 确定与Oracle数据库数据匹配的预设脚本;
[0123] 根据预设脚本中的抽取顺序,抽取Oracle数据库数据中的函数、存储过程、视图、索引结构、自定义函数和功能方法等,作为抽取数据;
[0124] 确定与Oracle数据库数据匹配的官方标准规则,根据预设脚本中的比对规则,对抽取的函数、存储过程、视图、索引结构、自定义函数和功能方法等分别进行校对;
[0125] 根据预设脚本中的转换规则,对于符合官方标准规则的抽取数据,对格式进行兼容性调整转换,适配改写SQL编写逻辑规则和函数功能支持,索引结构数据重构,业务环境功能适配,数据准确性和一致性校验,业务整合测试验收,得到适用于MYSQL数据库的数据;
[0126] 对于不符合官方标准的抽取数据,新增用于强制转换抽取数据的工具,直到所有不符合官方标准的抽取数据均转换为适用于MYSQL数据库的数据为止。
[0127] 本公开多源数据库数据移植方法,对于原生数据库源不同,在数据迁移适配过程中存在诸多问题,需要耗时耗力,花费资源来解决数据同源问题的情况,通过预设标准校对出第一数据库的数据的问题,对转换后的第二数据库的数据进行校对,并在转换后的第二数据库的数据录入第二数据库的过程中,生成数据迁移报告,根据数据迁移报告调整预设的脚本文件,使得基于预设的脚本文件转换后的第二数据库的数据更适配第二数据库。
[0128] 参见图2,本公开的实施例提供了一种多源数据库数据移植装置,包括:
[0129] 获取模块21,用于获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;
[0130] 抽取模块22,用于响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;
[0131] 对比模块23,用于提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;
[0132] 转换模块24,用于按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据。
[0133] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0134] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0135] 上述第二个实施例中,获取模块21、抽取模块22、对比模块23和转换模块24中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。获取模块21、抽取模块22、对比模块23和转换模块24中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块21、抽取模块22、对比模块23和转换模块24中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0136] 参见图3,本公开的实施例提供的电子设备,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
[0137] 存储器1130,用于存放计算机程序;
[0138] 处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示多源数据库数据移植方法:
[0139] 获取第一数据库的数据,为所述第一数据库的数据提供脚本文件;
[0140] 响应于提供的脚本文件与所述第一数据库的数据匹配,按照脚本文件中的预设数据抽取顺序,对指定的不同类型的数据进行抽取;
[0141] 提供与所述第一数据库的数据匹配的第一预设标准规则,将第一预设标准规则中的数据与抽取的不同类型的数据进行对比;
[0142] 按照预设数据抽取顺序,根据第一数据库与第二数据库之间的差异信息,将符合第一预设标准规则的抽取的不同类型的数据转换为第二数据库的数据。
[0143] 上述的通信总线1140可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0144] 通信接口1120用于上述电子设备与其他设备之间的通信。
[0145] 存储器1130可以包括随机存取存储器(Random AccessMemory,简称RAM),也可以包括非易失性存储器(non‑volatilememory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
[0146] 上述的处理器1110可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0147] 基于同一发明构思,本公开的第五个示例性实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的多源数据库数据移植方法。
[0148] 该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的多源数据库数据移植方法。
[0149] 根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0150] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0151] 以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。