CN105164673A - 跨数据库和文件系统的查询一体化 - Google Patents

跨数据库和文件系统的查询一体化 Download PDF

Info

Publication number
CN105164673A
CN105164673A CN201380076177.3A CN201380076177A CN105164673A CN 105164673 A CN105164673 A CN 105164673A CN 201380076177 A CN201380076177 A CN 201380076177A CN 105164673 A CN105164673 A CN 105164673A
Authority
CN
China
Prior art keywords
data
database
file system
hdfs
rdb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201380076177.3A
Other languages
English (en)
Inventor
Q·陈
M·许
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Antite Software Co., Ltd.
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN105164673A publication Critical patent/CN105164673A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24537Query rewriting; Transformation of operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Abstract

公开了跨数据库和文件系统的查询一体化。示例性方法可包括对由第一数据库文件系统管理的数据进行流操作,以供查询。该方法还可包括对由第二数据库文件系统管理的数据进行流操作,以供查询。该方法还可包括将由第一数据库文件系统管理的流数据与由第二数据库文件系统管理的流数据拼接。

Description

跨数据库和文件系统的查询一体化
背景技术
数据库用于搜集、访问和管理数据。通常将数据库组织成支持对数据的处理。例如,数据库通常用于实现航空公司、汽车租赁和连锁酒店的预定系统。数据库通常还用于维持银行账户和其他金融和客户记录,在这里仅仅列举在各种业务中使用数据库的几个非限制性示例。
数据库管理系统(DBMS)可以被实现为限定、创建、查询以及管理数据库。示例DBMS包括但不限于PostgreSQL系统。其他商业和专用DBMS也可用。尽管不同的DBMS能够利用标准接口(例如,SQL标准)对不同的数据库进行操作,但在不同的DBMS之间数据库通常不是便携的。即,一种类型的DBMS往往不能访问以不同的数据结构或形式存储的数据。
附图说明
图1是对于跨数据库和文件系统的查询一体化可实现的示例网络计算机系统的高级示图。
图2是图示跨数据库和文件系统的查询一体化的示例的图形表示。
图3是图示被实现为Hadoop文件系统(HDFS)数据源和数据接收器的关系数据库(RDB)的示例的图形表示。
图4是图示被实现为关系数据库(RDB)应用的数据存储器的Hadoop文件系统(HDFS)数据库的示例的图形表示。
图5是图示查询结果的拼接操作以及将其存储至关系数据库(RDB)的存储操作的示例的图形表示。
图6是图示查询结果的拼接操作以及将其存储至Hadoop文件系统(HDFS)的存储操作的示例的图形表示。
图7a至图7c是图示用于实现跨数据库和文件系统的查询一体化的示例操作的流程图。
具体实施方式
公开了跨数据库和文件系统的查询一体化。通过图示,数据一体化可包括在现有(规则)RDB上运行SQL查询,该查询使HDFS数据作为数据源,并且为此查询引擎使用函数扫描来取代表扫描。数据一体化使HDFS中的数据在由传统RDB的查询引擎处理的SQL查询中进行流操作。以此方式,HDFS变成该查询的数据源。注意,查询一体化可在无需首先将来自Hadoop平台的数据复制/具体化至RDB平台以进行查询的情况下出现。因此,查询一体化表示不同数据库文件系统的动态的“并排”或平行一体化,并且不同于静态地合并这些文件系统。
许多业务具有不止一种数据库(例如,RDB和HDFS二者)。例如,银行可将现有客户记录保持在RDB中用于快速访问。银行还可以保持遗产记录用于在HDFS数据库中长期存储。然而,时常需要来自两种类型的数据库的数据。例如,当生成一份包括存储在HDFS数据库中的历史交易和存储在RDB中的当前交易的报告时。
DBMS可能具有至RDB的SQL接口。SQL接口是适于管理相对小规模(在百万兆字节数量级)的结构数据的成熟平台。另一个DBMS可具有至HDFS数据库的关键值(非SQL)接口。HDFS是分布的容错平台,适用于管理相对大规模(例如,在千万亿字节数量级)的非结构数据。
尽管本文参考RDB和HDFS数据库描述了示例,但用于跨数据库和文件系统的查询一体化的技术可应用于各种不同类型的数据库结构或格式,以及DBMS。
通常不能直接查询被存储在这些不同数据库结构或格式中的数据。访问被保持在不同数据库格式或结构中的数据的尝试目前涉及性能上的权衡。即,数据首先必须转换成与查询引擎被配置成进行操作的数据库格式相同的数据库格式。例如,来自HDFS数据库的元数据、属性描述以及交易类型数据可被建模为关系,然后被存储在RDB中,用于由SQL查询引擎访问。同样,RDB中的内容信息(例如,文本、图像以及语音)可被建模为“大-表”(例如,作为本地Hadoop数据对象),然后被存储在HDFS数据库中,用于由Hadoop查询引擎访问。尽管大多数的数据类型能够被转换成其他格式,然后被加载进不同数据库类型用于查询,但这些转换操作引入了一定水平的静态物化并且相应地增加了处理和存储开销。
本文公开了跨数据库和文件系统(例如,跨RDB数据库和HDFS数据库)的查询一体化,其在转换之前不再需要将数据从一种数据库格式转换成另一种数据库格式。使用本文所描述的查询一体化系统和方法的不同数据库类型的一体化使被存储在任意系统中的数据能够(例如,经由SQL和/或Hadoop应用)被访问。本文所描述的查询一体化系统和方法还支持对以可扩展的有效方式从两个系统检索的数据进行可扩展拼接操作。
在示例中,查询一体化系统包括适于与不同数据库结构和格式一起工作的查询引擎。在操作期间,查询引擎使由第一种类型的数据库文件系统(例如,RDB)管理的数据进行流操作。查询引擎还使由第二种类型的数据库文件系统(例如,HDFS数据库)管理的数据进行流操作。查询引擎将由第一种类型数据库文件系统管理的数据与由第二种类型数据库文件系统管理的数据拼接。拼接的数据可以被保存在RDB数据库和/或HDFS数据库。还可以使用不同类型和/或不同数量的数据库。
注意,能够利用现有并行数据库集群来实现示例查询一体化系统。即,不必从“底层”建立新的查询引擎,如本文所描述的,现有查询引擎可被修改成利用处理查询的已成熟的特征。例如,查询引擎能够被修改成(例如,使用现有表扫描函数)监视RDB数据,被修改成(例如,利用现有函数扫描)检索HDFS数据,并且使用本文所述的技术拼接这些数据流。
还应注意,本文描述的查询一体化系统和方法通过处理流文本中的数据来释放数据检索。流数据缓解了存储器限制,并且在处理期间减少了磁盘访问。另外,查询引擎不必构建大的临时表(甚至在查询之后都可能不需要该表),否则,将不得不在磁盘上产生并且保存。
在继续之前,应注意,如本文中所使用的术语“包括”意味着,但不限于,“包括”和“至少包括”。术语“基于”意味着“基于”和“至少部分基于”。
图1是对于跨数据库和文件系统的查询一体化可实现的示例计算机系统的高级图示。系统100可以使用各种计算装置中的任何计算装置来实现。每个计算装置可包括内存、存储器以及至少足以管理与另一计算装置的直接或间接(例如,经由网络)的通信连接的一定数据处理能力。至少一个计算机装置还配置有足够的执行本文所描述的计算机代码的处理能力。
在一个示例中,系统100可以包括由客户端装置120访问的主机110。为了图示,主机110可以配置为服务器计算机,其具有计算机可读存储器115,其中存储了能够由处理器执行的程序代码130。程序代码130可包括至应用编程设计接口(API)和相关支持基础设施例如(多个)DBMS和(多个)查询引擎的接口。但是,应注意,本文所描述的操作可以由驻留在主机110上的程序代码130来执行,也可以实现另一服务器计算机或多个服务器计算机(和其他类型的计算装置)。
在示例中,程序代码130经由计算机网络140(例如,但不限于,基于云的网络)访问多个数据库类型。数据库150、155可存储任意类型的内容或数据,例如信息和/或应用数据。可存储在数据库150、155上的内容的类型或量没有限制。另外,内容可包括未处理的或“原始的”数据,或者可经历了某种程度的处理的内容。
图1示出了各自分别由不同的DBMS160、DBMS165管理的两个数据库类型150、155。这些数据库可以物理分布在网络140中,并且与主机110相关联地操作。每个数据库自身可包括物理分布的节点。
为了图示,数据库150可以是RDB,并且数据库155可以是HDFS数据库。每个数据库150、155可以物理分布在网络上,并且每个数据库150、155可以包括物理分布的节点。DBMS160可以为RDB150中存储的数据提供SQL接口,并且DBSM165可以为HDFS数据库165中存储的数据提供Hadoop接口。然而,应注意,数据库类型不限于任意特定类型和/或数据库的数量。
RDB和HDFS数据库共享某些公共的特征。例如,两个平台都使用主机的集群以存储大的数据组。然而,RDB和HDFS数据库在数据库类型上是不同的,每种类型的数据库最佳地进行工作。HDFS数据库和HadoopDBMS通常被认为最适合于涉及非结构数据(例如,但不限于,自然语言内容)的任务。RDB和SQLDBMS通常被认为最适合于使用能够被加载进数据表的结构数据。
为了图示,RDB150可用于存储短期数据,例如,客户在过去的12个月内的银行交易。RDB能够对这种类型的数据进行快速访问,但通常用于存储更少量的数据。HDFS数据库155可用于存储历史和/或遗产数据,例如客户在最近12个月以外的银行交易。HDFS数据库能够长期存储大量数据,但通常访问和/或处理数据更慢。有时可能会出现需要来自两种类型数据库的数据,例如,以生成银行客户的最近和历史的交易报告。注意,使用数据库不限于银行业,并且该示例仅是为了例示。
可以(例如,由主机110)执行程序代码130,以提供跨数据库和文件系统的查询一体化。在示例中,查询一体化系统包括查询引擎,该查询引擎是可执行的,以对由第一数据库文件系统管理的数据进行流操作,并且对由第二数据库文件系统管理的数据进行流操作。查询引擎也是可执行的,以将由第一数据库文件系统管理的数据与由第二数据库文件系统管理的数据拼接。
查询引擎的流操作能力可适合于检索流处理内容中的数据。通过图示,查询引擎可将HDFS数据(例如,依据本地关键值(KV)API可检索的大表或依据HiveSQL可检索的“Hive表”)转换成有界流,以馈送至SQL查询。该机制使查询能够利用SQL引擎进行运行,而不需要HDFS查询引擎。流数据可以通过将“函数扫描”延伸为流源函数(SSF)来处理,以降低处理和/或存储开销,否则该处理和/或存储开销会通过“物化”一个表而产生。如此,HDFS数据可适应任何格式,而不必首先必须被“同化”(例如,物化的关系表)
用于跨数据库和文件系统的查询一体化的程序代码130可由任意适合的计算装置来执行。在示例中,所讨论的程序代码可以以机器可读指令(例如,但不限于软件或固件)来实现。机器可读指令可被存储在非暂时性机器可读介质上,并且可由一个或更多个处理器执行,以执行本文所描述的操作。然而,应注意,仅为了例示的示例操作环境而描述了这些计算装置,并且这些计算装置并不意在限制对任意特定系统的实现。
能够参考图2和对各种示例功能的以下讨论更好地理解用于实现跨数据库和文件系统的查询一体化的程序代码。然而,本文所描述的操作不限于使用任意特定类型的程序代码的任意具体实现。
图2是图示跨数据库和文件系统的查询一体化的图形表示。根据一个示例,在本文中,查询一体化的示例性实现方式被称为“拼接数据库(JointBase)”。拼接数据库可实现为开放结构,包括系统支持的抽象函数,其能够被配置成使用各种数据库引擎(例如,Sequest,PostgreSQL,MySQL,Vertica)、数据源(例如,Hive-表,大表)以及应用(例如,各种映射-减少(Map-Reduce)应用的输入/输出格式)。拼接数据库可用于访问来自不同数据库结构(例如,RDBSQL和映射-减少应用)的数据并且用于拼接来自不同数据库结构的数据。
在一个示例中,拼接数据库将单独的服务器集群上的并行数据库平台(例如,分布的RDB集群210和分布的Hadoop集群220)与单独的数据库节点集成。拼接数据库提供了用于Hadoop映射-减少应用的抽象RDB连接器230,其在HDFS集群220中实现了映射-减少查询235,以从RDB240检索输入数据并且将输出数据保存至RDB240。RDB连接器230可适合于容纳特定数据库平台,并且容纳具有特定RDB输入/输出格式的应用。
拼接数据库还可以为从RDB集群210发布的SQL查询255提供抽象Hadoop连接器250,以通过函数扫描检索来自Hadoop集群210的输入数据。Hadoop连接器250可适于容纳特定数据库平台,并且容纳具有特定Hadoop输入/输出格式的应用。
另外,拼接数据库可支持对来自集群210和220的数据的拼接。在一个示例中,操作开始于从HDFS数据库260检索数据,以将SQL查询255添加在流处理内容中。在一个示例,流是有界的(例如,不是无限的)
数据库表(其包含位于磁盘上的一组元组)由新的表函数代替,该新的表函数在本文中被称为流源函数(SSF)。SSF被配置成返回元组序列,以馈送元组,而不必首先在磁盘上存储查询。SSF能够从HDFS数据库260读取数据/记录序列,并且生成元组。在查询执行期间SSF可被调用多次,每次调用返回一个元组。由现有查询引擎(例如,PostgreSQL引擎)提供的函数扫描机制可延伸至非阻塞SSF输出,以连续地逐元组地馈送查询。
可在两个级别上支持SSF:函数扫描级和查询执行者级。通常,包含函数调用信息的数据结构桥接这两个级。即,函数调用可开始于查询执行者并且为了交换与函数调用相关的信息而进入/离开SSF。该机制减少了查询引擎的代码变化,同时在本文所描述的查询一体化能力的环境中使查询引擎的延伸能力最大化。
在一个示例中,SSF可使用HadoopAPI(例如,KVAPI或HiveAPI)从在HDFS集群220中的记录迭代器(RIR)读取数据记录。RIR从HDFS数据库260中检索数据,并且逐记录地输出数据处理结果。RIR还可以用作RDR集群210中的SSF的数据源。
拼接数据库接口还可以用于实现跨数据库和文件系统的查询一体化。存在几种方式来实现拼接数据库接口,以查询来自其他数据库格式的数据。例如,可以开发新的查询引擎以包括拼接数据库接口。在另一个示例中,可以以另一数据库格式构建存储表。然而,这些技术的特征为“同化”另一数据库类型中的数据。
拼接数据库实现方式是不同的,不同之处在于并不将一种数据格式“同化”成另一个。相反,拼接数据库在不同的数据库格式之间工作时“适应”本地数据。即,拼接数据库允许现有查询引擎直接访问数据(例如,HDFS查询访问RDB数据,反之亦然)。如此,无需转换就可在常驻数据上支持表和函数。另外,所有的标准文件格式都被支持,并且如果需要的话,可以实现定制的文件格式。能够通过查询引擎函数扫描来检索所有数据,而与底层数据结构或格式无关。
为了图示,将在下面描述跨数据库和文件系统的示例查询一体化,首先将RDB实现为HDFS数据源和接收器(图3),然而将HDFS数据库实现为RDB数据存储器(图4)。
图3是图示被实现为Hadoop文件系统(HDFS)数据源和接收器的关系数据库(RDB)300的图形表示。Hadoop应用通常经由HDFS查询320(例如,映射减少)来查询HDFS数据库310中的数据。因此,为了使HDFS查询320访问RDB300,可以利用拼接数据库接口330。
在一个示例中,拼接数据库接口330使HDFS查询320能够通过连接器331、332访问存储在RDB300中的数据。例如,SQL连接器用于RDB300中的HDFS查询320。在Hadoop中,MapReduce、InputFormat以及OutputFormat对象被重写,并且抽象DbRecordReader和DbRecordWriter可被延伸用于特定应用。
在继续之前,应理解某些技术。映射减少函数用于将输入数据集划分成单独的块,然后这些块可由映射任务来处理。映射的输出被输入为减少任务。通常,输入和输出都被存储。映射减少函数处理调度任务、监视任务以及重新执行任何出故障的任务。InputFormat限定如何将数据从文件读取为映射器(Mapper)实例。OutputFormat限定如何将文件的数据写入映射器实例。DbRecordReader和DbRecordWriter分别是用于读取和写入数据记录的函数。
连接器331可由拼接数据库接口330用于从RDB300读取数据,用于如下HDFS查询320。首先,工作输入格式被设置成DbInputFormat类341。DbInputFormat类341与SQL查询340接合,以从RDB300读取数据。然后,创建用于接受DbRecord对象以作为至HDFS查询320的输入的映射器类。
连接器332可由拼接数据库接口330用于将数据保存或写入RDB300,用于以下HDFS查询320。首先,工作的输出值类被设置成DbRecord。存储数据的细节在DbOutputFormat类342中设定。DbOutputFormat类342与SQL查询340接合,以将数据写入RDB。然而,创建将数据加入DbRecord对象并且调用写入方法的减少类,以在RDB300中存储数据。
在一个示例中,用于读取/写入RDB数据的连接器331、332可在Hadoop集群中的多个节点上执行。因此,Hadoop节点和数据库节点能够彼此直接通信。直接连接允许数据并行传输,提高了处理速度。
图4是图示Hadoop文件系统(HDFS)数据库400作为关系数据库(RDB)应用的数据存储器410的图形表示。RDB应用可以经由SQL查询420来查询RDB数据库410中的数据。因此,为了使SQL查询420能够访问在HDFS数据库中存储的数据,SQL查询420必须访问HDFS数据库。
在一个示例中,通过流操作从HDFS数据库400获取数据。例示了用于将HDFS数据转换为流数据的迭代器430。在一个示例中,迭代器430作为函数扫描代替表扫描函数,因此使查询的数据源是记录生产函数。函数扫描可延伸至允许(例如,以元组为基础)的非阻塞输出。
将HDFS数据馈送(由箭头431例示)至SQL查询420可由在SQL查询的数据源上的SSF(流源函数)440来执行。SSF可使用HadoopAPI(例如,KVAPI或HiveAPI)从HDFS集群中的记录迭代器(RIR)中读取数据记录,以从HDFS数据库400中检索数据并且逐记录地输出数据处理结果。
在一个示例中,RIR可以使用HadoopOutputFormat和DbRecordWriter来实现。RIR可在Hadoop集群中的多个节点上运行,使得Hadoop节点和RDB节点彼此直接通信。直接连接允许数据并行传输,从而提高了处理速度。
不利用SSF/RIR连接来将查询结果写入HDFS数据库400。相反,SQL查询结果可保存(由箭头432图示)至以下HDFS数据库400。SQL查询420在RDB集群中执行,并且从RDB410或HDFS数据库400或这两者检索数据。Hadoop应用使用RDB至Hadoop连接器,以得到SQL查询420的结果。然后,从查询结果得到的数据使用由Hadoop平台支持的机制被保存至HDSF数据库400(例如,存储至大表,或者作为Hive表)。
图3和图4图示了访问和保存跨数据库和文件系统的查询一体化的数据。查询一体化还可以被实现为拼接来自每个数据库平台的数据。下面参考图示了两个示例情形的图5和图6来讨论拼接操作。
图5是图示查询结果的拼接操作以及将其存储至关系数据库(RDB)500的存储操作的图形表示。在此示例中,通过表扫描505检索来自RDB500的数据。通过函数扫描515检索来自HDFS数据库510的数据。JointBase使用在HDFS集群(例如,在Hadoop应用)中实现的拼接函数来拼接来自每个数据库的数据。然后,得到的数据被写入RDB500,如图5中由箭头520所图示。
图6是图示查询结果的拼接操作以及将其存储至Hadoop文件系统(HDFS)数据库600的存储操作的图形表示。在此示例中,来自HDFS数据库600的数据由表扫描605来检索。来自RDB610的数据由函数扫描615检索。JointBase使用在RDB集群(例如,在SQL应用)中实现的拼接函数来拼接来自每个数据库的数据。然后,得到的数据被写入HDFS数据库600,如图6中由箭头620所图示。
在继续之前,应注意,上述示例仅为了例示而提供,并且并不意在进行限制。可以利用其它设备和/或设备配置来执行本文所描述的操作。
图7a-图7c是图示可用于实现跨数据库和文件系统的查询一体化的示例操作的流程图。这些操作可体现为在一个或多个计算机可读介质上的逻辑指令。当逻辑指令在处理器上执行时促使通用计算装置被编程为实现所述操作的专用机器。在一个示例中,可以使用在图中描述的部件和连接。
在图7a中,示例操作710包括对由第一数据库文件系统管理的数据进行流操作,以供查询。示例操作720包括对由第二数据库文件系统管理的数据进行流操作,以供查询。示例操作730包括将由第一数据库文件系统管理的流数据与由第二数据库文件系统管理的流数据拼接。示例操作740包括以由第一数据库文件系统和第二数据库文件系统之一支持的格式保存来自第一数据库和第二数据库的拼接数据。
在一个示例中,由第一数据库文件系统管理的流数据的操作710可以包括:通过迭代器将Hadoop数据变成流的示例操作714;由函数扫描代替表扫描以使查询的数据源是记录生成函数的示例操作714;以及延伸函数扫描以进行非阻塞逐元组输出的示例操作716。
为了图示,图7b通过以下示例操作示出了拼接查询结果并将其存储至RDB:通过表扫描从RDB检索数据的示例操作750;通过函数扫描从HDFS数据库检索数据的示例操作752;将来自RDB和HDFS数据库的检索数据进行拼接的示例操作754;以及将拼接数据写至RDB的示例操作756。
通过进一步图示,图7c通过以下示例操作示出了拼接查询结果并将其存储至HDFS数据库:通过表扫描从RDB检索数据的示例操作760;通过函数扫描从HDFS数据库检索数据的示例操作762;将来自RDB和HDFS数据库的检索数据进行拼接的示例操作764;以及以HDFS支持的格式保存拼接数据的示例操作766。
提供在图7a-图7c中所示并且在本文中描述的操作,以图示跨数据库和文件系统的查询一体化的示例实现。注意,这些操作不限于所示的顺序。还可以实现用于跨数据库和文件系统的查询一体化的其他操作。
在一个示例中,用于访问RDB中的来自Hadoop文件系统的操作可包括:将Hadoop工作输入格式设置成数据库输入格式(DbInputFormat)类;向查询提供DbInputFormat类以从RDB提取数据;以及创建映射器类,以接受数据库记录对象作为输入。
在另一示例中,用于将来自Hadoop文件系统应用的数据写入RDB的操作可以是:将Hadoop工作的输出值类设定成数据库记录;设定用于在专用数据库输出格式类中存储数据的表的细节;以及创建将数据添加至数据库记录对象并且调用写入方法以存储数据的减少类。
可以至少部分利用终端用户接口(例如,基于网络的接口)来实现跨数据库和文件系统的查询一体化。在一个示例中,终端用户能够做出预定选择,并且上述操作在后端装置上实现以向用户呈现结果。然后用户可进行进一步选择。还应注意,本文所描述的各种操作可以是自动的或部分自动的。
注意,为了图示而提供了所示的所述的示例并且这些示例并不意在进行限制。还可以设想其他示例。

Claims (15)

1.一种跨数据库和文件系统的查询一体化的方法,包括:
对由第一数据库文件系统管理的数据进行流操作,以供查询;
对由第二数据库文件系统管理的数据进行流操作,以供所述查询;以及
将由所述第一数据库文件系统管理的流数据与由所述第二数据库文件系统管理的流数据拼接。
2.根据权利要求1所述的方法,进一步包括以由所述第一数据库文件系统和所述第二数据库文件系统之一支持的格式保存拼接的数据。
3.根据权利要求1所述的方法,其中对由第一数据库文件系统管理的数据进行流操作进一步包括:
使用迭代器将Hadoop数据变成流;
利用函数扫描代替表扫描,以生成所述查询的数据源作为记录生成函数;以及
延伸函数扫描,以进行非阻塞逐元组输出。
4.根据权利要求1所述的方法,进一步包括通过以下操作从Hadoop文件系统(HDFS)访问关系数据库(RDB)中的数据:
将Hadoop工作输入格式设置为数据库输入格式(DbInputFormat)类;
为所述DbInputFormat类指定查询,以从所述RDB提取数据;以及
创建映射器类,以接受数据库记录对象作为输入。
5.根据权利要求1所述的方法,进一步包括通过以下操作将数据从Hadoop文件系统(HDFS)写入关系数据库(RDB):
对数据库记录设定Hadoop工作的输出值类;
设定用于以数据库输出格式类存储数据的表的细节;以及
创建将数据加入数据库记录对象并且调用写入功能以存储所述数据的减少类。
6.根据权利要求1所述的方法,进一步包括通过以下操作拼接查询结果并且将所述查询结果存储至关系数据库(RDB):
通过表扫描从所述RDB检索数据;
通过函数扫描从Hadoop文件系统(HDFS)数据库检索数据;
将来自所述RDB和所述HDFS数据库的检索数据进行拼接;以及
将拼接的数据写至所述RDB。
7.根据权利要求1所述的方法,进一步包括通过以下操作拼接查询结果并且将所述查询结果存储至Hadoop文件系统(HDFS)数据库:
通过表扫描从所述RDB检索数据;
通过函数扫描从Hadoop文件系统(HDFS)数据库检索数据;
将来自所述RDB和所述HDFS数据库的检索数据进行拼接;以及
以所述HDFS所支持的格式保存拼接的数据。
8.一种跨数据库和文件系统的查询一体化的系统,包括查询引擎,所述查询引擎存储在非暂时性计算机可读介质上并且由处理器可执行,以:
对由第一数据库文件系统管理的数据进行流操作;
对由第二数据库文件系统管理的数据进行流操作;以及
将由所述第一数据库文件系统管理的数据与由所述第二数据库文件系统管理的数据拼接。
9.根据权利要求8所述的系统,进一步包括:记录迭代器(RIR),所述记录迭代器被配置成从Hadoop文件系统(HDFS)数据库检索数据,并且逐记录地输出数据处理结果。
10.根据权利要求9所述的系统,进一步包括用于从所述RIR读取数据记录的流源函数(SSF)。
11.根据权利要求10所述的系统,其中所述RIR用作所述SSF的数据源,并且所述SSF用作查询的数据源。
12.根据权利要求8所述的系统,其中所述查询引擎将关系数据库(RDB)当作Hadoop数据源和接收器。
13.根据权利要求8所述的系统,其中所述查询引擎将Hadoop文件系统(HDFS)数据库当作关系数据库(RDB)数据源。
14.根据权利要求13所述的系统,其中所述查询引擎将来自所述HDFS数据库的数据与来自所述RDB的数据拼接。
15.根据权利要求13所述的系统,其中所述查询引擎在无需静态地或动态地物化数据的情况下使用函数扫描来对来自所述HDFS数据库的数据进行流操作。
CN201380076177.3A 2013-04-02 2013-04-02 跨数据库和文件系统的查询一体化 Pending CN105164673A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034995 WO2014163624A1 (en) 2013-04-02 2013-04-02 Query integration across databases and file systems

Publications (1)

Publication Number Publication Date
CN105164673A true CN105164673A (zh) 2015-12-16

Family

ID=51658754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076177.3A Pending CN105164673A (zh) 2013-04-02 2013-04-02 跨数据库和文件系统的查询一体化

Country Status (4)

Country Link
US (1) US10997124B2 (zh)
EP (1) EP2981908A4 (zh)
CN (1) CN105164673A (zh)
WO (1) WO2014163624A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599648B2 (en) * 2014-09-26 2020-03-24 Applied Materials, Inc. Optimized storage solution for real-time queries and data modeling
US20170046376A1 (en) * 2015-04-03 2017-02-16 Yahoo! Inc. Method and system for monitoring data quality and dependency
CN106503158B (zh) * 2016-10-31 2019-12-10 深圳中兴网信科技有限公司 数据同步方法及装置
CN106941524A (zh) * 2017-03-14 2017-07-11 郑州云海信息技术有限公司 一种hdfs的web文件配置方法
US10216823B2 (en) 2017-05-31 2019-02-26 HarperDB, Inc. Systems, methods, and apparatus for hierarchical database
US10878018B1 (en) * 2018-09-13 2020-12-29 Architecture Technology Corporation Systems and methods for classification of data streams
CN111400288A (zh) * 2019-01-02 2020-07-10 中国移动通信有限公司研究院 数据质量检查方法及系统
CN109815209A (zh) * 2019-03-20 2019-05-28 上海电力学院 一种用于医院后勤精益管理的分布式存储系统
US11734308B2 (en) * 2019-09-12 2023-08-22 Oracle International Corporation Autonomous caching for views
CN110909026B (zh) * 2019-10-15 2022-07-29 北京航空航天大学 分布式多源机器人数据管理系统及方法
CN112527856A (zh) * 2020-11-16 2021-03-19 广东电网有限责任公司 用于电网数据的统一数据源管理系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180626A (zh) * 2005-03-23 2008-05-14 集团建模控股有限公司 全局集成和多语言数据库系统
US20110191361A1 (en) * 2010-01-30 2011-08-04 International Business Machines Corporation System and method for building a cloud aware massive data analytics solution background
US20110320433A1 (en) * 2010-06-25 2011-12-29 Microsoft Corporation Automated Joining of Disparate Data for Database Queries

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533107B2 (en) 2000-09-08 2009-05-12 The Regents Of The University Of California Data source integration system and method
CA2427228A1 (en) * 2003-04-30 2004-10-30 Ibm Canada Limited - Ibm Canada Limitee Information retrieval systems for optimization of queries having maximum or minimum function aggregation predicates
JP4822889B2 (ja) * 2006-03-20 2011-11-24 富士通株式会社 データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置
US9495427B2 (en) 2010-06-04 2016-11-15 Yale University Processing of data using a database system in communication with a data processing framework
US8620945B2 (en) * 2010-09-23 2013-12-31 Hewlett-Packard Development Company, L.P. Query rewind mechanism for processing a continuous stream of data
EP2628094A4 (en) 2010-10-14 2015-01-28 Hewlett Packard Development Co CONTINUOUS INQUIRY OF A DATA STREAM
US9165074B2 (en) * 2011-05-10 2015-10-20 Uber Technologies, Inc. Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
US8504542B2 (en) * 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
JP5939123B2 (ja) * 2012-10-09 2016-06-22 富士通株式会社 実行制御プログラム、実行制御方法および情報処理装置
US9794135B2 (en) * 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9767149B2 (en) * 2014-10-10 2017-09-19 International Business Machines Corporation Joining data across a parallel database and a distributed processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180626A (zh) * 2005-03-23 2008-05-14 集团建模控股有限公司 全局集成和多语言数据库系统
US20110191361A1 (en) * 2010-01-30 2011-08-04 International Business Machines Corporation System and method for building a cloud aware massive data analytics solution background
US20110320433A1 (en) * 2010-06-25 2011-12-29 Microsoft Corporation Automated Joining of Disparate Data for Database Queries

Also Published As

Publication number Publication date
US20160063030A1 (en) 2016-03-03
US10997124B2 (en) 2021-05-04
EP2981908A1 (en) 2016-02-10
EP2981908A4 (en) 2016-12-07
WO2014163624A1 (en) 2014-10-09

Similar Documents

Publication Publication Date Title
US11755575B2 (en) Processing database queries using format conversion
US20220405298A1 (en) Large scale unstructured database systems
CN105164673A (zh) 跨数据库和文件系统的查询一体化
US10810191B2 (en) Limiting scans of loosely ordered and/or grouped relations in a database
JP2019194882A (ja) ファーストクラスデータベース要素としての半構造データの実装
KR102177190B1 (ko) 유연한 스키마를 사용한 데이터 관리
US11921750B2 (en) Database systems and applications for assigning records to chunks of a partition in a non-relational database system with auto-balancing
US11556534B2 (en) Subquery predicate generation to reduce processing in a multi-table join
TW201600985A (zh) 資料的查詢方法及查詢裝置
CN104239377A (zh) 跨平台的数据检索方法及装置
US20200250192A1 (en) Processing queries associated with multiple file formats based on identified partition and data container objects
CN103455335A (zh) 一种多级分类的Web实现方法
US20190324965A1 (en) Minimizing processing using an index when non-leading columns match an aggregation key
KR101955376B1 (ko) 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치
Hasan et al. Data transformation from sql to nosql mongodb based on r programming language
WO2017027015A1 (en) Distribute execution of user-defined function
Gomes et al. An object mapping for the Cassandra distributed database
Alam Data Migration: Relational Rdbms To Non-Relational Nosql
CN113918634A (zh) 一种用于数据交互的数据适配方法、适配器及存储介质
Büchi et al. Relational Data Access on Big Data
Litan et al. Achieving the Efficiency for Information Systems Possibilities and Prospects
Varga et al. STORING LOCATION-BASED SERVICES'DATA IN KEY-VALUE STORE.
Mostafa et al. Investigation cloud data storage
Alamoudi External Data Access and Indexing in a Scalable Big Data Management System

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161019

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180619

Address after: American California

Applicant after: Antite Software Co., Ltd.

Address before: American Texas

Applicant before: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151216