《一种在异构数据库之间交换数据的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种在异构数据库之间交换数据的方法和装置.pdf(7页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104111834A43申请公布日20141022CN104111834A21申请号201410319872422申请日20140707G06F9/4420060171申请人北京京东尚科信息技术有限公司地址100195北京市海淀区杏石口路65号西杉创意园四区11C楼东段14层西段14层申请人北京京东世纪贸易有限公司72发明人张侃蔡适择王永光王彦明74专利代理机构中原信达知识产权代理有限责任公司11219代理人刘光明陆锦华54发明名称一种在异构数据库之间交换数据的方法和装置57摘要本发明提供一种在异构数据库之间交换数据的方法和装置,有助于降低数据导入导出工具的维护成本,并有助于。
2、提高不同种类的数据库之间数据交换的速度。本发明的在异构数据库之间交换数据的方法包括向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息;在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。51INTCL权利要求书1页说明书3页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书3页附图2页10申请公布号CN104111834ACN104111834A1/1页21一种在异构数据库之间交换数据的方法,其特征在于,包括向源数。
3、据库发送连接信息,该连接信息包括源数据库的鉴权信息;在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。2根据权利要求1所述的方法,其特征在于,所述鉴权信息包括用户名和密码。3一种在异构数据库之间交换数据的装置,其特征在于,包括读模块,用于向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息,以及在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;写模块,用于将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格。
4、式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。4根据权利要求3所述的装置,其特征在于,包括多个写模块,每个写模块对应一种数据库;所述目标数据库的类型为所述写模块对应的数据库的类型。5根据权利要求3或4所述的装置,其特征在于,所述鉴权信息包括用户名和密码。权利要求书CN104111834A1/3页3一种在异构数据库之间交换数据的方法和装置技术领域0001本发明涉及计算机网络技术领域,特别地涉及一种在异构数据库之间交换数据的方法和装置。背景技术0002企业内部数据库系统繁多,有SQLSERVER,MYSQL,ORACLE,MONGODB,REDIS,HIVE,HBASE等等,它。
5、们使用各不相同的数据格式,操作数据库的语句的语法也各不相同,习惯上称之为异构数据库。如何在异构数据库之间交换数据是一个很大的问题。传统的技术方案基本上都是依赖数据库本身的工具,比如SQLSERVER的BCP,MYSQL的MYSQLDUMP,先将数据导入到本地文件系统,再将数据加载到另外一种数据库。数据导入导出的工具比较多,但是只支持一个或者几个特定类型的数据库。这样带来一个问题,如果我们有很多不同类型的数据库,并且经常需要在他们之间交换数据,那就需要维护很多工具。0003图1是根据现有技术中的需要交换数据的多个异构数据库之间的关系的示意图。在图1中,直线两端的数据库之间有数据交换。从图1可以看。
6、出,不同数据源之间的交换需要多种不同的工具,并且这些工具还要同时支持另外的所有数据库,例如数据库11中的工具需能支持数据库12、13、14、15。对于现有的数据库产品来说,这几乎是不可能的。另外,在使用的多种数据库各自具有数据导入导出工具的情况下,维护这些工具的成本也比较高。发明内容0004有鉴于此,本发明提供一种在异构数据库之间交换数据的方法和装置,有助于降低数据导入导出工具的维护成本,并有助于提高不同种类的数据库之间数据交换的速度。0005为实现上述目的,根据本发明的一个方面,提供了一种在异构数据库之间交换数据的方法。0006本发明的在异构数据库之间交换数据的方法包括向源数据库发送连接信息。
7、,该连接信息包括源数据库的鉴权信息;在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;将所述计算机内存中的所述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。0007可选地,所述鉴权信息包括用户名和密码。0008根据本发明的另一方面,提供了一种在异构数据库之间交换数据的装置。0009本发明的在异构数据库之间交换数据的装置包括读模块,用于向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息,以及在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;写模块,用于将所述计算机内存中的所述数据的格。
8、式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。0010可选地,包括多个写模块,每个写模块对应一种数据库;所述目标数据库的类型为所述写模块对应的数据库的类型。说明书CN104111834A2/3页40011可选地,所述鉴权信息包括用户名和密码。0012根据本发明的技术方案,采用中间交换节点,从一种数据库中读到数据,进行格式转换之后写入另一种数据库,使多个异构数据库之间能够方便地实现数据交换并且数据交换的路径较短;读取的数据保存在计算机内存而非本地文件中,具有很快的读写速度。这样无需维护现有数据库中的数据交换工具,有助于降低成本。附图说明0013附图。
9、用于更好地理解本发明,不构成对本发明的不当限定。其中0014图1是根据现有技术中的需要交换数据的多个异构数据库之间的关系的示意图;0015图2是根据本发明实施例的运行多个数据库的计算机系统的示意图;0016图3是根据本发明实施例的在异构数据库之间交换数据的方法的主要步骤的示意图;0017图4是根据本发明实施例的在异构数据库之间交换数据的装置的主要结构的示意图。具体实施方式0018以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和。
10、精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。0019在本发明实施例中,在多个数据库中间增加一个交换节点,参考图2,图2是根据本发明实施例的运行多个数据库的计算机系统的示意图。节点21、22、23、24、25运行的数据库为异构数据库,中间节点20与上述节点连接,上述节点之间可以连接或不连接。中间节点即按本实施例提供的方法,从上述的一个节点的数据库中读取数据然后写到另一个节点的数据库中。以下结合图3对该方法举例说明,图3是根据本发明实施例的在异构数据库之间交换数据的方法的主要步骤的示意图。在图3所示的流程中,节点20从节点21的数据库中读取数据然后写入节点22的数据库中。。
11、此时节点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将转换。
12、格式之后的上述数据写入节点22的数据库中。至此即完成节点21与节点22的数据交换。其他节点间的数据交换方式与上述步骤类似,都是由节点20从一个节点中的数据库读取然后写入另一个节点的数据库中。当然节点20也可以说明书CN104111834A3/3页5写入多个数据库,此时就需节点20将读取的数据形成多个副本,并且每个副本的格式适用于要写入的数据库。0026以下结合图4对本发明实施例的在异构数据库之间交换数据的装置的结构加以说明,图4是根据本发明实施例的在异构数据库之间交换数据的装置的主要结构的示意图。该装置可以设置在计算机网络的节点中,例如设置在图2中的节点20中。另外,如果节点21至25中有一个。
13、节点与其他所有节点连接,该装置也可以设置在该节点中。如图4所示,在异构数据库之间交换数据的装置40主要包括读模块41和写模块42,图中仅示出了一个读模块和写模块,在实现中该装置也可以是一个读模块、多个写模块,该读模块可以从多种数据库中读取数据,而各个写模块各自对应一种数据库,能够向该数据库写入数据。该装置也可以有多个读模块、多个写模块,一对读模块和写模块用来从一种数据库读取数据以及向该种数据库写入数据。0027读模块41用于向源数据库发送连接信息,该连接信息包括源数据库的鉴权信息,以及在所述鉴权信息正确的情况下,从所述源数据库中读取数据然后保存在计算机内存中;写模块42用于将所述计算机内存中的。
14、所述数据的格式转换为适用于目标数据库的格式,然后写入该目标数据库中;所述源数据库与目标数据库为异构数据库。0028根据本发明实施例的技术方案,采用中间交换节点,从一种数据库中读到数据,进行格式转换之后写入另一种数据库,使多个异构数据库之间能够方便地实现数据交换并且数据交换的路径较短;读取的数据保存在计算机内存而非本地文件中,具有很快的读写速度。这样无需维护现有数据库中的数据交换工具,有助于降低成本。0029以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置包括处理器、存储介质等或者计。
15、算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。0030因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。0031还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。0032上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。说明书CN104111834A1/2页6图1图2说明书附图CN104111834A2/2页7图3图4说明书附图CN104111834A。