一种数据传输方法、装置及系统的制作方法

文档序号:10488995阅读:347来源:国知局
一种数据传输方法、装置及系统的制作方法
【专利摘要】本发明公开了一种数据传输方法、装置及系统,其中,应用于第一数据库的数据传输方法包括:响应于接收到的数据传输指令,导出所述第一数据库中与所述数据传输指令相对应的目标数据到所述第一数据库的本地磁盘;将所述第一数据库的本地磁盘中的目标数据进行打包,得到所述目标数据的压缩包;将所述目标数据的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。相对于现有技术中的技术方案,本发明中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
【专利说明】
一种数据传输方法、装置及系统
技术领域
[0001]本发明涉及数据处理技术领域,特别涉及一种数据传输方法、装置及系统。
【背景技术】
[0002]目前,在对数据库之间的数据进行传输时,通常是利用数据库驱动程序将源数据库中的每条数据读取后转换成对象,再将对象写入目的数据库中,而读取和写入数据的转换过程需要大量的时间,由此导致数据的传输效率低下。

【发明内容】

[0003]有鉴于此,本发明提供了一种数据传输方法、装置及系统,用以解决现有技术中利用数据库驱动程序对数据读取并转换成对象再进行数据写入的方式,需要大量的时间,导致数据的传输效率低下的技术问题。
[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]本发明还提供了另一种数据传输装置,应用于调度服务器,所述装置包括:
[0041 ]指令生成单元,用于生成数据传输指令;
[0042]指令传输单元,用于将所述数据传输指令发送至第一数据库,由所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库;
[0043]结果获得单元,用于获得传输结果。
[0044]上述装置,优选的,还包括:
[0045]传输检测单元,用于在所述传输结果表明数据传输失败时,触发所述指令生成单元再次生成所述数据传输指令,以对所述数据传输指令对应的目标数据进行重新传输。
[0046]本发明还提供了一种数据传输系统,包括:第一数据库、第二数据库及调度服务器,其中:
[0047]所述调度服务器生成数据传输指令,并将所述数据传输指令发送至第一数据库;
[0048]所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘;
[0049]所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库;
[0050]所述调度服务器获得传输结果。
[0051]由上述方案可知,本发明提供的一种数据传输方法、装置及系统,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
【附图说明】
[0052]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0053]图1为本发明实施例一提供的一种数据传输方法的实现流程图;
[0054]图2为本发明实施例二提供的一种数据传输方法的实现流程图;
[0055]图3为本发明实施例三提供的一种数据传输方法的实现流程图;
[0056]图4为本发明实施例四提供的一种数据传输方法的实现流程图;
[0057]图5为本发明实施例五提供的一种数据传输装置的结构示意图;
[0058]图6为本发明实施例六提供的一种数据传输装置的结构示意图;
[0059]图7为本发明实施例七提供的一种数据传输装置的结构示意图;
[0060]图8为本发明实施例八提供的一种数据传输子帧的结构示意图;
[0061 ]图9为本发明实施例九提供的一种数据传输系统的结构示意图。
【具体实施方式】
[0062]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063]参考图1,为本发明实施例一提供的一种数据传输方法的实现流程图,其中,所述方法适用于第一数据库,所述第一数据库可以为oracle数据库,或者可以为MySQL数据库,也就是在数据传输中需要将数据进行发送的源数据库。
[0064]本实施例中,所述方法可以包括以下步骤:
[0065]步骤101:响应于接收到的数据传输指令,导出所述第一数据库中与所述数据传输指令相对应的目标数据到所述第一数据库的本地磁盘。
[0066]其中,所述第一数据库的本地磁盘区别于所述第一数据库中存储目标数据的表文件。
[0067]具体的,所述目标数据可以为所述第一数据库中数据表中的文本文件等数据。所述数据传输指令中包含所述目标数据的数据标识,由此,本实施例中在接收到所述数据传输指令之后,对其进行响应,进而在所述第一数据库的相应的数据表中找到与所述数据传输指令相对应的目标数据,将这些目标数据进行导出,置于所述第一数据库的本地磁盘中。
[0068]步骤102:将所述第一数据库的本地磁盘中的目标数据进行打包,得到所述目标数据的压缩包。
[0069]具体的,本实施例中可以利用数据压缩算法或数据封装算法将所述目标数据进行打包,进而得到所述目标数据的压缩包。
[0070]步骤103:将所述目标数据的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。
[0071]其中,本实施例中将所述目标数据的压缩包传输到所述第二数据库的本地磁盘,这里的第二数据库的本地磁盘区别于所述第二数据库存储数据的数据表,进而所述第二数据库再将其本地磁盘中的压缩包进行解压处理,从而导入到所述第二数据库的相应的数据表中。
[0072]需要说明的是,所述第一数据库与所述第二数据库之间的压缩包的传输需要互相设置ssh免登密码登录,进而实现压缩包的成功传输。
[0073]由上述方案可知,本发明实施例一提供的一种数据传输方法,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0074]其中,在所述第二数据库中导入所述目标数据之后,所述第二数据库会返回传输结果给所述第一数据库,而所述第一数据库会将所述传输结果进行输出,以表征所述第一数据库向所述第二数据库的数据传输是否成功。
[0075]基于上述实施例,所述步骤101可以通过以下方式实现:
[0076]利用所述第一数据库的数据导出脚本导出所述第一数据库中的目标数据到其本地磁盘。
[0077]其中,所述数据导出脚本为所述第一数据库自带的数据导出脚本,例如,oracle数据库通过其spool脚本文件将其数据表中的目标数据导出到其本地磁盘,MySQL数据库通过sql脚本文件将其数据表中的目标数据导出到其本地磁盘。
[0078]另外,基于前述实现,本实施例中的所述步骤103可以通过以下方式实现:
[0079]利用所述第一数据库与所述第二数据库之间的网络数据连接,将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。
[0080]也就是说,本实施例中可以可直接利用网络将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。
[0081]参考图2,为本发明实施例二提供的一种数据传输方法的实现流程图,其中,所述方法可以适用于第二数据库,所述第二数据库可以为oracle数据库,或者可以为MySQL数据库,也就是在数据传输中进行数据接收的目的数据库。
[0082]具体的,本实施例中,所述方法可以包括以下步骤:
[0083]步骤201:接收第一数据库发送的目标数据的压缩包。
[0084]具体的,本实施例中通过网络接收所述第一数据库发送的目标数据的压缩包。
[0085]步骤202:将所述目标数据的压缩包放置到所述第二数据库的本地磁盘中。
[0086]步骤203:对所述第二数据库的本地磁盘中的压缩包进行解压处理,得到目标数据。
[0087]其中,本实施例中可以通过解压缩算法或解封装算法对所述第二数据库的本地磁盘中的压缩包进行解压处理,进而得到原始的目标数据。
[0088]步骤204:将解压得到的目标数据导入到所述第二数据库。
[0089]具体的,本实施例中是将解压得到的目标数据导入到所述第二数据库中相应的数据表中,区别于现有技术中直接将目标数据写入到数据表中的技术方案。
[0090]由上述方案可知,本发明实施例二提供的一种数据传输方法,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0091 ]其中,在所述第二数据库中导入所述目标数据之后,所述第二数据库会返回传输结果给所述第一数据库,而所述第一数据库会将所述传输结果进行输出,以表征所述第一数据库向所述第二数据库的数据传输是否成功。
[0092 ]基于前述实现,本实施例中,所述204具体可以通过以下方式实现:
[0093]利用所述第二数据库的数据导入脚本,将解压得到的目标数据入到所述第二数据库。
[0094]其中,所述数据导入脚本即为所述第二数据库自带的数据导入脚本,例如,oracle数据库通过sqlIdr脚本将所述目标数据导入到其相应的数据表中,MySQL数据库通过loaddata inf iIe的脚本将所述目标数据导入到相应的数据表中。
[0095]需要说明的是,在数据导入完成后,可以在该目标数据导入到的数据表中利用后置传输脚本建立相应的索引文件。
[0096]参考图3,为本发明实施例三提供的一种数据传输方法的实现流程图,其中,所述方法适用于调度服务器,所述调度服务器为需要将第一数据库中的数据传输到第二数据库中的服务器,具体的,所述调度服务器、所述第一数据库及所述第二数据库之间需要互相设置ssh免登密码登录,进而实现数据的成功传输。
[0097]其中,本实施例中,所述方法可以包括以下步骤实现:
[0098]步骤301:生成数据传输指令。
[0099]其中,所述数据传输指令的生成可以利用所述调度服务器中部署的调度传输脚本生成,具体的,所述数据传输指令中可以包括有所述第一数据库的IP地址、需要传输的目标数据对应的数据库命名空间以及需要传输的目标数据所在的数据表的表名(可以理解为前文中提到的所述目标数据的数据标识)。
[0100]步骤302:将所述数据传输指令发送至第一数据库。
[0101]相应的,在所述第一数据库接收到所述数据传输指令之后,所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。
[0102]具体的,所述第一数据库可以通过部署多个脚本文件实现其数据传输,包括有:前置条件脚本、导出数据脚本、本地导出数据库数据脚本、打包压缩脚本、网络传输脚本、后置条件脚本及调度结果脚本。相应的,所述前置条件脚本为所述第一数据库调度所述第二数据库在导入所述目标数据之前执行的脚本;所述后置条件脚本为所述第一数据库调度所述第二数据库执行传输完所述目标数据后执行的脚本;导出数据脚本可以通过用户名密码登录本地数据库,执行其自带的本地导出数据库数据脚本,所述本地导出数据库数据脚本通过本地数据库即所述第一数据库自带的方式导出所述目标数据,并自定义字段分隔符,例如,oracle数据库通过其spool脚本文件将其数据表中的目标数据导出到其本地磁盘,MySQL数据库通过sql脚本文件将其数据表中的目标数据导出到其本地磁盘;打包压缩脚本可以将所述本地磁盘上导出的目标数据打包成压缩包;网络传输脚本可以将本地打包成的压缩包通过网络传输到所述第二数据库。
[0103]而所述第二数据库也可以通过部署多个脚本文件来实现其功能,例如:目标前置条件脚本、解压缩脚本、导入数据脚本、本地导入数据库脚本、目标后置传输脚本及调度结果脚本,其中:所述目标前置条件脚本中的脚本内容包括检查数据库索引、删除数据库索弓1、缓存索引名字、删除数据等操作内容;所述解压缩脚本,可以把所述第二数据库本地磁盘中的压缩包解压缩成指定位置的目标数据;所述导入数据脚本,可以通过用户名密码登陆本地数据库,执行本地导入数据库数据脚本;所述本地导入数据库数据脚本,可以通过本地数据库自带的导入方法把解压得到的目标数据导入相应的数据表中,例如,Oracle数据库通过sqlldr把文本文件导入相应的表;mysql数据库通过load data infile的方法把数据导入相应的表;所述目标后置传输脚本,可以在所述目标数据导入的相应的表上建立相应的索引;调度结果脚本,可以在数据导入完成之后,生成传输结果,并将该传输结果返回给所述第一数据库;相应的,所述第一数据库中的所述调度结果脚本将所述第二数据库返回的传输结果返回给所述调度服务器。
[0104]另外,所述第二数据库中所述目标数据的目录可以与所述第一数据库中所述目标数据传输之间的目录一致,进而减少传输的目录的参数。
[0105]步骤303:获得传输结果。
[0106]其中,所述传输结果即为所述第二数据库通过所述第一数据库返回给所述调度服务器的传输结果,所述传输结果表明所述目标数据是否成功的从所述第一数据库传输到所述第二数据库。
[0107]由上述方案可知,本发明实施例三提供的一种数据传输方法,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0108]参考图4,为本发明实施例四提供的一种数据传输方法的实现流程图,其中,在所述步骤303之后,所述方法还可以包括以下步骤:
[0109]步骤304:在所述传输结果表明数据传输失败时,返回执行所述步骤601就,再次生成所述数据传输指令,以对所述数据传输指令对应的目标数据进行重新传输。
[0110]也就是说,所述步骤304对所述传输结果的性质进行解析,进而在所述传输结果表明所述数据传输失败时,返回执行所述步骤301,重新进行所述目标数据的传输。
[0111]具体的,若所述目标数据尝试被传输N次,仍然没有传输成功,可以结束对所述目标数据的传输,这里的N次可以根据用户需求设置,如3次或5次等。
[0112]参考图5,为本发明实施例五提供的一种数据传输装置的结构示意图,其中,所述装置应用于第一数据库,所述第一数据库可以为oracle数据库,或者可以为MySQL数据库,也就是在数据传输中需要将数据进行发送的源数据库。
[0113]本实施例中,所述装置可以包括以下结构:
[0114]数据导出单元501,用于响应于接收到的数据传输指令,导出所述第一数据库中与所述数据传输指令相对应的目标数据到所述第一数据库的本地磁盘。
[0115]其中,所述第一数据库的本地磁盘区别于所述第一数据库中存储目标数据的表文件。
[0116]具体的,所述目标数据可以为所述第一数据库中数据表中的文本文件等数据。所述数据传输指令中包含所述目标数据的数据标识,由此,本实施例中在接收到所述数据传输指令之后,对其进行响应,进而在所述第一数据库的相应的数据表中找到与所述数据传输指令相对应的目标数据,将这些目标数据进行导出,置于所述第一数据库的本地磁盘中。
[0117]数据打包单元502,用于将所述第一数据库的本地裁判中的目标数据进行打包,得到所述目标数据的压缩包。
[0118]具体的,本实施例中可以利用数据压缩算法或数据封装算法将所述目标数据进行打包,进而得到所述目标数据的压缩包。
[0119]数据传输单元503,用于将所述目标数据的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。
[0120]其中,本实施例中将所述目标数据的压缩包传输到所述第二数据库的本地磁盘,这里的第二数据库的本地磁盘区别于所述第二数据库存储数据的数据表,进而所述第二数据库再将其本地磁盘中的压缩包进行解压处理,从而导入到所述第二数据库的相应的数据表中。
[0121]需要说明的是,所述第一数据库与所述第二数据库之间的压缩包的传输需要互相设置ssh免登密码登录,进而实现压缩包的成功传输。
[0122]由上述方案可知,本发明实施例五提供的一种数据传输装置,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0123]其中,在所述第二数据库中导入所述目标数据之后,所述第二数据库会返回传输结果给所述第一数据库,而所述第一数据库会将所述传输结果进行输出,以表征所述第一数据库向所述第二数据库的数据传输是否成功。
[0124]基于前述实现,本实施例中,所述数据导出单元501具体可以通过以下方式实现其功能:
[0125]利用所述第一数据库的数据导出脚本导出所述第一数据库中的目标数据到其本地磁盘。
[0126]其中,所述数据导出脚本为所述第一数据库自带的数据导出脚本,例如,oracle数据库通过其spool脚本文件将其数据表中的目标数据导出到其本地磁盘,MySQL数据库通过sql脚本文件将其数据表中的目标数据导出到其本地磁盘。
[0127]另外,基于前述实现,本实施例中的所述数据传输单元503可以通过以下方式实现其功能:
[0128]利用所述第一数据库与所述第二数据库之间的网络数据连接,将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。
[0129]也就是说,本实施例中可以可直接利用网络将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。
[0130]参考图6,为本发明实施例六提供的一种数据传输装置的结构示意图,其中,所述装置可以应用于第二数据库,所述第二数据库可以为oracle数据库,或者可以为MySQL数据库,也就是在数据传输中进行数据接收的目的数据库。
[0131]具体的,本实施例中,所述装置可以包括以下结构:
[0132]压缩包接收单元601,用于接收第一数据库的目标数据的压缩包。
[0133]具体的,本实施例中通过网络接收所述第一数据库发送的目标数据的压缩包。
[0134]本地放置单元602,用于将所述目标数据的压缩包放置到所述第二数据库的本地磁盘中。
[0135]数据解压单元603,用于对所述第二数据库的本地磁盘中的压缩包进行解压处理,得到目标数据。
[0136]其中,本实施例中可以通过解压缩算法或解封装算法对所述第二数据库的本地磁盘中的压缩包进行解压处理,进而得到原始的目标数据。
[0137]数据导入单元604,用于将解压得到的目标数据导入到所述第二数据库。
[0138]具体的,本实施例中是将解压得到的目标数据导入到所述第二数据库中相应的数据表中,区别于现有技术中直接将目标数据写入到数据表中的技术方案。
[0139]由上述方案可知,本发明实施例六提供的一种数据传输装置,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0140]其中,在所述第二数据库中导入所述目标数据之后,所述第二数据库会返回传输结果给所述第一数据库,而所述第一数据库会将所述传输结果进行输出,以表征所述第一数据库向所述第二数据库的数据传输是否成功。
[0141]基于前述实现,本实施例中,所述数据导入单元604具体可以通过以下方式实现:
[0142]利用所述第二数据库的数据导入脚本,将解压得到的目标数据导入到所述第二数据库。
[0143]其中,所述数据导入脚本即为所述第二数据库自带的数据导入脚本,例如,oracle数据库通过sqlIdr脚本将所述目标数据导入到其相应的数据表中,MySQL数据库通过loaddata inf iIe的脚本将所述目标数据导入到相应的数据表中。
[0144]需要说明的是,在数据导入完成后,可以在该目标数据导入到的数据表中利用后置传输脚本建立相应的索引文件。
[0145]参考图7,为本发明实施例七提供的一种数据传输装置的结构示意图,其中,所述装置可以应用于调度服务器,所述调度服务器为需要将第一数据库中的数据传输到第二数据库中的服务器,具体的,所述调度服务器、所述第一数据库及所述第二数据库之间需要互相设置ssh免登密码登录,进而实现数据的成功传输。
[0146]其中,本实施例中,所述装置可以包括以下结构实现:
[0147]指令生成单元701,用于生成数据传输指令。
[0148]其中,所述数据传输指令的生成可以利用所述调度服务器中部署的调度传输脚本生成,具体的,所述数据传输指令中可以包括有所述第一数据库的IP地址、需要传输的目标数据对应的数据库命名空间以及需要传输的目标数据所在的数据表的表名(可以理解为前文中提到的所述目标数据的数据标识)。
[0149]指令传输单元702,用于将所述数据传输指令发送至第一数据库。
[0150]相应的,在所述第一数据库接收到所述数据传输指令之后,所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。
[0151]具体的,所述第一数据库可以通过部署多个脚本文件实现其数据传输,包括有:前置条件脚本、导出数据脚本、本地导出数据库数据脚本、打包压缩脚本、网络传输脚本、后置条件脚本及调度结果脚本。相应的,所述前置条件脚本为所述第一数据库调度所述第二数据库在导入所述目标数据之前执行的脚本;所述后置条件脚本为所述第一数据库调度所述第二数据库执行传输完所述目标数据后执行的脚本;导出数据脚本可以通过用户名密码登录本地数据库,执行其自带的本地导出数据库数据脚本,所述本地导出数据库数据脚本通过本地数据库即所述第一数据库自带的方式导出所述目标数据,并自定义字段分隔符,例如,oracle数据库通过其spool脚本文件将其数据表中的目标数据导出到其本地磁盘,MySQL数据库通过sql脚本文件将其数据表中的目标数据导出到其本地磁盘;打包压缩脚本可以将所述本地磁盘上导出的目标数据打包成压缩包;网络传输脚本可以将本地打包成的压缩包通过网络传输到所述第二数据库。
[0152]而所述第二数据库也可以通过部署多个脚本文件来实现其功能,例如:目标前置条件脚本、解压缩脚本、导入数据脚本、本地导入数据库脚本、目标后置传输脚本及调度结果脚本,其中:所述目标前置条件脚本中的脚本内容包括检查数据库索引、删除数据库索弓1、缓存索引名字、删除数据等操作内容;所述解压缩脚本,可以把所述第二数据库本地磁盘中的压缩包解压缩成指定位置的目标数据;所述导入数据脚本,可以通过用户名密码登陆本地数据库,执行本地导入数据库数据脚本;所述本地导入数据库数据脚本,可以通过本地数据库自带的导入方法把解压得到的目标数据导入相应的数据表中,例如,Oracle数据库通过sqlldr把文本文件导入相应的表;mysql数据库通过load data infile的方法把数据导入相应的表;所述目标后置传输脚本,可以在所述目标数据导入的相应的表上建立相应的索引;调度结果脚本,可以在数据导入完成之后,生成传输结果,并将该传输结果返回给所述第一数据库;相应的,所述第一数据库中的所述调度结果脚本将所述第二数据库返回的传输结果返回给所述调度服务器。
[0153]另外,所述第二数据库中所述目标数据的目录可以与所述第一数据库中所述目标数据传输之间的目录一致,进而减少传输的目录的参数。
[0154]结果获得单元703,用于获得传输结果。
[0155]其中,所述传输结果即为所述第二数据库通过所述第一数据库返回给所述调度服务器的传输结果,所述传输结果表明所述目标数据是否成功的从所述第一数据库传输到所述第二数据库。
[0156]由上述方案可知,本发明实施例七提供的一种数据传输装置,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0157]参考图8,为本发明实施例八提供的一种数据传输子帧的结构示意图,其中,所述装置还包括以下结构:
[0158]传输检测单元704,用于在所述传输结果表明数据传输失败时,触发所述指令生成单元701再次生成所述数据传输指令,以对所述数据传输指令对应的目标数据进行重新传输。
[0159]也就是说,所述传输检测单元704对所述传输结果的性质进行解析,进而在所述传输结果表明所述数据传输失败时,触发所述指令生成单元701重新进行所述目标数据的传输。
[0160]具体的,若所述目标数据尝试被传输N次,仍然没有传输成功,可以结束对所述目标数据的传输,这里的N次可以根据用户需求设置,如3次或5次等。
[0161]参考图9,为本发明实施例九提供的一种数据传输系统的结构示意图,其中,所述系统可以包括:第一数据库901、第二数据库902及调度服务器903,所述第一数据库901与所述第二数据库902可以均为oracle数据库,或者均为MySQL数据库,或者一个为oracle数据库另一个为MySQL数据库,所述调度服务器903、所述第一数据库901及所述第二数据库902之间需要互相设置ssh免登密码登录,进而实现数据的成功传输。
[0162]其中:
[0163]所述调度服务器903生成数据传输指令,并将所述数据传输指令发送至第一数据库 901。
[0164]其中,所述数据传输指令的生成可以利用所述调度服务器903中部署的调度传输脚本生成,具体的,所述数据传输指令中可以包括有所述第一数据库的IP地址、需要传输的目标数据对应的数据库命名空间以及需要传输的目标数据所在的数据表的表名(可以理解为前文中提到的所述目标数据的数据标识)。
[0165]所述第一数据库901导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库902的本地磁盘。
[0166]所述第二数据库902将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库902。
[0167]具体的,所述第一数据库901与所述第二数据库902中实现其各自功能可以通过其各自部署的脚本文件实现,具体可以参考前文相应实施例,此处不再详述。
[0168]所述调度服务器903获得传输结果。
[0169]其中,所述传输结果即为所述第二数据库902通过所述第一数据库902返回给所述调度服务器903的传输结果,所述传输结果表明所述目标数据是否成功的从所述第一数据库901传输到所述第二数据库902。
[0170]由上述方案可知,本发明实施例九提供的一种数据传输系统,通过先将数据导出到源数据库的本地磁盘,并对本地磁盘中的数据进行打包,进而将打包的数据传输到目的数据库的本地磁盘之后,再将数据进行解压并导入到目的数据库,完成数据的传输,相对于现有技术中的技术方案,本实施例中无需对数据进行对象转换,并且利用数据导出与导入技术取代现有技术中的数据读取与写入方案,由此明显减少数据传输中所消耗的时间,进而提高数据传输效率。
[0171]对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0172]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0173]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0174]为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0175]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0176]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种数据传输方法,其特征在于,应用于第一数据库,所述方法包括: 响应于接收到的数据传输指令,导出所述第一数据库中与所述数据传输指令相对应的目标数据到所述第一数据库的本地磁盘; 将所述第一数据库的本地磁盘中的目标数据进行打包,得到所述目标数据的压缩包;将所述目标数据的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。2.根据权利要求1所述的方法,其特征在于,导出所述第一数据库中的目标数据到所述第一数据库的本地磁盘,包括: 利用所述第一数据库的数据导出脚本导出所述第一数据库中的目标数据到其本地磁盘。3.根据权利要求1或2所述的方法,其特征在于,将所述目标数据的压缩包传输到第二数据库的本地磁盘,包括: 利用所述第一数据库与所述第二数据库之间的网络数据连接,将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。4.一种数据传输方法,其特征在于,应用第二数据库,所述方法包括: 接收第一数据库发送的目标数据的压缩包; 将所述目标数据的压缩包放置到所述第二数据库的本地磁盘中; 对所述第二数据库的本地磁盘中的压缩包进行解压处理,得到目标数据; 将解压得到的目标数据导入到所述第二数据库。5.根据权利要求4所述的方法,其特征在于,将解压得到的目标数据导入到所述第二数据库,包括: 利用所述第二数据库的数据导入脚本,将解压得到的目标数据导入到所述第二数据库。6.一种数据传输方法,其特征在于,应用于调度服务器,所述方法包括: 生成数据传输指令; 将所述数据传输指令发送至第一数据库,由所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库; 获得传输结果。7.根据权利要求6所述的方法,其特征在于,所述方法还包括: 在所述传输结果表明数据传输失败时,再次生成所述数据传输指令,以对所述数据传输指令对应的目标数据进行重新传输。8.一种数据传输装置,其特征在于,应用于第一数据库,所述装置包括: 数据导出单元,用于响应于接收到的数据传输指令,导出所述第一数据库中与所述数据传输指令相对应的目标数据到所述第一数据库的本地磁盘; 数据打包单元,用于将所述第一数据库的本地裁判中的目标数据进行打包,得到所述目标数据的压缩包; 数据传输单元,用于将所述目标数据的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库。9.根据权利要求8所述的装置,其特征在于: 所述数据导出单元,具体用于利用所述第一数据库的数据导出脚本导出所述第一数据库中的目标数据到其本地磁盘。10.根据权利要求8或9所述的装置,其特征在于: 所述数据传输单元,具体用于利用所述第一数据库与所述第二数据库之间的网络数据连接,将所述目标数据的压缩包传输到所述第二数据库的本地磁盘。11.一种数据传输装置,其特征在于,应用于第二数据库,所述装置包括: 压缩包接收单元,用于接收第一数据库的目标数据的压缩包; 本地放置单元,用于将所述目标数据的压缩包放置到所述第二数据库的本地磁盘中;数据解压单元,用于对所述第二数据库的本地磁盘中的压缩包进行解压处理,得到目标数据; 数据导入单元,用于将解压得到的目标数据导入到所述第二数据库。12.根据权利要求11所述的装置,其特征在于: 所述数据导入单元,具体用于利用所述第二数据库的数据导入脚本,将解压得到的目标数据导入到所述第二数据库。13.一种数据传输装置,其特征在于,应用于调度服务器,所述装置包括: 指令生成单元,用于生成数据传输指令; 指令传输单元,用于将所述数据传输指令发送至第一数据库,由所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘,由所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库; 结果获得单元,用于获得传输结果。14.根据权利要求13所述的装置,其特征在于,还包括: 传输检测单元,用于在所述传输结果表明数据传输失败时,触发所述指令生成单元再次生成所述数据传输指令,以对所述数据传输指令对应的目标数据进行重新传输。15.一种数据传输系统,其特征在于,包括:第一数据库、第二数据库及调度服务器,其中: 所述调度服务器生成数据传输指令,并将所述数据传输指令发送至第一数据库; 所述第一数据库导出与所述数据传输指令相对应的目标数据到其本地磁盘,并将其本地磁盘中的目标数据进行打包,将得到的压缩包传输到第二数据库的本地磁盘; 所述第二数据库将其本地磁盘中的压缩包进行解压处理并导入到所述第二数据库; 所述调度服务器获得传输结果。
【文档编号】G06F17/30GK105843869SQ201610154738
【公开日】2016年8月10日
【申请日】2016年3月17日
【发明人】黄深文
【申请人】金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1