异构数据库报表生成方法、装置和异构数据库系统的制作方法

文档序号:6580975阅读:162来源:国知局
专利名称:异构数据库报表生成方法、装置和异构数据库系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及异构数据库报表生成方法、装置和异构数据库
系统。
背景技术
集团化的机构在许多地点都有分支机构,每个分支机构的数据库中都有着自己的 信息数据,或者,同属一个大型机构的各个职能部门,为了保持其运作的相对独立,各个职 能部门往往建立自己的数据库。这种由各个分支机构或职能部门建立的数据库相互之间可 以视为异构数据库,即,各个数据库可能分别运行于不同的计算机体系结构,例如,大型机、 小型机、工作站、个人电脑或嵌入式系统;也可能各个数据库的操作系统不同,例如,Unix、 Windows NT、Li皿x等;或者,各个数据库的数据库管理系统(DBMS, DataBase Managem-ent System)本身存在异构,例如,各个数据库可以是同为关系型数据库系统的0racle、 SQL Server,也可以是不同数据模型(如关系、模式、层次、网络、面向对象或函数型数据)的数 据库构成。 对于上述集团化或大型化决策制订人员而言,他们一般只关心宏观的、为全局模 式所描述的信息。例如,某些决策制订人员可能只关心企业的报表集中反映的信息,而这些 信息一般不可能只来自于一个数据库。比较科学的决策需要以各个异构数据库的信息为参 考依据,这就是说,集团化或大型化所需要的报表应该能够同步展现各个异构数据库的数 据。现有技术在展现各个异构数据库的数据时,并不支持与各个异构数据库的连接,报表中 的数据不是通过与各个异构数据库的连接方式而是采用其他方式获取;或者,仅仅采用单 一的连接方式与各个异构数据建立连接,获取各个异构数据库的数据。 本发明的发明人在对上述现有技术的长期研究和实践中发现,不支持异构数据库 的连接或单一的连接方式,要么获取数据的效率低下,要么在一个数据库连接对象均对应 一个物理数据库连接时,数据库连接的建立以及关闭对系统而言是耗费系统资源的操作, 这种耗费资源的动作对系统的性能影响较大,实际上都不能满足报表数据来源于多维度应 用的业务场景。

发明内容
本发明实施例提供一种异构数据库报表生成方法、装置和异构数据库系统,以解 决现有技术因为不支持异构数据库的连接或单一的连接方式耗费资源而不能满足报表数 据来源于多维度应用的业务场景的问题。
—种异构数据库报表生成方法,包括 与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所 述各个异构数据库的数据库连接池; 通过所述各个异构数据库的数据库连接池,获取所述各个异构数据库中的数据;
将所述各个异构数据库中的数据整合为所述报表可以识别的数据模型后展现。
—种异构数据库报表生成装置,包括 连接建立模块,用于与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库连接池; 数据获取模块,用于通过所述连接建立模块建立的数据库连接池,获取所述各个异构数据库中的数据; 数据整合模块,用于将所述数据获取模块获取的各个异构数据库中的数据整合为
所述报表可以识别的数据模型后展现。 —种服务器,包括 接收模块,用于接收客户端配置的连接信息以使所述客户端与所述数据库建立数据库连接,所述连接信息至少包括所述服务器的IP地址选项、数据库的ID选项、连接到所述数据库的用户名选项以及密码选项; 连接池生成模块,用于根据所述服务器中数据库被访问的频率、被访问数据量的
大小和/或两者的组合生成数据库连接池,所述连接池保存所述数据库连接。 —种异构数据库系统,所述服务器包含异构数据库或所述服务器之间为异构服务
器,所述服务器包括 接收模块,用于接收所述客户端配置的连接信息以使所述客户端与所述数据库建立数据库连接,所述连接信息至少包括所述服务器的IP地址选项、数据库的ID选项、连接到所述数据库的用户名选项以及密码选项; 连接池生成模块,用于根据所述服务器中数据库被访问的频率、被访问数据量的大小和/或两者的组合生成数据库连接池,所述数据库连接池保存所述数据库连接;
所述客户端包括 连接建立模块,用于与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库连接池; 数据获取模块,用于通过所述连接建立模块建立的数据库连接池,获取所述各个异构数据库中的数据; 数据整合模块,用于将所述数据获取模块获取的各个异构数据库中的数据整合为所述报表可以识别的数据模型后展现。 本发明实施例通过建立客户端与各个异构数据库的数据库连接后,获取各个异构数据库中的数据,并将各个异构数据库中的数据整合为报表可以识别的数据模型后展现。与现有技术单一的连接方式或不支持异构数据库的连接相比,本发明提供的实施例可以高效地获取各个异构数据库的数据,而且,由于与各个异构数据库建立的数据库连接以数据库连接对象保存于数据库连接池,数据库连接对象可以被重复用于与各个数据库的连接,因此节省了服务器的资源和减小了系统的开销,而对异构数据库数据的整合也可以使数据在报表中以同一模型同步展现。


图1是本发明实施例提供的异构数据库报表生成方法基本流程图; 图2是本发明实施例提供的异构数据库报表生成装置基本逻辑结构示意图; 图3是本发明实施例提供的一种服务器基本逻辑结构示意 图4是本发明实施例提供的一种异构数据库系统基本逻辑结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 请参阅图l,本发明实施例提供的异构数据库报表生成方法基本流程图,包括
步骤S101,与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库连接池。 对于客户端,与各个异构数据库( 一般位于服务器端)建立数据库连接是实现本发明方案的第一步;对于服务器端,需要将要与其连接的客户端相关信息,例如,配置的连接信息等。 一般而言,连接信息至少包括服务器的IP地址选项、数据库的ID选项、连接到异构数据库的用户名选项以及密码选项,存在于服务器端。在本发明实施例中,客户端可以向异构数据库所在的服务器发送下发连接信息的请求;服务器端收到该请求信息后,将连接信息下发给客户端;客户端配置连接信息后发送该配置的连接信息至服务器以与异构数据库建立数据库连接。配置的连接信息以特殊的形式存在,例如,特征码,它标识了被连接的服务器的IP地址、数据库的ID、连接到异构数据库的用户名以及密码等等。
现有技术中,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接。由于建立和关闭连接的开销比较大,如果频繁地建立和关闭连接,则会极大地影响系统的性能。与现有技术不同,本发明实施例中建立的数据库连接以数据库连接对象保存于各个异构数据库的连接池(CP, Co皿ections Pooling)中。由于同一个数据库连接对象可以通过分配和释放的方式被重复使用,大大地减小了建立和关闭连接的开销。 为了高效地和数据源通讯,每当通过数据库连接池获取一个数据源,客户端识别该获取的数据源是否为直接参与计算的数据源。如果是,则客户端和该数据源通讯,取得数据源的路径、所属的组织下信息(例如,组织ID和组织名称等)和数据源的ID等等。
在本发明实施例中,如果各个异构数据库都被频繁地访问,各个异构数据库所在的服务器可以分别为其生成对应的数据库连接池,建立的数据库连接ui以数据库连接对象的形式保存在各自的数据库连接池中。当然,服务器中的数据库连接池也可以是通过外部连接池工具生成。 各个异构数据库所在的服务器可以根据其中的数据库被访问的频率大小来决定是否生成对应的数据库连接池,如果其中的数据库被访问的频率确实很高,可以生成对应的数据库连接池; 各个异构数据库所在的服务器也可以根据其中的数据库被访问数据量的大小来决定是否生成对应的数据库连接池,如果被访问的数据量确实很大,可以生成对应的数据库连接池;或者 如果一个异构数据库被频繁访问并且被访问的数据量巨大,该异构数据库所在的服务器也可以为其生成数据库连接池。
6
进一步地,服务器可以通过监控一段时间内其数据库被访问的频率大小、被访问 的数据量大小或/和上述两个因素的组合,综合考量是否生成数据库连接池。例如,在若干 个异构的数据库中,一般而言,主数据库通常情况下或在某一段时间内是被频繁访问的对 象且其中被访问的数据量通常较大,这样,主数据库所在的服务器理应为其生成数据库连 接池。在本发明实施例中,"一段时间"可以按照具体用户的不同业务类型来进行调整或设 置。 综合考量后上述提及的因素后再生成数据库连接池,既保证了理应生成数据库连 接池的数据库被连接的效率,又有效地避免了不应生成数据库连接池时对服务器资源的浪 费,减少了每次连接实例化的消耗。 步骤S102,通过所述各个异构数据库的数据库连接池,获取所述各个异构数据库 中的数据。 在本发明实施例中,客户端可以通过上述服务器生成的数据库连接池获取各个异 构数据库中的数据、通过上述服务器根据服务器中数据库被访问的频率、被访问数据量的 大小和/或两者的组合生成的数据库连接池获取各个异构数据库中的数据或通过外部连 接池工具生成的数据库连接池获取各个异构数据库中的数据。 由于数据库连接对象本质上是与某个数据库之间建立的物理连接,通过这个物理 连接可以维护与该数据库的通信,因此,可以通过数据库连接对象中的方法获取各个异构 数据库中的数据。 例如,当客户端需要进行数据访问时,可以向数据库连接池请求连接,数据库连接 池将其中的一个数据库连接对象分配给客户端。客户端再通过数据库连接对象中的方法获 取数据库的数据。之后,当客户端结束数据获取,就可以将使用过的数据库连接对象重新释 放至数据库连接池中,这个数据库连接对象在客户端以后对相应数据库进行访问时仍然可 以使用。 步骤S103,将所述各个异构数据库中的数据整合为所述报表可以识别的数据模型 后展现。 如前所述,所谓异构数据库,可能是因为各个数据库分别运行于不同的计算机体 系结构、各个数据库的操作系统不同或各个数据库的DBMS本身不同而导致的异构。在本发 明实施例中,可以不对上述各种异构形式进行详细区分。因为对用户而言,如果用户使用的 平台(客户端)和各个异构数据库建立了连接,只要将从各个异构数据库中的数据整合为 (客户端)报表能够识别的数据模型后展现即可。 在本发明实施例中,数据整合包括将各个异构数据库的数据类型整合为同一种数 据类型、将所述各个异构数据库的数据格式整合为同一种数据格式和/或将所述各个异构 数据库的字段命名整合为同一种字段命名。 以将各个异构数据库的数据类型整合为同一种数据类型为例。假设0在数据库A 中是数值型;在与数据库A异构的数据库B中,O是字符串型。在本发明实施例中,采用兼 容各种对象类型的对象类,容纳在各个异构数据库中以不同类型存在的对象(例如,上述 在异构的数据库A和B中以不同类型存在的数字0),利用对象类的异常容错特性,经实例化 后,不同类型的对象(数据)就可以在报表上展现出同一种类型。 以将各个异构数据库的数据格式整合为同一种数据格式为例。例如,同是日期型数据,2009年8月1日在数据库A中的格式是2009-08-01,在于数据库A异构的数据库B 中的格式是20090801 ,并且在数据库B中,类型是字符串当作日期使用。但对于客户端的用 户,他不必关心也不知晓这些格式类型。在本发明实施例中,可以采用时间转换模型公式, 将日期型都换长整型的时间格式,再对2个时间进行合并(例如,通过四则运算),转成用户 自定义的同一种时间格式。 再以将各个异构数据库的字段命名整合为同一种字段命名为例。假设数据库A的 字段名称是FieldA,与数据库A异构的数据库B的字段名称是FieldB。由于FieldA、FieldB 的数据对用户而言,都是合并(运算)作为同一个数据,因此,在本发明实施例中,无论是对 FieldA还是FieldB,都将被转换成报表能够识别的FieldM后再展现。
请参阅图2,本发明实施例提供的异构数据库报表生成装置基本逻辑结构示意图。 为了便于说明,仅示出了与本发明实施例相关的部分。该装置包括连接建立模块201、数据 获取模块202和数据整合模块203,其中 连接建立模块201用于建立该装置与各个异构数据库连接,并且数据库连接以数 据库连接对象保存于各个异构数据库的数据库连接池。如前所述,数据库连接池的引入以 及利用数据库连接对象连接各个异构数据库,能够节省服务器的资源和减少系统开销,不 做赘述。 数据获取模块202通过连接建立模块201建立的数据库连接池,获取各个异构数 据库中的数据。例如,通过数据库连接对象中的方法获取各个异构数据库中的数据。
数据整合模块203将数据获取模块202获取的各个异构数据库中的数据整合为报 表可以识别的数据模型后展现。例如,将各个异构数据库的数据类型整合为同一种数据类 型、将各个异构数据库的数据格式整合为同一种数据格式和/或将各个异构数据库的字段 命名整合为同一种字段命名等等。 为了高效地和数据源通讯,该异构数据库报表生成装置进一步包括
数据源识别模块204,用于识别通过数据库连接获取的数据源是否为直接参与计 算的数据源。若通过数据库连接获取的数据源为直接参与计算的数据源,则该装置和该数 据源通讯,取得数据源的路径、所属的组织下信息(例如,组织ID和组织名称等)和数据源 的ID等等。 请参阅图3,本发明实施例提供的一种服务器基本逻辑结构示意图。为了便于说
明,仅示出了与本发明实施例相关的部分。该服务器具有数据库300,包括 接收模块301,用于接收客户端配置的连接信息以使该客户端与服务器中数据库
300建立数据库连接,连接信息至少包括所述服务器的IP地址选项、数据库的ID选项、连接
到所述数据库的用户名选项以及密码选项。 连接池生成模块302,用于根据所述服务器中数据库300被访问的频率、被访问数 据量的大小和/或两者的组合生成数据库连接池303 (数据库连接池A),所述连接池303保 存所述数据库连接。 当然,服务器中的数据库连接池不必是由服务器生成,可以是采用外部连接池工 具生成。因此,服务器还可以包括由外部连接池工具生成的数据库连接池304(数据库连接 池B),所述连接池304也可以保存所述数据库连接。 请参阅图4,本发明实施例提供的一种异构数据库系统基本逻辑结构示意图。为了便于说明,仅示出了与本发明实施例相关的部分。该异构数据库系统包括客户端和若干服 务器,其中,服务器包含异构数据库或服务器之间为异构服务器,服务器包括
接收模块401用于接收所述客户端配置的连接信息以使所述客户端与所述数据 库400建立数据库连接,所述连接信息至少包括所述服务器的IP地址选项、数据库的ID选 项、连接到所述数据库的用户名选项以及密码选项; 连接池生成模块402用于根据所述服务器中数据库被访问的频率、被访问数据量 的大小和/或两者的组合生成数据库连接池403 (数据库连接池A),所述数据库连接池403 保存所述数据库连接;
客户端包括 连接建立模块405用于建立客户端与各个异构服务器或包含异构数据库的服务 器的数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库 连接池403或数据库连接池404 ; 数据获取模块406用于通过所述连接建立模块405建立的数据库连接,获取所述 各个异构数据库中的数据; 数据整合模块407用于将所述数据获取模块406获取的各个异构数据库中的数据 整合为所述报表可以识别的数据模型后展现。 当然,服务器中的数据库连接池不必是由服务器生成,可以是采用外部连接池工
具生成。因此,服务器还可以包括由外部连接池工具生成的数据库连接池404(数据库连接
池B),所述数据库连接池404也可以保存所述数据库连接。 为了高效地和数据源通讯,该异构数据库报表生成装置进一步包括 数据源识别模块408,用于识别通过数据库连接获取的数据源是否为直接参与计
算的数据源。若通过数据库连接获取的数据源为直接参与计算的数据源,则该装置和该数
据源通讯,取得数据源的路径、所属的组织下信息(例如,组织ID和组织名称等)和数据源
的ID等等。 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁盘或光盘等。 以上对本发明实施例所提供的异构数据库报表生成方法、装置、相应的服务器以 及异构数据库系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进 行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本 领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处, 综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
一种异构数据库报表生成方法,其特征在于,包括与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库连接池;通过所述各个异构数据库的数据库连接池,获取所述各个异构数据库中的数据;将所述各个异构数据库中的数据整合为所述报表可以识别的数据模型后展现。
2. 如权利要求1所述异构数据库报表生成方法,其特征在于,所述与各个异构数据库 建立数据库连接包括向所述异构数据库所在的服务器发送下发连接信息的请求,所述连接信息至少包括所 述服务器的IP地址选项、数据库的ID选项、连接到所述异构数据库的用户名选项以及密码 选项;配置所述连接信息;发送所述配置的连接信息至所述服务器以与所述异构数据库建立数据库连接。
3. 如权利要求2所述所述异构数据库报表生成方法,其特征在于,通过所述服务器生 成的数据库连接池获取所述各个异构数据库中的数据。
4. 如权利要求3所述所述异构数据库报表生成方法,其特征在于,通过所述服务器根 据所述服务器中数据库被访问的频率、被访问数据量的大小和/或两者的组合生成的数据 库连接池获取所述各个异构数据库中的数据。
5. 如权利要求4所述所述异构数据库报表生成方法,其特征在于,通过所述服务器根 据预设的一段时间内所述服务器中数据库被访问的频率、被访问数据量的大小和/或两者 的组合生成的数据库连接池获取所述各个异构数据库中的数据。
6. 如权利要求1所述所述异构数据库报表生成方法,其特征在于,通过外部连接池工 具生成的数据库连接池获取所述各个异构数据库中的数据。
7. 如权利要求1所述所述异构数据库报表生成方法,其特征在于,所述将所述各个异 构数据库中的数据整合为所述报表可以识别的数据模型后展现包括将所述各个异构数据库的数据类型整合为同一种数据类型、将所述各个异构数据库的 数据格式整合为同一种数据格式和/或将所述各个异构数据库的字段命名整合为同一种 字段命名。
8. 如权利要求1所述所述异构数据库报表生成方法,其特征在于,所述与各个异构数 据库建立数据库连接后还包括识别通过所述数据库连接获取的数据源是否为直接参与计算的数据源。
9. 一种异构数据库报表生成装置,其特征在于,包括连接建立模块,用于与各个异构数据库建立数据库连接,所述数据库连接以数据库连 接对象保存于所述各个异构数据库的数据库连接池;数据获取模块,用于通过所述连接建立模块建立的数据库连接池,获取所述各个异构 数据库中的数据;数据整合模块,用于将所述数据获取模块获取的各个异构数据库中的数据整合为所述 报表可以识别的数据模型后展现。
10. 如权利要求9所述的异构数据库报表生成装置,其特征在于,所述装置还包括 数据源识别模块,用于识别通过所述数据库连接获取的数据源是否为直接参与计算的数据源。
11. 一种服务器,包括数据库,其特征在于,所述服务器包括接收模块,用于接收客户端配置的连接信息以使所述客户端与所述数据库建立数据库 连接,所述连接信息至少包括所述服务器的IP地址选项、数据库的ID选项、连接到所述数 据库的用户名选项以及密码选项;连接池生成模块,用于根据所述服务器中数据库被访问的频率、被访问数据量的大小 和/或两者的组合生成数据库连接池,所述连接池保存所述数据库连接。
12. 权利要求11所述的服务器,其特征在于,所述服务器还包括 由外部连接池工具生成的数据库连接池。
13. —种异构数据库系统,包括客户端和若干服务器,其特征在于,所述服务器包含异 构数据库或所述服务器之间为异构服务器,所述服务器包括接收模块,用于接收所述客户端配置的连接信息以使所述客户端与所述数据库建立数 据库连接,所述连接信息至少包括所述服务器的IP地址选项、数据库的ID选项、连接到所 述数据库的用户名选项以及密码选项;连接池生成模块,用于根据所述服务器中数据库被访问的频率、被访问数据量的大小 和/或两者的组合生成数据库连接池,所述数据库连接池保存所述数据库连接;所述客户端包括连接建立模块,用于与各个异构数据库建立数据库连接,所述数据库连接以数据库连 接对象保存于所述各个异构数据库的数据库连接池;数据获取模块,用于通过所述连接建立模块建立的数据库连接池,获取所述各个异构 数据库中的数据;数据整合模块,用于将所述数据获取模块获取的各个异构数据库中的数据整合为所述 报表可以识别的数据模型后展现。
14. 如权利要求13所述的异构数据库系统,其特征在于,所述服务器还包括 由外部连接池工具生成的数据库连接池。
15. 如权利要求13所述的异构数据库系统,其特征在于,所述客户端还包括 数据源识别模块,用于识别通过所述数据库连接获取的数据源是否为直接参与计算的数据源。
全文摘要
本发明实施例提供一种异构数据库报表生成方法,用于解决现有技术因为不支持异构数据库的连接或单一的连接方式耗费资源而不能满足报表数据来源于多维度应用的业务场景的问题,所述方法包括与各个异构数据库建立数据库连接,所述数据库连接以数据库连接对象保存于所述各个异构数据库的数据库连接池;通过所述各个异构数据库的数据库连接池,获取所述各个异构数据库中的数据;将所述各个异构数据库中的数据整合为所述报表可以识别的数据模型后展现。本发明提供可以高效地获取各个异构数据库的数据,节省服务器的资源和减小系统的开销,而对异构数据库数据的整合也可以使数据在报表中以同一模型同步展现。
文档编号G06F17/30GK101714157SQ20091017991
公开日2010年5月26日 申请日期2009年9月29日 优先权日2009年9月29日
发明者覃君武 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1