当前位置: 首页 > 专利查询>脸谱公司专利>正文

用于分布式数据库查询引擎的系统和方法技术方案

技术编号:21736014 阅读:72 留言:0更新日期:2019-07-31 19:10
在本文中公开了用于分布式数据库查询引擎的系统和方法。系统包括网关服务器和多个工作者节点。网关服务器被配置为将包含存储在具有多个数据节点的分布式存储簇内的数据的数据库的数据库查询分成多个局部查询,并且根据多个中间结果构造查询结果。多个工作者节点中的每个工作者节点被配置为通过扫描与存储在分布式存储簇的至少一个数据节点上的相应局部查询相关的数据,来处理多个局部查询的相应局部查询,并且生成存储在工作者节点的存储器内的多个中间结果的一个中间结果。

System and Method for Distributed Database Query Engine

【技术实现步骤摘要】
用于分布式数据库查询引擎的系统和方法本申请是国际申请日为2013年12月20日、国际申请号为PCT/US2013/077240、专利技术名称为“用于分布式数据库查询引擎的系统和方法”的PCT申请的中国国家阶段申请的分案申请,该中国国家阶段申请的申请号为201380069759.9、进入国家阶段日为2015年7月7日,其全部内容结合于此作为参考。交叉引用相关申请本申请要求于2013年1月7日提交的美国专利申请号13/735,820的优先权,该申请之全文并入本文中,以作参考。本申请要求于2013年12月19日提交的欧洲专利申请号13198563.2的优先权,该申请之全文并入本文中,以作参考。
本专利技术总体上涉及数据库,并且尤其涉及用于低查询延迟数据库分析的分布式数据库查询引擎。
技术介绍
计算机和网络计算的发展引起了需要大量数据存储的应用程序。例如,数千万用户可以创建网页并且将图像和文本上传到社会媒体网站中。因此,社会媒体网站每天可以累积大量数据,因此,需要一种用于存储和处理数据的高度可扩展的系统(scalablesystem)。存在促进这样的大量数据存储的多种工具。存在框架,通过使得应用程序能够与成千台计算机的簇(也称为节点)以及千兆字节的数据交互,这些框架支持大规模数据密集型分布式应用程序。例如,称为Hadoop的框架使用分布式、可扩展的、便携式文件系统,称为Hadoop分布式文件系统(HDFS),用于在Hadoop簇中在数据节点(也称为子节点)之中分布大量数据。为了减少数据节点电力故障或网络故障(包括开关故障)的不利影响,通常在不同的数据节点上复制HDFS内的数据。开发了Hive(一种开放源数据仓库系统),用于在Hadoop簇的顶部上运行。Hive支持以脚本查询语言(SQL)(像称为HiveQL的声明式语言)表示的数据查询。然后,Hive系统将以HiveQL表示的查询编译成可以在Hadoop簇上执行的映射-归约(map-reduce)工作,具有有向非循环图的数学形式。HiveQL语言包括支持包含原始类型、集合(例如,阵列和映射)以及嵌套布局类型(nestedcompositionsoftypes)的表格的类型系统。此外,Hive系统包括包含方案和统计的称为Hive-元数据存储的系统目录,可用于数据探索(dataexploration)和查询优化中。与Hadoop簇耦合的Hive系统可以为社会网络系统存储和分析大量数据。例如,Hive系统可以分析在用户之间的连接程度,以对用户在社会网络系统上的历史进行分类。Hive系统可以分析活动日志,以了解社会网络系统的服务如何被用来帮助应用程序开发员、网页管理员以及广告人员做出开发和业务决定。Hive系统可以运行复杂的数据挖掘程序,以优化向社会网络系统的用户示出的广告。Hive系统可以进一步分析使用日志,以识别社会网络系统的垃圾邮件和滥用。Hive系统包括供没有制作和执行Hive查询的编程能力的人使用的网络工具,用于制作、调试以及调度复杂的数据管线(datapipeline),并且用于根据存储在Hive系统和其他关系数据库(例如,MySQL和Oracle)内的数据,生成报告。然而,Hive系统的查询延迟通常较高。由于大量数据以及Hadoop簇的map-reduce方案,甚至最简单的查询可能需要花费几秒到几分钟来完成。这对于在操作人员需要当前查询的结果来决定一系列查询中的下一个查询时的交互式分析尤其是个问题。由于在等待当前查询的结果时,分析人员不能确定下一个查询,所以延迟问题明显影响分析人员的生产力。一种可能的变通方案(workaroundsolution)是创建数据管线,这些数据管线将聚集数据从Hive载入其他类型的关系数据库管理系统(RDBMS),例如,MySQL和Oracle。然后,操作人员执行交互式分析,并且使用这些RDBMS建立报告。然而,每个RDBMS需要单独的数据管线。数据管线也需要时间来将聚集数据从Hive传输给其他RDBMS。因此,这种变通方案处理依然麻烦并且不方便。
技术实现思路
在本文中介绍的技术在存储在大规模存储簇(例如,Hadoop簇)内的非常大量的数据上提供了低延迟查询的优点,该簇在系统目录(例如,Hive元数据存储)内存储元数据。尤其地,在本文中介绍的技术包括基于服务树计算框架的分布式查询引擎。分布式查询引擎包括网关服务器和多个工作者节点。所述网关服务器将查询任务分成局部任务。引擎的每个工作者节点处理一个局部任务,以在存储器中生成中间查询结果。中间查询结果可以是通过扫描一部分相关数据所生成的近似中间结果。网关服务器接收中间查询结果,并且根据中间查询结果,构建查询任务的查询结果。因此,根据在本文中介绍的技术,提供了用于处理数据库的数据库查询的系统。该系统包括网关服务器和多个工作者节点。所述网关服务器被配置为将包含存储在具有多个数据节点的分布式存储簇内的数据的数据库的数据库查询分成多个局部查询,并且根据多个中间结果构建查询结果。所述多个工作者节点中的每个工作者节点被配置为通过扫描与存储在分布式存储簇中的至少一个数据节点上的相应局部查询相关的数据,来处理多个局部查询的相应局部查询,并且生成多个中间结果中的存储在所述工作者节点的存储器内的一个中间结果。在本文中介绍的技术能够对存储在大规模存储簇(例如,Hadoop簇)内的大数据集合体执行低延迟查询处理。由于操作人员不需要等待完成当前查询来确定下一个查询,所以这对于交互式分析特别有利。通过扫描一部分相关数据,这个分布式查询系统可以进一步生成近似结果。在处理对整组相关数据的一系列查询之前,系统的操作人员可以接收一系列查询的快速原型,以测试这一系列查询的有效性。尤其在所附权利要求中公开了根据本专利技术的实施方式,涉及一种系统、一种存储介质以及一种方法,其中,也可以在另一个权利要求目录(例如,方法)中要求在一个权利要求目录(例如,系统)中提及的任何特征。在本专利技术的一个实施方式中,一种系统包括:网关服务器,被配置为从包含存储在具有多个数据节点的分布式存储簇内的数据的数据库的数据库查询中生成多个局部查询,并且根据多个中间结果构建查询结果;以及多个工作者节点,其中,所述多个工作者节点中的每个工作者节点被配置为通过扫描与相应局部查询相关的并且存储在分布式存储簇的至少一个数据节点上的数据,来处理多个局部查询的相应局部查询,并且其中,所述多个工作者节点中的每个工作者节点进一步被配置为生成多个中间结果的存储在所述工作者节点的存储器内的一个中间结果。所述多个工作者节点中的每个工作者节点进一步被配置为通过扫描与存储在分布式存储簇的至少一个数据节点上的相应局部查询相关的数据的一部分,来处理多个局部查询中的相应局部查询,并且生成存储在所述工作者节点的存储器内的近似中间结果。所述网关服务器可以进一步被配置为根据至少一个近似中间结果构建近似查询结果。所述网关服务器还可以进一步被配置为根据多个中间结果的一部分构建近似查询结果。所述网关服务器可以甚至进一步被配置为识别离散的工作者节点,进一步将分配给离散的工作者节点的局部查询分成多个从属局部查询,并且将所述多个从属局部查询分配给所述多个工作者节点中的一些工作者节点,其中,所述离散的工本文档来自技高网
...

【技术保护点】
1.一种系统,包括:网关服务器,被配置为从包含存储在具有多个数据节点的分布式存储簇中的数据的数据库的数据库查询中生成多个局部查询,并且基于多个中间结果构建查询结果;以及多个工作者节点,所述工作者节点与所述数据节点是分开的,其中,所述多个工作者节点中的每个工作者节点被配置为通过扫描与相应局部查询相关并存储在所述分布式存储簇中的至少一个数据节点上的数据,来处理所述多个局部查询中的相应局部查询,并且其中,所述多个工作者节点中的每个工作者节点进一步被配置为生成所述多个中间结果中的存储在所述工作者节点的存储器中的一个中间结果,其中,所述工作者节点中的至少一个工作者节点进一步被配置为基于所述查询的输入文件块的量和位置信息,将相应局部查询分成多个从属局部查询。

【技术特征摘要】
2013.12.19 EP 13198563.2;2013.01.07 US 13/735,8201.一种系统,包括:网关服务器,被配置为从包含存储在具有多个数据节点的分布式存储簇中的数据的数据库的数据库查询中生成多个局部查询,并且基于多个中间结果构建查询结果;以及多个工作者节点,所述工作者节点与所述数据节点是分开的,其中,所述多个工作者节点中的每个工作者节点被配置为通过扫描与相应局部查询相关并存储在所述分布式存储簇中的至少一个数据节点上的数据,来处理所述多个局部查询中的相应局部查询,并且其中,所述多个工作者节点中的每个工作者节点进一步被配置为生成所述多个中间结果中的存储在所述工作者节点的存储器中的一个中间结果,其中,所述工作者节点中的至少一个工作者节点进一步被配置为基于所述查询的输入文件块的量和位置信息,将相应局部查询分成多个从属局部查询。2.根据权利要求1所述的系统,其中,所述多个工作者节点中的每个工作者节点进一步被配置为通过扫描与存储在所述分布式存储簇的所述至少一个数据节点上的相应局部查询相关的数据的一部分,来处理所述多个局部查询中的相应局部查询,并且生成存储在所述工作者节点的存储器中的近似中间结果。3.根据权利要求2所述的系统,其中,所述网关服务器进一步被配置为基于至少一个近似中间结果来构建近似查询结果。4.根据权利要求1所述的系统,其中,所述网关服务器进一步被配置为基于所述多个中间结果的一部分来构建近似查询结果。5.根据权利要求1所述的系统,其中,所述网关服务器进一步被配置为识别离散的工作者节点,进一步将分配给所述离散的工作者节点的局部查询分成多个从属局部查询,并且将所述多个从属局部查询分配给所述多个工作者节点中的一些工作者节点,其中,所述离散的工作者节点是未能向所述网关服务器报告进度、或者在指定时间段之后向所述网关服务器报告低于指定值的进度的工作者节点。6.根据权利要求1所述的系统,其中,所述多个工作者节点中的每个工作者节点是在所述分布式存储簇内运行相应数据节点的服务。7.根据权利要求1所述的系统,进一步包括:元数据缓存,被配置为缓存所述数据库的表格级元数据以及所述分布式存储簇的文件级元数据。8.根据权利要求7所述的系统,其中,所述元数据缓存被配置为保持来自用于所述数据库查询的前一数据库查询的缓存的元数据。9.根据权利要求1所述的系统,其中,所述多个工作者节点中的每个工作者节点将心跳消息定期发送给所述网关服务器,以通过所述工作者节点报告局部查询处理的状态。10.根据权利要求1所述的系统,其中,所述网关服务器进一步被配置为从客户端装置接收指令,以返回近似查询结果或终止所述数据库查询的处理。11.根据权利要求1所述的系统,其中,所述网关服务器进一步被配置为指示所述工作这节点立即返回近似中间结果,并且根据所述近似中间结果将近似查询结果返回...

【专利技术属性】
技术研发人员:拉戈特姆·穆尔蒂拉贾特·格尔
申请(专利权)人:脸谱公司
类型:发明
国别省市:美国,US

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

1