一种在异构数据库之间交换数据的方法和装置制造方法

文档序号:6552457阅读:229来源:国知局
一种在异构数据库之间交换数据的方法和装置制造方法
【专利摘要】本发明提供一种在异构数据库之间交换数据的方法和装置,有助于降低数据导入导出工具的维护成本,并有助于提高不同种类的数据库之间数据交换的速度。本发明的在异构数据库之间交换数据的方法包括:向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息;在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。
【专利说明】一种在异构数据库之间交换数据的方法和装置

【技术领域】
[0001] 本发明涉及计算机网络【技术领域】,特别地涉及一种在异构数据库之间交换数据的 方法和装置。

【背景技术】
[0002] 企业内部数据库系统繁多,有 sqlserver,mysql,oracle, mongodb,redis,hive, hbase等等,它们使用各不相同的数据格式,操作数据库的语句的语法也各不相同,习惯上 称之为异构数据库。如何在异构数据库之间交换数据是一个很大的问题。传统的技术方案 基本上都是依赖数据库本身的工具,比如sqlserver的bcp,mysql的mysqldump,先将数据 导入到本地文件系统,再将数据加载到另外一种数据库。数据导入导出的工具比较多,但是 只支持一个或者几个特定类型的数据库。这样带来一个问题,如果我们有很多不同类型的 数据库,并且经常需要在他们之间交换数据,那就需要维护很多工具。
[0003] 图1是根据现有技术中的需要交换数据的多个异构数据库之间的关系的示意图。 在图1中,直线两端的数据库之间有数据交换。从图1可以看出,不同数据源之间的交换需 要多种不同的工具,并且这些工具还要同时支持另外的所有数据库,例如数据库11中的工 具需能支持数据库12、13、14、15。对于现有的数据库产品来说,这几乎是不可能的。另外,在 使用的多种数据库各自具有数据导入导出工具的情况下,维护这些工具的成本也比较高。


【发明内容】

[0004] 有鉴于此,本发明提供一种在异构数据库之间交换数据的方法和装置,有助于降 低数据导入导出工具的维护成本,并有助于提高不同种类的数据库之间数据交换的速度。
[0005] 为实现上述目的,根据本发明的一个方面,提供了一种在异构数据库之间交换数 据的方法。
[0006] 本发明的在异构数据库之间交换数据的方法包括:向源数据库发送连接信息,该 连接信息包括源数据库的鉴权信息;在所述鉴权信息正确的情况下,从所述源数据库中读 取数据然后保存在计算机内存中;将所述计算机内存中的所述数据的格式转换为适用于目 标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。
[0007] 可选地,所述鉴权信息包括用户名和密码。
[0008] 根据本发明的另一方面,提供了一种在异构数据库之间交换数据的装置。
[0009] 本发明的在异构数据库之间交换数据的装置包括:读模块,用于向源数据库发送 连接信息,该连接信息包括源数据库的鉴权信息,以及在所述鉴权信息正确的情况下,从所 述源数据库中读取数据然后保存在计算机内存中;写模块,用于将所述计算机内存中的所 述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库 与目标数据库为异构数据库。
[0010] 可选地,包括多个写模块,每个写模块对应一种数据库;所述目标数据库的类型为 所述写模块对应的数据库的类型。
[0011] 可选地,所述鉴权信息包括用户名和密码。
[0012] 根据本发明的技术方案,采用中间交换节点,从一种数据库中读到数据,进行格式 转换之后写入另一种数据库,使多个异构数据库之间能够方便地实现数据交换并且数据交 换的路径较短;读取的数据保存在计算机内存而非本地文件中,具有很快的读写速度。这样 无需维护现有数据库中的数据交换工具,有助于降低成本。

【专利附图】

【附图说明】
[0013] 附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0014] 图1是根据现有技术中的需要交换数据的多个异构数据库之间的关系的示意图;
[0015] 图2是根据本发明实施例的运行多个数据库的计算机系统的示意图;
[0016] 图3是根据本发明实施例的在异构数据库之间交换数据的方法的主要步骤的示 意图;
[0017] 图4是根据本发明实施例的在异构数据库之间交换数据的装置的主要结构的示 意图。

【具体实施方式】
[0018] 以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种 细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识 至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同 样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0019] 在本发明实施例中,在多个数据库中间增加一个交换节点,参考图2,图2是根据 本发明实施例的运行多个数据库的计算机系统的示意图。节点21、22、23、24、25运行的数 据库为异构数据库,中间节点20与上述节点连接,上述节点之间可以连接或不连接。中间 节点即按本实施例提供的方法,从上述的一个节点的数据库中读取数据然后写到另一个节 点的数据库中。以下结合图3对该方法举例说明,图3是根据本发明实施例的在异构数据 库之间交换数据的方法的主要步骤的示意图。在图3所示的流程中,节点20从节点21的 数据库中读取数据然后写入节点22的数据库中。此时节点21作为源数据库,节点22作为 目标数据库。
[0020] 步骤S31 :节点20向节点21发送连接信息。连接信息主要是鉴权信息。在配置 时需要在节点20中保存该鉴权信息,另外保存节点21的网络地址,以及符合节点21中的 数据库语法的语句,例如读取数据库的语句等。
[0021] 步骤S32 :节点21对连接信息进行校验,若通过,则进行步骤S33,否则结束流程。
[0022] 步骤S33 :节点20从节点21中读取数据。
[0023] 步骤S34 :节点20将读取的数据保存在自身的内存中。
[0024] 步骤S35 :节点20对自身内存中的上述数据进行格式转换。该转换是将上述数据 的格式转换为节点22中的数据库适用的格式。
[0025] 步骤S36 :节点20将转换格式之后的上述数据写入节点22的数据库中。至此即 完成节点21与节点22的数据交换。其他节点间的数据交换方式与上述步骤类似,都是由 节点20从一个节点中的数据库读取然后写入另一个节点的数据库中。当然节点20也可以 写入多个数据库,此时就需节点20将读取的数据形成多个副本,并且每个副本的格式适用 于要写入的数据库。
[0026] 以下结合图4对本发明实施例的在异构数据库之间交换数据的装置的结构加以 说明,图4是根据本发明实施例的在异构数据库之间交换数据的装置的主要结构的示意 图。该装置可以设置在计算机网络的节点中,例如设置在图2中的节点20中。另外,如果 节点21至25中有一个节点与其他所有节点连接,该装置也可以设置在该节点中。如图4 所示,在异构数据库之间交换数据的装置40主要包括读模块41和写模块42,图中仅示出了 一个读模块和写模块,在实现中该装置也可以是一个读模块、多个写模块,该读模块可以从 多种数据库中读取数据,而各个写模块各自对应一种数据库,能够向该数据库写入数据。该 装置也可以有多个读模块、多个写模块,一对读模块和写模块用来从一种数据库读取数据 以及向该种数据库写入数据。
[0027] 读模块41用于向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息, 以及在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存 中;写模块42用于将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格 式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。
[0028] 根据本发明实施例的技术方案,采用中间交换节点,从一种数据库中读到数据,进 行格式转换之后写入另一种数据库,使多个异构数据库之间能够方便地实现数据交换并且 数据交换的路径较短;读取的数据保存在计算机内存而非本地文件中,具有很快的读写速 度。这样无需维护现有数据库中的数据交换工具,有助于降低成本。
[0029] 以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的 普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在 任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者 它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们 的基本编程技能就能实现的。
[0030] 因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来 实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包 含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构 成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以 是任何公知的存储介质或者将来开发出的任何存储介质。
[0031] 还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和 /或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列 处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序 执行。某些步骤可以并行或彼此独立地执行。
[0032] 上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明 白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何 在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围 之内。
【权利要求】
1. 一种在异构数据库之间交换数据的方法,其特征在于,包括: 向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息; 在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存 中; 将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格式,然后写入该 目标数据库中;所述源数据库与目标数据库为异构数据库。
2. 根据权利要求1所述的方法,其特征在于,所述鉴权信息包括用户名和密码。
3. -种在异构数据库之间交换数据的装置,其特征在于,包括: 读模块,用于向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息,以及在 所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中; 写模块,用于将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格 式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。
4. 根据权利要求3所述的装置,其特征在于,包括多个写模块,每个写模块对应一种数 据库;所述目标数据库的类型为所述写模块对应的数据库的类型。
5. 根据权利要求3或4所述的装置,其特征在于,所述鉴权信息包括用户名和密码。
【文档编号】G06F9/44GK104111834SQ201410319872
【公开日】2014年10月22日 申请日期:2014年7月7日 优先权日:2014年7月7日
【发明者】张侃, 蔡适择, 王永光, 王彦明 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1