当前位置: 首页 > 专利查询>北京大学专利>正文

基于Datalog的分布式环境下大图数据查询方法技术

技术编号:8022427 阅读:196 留言:0更新日期:2012-11-29 04:39
本发明专利技术涉及一种基于Datalog的分布式环境下大图数据查询方法,其步骤包括:1)对用户输入的基于Datalog规则集合的大图查询指令进行语法分析,产生对应的语法树;2)根据语法树,构建以Datalog规则为单位的执行计划。针对每个Datalog规则,构造对应的Map和Reduce执行函数。3)利用等价规则和统计数据,实现规则间优化、规则内优化、操作函数的优化,提高大图查询执行计划的效率。本发明专利技术为了简化最终用户编写图查询脚本的代价,提出了扩展的递归DataLog查询,支持用户使用简单的描述性语言来表达对应大图查询。本发明专利技术还提出了递归Datalog查询的MapReduce环境执行计划的构建方法,使得Datalog图查询能够在MapReduce框架下执行。

【技术实现步骤摘要】

本专利技术具体涉及分布式环境下进行大图数据的查询,具体涉及了一种,属于信息

技术介绍
现代社会中,图的应用越来越广泛。社交网络、生物信息、交通导航等领域技术的迅猛发展产生了规模庞大的图数据。如何有效的管理这些大图数据面临着许多挑战首先是传统的单机计算模式很难支持大图数据的管理,单机的存储能力有限,很难将整个大图数据都加载到内存中,同时单机的处理能力也不足,很难有效支持大图数据上各种复杂的操作;其次是大图数据上的应用需求日益复杂,大图上的操作不仅仅局限于检索结点和边这样简单的操作,同时还包括各种复杂的查询,比如最短路径查询、子图模式匹配等。这些操作往往需要循环迭代,涉及很大的搜索空间和执行代价。因此,利用分布式环境来对大图 数据进行管理成为发展的必然趋势。目前出现了一些基于分布式环境的大图数据管理系统,其中具有代表性的系统包括 Google 的 Pregel 系统,可具体参考I (Grzegorz Malewicz, Matthew H. Austern, AartJ. C.Bikj James C.Dehnert,Ilan Horn, Naty Leiser,Grzegorz Czajkowski:Pregel: asystem for large-scale graph processing. SIGMOD 2010:135-146)以及 Microsoft 的Trinity系统,这两个系统都不是开源的,主要是针对图数据管理的特点,专门开发的大图数据分布式管理框架,需要用户自己使用高级编程语言来实现查询,对用户的专业知识要求较高。目前还出现了基于MapReduce框架支持SQL查询的工作,如在SIGM0D2007上出现的 Map-Reduce-Merge 的工作,如参考文件2(Hung-chih Yang, Ali Dasdan, Ruey-LungHsiao, Douglas Stott Parker Jr. :Map-reduce-merge:simplified relational dataprocessing on large clusters. SIGMOD 2007:1029-1040),以及在 hadoop 环境中米用类SQL语言进行分析的Hive系统,可参考文件3(Ashish Thusoo, Joydeep Sen Sarma, NamitJain, Zheng Shao, Prasad Chakka, Ning Zhang, Suresh Anthony, Hao Liu,RaghothamMurthy:Hive-a petabyte scale data warehouse using Hadoop. ICDE 2010:996-1005)。但是,此类工作只是考虑单个关系数据的操作符号,并没有考虑图递归Datalog查询对MapReduce函数生成和优化的影响。针对Datalog查询的研究曾经是数据管理领域重点,如参考文件4(SergeAbiteboul, Richard Hull, and Victor Vianu.Foundations of Databases, http://web dam. inria. fr/Alice/. ) Datalog查询表达能力强,用户能够以简洁的方式表达其查询要求。本专利技术主要是利用Datalog对图数据进行查询,图数据需要较为复杂的递归循环处理。本专利技术扩展了 Datalog查询语言,所设计的Datalog查询显式地给出循环的终止条件,支持更多的系统函数,在不增加用户太多负担的情况下,扩展了图查询的表达能力。大图数据管理系统建设的一种方案是充分考虑图数据管理的特点和需求,完全从底层开始的实现。这种方式的优点是能够针对大图数据作出特定的优化,系统管理大图数据比较自然。缺点是需要自己专门实现数据分布、任务调度、数据副本、结点失败等通用分布式计算框架的功能,这会带来庞大的工程实现代价,同时也没有办法利用已有系统积累的优势。
技术实现思路
本专利技术针对利用现有相对成熟的MapReduce分布式计算框架来对大图数据进行查询,针对现有框架下大图数据查询性能难以满足应用需求、用户编写图数据处理脚本繁琐低效等问题,设计了一种基于Datalog的MapReduce分布式环境下大图数据查询方法。该方法的设计主要包括如下三方面的内容描述性图查询语言的设计、描述性查询语言执行计划的产生和描述性查询语言执行计划的优化。本专利技术利用目前已有的相对成熟的MapReduce分布式计算框架对大图数据进行查询,针对已有大图数据管理系统要求用户具备较强专业知识以及现有MapReduce框架下大图数据查询性能难以满足应用需求等问题,本专利技术提出一种基于Datalog的分布式环境 下大图数据查询方法,其步骤包括I)对用户输入的大图查询指令进行语法分析,产生对应的语法树;所述查询指令基于Datalog规则;2)根据所述语法树,建立Datalog查询规则的执行操作,基于每个Datalog规则将查询转换为Map和Reduce函数中对应的执行操作;2-1)在语法树中基于当前的图结点集合和边集合,导出新的结点集合;2-2)对所述新结点进行递归操作,所述递归Datalog规则设定查询时递归操作终止条件,所述Datalog规则支持聚集函数;3)根据MapReduce中的等价规则和查询统计数据,执行Map和Reduce函数中操作指令,完成查询,将查询得到的结果回传至用户。将Datalog查询规则转换为初始执行、循环终止判定和循环内操作,所述循环终止判定和循环内操作对应递归查询;所述初始执行操作设定查询的类型和起、终点;所述循环终止判定操作根据查询终止条件和代价模型查询请求;所述循环内操作进行图上每一层的递归操作。对每个Datalog查询规则,将其转换到由关系代数的选择、连接、投影、聚集操作的基本操作组成的查询规则,并将所述关系代数基本操作翻译为Map和Reduce函数。初始执行后,每次递归操作处理上一层递归变化的部分;获取递归操作中导出视图的每一层出现的新数据。对于产生的Map和Reduce执行函数,循环递归操作出现聚集函数时,通过Hadoop中Counter机制,来产生下一轮规则中的所需要的聚集函数值。所述Datalog规则的查询转换为Map和Reduce函数中对应的执行操作时,若一个规则对应的关系代数计划需要选择和连接操作,可以将选择和连接放入一个MapReduce函数中,选择的逻辑操作在MapReduce函数的Map端函数完成。所述Datalog规则的查询转换为Map和Reduce函数中对应的执行操作时,当进行聚集函数后,实现连接操作,可以将聚集函数和连接操作放入一个MapReduce函数中,聚集函数的逻辑操作在Reduce端函数完成。在所述递归Datalog规则中,针对连接操作,根据图的统计信息和运行数据的统计信息,选择Map端连接或Reduce端连接实现方式。所述查询终止条件首先执行,判断查询结果是否为空。所述Map和Reduce函数中执行操作指令在时,将任务的输出作下一轮递归操作的输入;循环终止条件在执行MapReduce任务时,根据循环条件决定是否进入下一轮递归循环操作本文档来自技高网
...

【技术保护点】
一种基于Datalog的分布式环境下大图数据查询方法,其步骤包括:1)对用户输入的大图查询指令进行语法分析,产生对应的语法树;所述查询指令基于Datalog规则;2)根据所述语法树,建立Datalog查询规则的执行操作,基于每个Datalog规则将查询转换为Map和Reduce函数中对应的执行操作;2?1)在语法树中基于当前的图结点集合和边集合,导出新的结点集合;2?2)对所述新结点进行递归操作,所述递归Datalog规则设定查询时递归操作终止条件,所述Datalog规则支持聚集函数;3)根据MapReduce中的等价规则和查询统计数据,执行Map和Reduce函数中操作指令,完成查询,将查询得到的结果回传至用户。

【技术特征摘要】

【专利技术属性】
技术研发人员:高军周家帅王腾蛟杨冬青唐世渭
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1