使用多个引擎来进行图查询处理的制作方法

文档序号:9457675阅读:180来源:国知局
使用多个引擎来进行图查询处理的制作方法
【专利说明】使用多个引擎来进行图查询处理
[0001] 背景
[0002] 图数据库是其中一个或多个图被用来对数据集中的各数据对象之间的结构关系 进行建模的数据结构类型。这些图中的每一个采用节点(也被称为顶点)、边和属性(也被 称为性质)来表示并存储数据对象。一般来说,给定图中的节点表示实体实例,诸如人、公 司、账户或任何其他感兴趣的项。图中的边表示各节点对之间存在的连接。图中的属性是 涉及节点的相关数据。取决于正在实现的特定图类型(例如,特定类型的数据模型),图中 的属性还可以是涉及边的相关数据。使用图数据库来对各种应用域(诸如,生物信息学应 用、化学信息学应用、业务过程模型的储存库、社交网络应用、书目网络应用和知识库应用) 中的复杂的大型数据集进行建模正变得越来越流行。
[0003] 概述
[0004] 提供本
【发明内容】
是为了以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于 帮助确定所要求保护的主题的范围。
[0005] 本文中描述的各图查询处理技术实施例一般涉及对图查询作出响应。在一示例性 实施例中,接收被提交给由属性图进行建模的图数据库的图查询。随后将图查询分解成多 个查询分量。随后,对于这些查询分量中的每一者,标识出多个独立查询执行引擎中可用于 处理该查询分量的一个查询执行引擎,生成表示该查询分量的子查询,将该子查询发送给 标识出的查询执行引擎以供处理,以及从标识出的查询执行引擎接收该子查询的结果。随 后组合接收到的结果以生成对该图查询的响应。
[0006] 附图简述
[0007] 参考以下描述、所附权利要求书以及附图,将更好地理解此处所描述的图查询处 理技术实施例的具体特征、方面和优点,附图中:
[0008] 图1是以简化形式示出对书目网络数据集进行建模的属性图的片段的示例性实 施例的示图。
[0009] 图2是示出用于查询属性图的图查询语言的示例性实施例的语法的列表。
[0010] 图3是以简化形式示出查询执行引擎的混合引擎实现的示例性实施例的示图。
[0011] 图4是以简化形式示出图1中示出的属性图的片段的关系表示的示例性实施例的 示图。
[0012] 图5是以简化形式示出用于实现本文描述的图查询处理技术实施例的体系结构 框架的示例性实施例的示图。
[0013] 图6是以简化形式示出用于对图查询作出响应的过程的一个实施例的流程图。
[0014] 图7是示出可以在图查询语言中使用的一组代数运算符的示例性实施例的列表。
[0015] 图8A-8P是以简化形式示出基于图1中示出的属性图的片段以及图4中示出的其 相应关系表示的、图7中示出的代数运算符的行为的示例性实施例的示图。
[0016] 图9是示出对可被转换成一种模式的常规关系运算符的代数运算符的映射的示 例性实施例的列表。
[0017]图10A和10B是示出代数运算符的SQL(结构化查询语言)转换模板的推断规则 的示例性实施例的列表。
[0018]图11是以简化形式示出用于使用基于元组的代数方言来将图查询转换成代数查 询计划的过程的示例性实施例的流程图。
[0019] 图12A-12D是示出用于将图查询的三元组模式映射到代数运算符集合上的推断 规则的示例性实施例的列表。
[0020] 图13A和13B是示出可在图查询的前端编译期间应用的一组查询重写规则的示例 性实施例的列表。
[0021]图14是以简化形式示出将示例性图查询前端编译成包括关系运算符和非关系图 运算符的示例性查询计划的示例性实施例的示图。
[0022] 图15是以简化形式示出用于对代数查询计划进行后端编译以生成表示图查询的 查询分量的多个子查询的过程的示例性实施例的流程图。
[0023] 图16是以简化的形式示出用于对图查询作出响应的过程的另一实施例的流程 图。
[0024] 图17是以简化形式示出解决其中需要一个或多个子查询的结果来执行另外的一 个或多个子查询的情况的查询执行管理过程的示例性实施例的流程图。
[0025] 图18是示出其上可实现本文所述的图查询处理技术的各实施例和元素的通用计 算机系统的简化示例的示图。
[0026] 详细描述
[0027] 在以下对各图查询处理技术实施例的描述中,对附图进行了参考,附图构成了实 施例的一部分且在其中作为说明示出了可在其中实施该图查询处理技术的具体实施例。可 以理解,可以使用其它实施例并且可以做出结构上的改变而不背离图查询处理技术实施例 的范围。
[0028] 还应注意,出于清楚的目的,将采取具体的术语来描述此处所描述的各图查询处 理技术实施例,但并不意味着这些实施例被限制于所选择的具体术语。此外,应当理解的 是,每个具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。此处 提及" 一个实施例"、或"另一实施"、或"示例性实施例"、或"替代实施例"、或"一个实施方 式"、或"另一实施方式"、或"示例性实施方式"、或"替代实施方式"意味着结合实施例或实 施方式描述的特定特征、特定结构或特定特性可被包括在图查询处理技术的至少一个实施 例中。在本说明书中各个地方出现短语"在一个实施例中"、"在另一实施例中"、"在示例性 实施例中"、"在替代实施例中"、"在一个实施方式中"、在"另一实施方式中"、在"示例性实 施方式中"、在"替代实施方式中"不一定全都指同一实施例或实施方式,也不是与其他实施 例/实施方式互斥的单独或替换实施例/实施方式。此外,表示图查询处理技术的一个或 多个实施例或实现的过程流的次序并不固有地指示任何特定次序,也不暗示对图查询处理 技术的任何限制。
[0029] 术语"路径"在本文中用于指代图中通过节点互连的边的序列。术语"属性图数据 模型"(在本文中有时被简称为属性图)在本文中用于指代特定类型的图,该特定类型的图 可以在图中包括每一个节点的一个或个属性,并且还可以在图中包括每一条边的一个或多 个属性。术语"辅助存储设备"在本文中用于指代诸如一个或多个硬盘驱动器等存储设备。
[0030] 1.0使用多个引擎来进行图查询处理
[0031 ] -般来说,本文中描述的各图查询处理技术实施例涉及对由实体向由属性图来建 模的图库提交的查询(这样的查询在本文中有时被简称为图查询)作出响应(例如,评估 和回答这些查询,在文本中有时也被称为执行这些查询)。该实体可以是终端用户或计算设 备等等。
[0032] 出于包括但不限于以下各种原因,此处所描述的图查询处理技术实施例是有利 的。如将从后面的更详细描述领会的,各图查询处理技术实施例提供针对属性图的可缩放 索引机制,其优化了搜索/分析大型属性图的效率。这些图查询处理技术实施例还加速了 对许多不同类型的图查询的处理,而无需构建并维护该图数据库的不同类型的索引(这会 消耗大量存储器)。换言之,这些图查询处理技术实施例优化了图查询处理的性能,并使图 查询处理期间所消耗的存储器量最小化。该存储器消耗最小化允许这些图查询处理技术实 施例伸缩并使用给定的固定存储器大小来支持对由更大且更复杂的属性图来建模的更大 且更复杂的图数据库的查询。
[0033] 本文中描述的各图查询处理技术实施例还支持查询属性图的拓扑结构以及图中 的数据对象(例如,图中的节点和边的属性)两者。由此,这些图查询处理技术实施例可高 效地评估并回答组合了基于属性图的拓扑结构的谓语和基于图中的节点和边的属性的谓 语两者的图查询。因此,这些图查询处理技术实施例支持对可包括两个或更多个不同类型 的图查询分量(诸如,模式匹配分量、可达性分量和最短路径分量等等)的组合的复杂图查 询的处理。这些图查询处理技术实施例还支持交互式、在线图查询处理(例如,这些实施例 不限于只以批量模式工作)。
[0034] 本文中描述的图查询处理技术实施例还利用以下试探法。由于关系数据库系统存 在强有力的索引和复杂的查询优化技术,关系数据库系统一般对于执行图查询及其查询分 量(其表示属性图中的节点和/或边的属性上的结构谓语或基于值的谓语)而言非常高 效。此外,关系数据库系统对于找到执行起来非常好的图查询执行计划而言一般非常高效, 因为关系数据库系统支持考虑不同的可能执行计划变型(诸如,不同的联接实现和不同的 联接排序)。相反,关系数据库系统对于执行涉及递归性质的操作(例如,在属性图的拓扑 结构上的遍历操作)的图查询及其查询分量而言一般是低效的。然而,并且将从以下更详 细的描述中领会的,存在对于执行这样的递归操作而言是高效的各种图引擎。
[0035] 1.1图数据库图数据库可以用各种方式来分类。作为示例而非限制,图数据库可 根据本文中使用的图的数目和大小来分类。更具体地,可将由大量小图组成的图数据库指 派给第一图数据库类别。落入该第一类别的图数据库有时被称为事务图数据库,并且通常 被用于对与生物信息学应用、化学信息学应用和业务处理模型的储存库等等相关联的前述 数据集进行建模。可将仅由单个大型图或非常小数目的大型图组成的图数据库指派给第二 图数据库类别。落入该第二类别的图数据库通常被用于对与社交网络应用、书目网络应用 和知识库应用等等相关联的前述数据集进行建模。
[0036] 存在三种常见类型的通常被用于查询第二类别的图数据库的图查询,即模式匹配 图查询、可达性图查询和最短路径图查询。模式匹配图查询尝试找出大型图中图模式(例 如,路径、或星形、或子图等等)的存在性。可达性图查询验证在大型图中的任何两个节点 之间是否存在连接/路径。最短路径图查询是可达性图查询的变型,其返回大型图中连接 着的任何两个节点之间的最短路径距离(以边数为单位)。可达性查询和最短路径查询两 者都可返回查询到的连接/路径。由实体向第二类别的图数据库提交的给定的复杂图查询 可包括多个不同类型的查询分量。更具体地并且作为示例而非限制,该复杂图查询可包括 一个或多个模式匹配分量或一个或多个可达性分量或一个或多个最短路径分量。该复杂图 查询一般还可包括这些不同分量的任何组合。更具体地,该复杂图查询可包括以下中的一 者或多者:一个或多个模式匹配分量、或一个或多个可达性分量、或一个或多个最短路径分 量。
[0037] 在许多现实世界应用中,图中的每一个节点可能都标记有指定与该节点有关的相 关数据的一个或多个属性。取决于正被实现的特定类型的图数据库,图中的每一边还可标 记有指定通过该边连接的两个节点之间存在的关系的类型的一个或多个属性。作为示例而 非限制,在用于对社交网络进行建模的图中,图中的给定节点可表示网络中的给定人,节点 可标记有指定人的年龄的属性,并且图的拓扑结构可表示网络中的人与其他人之间存在的 关系的不同类型(有时被称为直接边)。在其中图被实现为属性图的情况下,这些关系中每 一个都可标记有开始日期属性。这种可包括图中的各节点的属性以及图中的各边的属性的 图在本文中被称为属性图。将领会,属性图的拓扑结构以及其中的节点和边的属性两者都 表示有价值的信息。
[0038] 属性图可在形式上表示为(¥3,1^,1^^¥,匕,¥, 6),其中¥是图中的节点的集合, gFXF是该图中联接两个不同的节点的边的集合,1^是V的标记的集合,是E的标 记的集合,Fv是将标记指派给每一个节点的函数V-Lv,并且^是将标记指派给每一条边 的函数E-LyAv= ,…,am}是可与V中的任何节点相关联的m个属性的集合。节 点vGV中的每一个节点都可标记有属性矢量[ai (v),…,am(v)],其中a.j(v)是节点v的 关于属性a_j的属性值。{bpb2,…,bj是可与E中的任何边相关联的n个属性的集 合。类似地,边eGE中的每一条边都可标记有属性矢量[bde),…,bn(e)],其中bk(e)是 边e的关于属性bk的属性值。
[0039] 图1以简化形式示出了对书目网络数据集进行建模的属性图段(此后有时被简称 为图片段)的示例性实施例。如图1所例示的,图片段1〇〇中的每一个节点(例如,102、 104)均表示实体实例,诸如作者、或论文、或会议,等等。图片段100中的每一条边(例如, 106)均表示通过该边连接的两个节点(例如,102、104)之间存在的结构关系(例如,其作 者、或隶属于或发表于,等等)。每一个节点(例如,110)均可标记有描述该节点的一个或 多个属性(例如,108);这样的属性的示例包括年龄、关键词和位置等等。每一条边(例如, 106)均可标记有描述该边的一个或多个属性(例如,112);这样的属性的示例包括次序、头 衔和月份等等。存储部
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1