跨数据库和文件系统的查询一体化的制作方法

文档序号:8947463阅读:346来源:国知局
跨数据库和文件系统的查询一体化的制作方法
【专利说明】
【背景技术】
[0001]数据库用于搜集、访问和管理数据。通常将数据库组织成支持对数据的处理。例如,数据库通常用于实现航空公司、汽车租赁和连锁酒店的预定系统。数据库通常还用于维持银行账户和其他金融和客户记录,在这里仅仅列举在各种业务中使用数据库的几个非限制性示例。
[0002]数据库管理系统(DBMS)可以被实现为限定、创建、查询以及管理数据库。示例DBMS包括但不限于PostgreSQL系统。其他商业和专用DBMS也可用。尽管不同的DBMS能够利用标准接口(例如,SQL标准)对不同的数据库进行操作,但在不同的DBMS之间数据库通常不是便携的。即,一种类型的DBMS往往不能访问以不同的数据结构或形式存储的数据。
【附图说明】
[0003]图1是对于跨数据库和文件系统的查询一体化可实现的示例网络计算机系统的尚级不图。
[0004]图2是图示跨数据库和文件系统的查询一体化的示例的图形表示。
[0005]图3是图示被实现为Hadoop文件系统(HDFS)数据源和数据接收器的关系数据库(RDB)的示例的图形表示。
[0006]图4是图示被实现为关系数据库(RDB)应用的数据存储器的Hadoop文件系统(HDFS)数据库的示例的图形表示。
[0007]图5是图示查询结果的拼接操作以及将其存储至关系数据库(RDB)的存储操作的示例的图形表示。
[0008]图6是图示查询结果的拼接操作以及将其存储至Hadoop文件系统(HDFS)的存储操作的示例的图形表示。
[0009]图7a至图7c是图示用于实现跨数据库和文件系统的查询一体化的示例操作的流程图。
【具体实施方式】
[0010]公开了跨数据库和文件系统的查询一体化。通过图示,数据一体化可包括在现有(规则)RDB上运行SQL查询,该查询使HDFS数据作为数据源,并且为此查询引擎使用函数扫描来取代表扫描。数据一体化使HDFS中的数据在由传统RDB的查询引擎处理的SQL查询中进行流操作。以此方式,HDFS变成该查询的数据源。注意,查询一体化可在无需首先将来自Hadoop平台的数据复制/具体化至RDB平台以进行查询的情况下出现。因此,查询一体化表示不同数据库文件系统的动态的“并排”或平行一体化,并且不同于静态地合并这些文件系统。
[0011]许多业务具有不止一种数据库(例如,RDB和HDFS 二者)。例如,银行可将现有客户记录保持在RDB中用于快速访问。银行还可以保持遗产记录用于在HDFS数据库中长期存储。然而,时常需要来自两种类型的数据库的数据。例如,当生成一份包括存储在HDFS数据库中的历史交易和存储在RDB中的当前交易的报告时。
[0012]DBMS可能具有至RDB的SQL接口。SQL接口是适于管理相对小规模(在百万兆字节数量级)的结构数据的成熟平台。另一个DBMS可具有至HDFS数据库的关键值(非SQL)接口。HDFS是分布的容错平台,适用于管理相对大规模(例如,在千万亿字节数量级)的非结构数据。
[0013]尽管本文参考RDB和HDFS数据库描述了示例,但用于跨数据库和文件系统的查询一体化的技术可应用于各种不同类型的数据库结构或格式,以及DBMS。
[0014]通常不能直接查询被存储在这些不同数据库结构或格式中的数据。访问被保持在不同数据库格式或结构中的数据的尝试目前涉及性能上的权衡。即,数据首先必须转换成与查询引擎被配置成进行操作的数据库格式相同的数据库格式。例如,来自HDFS数据库的元数据、属性描述以及交易类型数据可被建模为关系,然后被存储在RDB中,用于由SQL查询弓I擎访问。同样,RDB中的内容信息(例如,文本、图像以及语音)可被建模为“大-表”(例如,作为本地Hadoop数据对象),然后被存储在HDFS数据库中,用于由Hadoop查询引擎访问。尽管大多数的数据类型能够被转换成其他格式,然后被加载进不同数据库类型用于查询,但这些转换操作引入了一定水平的静态物化并且相应地增加了处理和存储开销。
[0015]本文公开了跨数据库和文件系统(例如,跨RDB数据库和HDFS数据库)的查询一体化,其在转换之前不再需要将数据从一种数据库格式转换成另一种数据库格式。使用本文所描述的查询一体化系统和方法的不同数据库类型的一体化使被存储在任意系统中的数据能够(例如,经由SQL和/或Hadoop应用)被访问。本文所描述的查询一体化系统和方法还支持对以可扩展的有效方式从两个系统检索的数据进行可扩展拼接操作。
[0016]在示例中,查询一体化系统包括适于与不同数据库结构和格式一起工作的查询引擎。在操作期间,查询引擎使由第一种类型的数据库文件系统(例如,RDB)管理的数据进行流操作。查询引擎还使由第二种类型的数据库文件系统(例如,HDFS数据库)管理的数据进行流操作。查询引擎将由第一种类型数据库文件系统管理的数据与由第二种类型数据库文件系统管理的数据拼接。拼接的数据可以被保存在RDB数据库和/或HDFS数据库。还可以使用不同类型和/或不同数量的数据库。
[0017]注意,能够利用现有并行数据库集群来实现示例查询一体化系统。S卩,不必从“底层”建立新的查询引擎,如本文所描述的,现有查询引擎可被修改成利用处理查询的已成熟的特征。例如,查询引擎能够被修改成(例如,使用现有表扫描函数)监视RDB数据,被修改成(例如,利用现有函数扫描)检索HDFS数据,并且使用本文所述的技术拼接这些数据流。
[0018]还应注意,本文描述的查询一体化系统和方法通过处理流文本中的数据来释放数据检索。流数据缓解了存储器限制,并且在处理期间减少了磁盘访问。另外,查询引擎不必构建大的临时表(甚至在查询之后都可能不需要该表),否则,将不得不在磁盘上产生并且保存。
[0019]在继续之前,应注意,如本文中所使用的术语“包括”意味着,但不限于,“包括”和“至少包括”。术语“基于”意味着“基于”和“至少部分基于”。
[0020]图1是对于跨数据库和文件系统的查询一体化可实现的示例计算机系统的高级图示。系统100可以使用各种计算装置中的任何计算装置来实现。每个计算装置可包括内存、存储器以及至少足以管理与另一计算装置的直接或间接(例如,经由网络)的通信连接的一定数据处理能力。至少一个计算机装置还配置有足够的执行本文所描述的计算机代码的处理能力。
[0021]在一个示例中,系统100可以包括由客户端装置120访问的主机110。为了图示,主机110可以配置为服务器计算机,其具有计算机可读存储器115,其中存储了能够由处理器执行的程序代码130。程序代码130可包括至应用编程设计接口(API)和相关支持基础设施例如(多个)DBMS和(多个)查询引擎的接口。但是,应注意,本文所描述的操作可以由驻留在主机110上的程序代码130来执行,也可以实现另一服务器计算机或多个服务器计算机(和其他类型的计算装置)。
[0022]在示例中,程序代码130经由计算机网络140(例如,但不限于,基于云的网络)访问多个数据库类型。数据库150、155可存储任意类型的内容或数据,例如信息和/或应用数据。可存储在数据库150、155上的内容的类型或量没有限制。另外,内容可包括未处理的或“原始的”数据,或者可经历了某种程度的处理的内容。
[0023]图1示出了各自分别由不同的DBMS 160、DBMS 165管理的两个数据库类型150、155。这些数据库可以物理分布在网络140中,并且与主机110相关联地操作。每个数据库自身可包括物理分布的节点。
[0024]为了图示,数据库150可以是RDB,并且数据库155可以是HDFS数据库。每个数据库150、155可以物理分布在网络上,并且每个数据库150、155可以包括物理分布的节点。DBMS 160可以为RDB 150中存储的数据提供SQL接口,并且DBSM 165可以为HDFS数据库165中存储的数据提供Hadoop接口。然而,应注意,数据库类型不限于任意特定类型和/或数据库的数量。
[0025]RDB和HDFS数据库共享某些公共的特征。例如,两个平台都使用主机的集群以存储大的数据组。然而,RDB和HDFS数据库在数据库类型上是不同的,每种类型的数据库最佳地进行工作。HDFS数据库和Hadoop DBMS通常被认为最适合于涉及非结构数据(例如,但不限于,自然语言内容)的任务。RDB和SQL DBMS通常被认为最适合于使用能够被加载进数据表的结构数据。
[0026]为了图示,RDB 150可用于存储短期数据,例如,客户在过去的12个月内的银行交易。RDB能够对这种类型的数据进行快速访问,但通常用于存储更少量的数据。HDFS数据库155可用于存储历史和/或遗产数据,例如客户在最近12个月以外的银行交易。HDFS数据库能够长期存储大量数据,但通常访问和/或处理数据更慢。有时可能会出现需要来自两种类型数据库的数据,例如,以生成银行客户的最近和历史的交易报告。注意,使用数据库不限于银行业,并且该示例仅是为了例示。
[0027]可以(例如,由主机110)执行程序代码130,以提供跨数据库和文件系统的查询一体化。在示例中,查询一体化系统包括查询引擎,该查询引擎是可执行的,以对由第一数据库文件系统管理的数据进行流操作,并且对由第二数据库文件系统管理的数据进行流操作。查询
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1