一种用于连接多个异构分布式数据库中的表的方法和系统技术方案

技术编号:4252134 阅读:258 留言:0更新日期:2012-04-11 18:40
提供了一种用于连接多个异构分布式数据库中的表的方法和系统。所述方法包括:响应于接收到数据查询命令,其中所述数据查询命令涉及来自至少两个远程数据源的数据,根据所述数据查询命令生成针对第一数据源的子命令;根据所述子命令,以块读取的方式从所述第一数据源中检索匹配数据;将所检索的块数据中的至少相关列传送到第二数据源并插入一个临时表中,用于与第二数据源中的表进行连接操作,其中所述相关列指的是与所述连接操作相关的列;并且从所述第二数据源接收经过连接的结果集合。根据本发明专利技术的方法和系统,可以减少在远程数据源中的磁盘输入/输出(I/O)成本、以及联邦数据库服务器和远程数据源之间的通信成本。

【技术实现步骤摘要】

本专利技术 一般地涉及数据库信息管理系统,并且具体而言涉及一种用于连接(join)多个异构分布式数据库中的表的方法和系统。
技术介绍
在大型的现代企业中,以下情形将是不可避免的即, 一家机构的不 同部门使用不同的数据库管理系统(DBMS)来存储和检索它们的关键数 据。而只有通过将这些系统的信息结合起来,该机构才能够实现这些数据 的完整价值。例如,在金融领域,并购几乎是常常出现的。新创建的机构将会继承 原始机构的数据库,而这些数据库中的许多都是关系数据库,但来自于不 同的制造商。它们可能具有一个或多个数据库管理系统。每个数据库可以 具有用于计算重要信息的不同应用。在并购之后,新机构需要能够访问所 有数据库的所有客户信息,使用现有应用以及新的应用来分析新的数据, 并且通过一个公用接口使用两家机构的合并资源。新机构需要能够识别两 者的公共客户,并且合并其帐户,但是不同机构可能在不同数据库中使用 完全不同的识别键(key)来引用其客户。由此可见,存在一种持续需要,即,连接多个异构分布式数据库从而 使能对存储于多个异构数据库中的数据的透明访问。在此,透明意味 着在特定位置的应用程序能够访问所有相连的数据库中的数据,而不用知 道数据的来源以及本地数据库与多个相连的远程数据库中的任一个是否兼 容。即,如果一个数据库系统是透明的,则它使得底层数据源的不同之处、 特质、以及实现方式对于用户是屏蔽的。为了提^4十对多个异构数据库的透明接口,在现有冲支术中, 一般使用一 个独立数据库作为统一的交互接口 ,并且使该接口能够在数据库管理系统的 控制下,根据接口表中包含的数据项访问其它数据库的数据。这种系统的当 前设计被称为联邦(federated )数据库服务器。联邦(federation )技术可以 通过提供对各种数据的统一接口而极大地便利于对异构数据的集成。现今, 联邦技术使能了对任意信息存储库中的任意格式(结构化的和非结构化的) 的任意数字信息的统一访问。关于联邦数据库服务器的更多细节,请参见 http:〃www.ibm.com/developerworks/db2/library/techarticle/0203haas/020 3haas.html,在此通过将其整体引入作为参考。在现有技术中,在两个或 多个异构数据库中的表之间进行连接操作常常是成本高昂的。本专利技术提供 了 一种优化:忮术。
技术实现思路
本专利技术的目的是提供一种用于通过联邦数据库系统对于多个异构分布 式数据库进行表连接的优化方法和系统,其中用于进行连接的基表都位于远程异构数据库中,所述方法和系统可以减少在远程数据库中的磁盘输;v/输出(1/0)成本、以及联邦数据库服务器和远程数据库之间的通信成本。 在本专利技术的第一方面中,提出了一种用于连接多个异构分布式数据库中的表的方法,所述方法包括响应于接收到数据查询命令,其中所述数据查询命令涉及来自至少两个远程数据源的数据,根据所述数据查询命令生成针对第一数据源的子命令;根据所述子命令,以块读取的方式从所述第 一数据源中检索匹配数据; 将所检索的块数据中的至少相关列传送到第二数据源并插入一个临时表中,用于与第二数据源中的表进行连接操作,其中所述相关列指的是与所述连接操作相关的列;并且从所述第二数据源接收经过连接的结果集合。在本专利技术的第二方面中,提出了一种用于连接多个异构分布式数据库中的表的系统,所述系统包括用于响应于接收到数据查询命令,其中所述数据查询命令涉及来自至 少两个远程数据源的数据,根据所述数据查询命令生成针对第一数据源的 子命令的装置;用于根据所述子命令,以块读取的方式从所述第一数据源中检索匹配 数据的装置;用于所检索的块数据中的至少相关列传送到第二数据源并插入一 个临 时表中,用于与第二数据源中的表进行连接操作的装置,其中所勤目关列 指的是与所迷连接操作相关的列;并且用于从所述第二数据源接收经过连接的结果集合的装置。 在本专利技术的第三方面中,提出了一种计算机程序产品,其可被加载到 计算机上并包括程序代码工具,当所述计算机程序产品在计算机上运行时,的方法的所有步骤。根据本专利技术的方法和系统,可以显著地提高跨多个远程异构数据库执 行表的连接操作的性能。在上述第二远程数据源上,还可以通i^合希连接 操作,能够在不用多次遍历第二数据源包含的表的情况下,查询到其中的 匹配列并执行连接操作,从而可以极大地减少磁盘I/O成本。哈希连接操 作特别适用于下迷任一情形或几种情形的組合第二数据源包含的表中不 存在索引、该表非常大。同时,通过使用块操作以及在第二数据源中创建 用于连接操作的临时表,减少了各组件之间的通信成本。附图说明在附带的权利要求中阐明了被认为是本专利技术新颖特性的特征。然而, 通过参考以下结合附图的说明性实施例的详细描述,将最好地理解本专利技术 本身以及其优选4吏用^^式、另外的目的和优点,在附图中图l描述了在现有技术中实现用于连接多个异构分布式数据库中的表 的方法的交互过禾呈的示意性框图;图2描述了实现根据本专利技术一个实施例的用于连接多个异构分布式数据库中的表的方法和组件间交互过程的示意性框图3说明了一种根据本专利技术一个实施例的用于连接多个异构分布式数 据库中的表的方法的详细流程图;以及图4说明了 一种根据本专利技术一个实施例的用于连接多个异构分布式数 据库中的表的系统的示意性框图。需要注意,在全体附图中,相同或相似的标号指代的是相同或相似的 单元或组件。具体实施例方式在下文中将结合附图对本专利技术的示范性实施例进行描述。为了清楚和 简明起见,在说明书中并未描述实际实现方式的所有特征。然而,应该了 解,在开发任何这种实际实施例的过程中必须做出很多实现方式所特定的 决定,以便实现开发人员的具体目标,例如符合与系统及业务相关的那些 限制条件,其中,这些限制条件会随着实施方式的不同而改变。此外,还 应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于这个公 开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。此外,还需要说明的一点是,为了避免因不必要的细节而混淆了本发 明,在附图中仅仅示出了与根据本专利技术的方案密切相关的装置结构和/或处 理步骤,而省略了与本专利技术关系不大的其它细节。参见图1,描述了在现有技术中实现用于连接多个异构分布式数据库 中的表的方法的交互过程的示意性框图。如图l所示,联邦数据库服务器 150通过网络与位于远程的客户端100、数据源l 110、数据源2 120分别 进行通信,所述网络可以是局域网(LAN)、广域网(WAN)、虚拟专用 网(VPN)、以及因特网等等。两个数据源就是两个远程数据库,其中数 据源1 110包含表T1 112,数据源2 120包含表T2 122。注意,为了简明 起见,在本示例以及本专利技术的上下文中,均仅使用两个数据源来进行说明。 当然,本领域技术人员可以理解,根据本专利技术实施例的方案同样良好地适用于多个数据库以及其上存储的多个表。首先,在步骤1,客户端100的用户通过其上运行的应用向联邦数据 库服务器150提交数据检索命令。例如,所提交的命令可以是以下的SQL 查询语句select T1.C1, T1.C2, T2.C2 from Tl, T2 where T1.C1-T2.C本文档来自技高网
...

【技术保护点】
一种用于连接多个异构分布式数据库中的表的方法,所述方法包括:    响应于接收到数据查询命令,其中所述数据查询命令涉及来自至少两个远程数据源的数据,根据所述数据查询命令生成针对第一数据源的子命令;    根据所述子命令,以块读取的方式从所述第一数据源中检索匹配数据;    将所检索的块数据中的至少相关列传送到第二数据源并插入一个临时表中,用于与第二数据源中的表进行连接操作,其中所述相关列指的是与所述连接操作相关的列;并且    从所述第二数据源接收经过连接的结果集合。

【技术特征摘要】
1.一种用于连接多个异构分布式数据库中的表的方法,所述方法包括响应于接收到数据查询命令,其中所述数据查询命令涉及来自至少两个远程数据源的数据,根据所述数据查询命令生成针对第一数据源的子命令;根据所述子命令,以块读取的方式从所述第一数据源中检索匹配数据;将所检索的块数据中的至少相关列传送到第二数据源并插入一个临时表中,用于与第二数据源中的表进行连接操作,其中所述相关列指的是与所述连接操作相关的列;并且从所述第二数据源接收经过连接的结果集合。2. 根据权利要求l所述的方法,进一步包括在以块读取的方式从所述第 一数据源中检索匹配数据之前,确定从所 述第一数据源读取的块数据的大小。3. 根据权利要求2所述的方法,其中确定从所述第一数据源读取的块 数据的大小的所述步骤进一步包括计算在所述第二数据源中可用于执行连接操作的最大存储器大小除以 将在所述第二数据源中建立的临时表的最大行大小得到的最大行数,以及 可用本地高速緩存的最大存储器大小除以所读取的块数据的最大行大小得 到的最大行数;以及将二者中较小的行数值作为可读取的块数据的行数。4. 根据权利要求l所述的方法,进一步包括响应于从所述第 一数据源所读取的块数据中的无关列的大小大于行指 针列,仅将所述块数据中的相关列以及所述行指针列传送到所述第二数据 源并插入所述临时表中,其中所述无关列指的是与将在所述第二数据源中 的表进行的连接操作不相关的列,所述行指针列唯一地标识了来自所述第 一数据源的块数据中的各个行。5. 根据权利要求4所述的方法,进一步包括根据所述行指针列,将从所述第二数据源接收的经过连接的结果集合 与从所述第 一数据源所检索的块数据直接合并以形成合并表。6. 根据权利要求l所述的方法,进一步包括响应于从所述第一数据源所读取的块数据中的无关列的大小小于行指 针列,将所述块数据中的全部列传送到所述第二数据源并插入所述临时表 中,其中所述无关列指的是与将在所述第二数据源中的表进行的连接操作 不相关的列,所述行指针列唯一地标识了来自所述第 一数据源的块数据中 的各个行。7. 根据权利要求6所述的方法,进一步包括将从所述第二数据源接收的经过连接的结果集合直接存储作为合并表。8. 根据权利要求l所述的方法,其中所述连接操作是哈希连接操作。9. 根据权利要求l所述的方法,其中所述连接操作是块嵌套循环连接 操作。10. —种用于连接多个异构分布式数据库中的表的系统,所述系统包括用于响应...

【专利技术属性】
技术研发人员:李明李海峰孙云峰赵胜
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1