CN113672597A - 数据库跨平台迁移方法、装置、系统和设备 - Google Patents
数据库跨平台迁移方法、装置、系统和设备 Download PDFInfo
- Publication number
- CN113672597A CN113672597A CN202111031968.7A CN202111031968A CN113672597A CN 113672597 A CN113672597 A CN 113672597A CN 202111031968 A CN202111031968 A CN 202111031968A CN 113672597 A CN113672597 A CN 113672597A
- Authority
- CN
- China
- Prior art keywords
- data
- source
- header
- database
- length
- 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
Images
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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据库跨平台迁移方法、装置、系统和设备,可应用于大数据领域以及金融领域。其中,方法包括:根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,从源数据库中导出源数据并转换为通用格式,得到中间数据,根据头数据和中间数据确定中间文件,向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库,由此即可实现源端包含的源数据库中的数据迁移到接收端包含的目标数据库中。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及数据库跨平台迁移方法、装置、系统和设备。
背景技术
随着计算机技术和互联网技术的发展,数据库的应用已深入到人们的生活、工作等各方面。在某些场景中,需要对数据库进行迁移。如果为同平台、同类型的数据库,往往存在厂商开发的现成工具,迁移较为简单。但是如果涉及到跨平台如aix迁移到X86,oracle迁移到sqlserver等情况,无法使用数据库自带的工具进行迁移,而且不同数据库平台之间往往在数据存储上、标准上也有一些差异,难以直接进行迁移。
发明内容
有鉴于此,本申请提供了数据库跨平台迁移方法、装置、系统和设备,用于将源端包含的源数据库中的数据迁移到接收端包含的目标数据库中,其技术方案如下:
一种数据库跨平台迁移方法,应用于源端,包括:
根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,源表格为源数据库中用于存储源数据的表格,头长度为头数据包含的数据长度;
从源数据库中导出源数据并转换为通用格式,得到中间数据;
根据头数据和中间数据确定中间文件,其中,中间文件的文件名中包括头长度;
向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库。
可选的,源表格中各单元格分别包含的源数据长度,确定头数据和头长度,包括:
由源表格中每行包含的单元格个数、预设标识符和源表格中每行下的各单元格分别包含的源数据长度组成头数据,其中,预设标识符用于连接源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度;
根据头数据包含的数据长度,确定头长度。
一种数据库跨平台迁移方法,应用于接收端,包括:
在接收到源端发送来的数据接收通知时,从源端下载中间文件,其中,中间文件由源端根据中间数据和头数据确定,中间文件的文件名中包括头长度,中间数据由源端对从源数据库中导出的源数据进行通用格式转换得到,头数据由源端根据源表格中各单元格分别包含的源数据长度确定,源表格为源数据库中用于存储源数据的表格,头长度表征文件头数据包含的数据长度;
根据头长度,从下载的中间文件中确定头数据和中间数据;
根据头数据将中间数据导入目标数据库。
可选的,在从源端下载中间文件之后,还包括:
通过消息摘要算法计算下载的中间文件的摘要值,作为第二摘要值;
将第二摘要值发送至源端,以便源端在对第一摘要值和第二摘要值进行比较后,将比较结果发送至接收端,其中,第一摘要值由源端通过消息摘要算法对中间文件进行计算得到;
根据来自源端的比较结果,确定是否重新下载中间文件。
可选的,头数据中包括源表格中每行包含的单元格个数、预设标识符和源表格中每行下的各单元格分别包含的源数据长度,预设标识符用于连接源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度;
根据头数据将中间数据导入目标数据库,包括:
从头数据包含的各数据中确定预设标识符;
根据预设标识符,从头数据中确定源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度;
根据源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度,分别从中间数据中取出对应源数据长度的中间数据并导入目标数据库的对应位置。
可选的,还包括:
根据源数据库中的源数据对目标数据库中导入的数据进行校验。
一种数据库跨平台迁移系统,包括源端和接收端,其中,源端和接收端分别实现前述数据库跨平台迁移方法中相关步骤。
一种数据库跨平台迁移装置,应用于源端,包括:头信息确定模块、中间数据确定模块、中间文件确定模块和通知发送模块;
头信息确定模块,用于根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,源表格为源数据库中用于存储源数据的表格,头长度为头数据包含的数据长度;
中间数据确定模块,用于从源数据库中导出源数据并转换为通用格式,得到中间数据;
中间文件确定模块,用于根据头数据和中间数据确定中间文件,其中,中间文件的文件名中包括头长度;
通知发送模块,用于向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库。
一种数据库跨平台迁移装置,应用于接收端,包括:中间文件下载模块、中间文件区分模块和数据导入模块;
中间文件下载模块,用于在接收到源端发送来的数据接收通知时,从源端下载中间文件,其中,中间文件由源端根据中间数据和头数据确定,中间文件的文件名中包括头长度,中间数据由源端对从源数据库中导出的源数据进行通用格式转换得到,头数据由源端根据源表格中各单元格分别包含的源数据长度确定,源表格为源数据库中用于存储源数据的表格,头长度表征文件头数据包含的数据长度;
中间文件区分模块,用于根据头长度,从下载的中间文件中确定头数据和中间数据;
数据导入模块,用于根据头数据将中间数据导入目标数据库。
一种数据库跨平台迁移设备,包括存储器和处理器;
存储器,用于存储程序;
处理器,用于执行程序,实现前述数据库跨平台迁移方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现前述数据库跨平台迁移方法的各个步骤。
经由上述的技术方案可知,本申请提供的数据库跨平台迁移方法,从源数据库中导出源数据并转换为通用格式,得到中间数据,根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,根据头数据和中间数据确定中间文件,向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库,由此即可实现源端包含的源数据库中的数据迁移到接收端包含的目标数据库中。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的数据库跨平台迁移方法的流程示意图;
图2为本申请实施例提供的应用于源端的数据库跨平台迁移装置的结构示意图;
图3为本申请实施例提供的应用于接收端的数据库跨平台迁移装置的结构示意图;
图4为本申请实施例提供的应用于源端的数据库跨平台迁移设备的硬件结构框图;
图5为本申请实施例提供的应用于接收端的数据库跨平台迁移设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
鉴于现有技术中不同数据库平台之间往往在数据难以直接进行迁移,本案发明人进行了深入研究,最终提出了数据库跨平台迁移方法、装置、系统和设备。
需要说明的是,本发明提供的数据库跨平台迁移方法、装置、系统和设备可用于大数据领域以及金融领域。上述仅为示例,并不对本发明提供的数据库跨平台迁移方法、装置、系统和设备的应用领域进行限定。
首先,通过下述实施例对本申请提供的数据库跨平台迁移方法进行详细介绍。
可选的,本申请实施例可设置一控制模块,以通过控制模块来监控数据迁移进度,并在迁移出现异常(如文件传输失败)时,通过报错的方式通知用户,对于能够自动处理的异常(如MD5值校验失败时重新下载中间文件),以低等级事件的形式提醒用户;此外,可通过监控模块配置源数据库(设置在源端)和目标数据库(设置在接收端,源端和接收端处于不同的数据库平台)的相关参数,例如服务器ip,数据库连接字符串等,以及,辅助和引导用户根据源数据库ddl(数据库定义语言,即建表语句等,非查询、修改等语句)生成目标数据库ddl。配置好上述数据后,即可实施数据库跨平台迁移。
请参阅图1,示出了本申请实施例提供的数据库跨平台迁移方法的流程示意图,该数据库跨平台迁移方法可以包括:
步骤S101、源端根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度。
在本步骤中,源表格是指源数据库中用于存储源数据的表格。这里,源数据库位于源端,该源数据库中存储有源数据,并且源数据在源数据库中以表格形式存储。可选的,源数据库为关系型数据库。
举例来说,源表格中存储的源数据如下表1所示。
表1 源表格中存储的源数据
这 | 是 | 一 | 句 | 9 | 字 | 的 | 句 | 子 |
这是 | 这是 | 这是 | 这是 | 这是 | 这是 | 这是 | 这是 | 这是 |
本领域技术人员应当理解,源表格中的每个单元格均可包含一个或多个源数据,例如,表1第一行下的每个单元格均包含一个源数据,第二行下的每个单元格均包含2个源数据。本实施例在进行数据库跨平台迁移时,为避免出现数据迁移位置出错的情况,本步骤可通过头数据对源表格中各单元格分别包含的源数据长度进行记录。
可选的,本步骤“根据源表格中各单元格分别包含的源数据长度,确定头数据”的过程可以包括:由源表格中每行包含的单元格个数、预设标识符和源表格中每行下的各单元格分别包含的源数据长度组成头数据,这里,预设标识符用于连接源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度,也即基于预设标识符即可很容易区分出哪些数据为源表格中每行包含的单元格个数,哪些数据为源表格中每行下的各单元格分别包含的源数据长度。例如,以预设标识符为“/”举例,头数据的格式为:源表格中每行包含的单元格个数/源表格中每行下的各单元格分别包含的源数据长度。
仍以表1中的源数据进行说明,根据表1示出的源数据,每行包含的单元格个数均为9,第一行下的每个单元格均包含1个源数据,第二行下的每个单元格均包含2个源数据,则头数据为:9/111111111222222222。
在本步骤中,确定出头数据后,还可进一步确定头长度,即头数据包含的数据长度,例如,若头数据为9/111111111222222222,则头长度为20。
步骤S102、源端从源数据库中导出源数据并转换为通用格式,得到中间数据。
由于不同数据库平台包含的数据库中数据的编码格式可能不相同,为了便于进行数据库跨平台迁移,本步骤可将源数据转换为通用格式。可选的,将源数据转换为通用格式的过程包括:通过unicode编码方式将源数据转换为通用格式,例如,通过UTF-8编码方式将源数据转换为通用格式。本实施例采用unitcode编码,可得到人不可读的中间数据,从而后续将中间数据导入目标数据时安全性更高,并且采用unitcode编码可防止出现码制问题。
例如,本步骤对表1中的源数据进行unicode编码后,得到的中间数据为:\u8fd9\u662f\u4e00\u53e5\u0039\u5b57\u7684\u53e5\u5b50\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f。
需要说明的是,为了提高效率,本步骤从源数据库导出源数据和转换格式的过程可以以流水线的方式同时进行,即一边从源数据库导出源数据,一边将源数据转换为通用格式。
步骤S103、源端根据头数据和中间数据确定中间文件。
本步骤可将头数据和中间数据一起存入中间文件,该中间文件是基于源数据库和目标数据库的过渡文件,本步骤确定中间文件后,后续可基于中间文件将源数据导入目标数据库。需要说明的是,本步骤在将头数据和中间数据存入中间文件时,不会添加除头数据和中间数据以外的任何数据,例如,不会添加换行符等字符。本实施例通过设计中间文件,可避免不同数据库平台迁移过程出现乱码、格式等问题。
可选的,由于中间数据为通用格式,为了整齐,头数据在存入中间数据时也必须先转换为通用格式,也即,先将头数据转换为通用格式,得到格式转换后的头数据,之后再将格式转换后的头数据和中间数据依次存入中间文件。例如,先将头数据9/111111111222222222通过unicode编码转换为\u0039\u002f\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032,再将其和中间数据依次存入中间文件。
可以理解的是,头数据和中间数据均可能包含很多数据,并且头数据包含的数据长度远远小于中间数据包含的数据长度,那么本步骤可使头数据在中间数据的前边,即中间文件中的前若干个数据为头数据,头数据之后的数据为中间数据。例如,仍以表1中的源数据为例,中间文件包含的数据内容为:\u0039\u002f\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u8fd9\u662f\u4e00\u53e5\u0039\u5b57\u7684\u53e5\u5b50\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f。
可见,中间文件中仅包含头数据和中间数据,那么后续导入目标数据库时必须确定哪些数据是头数据,哪些数据是中间数据,基于此,在一可选实施例中,可在中间文件的文件名中记录头长度,以便根据头长度能够确定出头数据和中间数据。
可选的,中间文件的文件名中包括唯一标识字符串和头长度,此时,中间文件的文件名的命名规则可以为:唯一标识字符串.头长度,例如表1对应的中间文件的文件名为202101011111122.20。
可选的,本步骤可在源数据的数据量较大时,按照设定数量将头数据和中间数据依次存入多个中间文件中。这样做的好处在于:第一,可以在后续步骤中多文件并发传输,以提高传输效率;第二,如果某个文件传输出现问题,只需重新传输出现问题的中间文件,而不需要传输所有中间文件,节约时间。
值得注意的是,若按照设定数量将头数据和中间数据依次存入多个中间文件中,则本步骤不会将头数据存入每个中间文件,而是仅在生成的第一个中间文件中存入头长度,也即,第一个中间文件中包括头数据和中间数据,之后的中间文件仅包含中间数据。例如,假设源数据库中存储了十万个源数据,头长度为20,若按照每个中间文件存储4万个源数据,则可将头数据以及第1~39980个源数据存入中间文件1,将第39981~79980个源数据存入中间文件2,将第79981~100000个源数据存入中间文件3。还需要说明的是,为了后续导入目标数据库时不出错,本步骤可在对多个中间文件命名时,在文件名中增加能够表征其生成顺序的标识号,也即,每个中间文件的文件名均包括唯一标识字符串、头长度和自身标识号。
还需要说明的是,本实施例可以以流水线的方式处理上述步骤S102与本步骤S103,即一边导出源数据并转换为通用格式,一边存入中间文件。
步骤S104、源端向接收端发送数据接收通知。
在本步骤中,源端确定出中间文件后,可向接收端发送数据接收通知,以通知接收端开始接收数据。
可选的,源端还可在确定出中间文件后,还通过消息摘要算法对中间文件进行计算,得到中间文件对应的第一摘要值,例如,计算中间文件的MD5值。若源端确定出多个中间文件,则通过消息摘要算法分别计算每个中间文件对应的第一摘要值。
步骤S105、接收端在接收到源端发送来的数据接收通知时,从源端下载中间文件。
可选的,本步骤可通过http协议向源端进行多线程下载,以提高下载效率;同时,本步骤在从源端下载中间文件时,可支持断点续传,即在下载中断时,能够从断点处继续下载中间文件。
可选的,本步骤在下载中间文件后,可通过消息摘要算法计算下载的中间文件的摘要值,即第二摘要值(例如MD5值),并将第二摘要值发送至源端,以便源端对第一摘要值和第二摘要值进行比较后,将比较结果发送至接收端。这里,若源端确定出多个中间文件,则接收端下载多个中间文件后悔计算得到多个第二摘要值,相对应的,源端会将多个比较结果发送至接收端。
接收端在接收到比较结果后,会根据比较结果确定是否重新下载中间文件。其中,若比较结果为第一摘要值与第二摘要值相同,说明接收端此前下载的中间文件未出错,此时不再重新下载中间文件;若比较结果为第一摘要值与第二摘要值不相同,说明接收端此前下载的中间文件出错,此时需要重新下载中间文件。
步骤S106、接收端根据头长度,从下载的中间文件中确定头数据和中间数据。
接收端下载中间文件后,可根据中间文件的文件名确定头长度,之后可根据头长度从下载的中间文件中确定头数据和中间数据。
例如,若中间文件的文件名为202101011111122.20,数据内容为:\u0039\u002f\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u8fd9\u662f\u4e00\u53e5\u0039\u5b57\u7684\u53e5\u5b50\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f,则可将前20个数据作为头数据,后续数据作为中间数据,也即,文件头数据为:\u0039\u002f\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032,中间文件为:\u8fd9\u662f\u4e00\u53e5\u0039\u5b57\u7684\u53e5\u5b50\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f\u8fd9\u662f。
步骤S107、接收端根据头数据将中间数据导入目标数据库。
前述已经说明了,不同数据库平台包含的数据库中数据的编码格式可能不相同,若需要将中间数据导入目标数据库,则需要按照目标数据库中数据的编码格式对中间数据进行格式转换,之后再导入目标数据库。可选的,对头数据也进行相应的格式转换,以便于本步骤的操作。
可选的,本步骤根据头数据将中间数据导入目标数据库的过程可以包括以下步骤S1071~步骤S1073:
步骤S1071、从头数据包含的各数据中确定预设标识符。
可选的,本步骤可按照目标数据库中数据的编码格式对头数据进行格式转换,之后再从头数据包含的各数据中确定预设标识符。例如,头数据为\u0039\u002f\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032\u0032,进行格式转换后,头数据变为9/111111111222222222,根据该头数据可很容易确定出预设标识符“/”。
步骤S1072、根据预设标识符,从头数据中确定源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度。
例如,对于头数据9/111111111222222222,源表格中每行包含的单元格个数为9,源表格中每行下的各单元格分别包含的源数据长度为111111111222222222。
步骤S1073、根据源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度,分别从中间数据中取出对应源数据长度的中间数据并导入目标数据库的对应位置。
本步骤可预先在目标数据库建立与源表格相同的目标表格,例如建立与表1相同的2行9列的表格。
以目标格式下的中间文件为“这是一句9字的句子这是这是这是这是这是这是这是这是这是”,源表格中每行包含的单元格个数为9,源表格中每行下的各单元格分别包含的源数据长度为“111111111222222222”为例对本步骤进行说明。
第一步:根据源表格中每行下的各单元格分别包含的源数据长度,从中间数据中取“1”个数据,即“这”,导入目标表格的第1行第1列。
第二步:根据源表格中每行下的各单元格分别包含的源数据长度,从中间数据中取“1”个数据,即“是”,导入目标表格的第1行第2列。
…
以此类推,第九步:根据源表格中每行下的各单元格分别包含的源数据长度,从中间数据中取“1”个数据,即“子”,导入目标表格的第1行第9列(通过计数,已达到源表格中每行包含的单元格个数9,之后导入目标表格的第2行)。
第十步:根据源表格中每行下的各单元格分别包含的源数据长度,从中间数据中取“2”个数据,即“这是”,导入目标表格的第2行第1列。
…,以此类推,直至导入全部中间数据。
步骤S108、根据源数据库中的源数据对目标数据库中导入的数据进行校验。
现有技术中,迁移完成后需要人工进行校验,即通过人工观察方式检查数据库迁移后数据是否迁移正确,费时费力。基于此,本实施例设计了校验模块,在迁移完成后可自动运行脚本,以通过校验模块对新旧数据库进行比对,即根据源数据库中的源数据校验目标数据库中导入的数据是否有错。
可选的,该校验模块可设置在源端或接收端,当然,该校验模块也可设置在第三端,本申请对此不进行限定。
可选的,本步骤“根据源数据库中的源数据对目标数据库中导入的数据进行校验”可分为简单校验、随机抽取校验和全量校验。其中,简单校验是指:校验源数据库中的源数据对应的行数与目标数据库中导入的数据对应的行数是否相同;随机抽取校验是指:校验源数据库中预设字段对应的行包含的源数据和目标数据库中预设字段对应的行包含的数据是否相同,这里,预设字段为用户预先设定的特殊字段,例如,预设字段为时间、编号等特殊字段;全量校验是指:逐行校验源数据库中的所有源数据与目标数据库中导入的所有数据是否相同。
本申请提供的数据库跨平台迁移方法,从源数据库中导出源数据并转换为通用格式,得到中间数据,根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,根据头数据和中间数据确定中间文件,向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库,由此即可实现源端包含的源数据库中的数据迁移到接收端包含的目标数据库中,即实现了自动化的数据库跨平台迁移。并且,本申请使得开发和运维人员可以便利地进行跨平台的数据库迁移,不需要每次迁移都进行开发,只需要进行一些配置,即可全自动化的完成跨平台迁移,并且不需要担心码制、格式带来的问题。
下面对本申请实施例提供的数据库跨平台迁移装置进行描述,下文描述的数据库跨平台迁移装置与上文描述的数据库跨平台迁移装置可相互对应参照。
首先,对应用于源端的数据库跨平台迁移装置进行介绍,如图2所示,该应用于源端的数据库跨平台迁移装置可以包括:头信息确定模块201、中间数据确定模块202、中间文件确定模块203和通知发送模块204。
头信息确定模块201,用于根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,源表格为源数据库中用于存储源数据的表格,头长度为头数据包含的数据长度。
中间数据确定模块202,用于从源数据库中导出源数据并转换为通用格式,得到中间数据。
中间文件确定模块203,用于根据头数据和中间数据确定中间文件,其中,中间文件的文件名中包括头长度。
通知发送模块204,用于向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库。
在一种可能的实现方式中,上述头信息确定模块201可以包括:头数据确定模块和头长度确定模块。
其中,头数据确定模块,用于由源表格中每行包含的单元格个数、预设标识符和源表格中每行下的各单元格分别包含的源数据长度组成头数据,其中,预设标识符用于连接源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度;
头长度确定模块,用于根据头数据包含的数据长度,确定头长度。
进一步,结合图3,对应用于接收端的数据库跨平台迁移装置进行介绍,如图3所示,该应用于接收端的数据库跨平台迁移装置可以包括:中间文件下载模块301、中间文件区分模块302和数据导入模块303。
中间文件下载模块301,用于在接收到源端发送来的数据接收通知时,从源端下载中间文件,其中,中间文件由源端根据中间数据和头数据确定,中间文件的文件名中包括头长度,中间数据由源端对从源数据库中导出的源数据进行通用格式转换得到,头数据由源端根据源表格中各单元格分别包含的源数据长度确定,源表格为源数据库中用于存储源数据的表格,头长度表征文件头数据包含的数据长度。
中间文件区分模块302,用于根据头长度,从下载的中间文件中确定头数据和中间数据。
数据导入模块303,用于根据头数据将中间数据导入目标数据库。
在一种可能的实现方式中,在中间文件下载模块301之后,本申请实施例提供的应用于接收端的数据库跨平台迁移装置还可以包括:第二摘要值计算模块、第二摘要值发送模块和重下载判断模块。
其中,第二摘要值计算模块,用于通过消息摘要算法计算下载的中间文件的摘要值,作为第二摘要值。
第二摘要值发送模块,用于将第二摘要值发送至源端,以便源端在对第一摘要值和第二摘要值进行比较后,将比较结果发送至接收端,其中,第一摘要值由源端通过消息摘要算法对中间文件进行计算得到。
重下载判断模块,用于根据来自源端的比较结果,确定是否重新下载中间文件。
在一种可能的实现方式中,上述头数据中包括源表格中每行包含的单元格个数、预设标识符和源表格中每行下的各单元格分别包含的源数据长度,预设标识符用于连接源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度。
基于此,数据导入模块303可以包括:标识符确定模块、头数据区分模块和数据导入子模块。
其中,标识符确定模块,用于从头数据包含的各数据中确定预设标识符。
头数据区分模块,用于根据预设标识符,从头数据中确定源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度;
数据导入子模块,用于根据源表格中每行包含的单元格个数和源表格中每行下的各单元格分别包含的源数据长度,分别从中间数据中取出对应源数据长度的中间数据并导入目标数据库的对应位置。
在一种可能的实现方式中,本申请实施例提供的应用于接收端的数据库跨平台迁移装置还可以包括:校验模块。
该校验模块,用于根据源数据库中的源数据对目标数据库中导入的数据进行校验。
本申请实施例还提供了一种应用于源端的数据库跨平台迁移设备。可选的,图4示出了应用于源端的数据库跨平台迁移设备的硬件结构框图,参照图4,该应用于源端的数据库跨平台迁移设备的硬件结构可以包括:至少一个处理器401,至少一个通信接口402,至少一个存储器403和至少一个通信总线404;
在本申请实施例中,处理器401、通信接口402、存储器403、通信总线404的数量为至少一个,且处理器401、通信接口402、存储器403通过通信总线404完成相互间的通信;
处理器401可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器403可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器403存储有程序,处理器401可调用存储器403存储的程序,所述程序用于:根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,源表格为源数据库中用于存储源数据的表格,头长度为头数据包含的数据长度;
从源数据库中导出源数据并转换为通用格式,得到中间数据;
根据头数据和中间数据确定中间文件,其中,中间文件的文件名中包括头长度;
向接收端发送数据接收通知,以便接收端从源端下载中间文件,并在根据头长度,从下载的中间文件中确定头数据和中间数据后,根据头数据将中间数据导入目标数据库。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供了一种应用于接收端的数据库跨平台迁移设备。可选的,图5示出了应用于接收端的数据库跨平台迁移设备的硬件结构框图,参照图5,该应用于接收端的数据库跨平台迁移设备的硬件结构可以包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个通信总线504;
在本申请实施例中,处理器501、通信接口502、存储器503、通信总线504的数量为至少一个,且处理器501、通信接口502、存储器503通过通信总线504完成相互间的通信;
处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器503存储有程序,处理器501可调用存储器503存储的程序,所述程序用于:
在接收到源端发送来的数据接收通知时,从源端下载中间文件,其中,中间文件由源端根据中间数据和头数据确定,中间文件的文件名中包括头长度,中间数据由源端对从源数据库中导出的源数据进行通用格式转换得到,头数据由源端根据源表格中各单元格分别包含的源数据长度确定,源表格为源数据库中用于存储源数据的表格,头长度表征文件头数据包含的数据长度;
根据头长度,从下载的中间文件中确定头数据和中间数据;
根据头数据将中间数据导入目标数据库。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如前述源端在数据库跨平台迁移方法中的各个处理流程。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如前述接收端在数据库跨平台迁移方法中的各个处理流程。
本申请实施例还提供了一种数据库跨平台迁移系统,该数据库跨平台迁移系统包括源端和接收端,其中,源端和接收端的具体实现逻辑可参照前述数据库跨平台迁移方法部分的相关介绍,此处不再赘述。
最后,还需要说明的是,在本文中,诸如和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库跨平台迁移方法,其特征在于,应用于源端,包括:
根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,所述源表格为源数据库中用于存储源数据的表格,所述头长度为所述头数据包含的数据长度;
从所述源数据库中导出所述源数据并转换为通用格式,得到中间数据;
根据所述头数据和所述中间数据确定中间文件,其中,所述中间文件的文件名中包括所述头长度;
向接收端发送数据接收通知,以便所述接收端从所述源端下载所述中间文件,并在根据所述头长度,从下载的中间文件中确定所述头数据和所述中间数据后,根据所述头数据将所述中间数据导入目标数据库。
2.根据权利要求1所述的数据库跨平台迁移方法,其特征在于,所述源表格中各单元格分别包含的源数据长度,确定头数据和头长度,包括:
由所述源表格中每行包含的单元格个数、预设标识符和所述源表格中每行下的各单元格分别包含的源数据长度组成所述头数据,其中,所述预设标识符用于连接所述源表格中每行包含的单元格个数和所述源表格中每行下的各单元格分别包含的源数据长度;
根据所述头数据包含的数据长度,确定所述头长度。
3.一种数据库跨平台迁移方法,其特征在于,应用于接收端,包括:
在接收到源端发送来的数据接收通知时,从所述源端下载中间文件,其中,所述中间文件由所述源端根据中间数据和头数据确定,所述中间文件的文件名中包括头长度,所述中间数据由所述源端对从源数据库中导出的源数据进行通用格式转换得到,所述头数据由所述源端根据源表格中各单元格分别包含的源数据长度确定,所述源表格为所述源数据库中用于存储所述源数据的表格,所述头长度表征所述文件头数据包含的数据长度;
根据所述头长度,从下载的中间文件中确定所述头数据和所述中间数据;
根据所述头数据将所述中间数据导入目标数据库。
4.根据权利要求3所述的数据库跨平台迁移方法,其特征在于,在所述从所述源端下载中间文件之后,还包括:
通过消息摘要算法计算所述下载的中间文件的摘要值,作为第二摘要值;
将所述第二摘要值发送至所述源端,以便所述源端在对第一摘要值和所述第二摘要值进行比较后,将比较结果发送至所述接收端,其中,所述第一摘要值由所述源端通过所述消息摘要算法对所述中间文件进行计算得到;
根据来自所述源端的比较结果,确定是否重新下载所述中间文件。
5.根据权利要求4所述的数据库跨平台迁移方法,其特征在于,所述头数据中包括所述源表格中每行包含的单元格个数、预设标识符和所述源表格中每行下的各单元格分别包含的源数据长度,所述预设标识符用于连接所述源表格中每行包含的单元格个数和所述源表格中每行下的各单元格分别包含的源数据长度;
所述根据所述头数据将所述中间数据导入目标数据库,包括:
从所述头数据包含的各数据中确定所述预设标识符;
根据所述预设标识符,从所述头数据中确定所述源表格中每行包含的单元格个数和所述源表格中每行下的各单元格分别包含的源数据长度;
根据所述源表格中每行包含的单元格个数和所述源表格中每行下的各单元格分别包含的源数据长度,分别从所述中间数据中取出对应源数据长度的中间数据并导入所述目标数据库的对应位置。
6.根据权利要求5所述的数据库跨平台迁移方法,其特征在于,还包括:
根据所述源数据库中的源数据对所述目标数据库中导入的数据进行校验。
7.一种数据库跨平台迁移系统,其特征在于,包括源端和接收端,其中,所述源端用于实现如权利要求1~2任一项的数据库跨平台迁移方法的各个步骤,所述接收端用于实现如权利要求3~6任一项的数据库跨平台迁移方法的各个步骤。
8.一种数据库跨平台迁移装置,其特征在于,应用于源端,包括:头信息确定模块、中间数据确定模块、中间文件确定模块和通知发送模块;
所述头信息确定模块,用于根据源表格中各单元格分别包含的源数据长度,确定头数据和头长度,其中,所述源表格为源数据库中用于存储源数据的表格,所述头长度为所述头数据包含的数据长度;
所述中间数据确定模块,用于从所述源数据库中导出所述源数据并转换为通用格式,得到中间数据;
所述中间文件确定模块,用于根据所述头数据和所述中间数据确定中间文件,其中,所述中间文件的文件名中包括所述头长度;
所述通知发送模块,用于向接收端发送数据接收通知,以便所述接收端从所述源端下载所述中间文件,并在根据所述头长度,从下载的中间文件中确定所述头数据和所述中间数据后,根据所述头数据将所述中间数据导入目标数据库。
9.一种数据库跨平台迁移装置,其特征在于,应用于接收端,包括:中间文件下载模块、中间文件区分模块和数据导入模块;
所述中间文件下载模块,用于在接收到源端发送来的数据接收通知时,从所述源端下载中间文件,其中,所述中间文件由所述源端根据中间数据和头数据确定,所述中间文件的文件名中包括头长度,所述中间数据由所述源端对从源数据库中导出的源数据进行通用格式转换得到,所述头数据由所述源端根据源表格中各单元格分别包含的源数据长度确定,所述源表格为所述源数据库中用于存储所述源数据的表格,所述头长度表征所述文件头数据包含的数据长度;
所述中间文件区分模块,用于根据所述头长度,从下载的中间文件中确定所述头数据和所述中间数据;
所述数据导入模块,用于根据所述头数据将所述中间数据导入目标数据库。
10.一种数据库跨平台迁移设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~2任一项所述的应用于源端的数据库跨平台迁移方法,或者,权利要求3~6任一项所述的应用于接收端的数据库跨平台迁移方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031968.7A CN113672597A (zh) | 2021-09-03 | 2021-09-03 | 数据库跨平台迁移方法、装置、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031968.7A CN113672597A (zh) | 2021-09-03 | 2021-09-03 | 数据库跨平台迁移方法、装置、系统和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672597A true CN113672597A (zh) | 2021-11-19 |
Family
ID=78548248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111031968.7A Pending CN113672597A (zh) | 2021-09-03 | 2021-09-03 | 数据库跨平台迁移方法、装置、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672597A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115639972A (zh) * | 2022-12-23 | 2023-01-24 | 北京志翔科技股份有限公司 | 数据迁移方法、装置、电子设备以及存储介质 |
CN117075960A (zh) * | 2023-10-17 | 2023-11-17 | 统信软件技术有限公司 | 程序重构方法、应用跨平台迁移方法、装置与计算设备 |
-
2021
- 2021-09-03 CN CN202111031968.7A patent/CN113672597A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115639972A (zh) * | 2022-12-23 | 2023-01-24 | 北京志翔科技股份有限公司 | 数据迁移方法、装置、电子设备以及存储介质 |
CN117075960A (zh) * | 2023-10-17 | 2023-11-17 | 统信软件技术有限公司 | 程序重构方法、应用跨平台迁移方法、装置与计算设备 |
CN117075960B (zh) * | 2023-10-17 | 2024-01-23 | 统信软件技术有限公司 | 程序重构方法、应用跨平台迁移方法、装置与计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113672597A (zh) | 数据库跨平台迁移方法、装置、系统和设备 | |
CN111866016B (zh) | 日志的分析方法及系统 | |
WO2019223062A1 (zh) | 系统异常的处理方法和系统 | |
Kobayashi et al. | Towards an NLP-based log template generation algorithm for system log analysis | |
CN113420537B (zh) | 电子表格数据处理方法、装置、设备及存储介质 | |
CN114650163B (zh) | 面向有状态网络协议的模糊测试方法及系统 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN110262978B (zh) | 一种基于长流程自动化测试的接口重试方法及设备 | |
CN112527484A (zh) | 工作流断点续跑方法、装置、计算机设备及可读存储介质 | |
CN112039900A (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
CN116136950B (zh) | 芯片验证方法、装置、系统、电子设备及存储介质 | |
CN111756594B (zh) | 压力测试的控制方法、计算机设备和计算机可读存储介质 | |
CN112256532A (zh) | 测试界面生成方法、装置、计算机设备及可读存储介质 | |
CN115022213B (zh) | 一种请求异常识别的方法与存储介质 | |
CN111832260B (zh) | 一种syslog日志到电力系统通用告警日志的转换方法 | |
CN111680474B (zh) | 文件乱码修复方法及装置 | |
CN114579809A (zh) | 事件分析方法、装置、电子设备及存储介质 | |
CN113792017A (zh) | 一种校验导入excel的模板内容的方法和系统 | |
CN113672233A (zh) | 一种基于Redfish的服务器带外管理方法、装置及设备 | |
CN113420569A (zh) | 代码翻译方法、装置、设备及存储介质 | |
CN110807037B (zh) | 一种数据修改方法、装置、电子设备及存储介质 | |
CN113157584A (zh) | 一种基于HttpClient的模糊测试方法 | |
CN113051329B (zh) | 基于接口的数据采集方法、装置、设备及存储介质 | |
CN113141366B (zh) | 报文报送方法及装置、存储介质和电子设备 | |
CN117056238B (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 |