CN105210058A - 使用多个引擎来进行图查询处理 - Google Patents
使用多个引擎来进行图查询处理 Download PDFInfo
- Publication number
- CN105210058A CN105210058A CN201380065559.6A CN201380065559A CN105210058A CN 105210058 A CN105210058 A CN 105210058A CN 201380065559 A CN201380065559 A CN 201380065559A CN 105210058 A CN105210058 A CN 105210058A
- Authority
- CN
- China
- Prior art keywords
- query
- engine
- subquery
- inquiry
- query execution
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
使用多个独立的查询执行引擎来处理图查询。接收被提交给由属性图来建模的图数据库的图查询。将图查询分解成多个查询分量。对于这些查询分量中的每一者,标识这些查询执行引擎中可用于处理该查询分量的查询执行引擎,生成表示该查询分量的子查询,将该子查询发送给标识出的查询执行引擎以供处理,以及从标识出的查询执行引擎中接收该子查询的结果。随后组合接收到的结果以生成对该图查询的响应。
Description
背景
图数据库是其中一个或多个图被用来对数据集中的各数据对象之间的结构关系进行建模的数据结构类型。这些图中的每一个采用节点(也被称为顶点)、边和属性(也被称为性质)来表示并存储数据对象。一般来说,给定图中的节点表示实体实例,诸如人、公司、账户或任何其他感兴趣的项。图中的边表示各节点对之间存在的连接。图中的属性是涉及节点的相关数据。取决于正在实现的特定图类型(例如,特定类型的数据模型),图中的属性还可以是涉及边的相关数据。使用图数据库来对各种应用域(诸如,生物信息学应用、化学信息学应用、业务过程模型的储存库、社交网络应用、书目网络应用和知识库应用)中的复杂的大型数据集进行建模正变得越来越流行。
概述
提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本文中描述的各图查询处理技术实施例一般涉及对图查询作出响应。在一示例性实施例中,接收被提交给由属性图进行建模的图数据库的图查询。随后将图查询分解成多个查询分量。随后,对于这些查询分量中的每一者,标识出多个独立查询执行引擎中可用于处理该查询分量的一个查询执行引擎,生成表示该查询分量的子查询,将该子查询发送给标识出的查询执行引擎以供处理,以及从标识出的查询执行引擎接收该子查询的结果。随后组合接收到的结果以生成对该图查询的响应。
附图简述
参考以下描述、所附权利要求书以及附图,将更好地理解此处所描述的图查询处理技术实施例的具体特征、方面和优点,附图中:
图1是以简化形式示出对书目网络数据集进行建模的属性图的片段的示例性实施例的示图。
图2是示出用于查询属性图的图查询语言的示例性实施例的语法的列表。
图3是以简化形式示出查询执行引擎的混合引擎实现的示例性实施例的示图。
图4是以简化形式示出图1中示出的属性图的片段的关系表示的示例性实施例的示图。
图5是以简化形式示出用于实现本文描述的图查询处理技术实施例的体系结构框架的示例性实施例的示图。
图6是以简化形式示出用于对图查询作出响应的过程的一个实施例的流程图。
图7是示出可以在图查询语言中使用的一组代数运算符的示例性实施例的列表。
图8A-8P是以简化形式示出基于图1中示出的属性图的片段以及图4中示出的其相应关系表示的、图7中示出的代数运算符的行为的示例性实施例的示图。
图9是示出对可被转换成一种模式的常规关系运算符的代数运算符的映射的示例性实施例的列表。
图10A和10B是示出代数运算符的SQL(结构化查询语言)转换模板的推断规则的示例性实施例的列表。
图11是以简化形式示出用于使用基于元组的代数方言来将图查询转换成代数查询计划的过程的示例性实施例的流程图。
图12A-12D是示出用于将图查询的三元组模式映射到代数运算符集合上的推断规则的示例性实施例的列表。
图13A和13B是示出可在图查询的前端编译期间应用的一组查询重写规则的示例性实施例的列表。
图14是以简化形式示出将示例性图查询前端编译成包括关系运算符和非关系图运算符的示例性查询计划的示例性实施例的示图。
图15是以简化形式示出用于对代数查询计划进行后端编译以生成表示图查询的查询分量的多个子查询的过程的示例性实施例的流程图。
图16是以简化的形式示出用于对图查询作出响应的过程的另一实施例的流程图。
图17是以简化形式示出解决其中需要一个或多个子查询的结果来执行另外的一个或多个子查询的情况的查询执行管理过程的示例性实施例的流程图。
图18是示出其上可实现本文所述的图查询处理技术的各实施例和元素的通用计算机系统的简化示例的示图。
详细描述
在以下对各图查询处理技术实施例的描述中,对附图进行了参考,附图构成了实施例的一部分且在其中作为说明示出了可在其中实施该图查询处理技术的具体实施例。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离图查询处理技术实施例的范围。
还应注意,出于清楚的目的,将采取具体的术语来描述此处所描述的各图查询处理技术实施例,但并不意味着这些实施例被限制于所选择的具体术语。此外,应当理解的是,每个具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。此处提及“一个实施例”、或“另一实施”、或“示例性实施例”、或“替代实施例”、或“一个实施方式”、或“另一实施方式”、或“示例性实施方式”、或“替代实施方式”意味着结合实施例或实施方式描述的特定特征、特定结构或特定特性可被包括在图查询处理技术的至少一个实施例中。在本说明书中各个地方出现短语“在一个实施例中”、“在另一实施例中”、“在示例性实施例中”、“在替代实施例中”、“在一个实施方式中”、在“另一实施方式中”、在“示例性实施方式中”、在“替代实施方式中”不一定全都指同一实施例或实施方式,也不是与其他实施例/实施方式互斥的单独或替换实施例/实施方式。此外,表示图查询处理技术的一个或多个实施例或实现的过程流的次序并不固有地指示任何特定次序,也不暗示对图查询处理技术的任何限制。
术语“路径”在本文中用于指代图中通过节点互连的边的序列。术语“属性图数据模型”(在本文中有时被简称为属性图)在本文中用于指代特定类型的图,该特定类型的图可以在图中包括每一个节点的一个或个属性,并且还可以在图中包括每一条边的一个或多个属性。术语“辅助存储设备”在本文中用于指代诸如一个或多个硬盘驱动器等存储设备。
1.0使用多个引擎来进行图查询处理
一般来说,本文中描述的各图查询处理技术实施例涉及对由实体向由属性图来建模的图库提交的查询(这样的查询在本文中有时被简称为图查询)作出响应(例如,评估和回答这些查询,在文本中有时也被称为执行这些查询)。该实体可以是终端用户或计算设备等等。
出于包括但不限于以下各种原因,此处所描述的图查询处理技术实施例是有利的。如将从后面的更详细描述领会的,各图查询处理技术实施例提供针对属性图的可缩放索引机制,其优化了搜索/分析大型属性图的效率。这些图查询处理技术实施例还加速了对许多不同类型的图查询的处理,而无需构建并维护该图数据库的不同类型的索引(这会消耗大量存储器)。换言之,这些图查询处理技术实施例优化了图查询处理的性能,并使图查询处理期间所消耗的存储器量最小化。该存储器消耗最小化允许这些图查询处理技术实施例伸缩并使用给定的固定存储器大小来支持对由更大且更复杂的属性图来建模的更大且更复杂的图数据库的查询。
本文中描述的各图查询处理技术实施例还支持查询属性图的拓扑结构以及图中的数据对象(例如,图中的节点和边的属性)两者。由此,这些图查询处理技术实施例可高效地评估并回答组合了基于属性图的拓扑结构的谓语和基于图中的节点和边的属性的谓语两者的图查询。因此,这些图查询处理技术实施例支持对可包括两个或更多个不同类型的图查询分量(诸如,模式匹配分量、可达性分量和最短路径分量等等)的组合的复杂图查询的处理。这些图查询处理技术实施例还支持交互式、在线图查询处理(例如,这些实施例不限于只以批量模式工作)。
本文中描述的图查询处理技术实施例还利用以下试探法。由于关系数据库系统存在强有力的索引和复杂的查询优化技术,关系数据库系统一般对于执行图查询及其查询分量(其表示属性图中的节点和/或边的属性上的结构谓语或基于值的谓语)而言非常高效。此外,关系数据库系统对于找到执行起来非常好的图查询执行计划而言一般非常高效,因为关系数据库系统支持考虑不同的可能执行计划变型(诸如,不同的联接实现和不同的联接排序)。相反,关系数据库系统对于执行涉及递归性质的操作(例如,在属性图的拓扑结构上的遍历操作)的图查询及其查询分量而言一般是低效的。然而,并且将从以下更详细的描述中领会的,存在对于执行这样的递归操作而言是高效的各种图引擎。
1.1图数据库图数据库可以用各种方式来分类。作为示例而非限制,图数据库可根据本文中使用的图的数目和大小来分类。更具体地,可将由大量小图组成的图数据库指派给第一图数据库类别。落入该第一类别的图数据库有时被称为事务图数据库,并且通常被用于对与生物信息学应用、化学信息学应用和业务处理模型的储存库等等相关联的前述数据集进行建模。可将仅由单个大型图或非常小数目的大型图组成的图数据库指派给第二图数据库类别。落入该第二类别的图数据库通常被用于对与社交网络应用、书目网络应用和知识库应用等等相关联的前述数据集进行建模。
存在三种常见类型的通常被用于查询第二类别的图数据库的图查询,即模式匹配图查询、可达性图查询和最短路径图查询。模式匹配图查询尝试找出大型图中图模式(例如,路径、或星形、或子图等等)的存在性。可达性图查询验证在大型图中的任何两个节点之间是否存在连接/路径。最短路径图查询是可达性图查询的变型,其返回大型图中连接着的任何两个节点之间的最短路径距离(以边数为单位)。可达性查询和最短路径查询两者都可返回查询到的连接/路径。由实体向第二类别的图数据库提交的给定的复杂图查询可包括多个不同类型的查询分量。更具体地并且作为示例而非限制,该复杂图查询可包括一个或多个模式匹配分量或一个或多个可达性分量或一个或多个最短路径分量。该复杂图查询一般还可包括这些不同分量的任何组合。更具体地,该复杂图查询可包括以下中的一者或多者:一个或多个模式匹配分量、或一个或多个可达性分量、或一个或多个最短路径分量。
在许多现实世界应用中,图中的每一个节点可能都标记有指定与该节点有关的相关数据的一个或多个属性。取决于正被实现的特定类型的图数据库,图中的每一边还可标记有指定通过该边连接的两个节点之间存在的关系的类型的一个或多个属性。作为示例而非限制,在用于对社交网络进行建模的图中,图中的给定节点可表示网络中的给定人,节点可标记有指定人的年龄的属性,并且图的拓扑结构可表示网络中的人与其他人之间存在的关系的不同类型(有时被称为直接边)。在其中图被实现为属性图的情况下,这些关系中每一个都可标记有开始日期属性。这种可包括图中的各节点的属性以及图中的各边的属性的图在本文中被称为属性图。将领会,属性图的拓扑结构以及其中的节点和边的属性两者都表示有价值的信息。
属性图可在形式上表示为(V,E,Lv,Le,Fv,Fe,Av,Ae),其中V是图中的节点的集合,是该图中联接两个不同的节点的边的集合,Lv是V的标记的集合,Le是E的标记的集合,Fv是将标记指派给每一个节点的函数V→Lv,并且Fe是将标记指派给每一条边的函数E→Le。Av={a1,a2,…,am}是可与V中的任何节点相关联的m个属性的集合。节点v∈V中的每一个节点都可标记有属性矢量[a1(v),…,am(v)],其中aj(v)是节点v的关于属性aj的属性值。Ae={b1,b2,…,bn}是可与E中的任何边相关联的n个属性的集合。类似地,边e∈E中的每一条边都可标记有属性矢量[b1(e),…,bn(e)],其中bk(e)是边e的关于属性bk的属性值。
图1以简化形式示出了对书目网络数据集进行建模的属性图段(此后有时被简称为图片段)的示例性实施例。如图1所例示的,图片段100中的每一个节点(例如,102、104)均表示实体实例,诸如作者、或论文、或会议,等等。图片段100中的每一条边(例如,106)均表示通过该边连接的两个节点(例如,102、104)之间存在的结构关系(例如,其作者、或隶属于或发表于,等等)。每一个节点(例如,110)均可标记有描述该节点的一个或多个属性(例如,108);这样的属性的示例包括年龄、关键词和位置等等。每一条边(例如,106)均可标记有描述该边的一个或多个属性(例如,112);这样的属性的示例包括次序、头衔和月份等等。存储部分地由图片段100来进行建模的书目网络数据集的图数据库的用户可将可包括多个查询分量的复杂图查询提交给数据库。现在将描述例示该情况的各图查询场景。
再次参考图1,用户可提交寻求找到两个作者X和Y的名称的图查询,其中X和Y通过任何长度的路径(任何数目的边)连接,作者X隶属于新南威尔士大学(UNSW),作者Y隶属于微软,并且这两个作者都在2012年的超大型数据库会议(VLDB'12)上发表了论文。将领会,该特定图查询包括模式匹配分量和可达性分量。用户还可提交寻求找到两个作者X和Y的名称的图查询,其中X和Y通过任何长度的路径连接,作者X隶属于UNSW,作者Y隶属于微软,这两个作者都在VLDB'12作为第一作者(例如,114)发表了论文,并且这两个作者都具有大于或等于35岁的年龄。将领会,该特定图查询包括模式匹配分量和可达性分量两者,其中模式匹配分量对图片段100中的节点和边的属性有条件。
再次参考图1,用户还可提交寻求找到两个作者X和Y的名称以及其间的连接路径的图查询,其中X和Y通过具有小于或等于三条边的长度的路径连接,作者X隶属于UNSW,作者Y隶属于微软,并且这两个作者都在VLDB'12作为第一作者(例如,114)发表了论文。将领会,该特定图查询包括模式匹配分量和可达性分量两者,其中可达性分量受路径过滤条件约束并将指定连接路径的数据作为该图查询结果的一部分来返回。
再次参考图1,用户还可提交寻求找到两个作者X和Y的名称和年龄以及其间的最短路径的图查询,其中作者X隶属于UNSW,作者Y隶属于微软,并且这两个作者都在VLDB'12发表了论文。将领会,该特定图查询包括模式匹配分量和最短路径分量两者。用户还可提供寻址找到两篇论文P1和P2的标题以及其间的路径的图查询,其中路径中的每一条边表示“被引用(citedby)”关系,最大路径长度是三条边,P1的第一作者隶属于UNSW,且P2的第一作者隶属于微软。将领会,该特定图查询包括模式匹配分量和受约束可达性分量两者,其中模式匹配分量对图片段100中的边的属性有条件。
将领会,前述图查询场景是示例性的,并且各种其他场景也是可能的。
1.2G-SPARQL图查询语言和支持的查询类型
这一节描述用于查询属性图的图查询语言(在本文中被称为图-SPARQL(G-SPARQL))的示例性实施例。出于包括但不限于以下的各种原因,G-SPARQL是有益的。如将从后面的更详细描述中领会的,G-SPARQL支持允许在其中编程者具有很少或没有关于底层的属性图的特性的知识的情况下对图查询处理的效率进行优化的声明性查询编程接口。G-SPARQL还能够表达关于属性图中的任意路径结构的图查询。由此并如此前所述,G-SPARQL支持包括多个不同类型的查询分量(诸如,模式匹配分量、可达性分量和最短路径分量、以及其他、以及其任何组合)的复杂图查询。G-SPARQL还有充分的表达力来满足各种各样的用户查询需求。G-SPARQL中的句法表达式也是清楚且简明的。
图2示出了G-SPARQL的句法。如图2中所例示的,非终止查询定义G-SPARQL查询并且是该语法的开始符号。此后更详细描述了G-SPARQL的句法和语义。
如图数据库领域中所领会的,常规的资源描述框架(RDF)是定义用于对在web资源中实现的数据对象进行建模的数据格式的万维网联盟(W3C)规范族。在RDF数据模型(本文中有时被简称为RDF图)中,指定主语、谓语和宾语的表达式可用于形成与RDF图中的资源有关的语句。这样的表达式在RDF术语集中被称为的三元组(或三元组模式),并且将在此后被更详细地描述。
一般来说,RDF图数据模型可被认为是属性图数据模型的变型。RDF和属性图数据模型之间的一个区别如下。在RDF图中,图中的边不可能标记有描述这些边的属性(只RDF图中的节点可标记有属性)。相反并且如此后所描述的,在属性图中,图中的节点和边两者都可标记有任意属性集。RDF和属性图数据模型之间的另一个区别如下。在RDF图中,图中的边被用来表示图中的数据(例如,RDF图中的各节点的属性)以及该图的各节点之间存在的结构关系(例如,RDF图的拓扑结构)两者。RDF图中的边通过将各节点连接到其属性来表示该图中的数据。因此,RDF图中的数据被表示成图拓扑结构的一部分,其导致图拓扑结构的大小显著增加。相反并如此后所描述的,在属性图中,图中的数据(例如,图中的各节点和边的属性)与图的拓扑结构分开表示。
如数据库查询语言的领域中所领会的,SPARQL(SPARQL协议和RDF查询语言的递归缩写)是用于查询由一个或多个RDF图来建模的图数据库的工业标准查询语言。SPARQL是由W3C制定的工业标准。
1.2.1使用G-SPARQL来查询节点和边的属性
SPARQL采用允许将变量绑定到正被查询的RDF图中的分量的强有力图模式匹配工具。给定的SPARQL查询定义针对RDF图G来匹配的图模式P,其中P中的每一个变量均被G的匹配元素替换使得得到的图模式被包括在G(例如,图模式匹配)中。在图数据库领域中,构建P的主要结构被称为三元组模式。三元组模式表示前述RDF三元组(主语、谓语、宾语)。三元组模式的主语表示G中的实体示例(例如,节点)。三元组模式中的谓语表示G中到宾语的连接(例如,边),其中该宾语可表示G中的另一实体示例(例如,另一节点)或G中的属性。主语、谓语和宾语可各自表示常数值或变量(在本文中被表示为?var(变量))。因此,通过AND(.)运算符串接的不同三元组模式的集合可用于表示SPARQL查询的期望图模式。以下是寻求找到隶属于(affiliatedat)UNSW并且年龄(age)至少42岁的所有人的示例性SPARQL查询:
SELECT?X
WHERE{?XaffiliatedAtUNSW?Xage?age.
FILTER(?age>=42)}
G-SPARQL是可用于查询属性图的SPARQL类图查询语言。G-SPARQL采用SPARQL的通用图模式匹配工具,但还以包括但不限于以下的各种方式来增强SPARQL。如将从后面的更详细描述中领会的,G-SPARQL引入了还查询刚刚描述的RDF和属性图数据模型之间的区别的新结构。G-SPARQL支持对属性图中定义的结构模式的查询,并且允许指定对作为该模式的一部分的节点和/或边的属性的过滤条件。G-SPARQL还支持对连接属性图中的节点的定义的路径的查询,其中该定义的路径可具有未知的长度。更具体的,G-SPARQL允许表达节点之间的可达性和最短路径图查询,其中这样的查询可包括对定义的路径的过滤条件(诸如,这样的查询可放置对路径长度或边和节点的类型和属性的约束)。G-SPARQL为用于优化图查询处理的逻辑查询计划采用强有力的代数编译和重写框架。由此,G-SPARQL可被高效地实现并且能够高效地查询属性图。
G-SPARQL能够在两个不同类型的查询谓语(即,结构谓语和基于值的谓语)的表示之间进行区分。如此后将更消息描述的,结构谓语指定关于属性图中的各节点之间的结构关系的条件,其中三元组模式的主语和宾语指定节点,并且三元组模式的谓语指定边。基于值的谓语指定关于属性图中的属性的值的条件,其中三元组模式的主语指定节点或边,三元组模式的谓语指定属性名,并且三元组模式的宾语指定属性值。
G-SPARQL的句法按以下方式将基于值的谓语与结构谓语区分开。在三元组模式的谓语部分表示基于值的谓语时,G-SPARQL在该谓语部分的前面加上符号(不在结构谓语的前面加上该符号)。以下是示出基于值的谓语和结构谓语之间的这一区别的两个示例性三元组模式:
Tl-->?PersonaffiliatedByUNSW。
T2-->?Personage42
三元组模式T1表示指定由变量?Person(人)表示的节点被通过affiliatedBy(隶属于)边连接到标记有值UNSW的属性的节点的结构谓语。相反,三元组模式T2表示其中指定由变量?Person表示的节点标记有具有值42的年龄属性的条件的基于值的谓语。
与RDF图数据模型不同,属性图数据模型允许属性图中的每一条边都标记有任何一个或多个属性的集合。因此,G-SPARQL能够在两个不同类型的基于值的谓语(即,节点谓语和边谓语)的表示之间进行区分。节点谓语指定关于属性图中的节点的属性的条件。边谓语指定关于属性图中的边的属性的条件。G-SPARQL使用标准三元组模式来表示基于值的谓语。G-SPARQL可将变量分配给将用更多谓语来进行限定的边。以下是示出关于节点和边属性的谓语的两个示例性三元组模式:
T3->?Person?E(affiliatedBy)UNSW。
T4-->?ERole"Professor"。
T2-->?PersonofficeNumber518。
三元组模式T3表示其中指定其中由变量?Person表示的节点通过affiliatedBy(隶属于)关系连接到标记有具有值UNSW的属性的节点的条件的结构谓语。affiliatedBy边具有被称为Role(角色)的属性。因此,三元组模式T4表示指定其中affiliatedBy关系的Role属性(其中该边表示该关系被绑定到变量?E)具有值Professor(教授)的条件的边谓语。Person节点具有被称为officeNumber(工号)的属性。三元组模式T5表示指定其中Person(人)标记有具有值518的officeNumber属性的条件的节点谓语。
1.2.2使用S-SPARQL来查询路径模式
G-SPARQL以两种主要方式来支持表达任意长度路径和路径模式的能力。第一种方式是通过使用显式关系。以下是示出这种显式关系使用的两个示例性三元组模式:
T6—>?Personknows+John。
T7—>?Personknows+?X。
三元组模式T6表示指示验证被分配?Person的节点通过knows(认识)边的任何路径被连接到标记了John的节点的可达性测试条件的结构谓语。符号+指示该路径可具有大于1的长度,其中该路径中的每一边都需要表示knows关系。三元组模式T7将可通过knows边的所有路径从变量?Person所表示的节点到达的全部节点都分配给变量?X。
G-SPARQL支持表达任意长度路径和路径模式的能力的第二种方式是通过在三元组模式的谓语部分中允许路径变量。更具体地,G-SPARQL支持用于以路径模式来绑定各路径变量的各个选项。以下是示出这些选项的四个示例性三元组模式:
T8->subject??Pobject。
T9->subject?*Pobject。
T10->subject??P(predicate)object。
T11->subject?*P(predicate)object。
三元组模式T8将路径变量??P绑定到subject(主语)节点和object(宾语)节点之间的连接路径。符号??指定subject节点和object节点之间的匹配路径可具有任何任意长度。在三元组模式T9中,符号?*指定将使变量??P与subject节点和object节点之间的最短路径匹配。三元组模式T10确保匹配路径中的每一边都表示指定的关系predicate(谓语)。类似地,三元组模式T11确保匹配的最短路径中的每一边都表示关系predicate(谓语)。
一般来说,将领会,属性图中的任何两个节点可通过多个不同的路径连接。因此,G-SPARQL允许关于被绑定到路径变量的匹配路径的节点和边的、可指定Boolean(布尔)谓语的过滤条件的表达式。更具体地,G-SPARQL支持关于匹配路径的节点和边的各种过滤条件,包括但不限于,Length(PV,P)过滤条件、AtleastNode(PV,N,P)过滤条件、AtmostNode(PV,N,P)过滤条件、AllNodes(PV,P)过滤条件、AtLeastEdge(PV,N,P)过滤条件、AtMostEdge(PV,N,P)过滤条件和AllEdges(PV,P)过滤条件。现在将更详细地描述这些过滤条件中的每一个。
Length(PV,P)过滤条件验证被绑定到变量PV的每一匹配路径的长度(例如,边数)都满足谓语P,并过滤掉不满足谓语P的那些路径。作为示例而非限制,路径过滤条件FilterPath(Length(??X,<4))确保被绑定到路径变量??X的每一路径的长度都小于四个边。AtMostNode(PV,N,P)过滤条件确保被绑定到变量PV的每一路径上的最多N个节点满足结构谓语/基于值的谓语P。AllNodes(PV,P)过滤条件确保被绑定到变量PV的每一路径上的每一个节点都满足结构谓语/基于值的谓语P。
AtLeastNode(PV,N,P)过滤条件验证被绑定到变量PV的每一路径上的最少N个节点满足谓语P,并过滤掉不满足谓语P的那些路径。应注意,该谓语可以是结构谓语或基于值的谓语。作为示例而非限制,AtLeastNode(??X,2,livesInSydney)过滤条件确保被绑定到变量??X的每一路径的至少两个节点满足被通过居住在(livesIn)关系连接到标记有具有值悉尼(Sydney)的属性的节点的结构谓语。AtLeastNode(??X,1,affiliatedUNSW)过滤条件确保被绑定到变量??X的每一路径的至少一个节点满足具有值UNSW的隶属于(affiliated)属性的基于值的谓语。
AtLeastEdge(PV,N,P)过滤条件确保在被绑定到变量PV的每一路径上有最少N个边满足基于值的谓语P(应注意,结构谓语无法针对边来表示)。AtMostEdge(PV,N,P)过滤条件确保在被绑定到变量PV的每一路径上有最多N个边满足基于值的谓语P。AllEdges(PV,P)过滤条件确保被绑定到变量PV的每一路径上的每一边都满足基于值的谓语P。
将领会,前述过滤条件均是示例性的,并且各种其他过滤条件也是可能的。
1.3查询执行引擎
如数据库系统领域中所领会的,关系数据库系统在执行从索引(例如,B树)中获益的查询以及查询优化技术(例如,选择性估计和联接排序)时一般是高效的。作为示例而非限制,通过应用谓语,关系索引可以将需要被访问的数据限制为仅满足这些谓语的那些行。此外,纯索引访问可用于评估并回答关系数据库查询,由此消除了通过提供查询处理中涉及到的所有列来访问数据页的需要。然而,关系数据库系统在处理涉及通过执行多个执行起来昂贵的联接运算符来循环或递归访问大量记录(这可导致很大的中间结果)的查询时是低效的。因此,在存储在关系数据库系统中的图(或其一部分)上执行遍历操作可能由于大量的潜在联接以及必须从图(或其一部分)被存储在其上的辅助存储设备中检索目标节点的执行成本而是时间低效的。
一般来说并如图数据库和图查询处理领域中所领会的,存在用于执行图查询的各种类型的引擎,其中每一不同类型的引擎都可用于执行某类图查询。作为示例而非限制,存在可用于执行模式匹配图查询的各种关系数据库引擎(也被称为关系数据库管理系统)。这样的关系数据库引擎通信是以SQL(结构化查询语言)服务器的形式来实现的。示例性关系数据库引擎包括常规的SPARQL引擎、微软的SQL(微软公司的注册商标)、国际商业机器的DB2和Oracle数据库系统等等。也存在可用于执行可达性和最短路径图查询的各种图引擎。示例性图引擎包括常规的Neo4j图数据库、HyperGraphDB(超图数据库)、Virtuoso、DEX和AllegroGraph等等。
如此后将更详细描述的,本文中描述的图查询处理技术实施例可使用多个独立的查询执行引擎来对由实体提交给由属性图来建模的图数据库的给定图查询作出响应。这些查询执行引擎可包括一个或多个关系数据库引擎、或一个或多个图引擎、或一个或多个混合引擎(此后将对其进行更详细的描述)。查询执行引擎还可包括关系数据库引擎、图引擎和混合引擎的任何组合。更具体地并作为示例而非限制,查询执行引擎可包括一个或多个关系数据库引擎和一个或多个图引擎。查询执行引擎还可包括一个或多个关系数据库引擎和一个或多个混合引擎。查询执行引擎还可包括一个或多个图引擎和一个或多个混合引擎。一般来说,图查询的不同部分被发送至一个不同的查询执行引擎进行处理。更具体地并且作为示例而非限制,在图查询处理技术实施例的示例性实施例中,涉及属性图中的关系的图查询分量(例如,模式匹配分量)被发送至关系数据库引擎或混合引擎的关系数据库组件进行处理,并且涉及属性图的拓扑结构的图查询分量(例如,可达性分量和最短路径分量)被发送至图引擎或混合引擎的基于存储器的组件进行处理。
图3以简化形式示出了可用于执行图查询的一部分的查询执行引擎的混合引擎实现的示例性实施例。如图3中所例示的,混合引擎300包括基于存储器的组件302和使用辅助存储设备的关系数据库组件304。混合引擎300提供对属性图(或其一部分)的高效混合表示,其中属性图(例如,其数据对象和其拓扑结构两者等等)(或其一部分)被相关地存储在关系数据库组件304中,而图的一部分或整个图(例如,图拓扑结构)被本机地存储在主存储器中。如此后将更详细描述的,每当针对给定图查询分量生成的给定子查询被发送至给定混合引擎300进行处理时,仅与属性图的拓扑结构(或其一部分)相关联的数据被从关系数据库系统304中检索并被存储在存储器302中。相应地,本文中描述的图查询处理技术实施例可采用对基于存储器302的数据结构上执行的方法来评估并回答图查询的涉及对属性图的拓扑结构的遍历操作的各部分。出于包括但不限于以下的各种原因,使用关系数据库系统304来存储属性图(或其一部分)是有利的。几十年的研究和开发价值已被投入到关系数据库系统中,这已导致各种各样关系数据库优化,诸如盘数据布局优化、索引和存储优化、缓冲器管理优化和查询优化等等。各图查询处理技术实施例利用了这些优化。此外,图的主存储器表示允许快速执行若干操作,诸如遍历操作等等。
再次参考图3并如在数据库系统的领域中所领会的,各种方法可用于将属性图(或其一部分)相关地存储在关系数据库组件304中。作为示例而非限制,常规的全分解存储模型(DSM)可用于将属性图(或其一部分)存储在关系数据库组件304中。出于包括但不限于以下的各种原因,这是有利的。DSM对属性图模式而言是不可知的,并因此可适用于具有任何模式的任何属性图。DSM还通过显著地减少关系数据库访问来准许图查询处理期间的高效属性检索,因为仅图查询中涉及到的特定属性/关系的表的记录将被处理。
图4以简化形式示出图1所示的属性图的片段的关系表示的示例性实施例。如图4中所例示的,节点标识符(ID)被分配给在节点标记表406中的图片段中的每一节点。节点的属性被存储在M个两列表400中,其中M是图片段中的节点的不同属性的数目(在所示的情况下M为七)。给定的两列节点属性表400的第一列(ID)存储标记有相关联的属性的每一个节点的标识符,且该表的第二列(值)存储这些节点中的每一个的属性的值。作为示例而非限制并且如图4所例示的,标记为“Alice”的图片段中的节点在节点标记表406中被分配了ID3,并且该节点的年龄属性被存储在年龄表408的行(3,42)中。没有标记有特定属性的各节点将只是在与该属性相关联的节点属性表中没有代表性记录。具有多个值的节点属性将用与该属性相关联的节点属性表中的多个行(各自具有相同的ID值)来表示。M个两列表400中的每一个可被存储成关于ID列的群集索引,在必须检索到同一节点的一个以上属性时,该群集索引允许对合并联接的快速执行。此外,可为M个两列表400中的每一个创建关于值列的二级分区B树索引,该二级分区B树索引通过使访问关系数据库以检索满足谓语条件的那些节点的执行成本最小化来允许对关于属性的基于值的谓语的快速执行。
再次参考图4,边标识符(eID)被分配给图1中示出的属性图的片段中的每一边。边的属性被存储在N个两列表402中,其中N是图片段中的边的不同属性的数目(在所示的情况下N为3)。给定的两列边属性表402的第一列(eID)存储标记有相关联的属性的每一边的标识符,且该表的第二列(值)存储这些边中的每一个的属性的值。作为示例而非限制并且如图4中所例示的,标记为“affiliated(隶属于)”的图片段中将标记为“John”的节点连接到标记为“Microsoft(微软)”的节点的边被分配为3的eID,并且该边的头衔属性被存储在头衔表410的行(3,SeniorResearcher(高级研究员))中。没有标记有特定属性的各边将只是在与该属性相关联的边属性表中不具有代表性记录。具有多个值的边属性将用与该属性相关联的边属性表中的多个行(各自具有相同的eID值)来表示。M个两列表402中的每一个可被存储成关于eID列的群集索引,在必须检索到同一边的一个以上属性时,该群集索引允许对合并联接的快速执行。此外,可为N个两列表402中的每一个创建关于值列的二级分区B树索引,该二级分区B树索引通过使访问关系数据库以检索满足谓语条件的那些节点的执行成本最小化来允许对关于属性的基于值的谓语的快速执行。
再次参考图4,图1中示出的属性表的片段中的边被存储在P个三列表404中,其中P是图片段中的各节点之间存在的不同关系的数目(在所示的情况下P为6)。这P个三列表404按以下方式存储图片段的拓扑结构(例如,表示该图片段中的节点和边的结构的数据)。这P个三列表404中的每一个都聚合了表示特定关系的所有边的数据。这些边中的每一个均由三条数据来描述,即由边标识符(eID)、该边连接到的源节点的标识符(sID)和该边连接到的目的地节点的标识符(dID)。
参考图3和4,将领会,可按各种方式实现属性表302的拓扑结构的基于存储器的表示。作为示例而非限制,可采用本机的基于指针的数据结构来表示存储器302中的属性图的拓扑结构。更具体地,属性图302的拓扑结构的基于存储器的表示可对P个三列表404中的数据进行编码,该数据尤其表示在处理可涉及关于图的拓扑结构的繁重遍历操作的图查询的可达性分量和最短路径分量时使用的数据。如此后将更详细描述的,这样的遍历操作可是使用各种方法来执行,诸如常规的用于获得两个节点之间的最短路径的Dijkstra方法和常规的广度优先搜索(BFS)方法等。
在给定前述的情况下,将领会,由混合引擎提供的属性图的混合关系表示按以下方式显著减少了主存储器消耗。首先,不必将属性图中的节点和边的属性以及这些属性的数据值加载到存储器中,除非查询中需要。第二,不必在混合引擎的关系数据库组件的外部构建针对这些属性的额外的储存器索引,因为本文中描述的图查询处理技术实施例将对图查询谓语的评估发送给关系数据库组件处理,并且关系数据库组件选择构建其自己的高效索引来加速该查询评估。
1.4图查询处理
图5以简化形式示出用于实现本文描述的图查询处理技术实施例的体系结构框架的示例性实施例。换言之,图5例示了用于对由实体向由属性图来建模的图数据库提交的G-SPARQL查询作出响应。图5中例示的体系结构框架500包括查询编译器502、查询执行管理器504、多个独立的查询执行引擎506/508/510和查询结果呈现器512。一般说来并如此后将更详细描述的,查询编译器502将G-SPARQL查询分解成一个或多个查询分量,并生成表示经分解的查询分量的一个或多个子查询,其中这些子查询可以由多个独立的查询执行引擎506、508、510中的不同的查询执行引擎来处理。
再次参考图5,将领会,查询编译器502可用各种方式来实现。作为示例而非限制并如图5所例示的,查询编译器502可包括前端编译器514和后端编译器516。一般来说并此后将更详细描述的,前端编译器514将G-SPARQL查询转换成包括多个代数运算符(诸如,关系运算符和可达性运算符等等)的代数查询计划,并用作表示G-SPARQL查询的抽象的中间语言。前端编译器514使用基于元组的代数方言来执行该转换。基于元组的代数包括一组代数运算符,这些代数运算符中的每一个均将元组看成主要信息单元,并这些代数运算符中的每一个均操纵元组的集合。由前端编译器514采用的该组代数运算符包括不同的常规关系运算符的集合(例如,选择、推测、联接)并且还包括能够表达无法与关系运算符的语义匹配(例如,无法被关系运算符表达)的复杂图查询运算的不同的非常规图运算符的集合。
再次参考图5,后端编译器516一般将代数查询计划转换成表示G-SPARQL查询的查询分量的多个子查询。更具体地并且如此后将更详细描述的,后端编译器516分析代数查询计划的代数运算符,并将这些代数运算符转换成SQL子查询或非关系子查询。后端编译器516生成针对代数查询计划的与属性图中的关系运算相关联的代数运算符(例如,与G-SPARQL查询的前述模式匹配分量相关联的代数运算符)的SQL子查询。后端编译器516生成针对代数查询计划的与属性图中的遍历操作相关联的代数运算符(例如,与G-SPARQL查询的前述可达性分量和最短路径分量相关联的代数运算符)的非关系子查询。由于代数查询计划基于元组,后端编译器516在子查询生成期间能够利用各个常规的且良好建立的关系查询计划和优化方法。
一般来说并且再次参考图5,查询执行管理器504用于抽象化独立的查询执行引擎504/506/508。更具体地并且如此后将更详细描述的,查询执行管理器使用多个独立查询执行引擎中的哪一些当前可用和这些可用查询执行引擎中的每一个的特性(例如,其应用编程接口(API)、它可高效执行的查询的类型、使用它的成本和数据可用性等等)以及一个或多个引擎选择规则的知识来标识这些查询执行引擎中将用来处理每一个查询分量(例如,表示每一个查询分量的子查询)的查询执行引擎。在本文中描述的图查询处理技术的一个实施例中,对于每一个查询分量,查询执行管理器随后将表示该查询分量的子查询发送给标识出的查询执行引擎以供处理并从标识出的引擎接收相应结果。假设接收到的结果足以回答该图查询,则查询执行管理器随后组合接收到的结果并将其发送至查询结果呈现器512。查询结果呈现器512随后使用接收到的经组合结果来生成对该图查询的响应,并将该响应呈现给提交了该图查询的实体。此后更详细描述了其中需要针对子查询中的一个或多个的结果来执行这些子查询中另外的一个或多个的情况。
一般来说并再次参考图5,体系结构框架500可被实现在单个计算设备上或被实现在个不同的计算设备上。更具体地并作为示例而非限制,在本文中描述的图查询处理技术的统一实施例中,整个框架500可被实现在单个计算设备上。在图查询处理技术的分布式实施例中,框架500中的不同元件500-516中的每一个可被实现在不同的计算设备上,并且这些不同的计算设备可经由数据通信网络互连。由此,将领会,图查询处理技术实施例支持对大型分布式图的查询,其中该分布式图的不同部分或分量被存储在不同的计算设备上,这些计算设备中的每一个都具有其自己独立的、处理被发送到此的查询/子查询的查询执行引擎。
此后将提供对这组代数运算符、使用这些运算符的前端编译器、后端编译器和查询执行管理器的更详细描述。如将从后面的更详细描述中领会的,这组代数运算符、前端编译器、后端编译器和查询执行管理器是有利的,因为它们独立于每一个查询执行引擎中采用的属性图的特定表示。
图6以简化形式示出了用于对图查询作出响应的过程的一个实施例。如图6中所例示的,该过程在框600开始,其中接收向由属性图建模的图数据库提交的图查询。随后将图查询分解成多个查询分量(框602)。随后,对于查询分量中的每一个,进行以下动作(框604)。标识多个独立的查询执行引擎中可用于处理该查询分量的查询执行引擎(框606)。随后生成标识该查询分量的子查询(框608)。随后将该子查询发送给标识出的查询执行引擎以供处理(框610)。随后从标识出的查询执行引擎接收针对该子查询的结果(框612)。在假设接收到的结果足以回答该图查询的情况下,随后组合接收到的结果以生成对该图查询的响应(框614),并向提交该图查询的实体呈现给响应(框616)。应注意,这些子查询可在不同的标识出查询执行引擎间并行执行。
图16以简化的形式示出用于对图查询作出响应的过程的另一实施例。如图16中所例示的,该过程在框1600开始,其中接收向由属性图建模的图数据库提交的图查询。随后生成表示该图查询的多个子查询(框1602)。随后,对于这些子查询中的每一个,进行以下动作(框1604)。标识多个独立的查询执行引擎中可用于处理该子查询的查询执行引擎(框1606)。随后将该子查询发送给标识出的查询执行引擎以供处理(框1608)。随后从标识出的查询执行引擎接收该子查询的结果(框1610)。在假设接收到的结果足以回答该图查询的情况下,随后组合接收到的结果以生成对该图查询的响应(框1612),并向提交该图查询的实体呈现该响应(框1614)。
1.4.1G-SPARQL代数运算符
图7示出了G-SPARQL中可使用的一组代数运算符的示例性实施例。一般来说并如此后所描述的,这些代数运算符独立于在查询执行引擎中的每一个中采用的属性图的特定表示。三元组模式是构建G-SPARQL查询的主要结构,其中每一个G-SPARQL查询中的每一个三元组模式变量都被来自正被查询的属性图的匹配元素所替换。本文中描述的图查询处理技术实施例为每一个G-SPARQL查询生成一组变量绑定(例如,从变量名到值的映射)。共享的变量名在针对给定G-SPARQL查询生成的代数查询计划中被表示成联接等式谓语。如图7中所例示的,G-SPARQL支持各种代数运算符,包括但不限于NgetAttVal运算符、EgetAttVal运算符、getEdgeNodes运算符、strucPred运算符、edgeJoin运算符、pathJoin运算符、sPathJoin运算符和filterPath运算符。现在将更详细地描述这些代数运算符中的每一个。
再次参考图7,NgetAttVal运算符是用于检索属性图中的给定节点集合的特定属性的值的一元运算符。NgetAttVal运算符接收一组元组{ID,(attName):ID,value},其中输入关系的ID列标识属性图中的节点,并且还标识要访问的图中的属性的名称(attName)。输出元组的模式(schema)用表示所访问的属性的值的值(value)列来扩展输入元组的模式。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8A以简化形式示出NgetAttVal运算符在其针对具有为("John","Alice","Smith")的三节点ID的输入关系检索到“位置”属性的值时的行为的示例性实施例。如图8A所例示的,输出关系仅包括一条具有“位置(location)”属性的(针对“Alice”节点)的记录,并且该属性具有为“Sydney(悉尼)”的值(value)。“John”和“Smith”节点被过滤掉了,因为它们不具有针对“位置”属性的值。
EgetAttVal运算符是用于检索属性图中的给定边集合的特定属性的值的另一个一元运算符。EgetAttVal运算符接收一组元组{elD,(attName):elD,value},其中输入关系的eID列标识属性图中的边,并且还标识要访问的图中的属性的名称(attName(属性名))。输出元组的模式用表示所访问的属性的值的值列来扩展输入元组的模式。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8B以简化形式示出EgetAttVal运算符在其针对具有两个边的eID的输入关系检索到“头衔(title)”属性的值(value)时的行为的示例性实施例。如图8B所例示的,输出关系的模式用存储所访问的属性的值的属性来扩展输入关系的模式。
应注意,常规的关系选择运算符σρ可用于表示关于属性图中的节点或边的属性的值的基于值的谓语p。当以这种方式使用时,σρ只选择针对其保持在特定列上的基于值的谓语p的输入关系的元组。因此将领会,以这种方式使用σρ是有利的,因为它表达了用于反映SPARQLFILTER(过滤)表达式的表达性的正确匹配。图8C以简化形式示出了在图8B中例示的行为的扩展的示例性实施例,其中σρ用于基于谓语头衔(title)=“教授(Professor)”来针对检索到的“头衔”属性的值(value)过滤输入边。
再次参考图7,getEdgeNodes运算符是用于检索属性图中的毗邻节点集合的另一个一元运算符。getEdgeNodes运算符接收一组元组{sID,[(eLabel)]:sID,elD,dID},其中输入关系的sID列标识属性图中的节点,并且还可任选地标识用于访问毗邻节点的指定关系(ehaveV)。输出元组的模式用表示指定关系的连接边的标识符eID以及毗邻节点的标识符dID的两个列来扩展输入元素的模式。在getEdgeNodes运算符接收eLabel参数的情况下,getEdgeNodes运算符过滤掉不具有通过指定关系连接的毗邻节点的节点。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8D以简化形式示出getEdgeNodes运算符在其针对具有为("John","Alice")的双节点sID的输入关系检索到通过“know(认识)”关系连接的毗邻节点时的行为的示例性实施例。如图8D中所例示的,输出关系过滤掉“Alice”节点,因为它没有通过“know”关系连接到任何其他节点。图8E以简化形式示出getEdgeNodes运算符在其针对具有为("John","Alice")的双节点sID的输入关系检索到所有毗邻节点时的行为的示例性实施例。
再次参考图7,strucPred运算符是用于基于特定结构谓语来过滤属性图中的给定节点集合的一元运算符。strucPred运算符接收一组元组{sID,(eLabel),(diVLabel):sID,[elD]},其中该输入关系的sID列标识属性图中的节点,并且还标识通过连接关系(eLabel)的标记描述的结构谓语,并且还标识将通过该关系来访问的毗邻节点的标记(dNLabel)。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8F以简化形式示出strucPred运算符在其应用将没有通过“know(认识)”关系连接到具有标记“Smith”的毗邻节点的各节点过滤掉的结构谓语时的行为的示例性实施例。图8G以简化形式示出strucPred运算符在其推测表示结构谓语的连接边的数据时的行为的示例性实施例。在该特定实施例中,输出关系的模式是用存储连接边的eID的附加列来扩展的。
再次参考图7,edgeJoin运算符是接收两个关系(S和D)的二元联接运算符,其中两个列sID和dID分别标识属性图中的节点S和D。对于属性图中的每一个节点对,edgeJoin运算符检查该对是否用属性图中的任何边连接、过滤掉未经连接的节点对、并返回经连接的节点对的元组作为结果。EdgeJoin运算符的输出是其中输出元组的模式串接列S和D的单个关系。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8H以简化形式示出edgeJoin运算符在其接收两组节点,即("John","Alice","Smith")和("Paper2(论文2)","Paper1(论文1)")并返回通过任何关系连接的节点对时的行为的示例性实施例。
如图7中所例示的,edgeJoin运算符还可接收将特定关系条件施加在属性图中的每一节点对之间的连接边上的可选参数eLabel。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8J以简化形式示出edgeJoin运算符在其接收两组节点,即("John","Alice","Smith")和("Microsoft(微软)")并返回通过“affiliated(隶属于)”关系连接的节点对时的行为的示例性实施例。edgeJoin运算符还可任选地推测(project)连接边的数据,其中它根据指定的输入参数来通过表示输出元组中的每一节点对之间的连接边的标识符的附加列eID来扩展输出关系的模式。图8I和8K以简化形式示出edgeJoin运算符的该推测特征的示例性实施例。更具体地,图8I示出edgeJoin运算符的行为的示例性实施例,除了图8I中例示的输出关系包括在每一输出节点对之间的连接边的eID的事实以外,图8I均与图8H中示出的实施例类似。类似地,图8K示出edgeJoin运算符的行为的示例性实施例,除了图8K中的输出关系包括在每一输出节点对之间的连接边的eID的事实以外,图8K均与图8J中示出的实施例类似。
再次参考图7,pathJoin运算符是接收两个关系(S和D)的另一个二元联接运算符,其中两个列sID和dID分别标识属性图中的节点S和D。对于属性图中的每一个节点对,pathJoin运算符检查该对是否用属性图中的边序列连接(其中该序列可具有任何长度)、过滤掉未经连接的节点对、并返回经连接的节点对的元组作为结果。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8L以简化形式示出pathJoin运算符在其接收两组节点,即("John","Alice","Smith")和("John","Alice","Smith")并返回通过任何长度的关系序列连接的节点对时的行为的示例性实施例。pathJoin还可接收将特定关系条件施加在每一节点对之间的连接路径的边上的可选参数eLabel。图8N示出pathJoin运算符在其接收两组节点,即("John","Alice","Smith")和("John","Alice","Smith")并返回通过任何长度的“know(认识)”关系序列连接的节点对时的示例性实施例。
如图7中所例示的,pathJoin运算符还可任选地如下推测连接路径的数据。首先,pathJoin运算符可用附加的列pID来扩展输入关系的模式,该附加的列pID表示为运算符输入中指定的每一个节点对之间的连接路径分配的标识符。应注意,这些节点对中的每一个均可以用多个不同的路径连接,并且由此,输入节点对中的每一个可具有描述所绑定的路径的数据的多个不同的表示元组。第二,pathJoin运算符可返回描述得到的路径的数据的另一个输出关系pRel,其中得到的路径中的每一个由表示按有序方式组成该路径的节点和边的元素序列描述,并且该序列中的每一个元素可由包括但不限于以下的多个字段表示:表示路径标识符的pID字段、表示元组描述节点还是边的type(类型)字段、表示参加该路径的节点或边的次序的order(次序)字段、表示节点或边的标识符的ID字段以及表示节点或边的标记数据的label(标记)字段。在本文中描述的图查询处理技术的示例性实施例中,如果元组描述节点,则type字段具有值“N”,而如果元组描述边,则type字段具有值“E”。此外,这些路径中的每一个的次序以被定序为1的边开始,接着是被定序为2的节点,并且随后路径的次序交替,直到到达路径的最后一条边。查询输出中的给定路径变量的值由与该路径变量相关联的元组的标记数据的串行化表示,其中该标记数据按升序次序来序列化。
图8M和8O以简化形式示出pathJoin运算符的刚才描述的推测特征的示例性实施例。更具体地,图8M示出pathJoin运算符的行为的示例性实施例,除了图8M中例示的输出关系推测得到的连接路径的数据的事实以外,图8M均与图8L中示出的实施例类似。类似地,图8O示出pathJoin运算符的行为的示例性实施例,除了图8O中例示的输出关系推测得到的连接路径的数据的事实以外,图8O均与图8N中示出的实施例类似。
再次参考图7,除了sPathJoin运算符返回表示表示属性图中的节点对中的每一个之间的最短连接的路径(假设这样的连接存在)的事实以外,sPathJoin运算符均按与pathJoin运算符相同的方式工作。
如图7中所例示的,filterPath运算符是接收两个关系(R和pRel)的二元运算符,其中关系R的pID列表示使其相关联的描述数据由关系pRel来表示的路径标识符。filterPath运算符返回关系R,其中具有路径pID以及未满足条件cond的数据pRel的元组被过滤掉。cond参数表示前述路径过滤条件之一。基于图1中示出的属性图的片段及在图4中示出的其相应关系表示,图8P以简化形式示出filterPath运算符在其基于返回具有大于1的长度的路径的Length(长度)(例如边数)条件对一组路径进行过滤并过滤掉这些路径中的其余部分时的行为的示例性实施例。
如图7所指示的,此后描述的代数运算符中的一些无法用常规的关系运算符来表示。基于前述可由本文中描述的图查询处理技术实施例采用的属性图的混合关系表示,图9示出针对可被转换成一种模式的常规关系表示的代数运算符的映射的示例性实施例。作为示例而非限制并且如图9所例示的,NgetAttVal运算符可被映射成输入关系R的nodeID(节点ID)列和该关系的表示指定节点属性(attName(属性名))的ID列之间的联接操作。NgetAttVal运算符用指定属性(attName)的关系的value(值)列来扩展输入元组(R.*)的模式。由于getEdgeNodes和edgeJoin运算符的语义无法用指定关系(eLabel)来限制,因此使用标准关系运算符来应用这些运算符需要将输入关系与每一个关系表单独地联接,并随后执行所有结果的并。更简单地说,可创建表示所有关系表的并的实体化视图(allEdges)。
图10A和10B示出了此前描述的每一个代数运算符的SQL(结构化查询语言)转换模版的推断规则的示例性实施例。后面是图10A中示出的表示NgetAttVal运算符的转换的TRANS-1推断规则的样本解释。在给定关系R表示对三元组模式t的SQL评估的情况下,对NgetAttValnodeID,(attName):value运算符的SQL转换可使用以下SQL代码来定义:
SELECTR.*,attName.ValueFROMR,attName
WHERER.nodeID=attName.ID;
1.4.2前端编译器
该节提供对前述示例性前端编译器的更详细描述。
图11以简化形式示出用于使用前述基于三元组的代数方言来将G-SPARQL查询变换成包括关系运算符和非关系运算符的代数查询计划的过程的示例性实施例。如图11中所例示的,该过程在框1100开始,其中使用推断规则集合来将G-SPARQL查询的三元组模式映射在前述代数运算符集合上。图12A-12D示出了这样的推断规则的示例性实施例。以下是图12A中示出的OPMAP-1推断规则的样本解释。OPMAP-1将G-SPARQL查询q的三元组模式(?var,attName,?var2)映射在NgetAttValID.(attName):value代数运算符上,其中在给定?var(Map(?var))变量的映射作为输入关系R的一部分被绑定到列ID的情况下,变量?var2被绑定到通过应用NgetAttVal运算符的输出关系的(Col(?var2)≡value)列值。在图12A-12D中所例示的推断规则中,Triple(q)指代G-SPARQL查询q的三元组模式集合,PathFilter(q)指代G-SPARQL查询q的路径过滤集合,并且allEdges(例如,推断规则OPMAP-8)直到表示所有关系表的并的实体化视图。
再次参考图11,一旦已将G-SPARQL查询的三元组模式映射到代数运算符集合(框1100)后,应用查询重写规则集合以便减少G-SPARQL查询评估的执行时间(框1102),其中这些重写规则专用于本文中描述的G-SPARQL结构。此外,G-SPARQL查询的三元组模式是根据其“限制性”来重新排序的,其中该重新排序是使用以下三元组优先规则集合来执行的(框1104)。在给定t1,t2∈Triple(q)表示给定G-SPARQL查询q的两个三元组模式的情况下,每当三元组模式t1与三元组模式t2相比具有更多路径变量(??或?*)时,t1均被定义成与t2相比更不具限制性(例如,tl>>t2)。每当三元组模式t1与三元组模式t2相比具有更少路径变量(??or?*)时,t1均被定义成与t2相比更具限制性(例如,tl<<t2)。每当三元组模式t1与三元组模式t2具有相同数目的路径变量(??or?*)并且t1的路径变量上的过滤表达式的数目大于t2的路径变量上的过滤表达式的数目时,t1也被定义成与t2相比更具限制性(例如,tl<<t2)。换言之,G-SPARQL查询的更具限制性的三元组模式被给予更高的优先级,以便优化为G-SPARQL查询生成的SQL子查询的联接次序。
图13A和13B示出了刚才描述的查询重写规则集合的示例性实施例。以下是图13A中示出的REWRITE-1(重写1)查询重写规则的样本解释。在给定路径变量?*var不是G-SPARQL查询q的输出变量列表(其被表示成outVarList(q))的一部分的情况下,REWRITE-1将给定G-SPARQL查询q(其三元组模式被表示成Triple(q))的给定三元组模式(subject,?*var,object)重写成三元组模式(subject,??var,object)。
图14以简化形式示出将以下示例性G-SPARQL查询前端编译成包括关系运算符和非关系运算符的示例性查询计划的示例性实施例:
1.4.3后端编译器
该节提供对前述示例性后端编译器的更详细描述。
图15以简化形式示出将代数查询计划转换成表示G-SPARQL查询的查询分量的多个子查询的过程的示例性实施例。。如图15所例示的,该过程在框1500开始,其中每当将代数查询计划的代数运算符映射成其关系表示可适用时,均进行这样的映射。如此前所描述的,图9示出这样的映射的示例性实施例。随后将代数查询计划的代数运算符转换成子查询(框1502),其中该转换包括为与属性图中的关系运算相关联的代数运算符(例如,与G-SPARQL查询的前述模式匹配分量相关联的代数运算符)生成SQL子查询(框1504),并为与属性图中的遍历运算相关联的代数运算符(例如,与G-SPARQL查询的前述可达性分量和最短路径分量相关联的代数运算符)生成非关系子查询(框1506)。
如图14中所例示的,在本文中描述的图查询处理技术的示例性实施例中,由前端编译器生成的代数查询计划可被形成为有向无环图。由此,后端编译器可通过使用常规的基于经定义模式的转换规则的集合按自下而上(例如从“叶”开始并随后“爬”不同的路径回到“根”)的方式遍历该代数查询计划来将该代数查询计划转换成子查询。如果“爬”到达了不具有对其语义的常规关系表示的代数运算符或者如果“爬”到达了“根”,则“爬”给定路径将停止。作为示例而非限制,除pathJoin运算符以外,图14中示出的全部代数运算符均可被转换成SQL子查询。更具体的并如由图14中的虚线框所指示的,两个SQL子查询(即SQL1和SQL2)由后端编译器生成,其中这些SQL子查询的以下结果可随后使用pathJoin运算符被发送至图引擎或混合引擎的基于存储器的组件:
1.4.4查询执行管理器
该节提供对查询执行管理器的前述特征中的若干个特征的更详细描述。
如此前所描述的,查询执行管理器使用多个独立的查询执行引擎中的哪些当前可用并且可用查询执行引擎中的每一个的特性以及一个或多个引擎选择规则的知识来标识这些查询执行引擎中将用来处理每一个查询分量(例如,表示每一个查询分量的子查询)的查询执行引擎。在本文中描述的图查询处理技术的一个实施例中,基于性能的引擎选择规则可用于执行此标识,其中这些规则指定G-SPARQL查询的模式匹配分量(例如,表示此分量的SQL子查询)将由关系数据库引擎或混合引擎的关系数据库组件来执行。基于性能的引擎选择规则还指定G-SPARQL查询的可达性分量(例如,表示该分量的非关系子查询)将由图引擎或混合引擎的基于存储器的组件来执行。基于性能的引擎选择规则还指定G-SPARQL查询的最短路径分量(例如,表示该分量的非关系子查询)将由图引擎或混合引擎的基于存储器的组件来执行。
在本文中描述的图查询处理技术的另一实施例中,至少一个基于货币成本的引擎选择规则可用于标识多个独立的查询执行引擎中将被用来处理这些查询分量中的每一个的查询执行引擎,其中该规则指定这些查询分量中的每一个将由多个独立的查询执行引擎中用起来最便宜的查询执行引擎来执行。在图查询处理技术的又一实施例中,基于性能的引擎选择规则和基于货币成本的引擎选择规则的组合可被用来标识多个独立的查询执行引擎中将被用来处理查询分量中的每一个的查询执行引擎。
图17以简化形式示出解决前述需要一个或多个子查询的结果来执行另外的一个或多个子查询的情况的查询执行管理过程的示例性实施例的流程图。如图17中所例示的,该过程在框1700开始,其中每当需要一个或多个子查询的结果来执行另外的一个或多个子查询时均进行以下动作。将一个或多个子查询中的每一个发送给被标识成处理该子查询的查询执行引擎(框1702)。随后从被标识成处理一个或多个子查询中的每一个的查询执行引擎处接收该子查询的结果(框1704)。随后使用接收到的此一个或多个子查询的结果来将另外的一个或多个子查询中的每一个发送给被标识成处理该子查询的查询执行引擎(框1706)。随后从被标识成处理另外的一个或多个子查询中的每一个的查询执行引擎处接收该子查询的结果(框1708)。随后将接收到的一个或多个子查询的结果以及接收到的另外的一个或多个子查询的结果组合以生成对图查询的响应(框1710)。
2.0附加实施例
尽管具体参考各实施例描述了图查询处理技术,但可以理解,可对这些实施例作出变化和修改而不背离图查询处理技术的真正精神和范围。还应当注意,可以按所需的任何组合来使用上述实施例的任一个或全部以形成另外的混合实施例或分布式实施例。尽管用对结构特征和/或方法动作专用的语言描述了各图查询处理技术实施例,但可以理解,所附权利要求书中定义的主题不必限于至今所述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
3.0示例性操作环境
本文描述的图查询处理技术实施例可在多种通用或专用计算系统环境或配置内操作。图18示出其上可实现本文所描述的图查询处理技术的各实施例和元素的通用计算机系统的简化示例。注意,图18中由折线或虚线所表示的任何框表示简化计算设备的替换实施方式,并且以下描述的这些替换实施方式中的任一个或全部可以结合贯穿本文所描述的其他替换实施方式来使用。
例如,图18示出了概括系统图,其示出简化计算设备1800。这样的计算设备通常可以在具有至少某种最小计算能力的设备中找到,这些设备包括但不限于个人计算机(PC)、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和个人数字助理(PDA)等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、音频或视频媒体播放器或云计算环境中的计算资源等。
为允许设备实现本文描述的图查询处理技术的各实施例,该设备应当具有足够的计算能力和系统存储器以启用基本计算操作。具体而言,如图18所示,计算能力一般由一个或多个处理单元1810示出,并且还可包括一个或多个图形处理单元(GPU)1815,这两者中的任一个或全部与系统存储器1820通信。注意,假话计算设备1800的处理单元1810可以是专用微处理器(诸如数字信号处理器(DSP)、甚长指令字(VLIW)处理器、场可编程门阵列(FPGA)、或其他微控制器)或者可以是具有一个或多个处理核的常规中央处理单元(CPU),处理核包括但不限于多核CPU中的专用的基于GPU的核。
另外,图18的简化计算设备1800还可包括其他组件,诸如例如通信接口1830。图18的简化计算设备1800还可包括一个或多个常规计算机输入设备1840(例如定点设备、键盘、音频(例如语音)输入设备、视频输入设备、触觉输入设备、姿势识别设备、用于接收有线或无线数据传输的设备等)。图18的简化计算设备1800还可包括其他光学组件,诸如例如一个或多个常规计算机输出设备1850(例如显示设备1855、音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,用于通用计算机的一般通信接口1830、输入设备1840、输出设备1850和存储设备1860是本领域技术人员所公知的,且将不在此详细描述。
图18的简化计算设备1800还可包括各种计算机可读介质。计算机可读介质可以是可由计算机1800经由存储设备1860访问的任何可用介质,并且可包括是可移动1870和/或不可移动1880的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据等信息。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质指代有形的计算机可读或机器可读介质或存储设备,诸如数字多功能盘(DVD)、紧致盘(CD)、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储所需信息并且可由一个或多个计算设备访问的任何其他设备。
诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保持还可通过使用各种上述通信介质中的任一种来编码一个或多个已调制数据信号或载波或其他传输机制或通信协议来实现,并且可包括任何有线或无线信息传递机制。注意,术语“已调制数据信号”或“载波”一般指以对信号中的信息进行编码的方式设置或变化其一个或多个特征的信号。例如,通信介质可包括诸如有线网络或直接线连接等携带一个或多个已调制数据信号的有线介质,以及诸如声学、射频(RF)、红外线、激光和其他无线介质等用于传送和/或接收一个或多个已调制数据信号或载波的无线介质。以上的任何组合也应包括在通信介质的范围内。
此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从计算机可读或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化本文描述的图查询处理技术实施例中的部分或全部的软件、程序和/或计算机程序产品或其各部分。
最终,本文描述的图查询处理技术的各实施例还可在由计算设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。图查询处理技术实施例还可以在其中任务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括介质存储设备的本地和远程计算机存储介质中。另外,上述指令可以部分地或整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。
Claims (10)
1.用于对图查询作出响应的计算机实现的过程,包括:
使用计算机来执行以下过程动作:
接收被提交给由属性图来建模的图数据库的图查询;
将所述图查询分解成多个查询分量;
对于所述查询分量中的每一个,
标识多个独立的查询执行引擎中可用于处理所述查询分量的查询执行引擎,
生成表示所述查询分量的子查询,
将所述子查询发送给标识出的查询执行引擎以供处理,以及
从标识出的查询执行引擎接收所述子查询的结果;以及
组合接收到的结果以生成对所述图查询的响应。
2.如权利要求1所述的过程,其特征在于:
所述查询执行引擎包括一个或多个混合引擎,所述一个或多个混合引擎各自包括基于存储器的组件和关系数据库组件;
所述属性图或其一部分被存储在所述关系数据库组件中,以及
每当给定子查询被发送给给定混合引擎以供处理时,仅与所述属性图或其所述部分的拓扑结构相关联的数据被从所述关系数据库组件中检索并被存储在所述基于存储器的组件中。
3.如权利要求1所述的过程,其特征在于,所述查询执行引擎包括以下中的任一个:
一个或多个关系数据库引擎及一个或多个图引擎;或者
一个或多个关系数据库引擎及一个或多个混合引擎;或者
一个或多个图引擎及一个或多个混合引擎。
4.如权利要求1所述的过程,其特征在于:
标识多个独立查询执行引擎中可用于处理所述查询分量的查询执行引擎的过程动作包括使用基于性能的引擎选择规则来执行所述标识的动作,
所述规则指定所述图查询的模式匹配分量将由关系数据库引擎或混合引擎的关系数据库组件来执行,
所述规则指定所述图查询的可达性分量将由图引擎或所述混合引擎的基于存储器的组件来执行,以及
所述规则指定所述图查询的最短路径分量将由所述图引擎或所述混合引擎的基于存储器的组件来执行。
5.如权利要求1所述的过程,其特征在于,标识多个独立的查询执行引擎中可用于处理所述查询分量的查询执行引擎的过程动作包括至少使用基于货币成本的引擎选择规则来执行所述标识的动作,所述规则指定所述查询分量将由多个独立的查询执行引擎中用起来最便宜的查询执行引擎来执行。
6.一种用于对图查询作出响应的系统,包括:
计算设备;以及
具有可由所述计算设备执行的程序模块的计算机程序,其中所述计算设备可由所述计算机程序的程序模块来指导以便,
接收被提交给由属性图来建模的图数据库的图查询,
生成表示所述图查询的多个子查询,
对于所述子查询中的每一个,
标识多个独立的查询执行引擎中可用于处理所述子查询的查询执行引擎,
将所述子查询发送给标识出的查询执行引擎以供处理,以及
从标识出的查询执行引擎接收所述子查询的结果,以及
组合接收到的结果以生成对所述图查询的响应。
7.如权利要求6所述的系统,其特征在于,进一步包括用于每当需要所述子查询中的一个或多个子查询的结果来执行所述子查询中另外的一个或多个子查询时进行以下操作的程序模块:
将所述子查询中的一个或多个中的每一个发送给被标识成处理该子查询的查询执行引擎,
从被标识成处理所述子查询中的所述一个或多个子查询中的每一个的所述查询执行引擎处接收该子查询的结果,
使用接收到的所述子查询中的所述一个或多个子查询的结果来将所述子查询中所述另外的一个或多个子查询中的每一个发送给被标识成处理该子查询的查询执行引擎,
从被标识成处理所述子查询中的所述另外的一个或多个子查询中的每一个的所述查询执行引擎处接收该子查询的结果,以及
将接收到的所述子查询中的所述一个或多个子查询的结果以及接收到的所述子查询中所述另外的一个或多个子查询的结果组合以生成对所述图查询的响应。
8.如权利要求6所述的系统,其特征在于,用于生成表示所述图查询的多个子查询的程序模块包括用于以下操作的程序模块:
使用基于元组的代数方言来将所述图查询转换成包括多个代数运算符的代数查询计划;以及
将所述代数查询计划转换成多个子查询,所述转换包括用于以下操作的程序模块:
为与所述属性图中的关系操作相关联的代数运算符生成一个或多个结构化查询语言子查询,以及
为与所述属性图中的遍历操作相关联的代数运算符生成一个或多个非关系子查询。
9.如权利要求8所述的系统,其特征在于,用于使用基于元组的代数方言来将所述图查询变换成包括多个代数运算符的代数查询计划的程序模块包括用于以下操作的程序模块:
使用推断规则集合来将所述图查询的三元组模式映射到代数运算符集合上;
应用查询重写规则集合来减少所述图查询评估的执行时间;以及
使用三元组模式优先规则集合来根据其限制性对所述三元组模式重新排序。
10.如权利要求8所述的系统,其特征在于,用于标识多个独立的查询执行引擎中可用于处理所述子查询的查询执行引擎的程序模块包括用于使用基于性能的引擎选择规则来执行所述标识的程序模块,所述规则指定结构化查询语言子查询将由关系数据库引擎或混合引擎的关系数据库组件来执行,并且还指定所述非关系子查询将由图引擎或混合引擎的基于存储器的组件来执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/714,787 US9053210B2 (en) | 2012-12-14 | 2012-12-14 | Graph query processing using plurality of engines |
US13/714,787 | 2012-12-14 | ||
PCT/US2013/075211 WO2014093951A2 (en) | 2012-12-14 | 2013-12-14 | Graph query processing using plurality of engines |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105210058A true CN105210058A (zh) | 2015-12-30 |
Family
ID=49920642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380065559.6A Pending CN105210058A (zh) | 2012-12-14 | 2013-12-14 | 使用多个引擎来进行图查询处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9053210B2 (zh) |
EP (1) | EP2932412A2 (zh) |
CN (1) | CN105210058A (zh) |
WO (1) | WO2014093951A2 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273422A (zh) * | 2017-05-17 | 2017-10-20 | 南京中孚信息技术有限公司 | 一种为关系型数据库扩展图计算功能的系统 |
CN107291807A (zh) * | 2017-05-16 | 2017-10-24 | 中国科学院计算机网络信息中心 | 一种基于图遍历的sparql查询优化方法 |
CN108595255A (zh) * | 2018-04-13 | 2018-09-28 | 武汉理工大学 | 地理分布式云中基于最短路径算法的工作流任务调度方法 |
CN109670089A (zh) * | 2018-12-29 | 2019-04-23 | 颖投信息科技(上海)有限公司 | 知识图谱系统及其图服务器 |
CN109791544A (zh) * | 2016-09-30 | 2019-05-21 | 微软技术许可有限责任公司 | 对跨子图的图查询的查询时分析 |
CN110383765A (zh) * | 2017-01-24 | 2019-10-25 | 艾普斯卓公司 | 使用图形模型的计算机基础结构的配置、遥测和分析 |
CN110574017A (zh) * | 2017-04-21 | 2019-12-13 | 微软技术许可有限责任公司 | 跨多个图的查询执行 |
CN111339334A (zh) * | 2020-02-11 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 异构图数据库的数据查询方法及其系统 |
CN111538854A (zh) * | 2020-04-27 | 2020-08-14 | 北京百度网讯科技有限公司 | 搜索方法及装置 |
CN111581237A (zh) * | 2019-02-15 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置、系统及电子设备 |
CN112035581A (zh) * | 2020-08-21 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 基于模型的任务处理方法、装置、设备和介质 |
CN112256927A (zh) * | 2020-10-21 | 2021-01-22 | 网易(杭州)网络有限公司 | 基于属性图的知识图谱数据处理方法和装置 |
CN112753029A (zh) * | 2018-09-20 | 2021-05-04 | 华为技术有限公司 | 用于基于图的查询分析的系统和方法 |
CN112805696A (zh) * | 2018-10-06 | 2021-05-14 | 微软技术许可有限责任公司 | Sql服务器中的多步骤查询执行 |
CN113424173A (zh) * | 2019-02-15 | 2021-09-21 | 微软技术许可有限责任公司 | 用于有效图分析的物化图视图 |
CN113946600A (zh) * | 2021-10-21 | 2022-01-18 | 北京人大金仓信息技术股份有限公司 | 数据查询方法、装置、计算机设备和介质 |
CN114127705A (zh) * | 2019-05-13 | 2022-03-01 | 莱蒂斯有限公司 | 用于解析图形数据库查询的方法、系统和介质 |
CN114564571A (zh) * | 2022-04-21 | 2022-05-31 | 支付宝(杭州)信息技术有限公司 | 一种图数据查询方法和系统 |
US11444833B1 (en) | 2019-04-24 | 2022-09-13 | Juniper Networks, Inc. | Business policy management for self-driving network |
CN116383454A (zh) * | 2023-04-10 | 2023-07-04 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
US11748506B2 (en) | 2017-02-27 | 2023-09-05 | Microsoft Technology Licensing, Llc | Access controlled graph query spanning |
US11876699B2 (en) | 2015-12-23 | 2024-01-16 | Apstra, Inc. | Verifying service status |
WO2024055153A1 (en) * | 2022-09-13 | 2024-03-21 | Paypal, Inc. | Dual write and dual read access to graph databases |
Families Citing this family (199)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8676841B2 (en) | 2008-08-29 | 2014-03-18 | Oracle International Corporation | Detection of recurring non-occurrences of events using pattern matching |
US8935293B2 (en) | 2009-03-02 | 2015-01-13 | Oracle International Corporation | Framework for dynamically generating tuple and page classes |
US8959106B2 (en) * | 2009-12-28 | 2015-02-17 | Oracle International Corporation | Class loading using java data cartridges |
US9430494B2 (en) | 2009-12-28 | 2016-08-30 | Oracle International Corporation | Spatial data cartridge for event processing systems |
US9305057B2 (en) | 2009-12-28 | 2016-04-05 | Oracle International Corporation | Extensible indexing framework using data cartridges |
US8447754B2 (en) * | 2010-04-19 | 2013-05-21 | Salesforce.Com, Inc. | Methods and systems for optimizing queries in a multi-tenant store |
US8713049B2 (en) | 2010-09-17 | 2014-04-29 | Oracle International Corporation | Support for a parameterized query/view in complex event processing |
US10805331B2 (en) | 2010-09-24 | 2020-10-13 | BitSight Technologies, Inc. | Information technology security assessment system |
US9189280B2 (en) | 2010-11-18 | 2015-11-17 | Oracle International Corporation | Tracking large numbers of moving objects in an event processing system |
US8990416B2 (en) | 2011-05-06 | 2015-03-24 | Oracle International Corporation | Support for a new insert stream (ISTREAM) operation in complex event processing (CEP) |
US9329975B2 (en) | 2011-07-07 | 2016-05-03 | Oracle International Corporation | Continuous query language (CQL) debugger in complex event processing (CEP) |
US9256639B2 (en) * | 2012-08-31 | 2016-02-09 | Infotech Soft, Inc. | Query optimization for SPARQL |
US9262479B2 (en) | 2012-09-28 | 2016-02-16 | Oracle International Corporation | Join operations for continuous queries over archived views |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US10956422B2 (en) | 2012-12-05 | 2021-03-23 | Oracle International Corporation | Integrating event processing with map-reduce |
US10496640B2 (en) | 2012-12-19 | 2019-12-03 | Salesforce.Com, Inc. | Querying a not only structured query language (NoSQL) database using structured query language (SQL) commands |
EP2755148A1 (en) * | 2013-01-15 | 2014-07-16 | Fujitsu Limited | Data storage system, and program and method for execution in a data storage system |
US9098587B2 (en) | 2013-01-15 | 2015-08-04 | Oracle International Corporation | Variable duration non-event pattern matching |
US10298444B2 (en) | 2013-01-15 | 2019-05-21 | Oracle International Corporation | Variable duration windows on continuous data streams |
US9390135B2 (en) | 2013-02-19 | 2016-07-12 | Oracle International Corporation | Executing continuous event processing (CEP) queries in parallel |
US9047249B2 (en) | 2013-02-19 | 2015-06-02 | Oracle International Corporation | Handling faults in a continuous event processing (CEP) system |
US9928287B2 (en) * | 2013-02-24 | 2018-03-27 | Technion Research & Development Foundation Limited | Processing query to graph database |
US10713261B2 (en) * | 2013-03-13 | 2020-07-14 | Google Llc | Generating insightful connections between graph entities |
US20140280282A1 (en) * | 2013-03-14 | 2014-09-18 | Cray Inc. | Interface between sparql systems and a non-sparql system |
US10296625B2 (en) * | 2013-03-16 | 2019-05-21 | Fadi Victor Micaelian | Computerized system and method for identifying relationships |
US9031933B2 (en) * | 2013-04-03 | 2015-05-12 | International Business Machines Corporation | Method and apparatus for optimizing the evaluation of semantic web queries |
US11410173B1 (en) * | 2013-05-07 | 2022-08-09 | Amazon Technologies, Inc. | Tokenization web services |
US20140351241A1 (en) * | 2013-05-24 | 2014-11-27 | Sap Ag | Identifying and invoking applications based on data in a knowledge graph |
US10740396B2 (en) | 2013-05-24 | 2020-08-11 | Sap Se | Representing enterprise data in a knowledge graph |
US9418113B2 (en) | 2013-05-30 | 2016-08-16 | Oracle International Corporation | Value based windows on relations in continuous data streams |
US9405853B2 (en) * | 2013-06-17 | 2016-08-02 | Hewlett Packard Enterprise Development Lp | Reading object queries |
US10776965B2 (en) * | 2013-07-26 | 2020-09-15 | Drisk, Inc. | Systems and methods for visualizing and manipulating graph databases |
US9323864B2 (en) * | 2013-08-14 | 2016-04-26 | International Business Machines Corporation | Method and apparatus for identifying the optimal schema to store graph data in a relational store |
US9323825B2 (en) * | 2013-08-14 | 2016-04-26 | International Business Machines Corporation | Method and apparatus for storing sparse graph data as multi-dimensional cluster |
US9438615B2 (en) | 2013-09-09 | 2016-09-06 | BitSight Technologies, Inc. | Security risk management |
US10366056B2 (en) | 2013-11-15 | 2019-07-30 | Salesforce.Com, Inc. | Asynchronous search for big objects |
US9934279B2 (en) | 2013-12-05 | 2018-04-03 | Oracle International Corporation | Pattern matching across multiple input data streams |
US10424016B2 (en) * | 2013-12-19 | 2019-09-24 | International Business Machines Corporation | Modeling asset transfer flow relationships discovered in unstructured data |
US9715515B2 (en) * | 2014-01-31 | 2017-07-25 | Microsoft Technology Licensing, Llc | External data access with split index |
US9886521B2 (en) * | 2014-03-13 | 2018-02-06 | International Business Machines Corporation | Adaptive sampling schemes for clustering streaming graphs |
US9405855B2 (en) * | 2014-03-27 | 2016-08-02 | Sap Ag | Processing diff-queries on property graphs |
US11294900B2 (en) * | 2014-03-28 | 2022-04-05 | Micro Focus Llc | Real-time monitoring and analysis of query execution |
US9535949B2 (en) * | 2014-03-28 | 2017-01-03 | International Business Machines Corporation | Dynamic rules to optimize common information model queries |
US9959364B2 (en) * | 2014-05-22 | 2018-05-01 | Oath Inc. | Content recommendations |
CN105138526B (zh) * | 2014-05-30 | 2019-02-22 | 国际商业机器公司 | 用于为关系型数据库自动生成语义映射的方法和系统 |
CN105446966B (zh) * | 2014-05-30 | 2019-01-18 | 国际商业机器公司 | 生成关系数据转换为rdf格式数据的映射规则的方法和装置 |
US9244978B2 (en) | 2014-06-11 | 2016-01-26 | Oracle International Corporation | Custom partitioning of a data stream |
US9836506B2 (en) * | 2014-06-11 | 2017-12-05 | International Business Machines Corporation | Dynamic query optimization with pilot runs |
US9712645B2 (en) | 2014-06-26 | 2017-07-18 | Oracle International Corporation | Embedded event processing |
US9785773B2 (en) * | 2014-07-03 | 2017-10-10 | Palantir Technologies Inc. | Malware data item analysis |
US9871714B2 (en) * | 2014-08-01 | 2018-01-16 | Facebook, Inc. | Identifying user biases for search results on online social networks |
US10255244B2 (en) * | 2014-08-01 | 2019-04-09 | Facebook, Inc. | Search results based on user biases on online social networks |
US9886486B2 (en) | 2014-09-24 | 2018-02-06 | Oracle International Corporation | Enriching events with dynamically typed big data for event processing |
US10120907B2 (en) | 2014-09-24 | 2018-11-06 | Oracle International Corporation | Scaling event processing using distributed flows and map-reduce operations |
US9703830B2 (en) * | 2014-10-09 | 2017-07-11 | International Business Machines Corporation | Translation of a SPARQL query to a SQL query |
US10169355B2 (en) * | 2014-10-27 | 2019-01-01 | Tata Consultancy Services Limited | Knowledge representation in a multi-layered database |
CN104504003B (zh) * | 2014-12-09 | 2018-03-13 | 北京航空航天大学 | 图数据的搜索方法和装置 |
US10152558B2 (en) * | 2014-12-23 | 2018-12-11 | Intel Corporation | Graph operations |
US20160267119A1 (en) * | 2015-03-13 | 2016-09-15 | Microsoft Technology Licensing, Llc | Index building in hybrid data system |
GB2536932A (en) * | 2015-03-31 | 2016-10-05 | Fujitsu Ltd | System, method, and program for storing and analysing a data graph |
US10884869B2 (en) | 2015-04-16 | 2021-01-05 | Nuodb, Inc. | Backup and restore in a distributed database utilizing consistent database snapshots |
WO2016191760A1 (en) * | 2015-05-28 | 2016-12-01 | GraphSQL, Inc. | System and method for real-time graph-based recommendations |
US10180954B2 (en) | 2015-05-29 | 2019-01-15 | Nuodb, Inc. | Disconnected operation within distributed database systems |
US10067969B2 (en) | 2015-05-29 | 2018-09-04 | Nuodb, Inc. | Table partitioning within distributed database systems |
US10915525B2 (en) | 2015-06-15 | 2021-02-09 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
US20160371355A1 (en) * | 2015-06-19 | 2016-12-22 | Nuodb, Inc. | Techniques for resource description framework modeling within distributed database systems |
WO2017018901A1 (en) | 2015-07-24 | 2017-02-02 | Oracle International Corporation | Visually exploring and analyzing event streams |
WO2017019879A1 (en) * | 2015-07-29 | 2017-02-02 | Algebraix Data Corp. | Multi-query optimization |
US10795889B2 (en) | 2015-08-06 | 2020-10-06 | Micro Focus Llc | Query path with aggregate projection |
US10102369B2 (en) | 2015-08-19 | 2018-10-16 | Palantir Technologies Inc. | Checkout system executable code monitoring, and user account compromise determination system |
US10810257B2 (en) * | 2015-08-27 | 2020-10-20 | Oracle International Corporation | Fast processing of path-finding queries in large graph databases |
US10848384B2 (en) * | 2015-09-04 | 2020-11-24 | Celonis Se | Method for determining parallel process paths in process data |
WO2017044119A1 (en) | 2015-09-11 | 2017-03-16 | Hewlett Packard Enterprise Development Lp | Graph database and relational database mapping |
US9378303B1 (en) * | 2015-09-18 | 2016-06-28 | Linkedin Corporation | Representing compound relationships in a graph database |
US9535963B1 (en) | 2015-09-18 | 2017-01-03 | Linkedin Corporation | Graph-based queries |
US9330138B1 (en) | 2015-09-18 | 2016-05-03 | Linkedin Corporation | Translating queries into graph queries using primitives |
US10956504B2 (en) * | 2015-09-23 | 2021-03-23 | Micro Focus Llc | Graph database query classification based on previous queries stored in repository |
GB2546164A (en) | 2015-09-30 | 2017-07-12 | Johnson Matthey Plc | Gasoline particulate filter |
RU2708939C2 (ru) * | 2015-10-08 | 2019-12-12 | Общество с ограниченной ответственностью "Колловэар" | Система и способ обработки данных графов |
US9704277B2 (en) * | 2015-10-15 | 2017-07-11 | International Business Machines Corporation | Vectorized graph processing |
US9514247B1 (en) | 2015-10-28 | 2016-12-06 | Linkedin Corporation | Message passing in a distributed graph database |
WO2017078710A1 (en) * | 2015-11-04 | 2017-05-11 | Hewlett-Packard Enterprise Development LP | Processing data between data stores |
US10565200B2 (en) * | 2015-11-23 | 2020-02-18 | Sap Se | Conversion of model views into relational models |
US9665628B1 (en) | 2015-12-06 | 2017-05-30 | Xeeva, Inc. | Systems and/or methods for automatically classifying and enriching data records imported from big data and/or other sources to help ensure data integrity and consistency |
US10176220B2 (en) | 2015-12-14 | 2019-01-08 | International Business Machines Corporation | Executing graph path queries |
US10185755B2 (en) * | 2015-12-28 | 2019-01-22 | Business Objects Software Limited | Orchestration of data query processing in a database system |
US11182720B2 (en) * | 2016-02-16 | 2021-11-23 | BitSight Technologies, Inc. | Relationships among technology assets and services and the entities responsible for them |
US10552465B2 (en) * | 2016-02-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | Generating text snippets using universal concept graph |
US10180992B2 (en) * | 2016-03-01 | 2019-01-15 | Microsoft Technology Licensing, Llc | Atomic updating of graph database index structures |
US20170277750A1 (en) * | 2016-03-28 | 2017-09-28 | Futurewei Technologies, Inc. | Querying big data by accessing small data |
US20170330080A1 (en) | 2016-05-13 | 2017-11-16 | Cognitive Scale, Inc. | Universal Cognitive Graph Architecture |
US9910642B2 (en) * | 2016-05-26 | 2018-03-06 | Cisco Technology, Inc. | Optimal rule generation from a digraph representation |
US10558656B2 (en) * | 2016-05-27 | 2020-02-11 | Intuit Inc. | Optimizing write operations in object schema-based application programming interfaces (APIS) |
US9753744B1 (en) | 2016-05-27 | 2017-09-05 | Intuit Inc. | Defining application programming interfaces (APIS) using object schemas |
US9804886B1 (en) | 2016-05-27 | 2017-10-31 | Intuit Inc. | Extending object-schema-based application programming interfaces (APIS) |
US10530661B2 (en) * | 2016-06-30 | 2020-01-07 | At&T Intellectual Property I, L.P. | Systems and methods for modeling networks |
US10671588B2 (en) * | 2016-07-08 | 2020-06-02 | Ebay Inc. | Multiple database updates using paths |
US10671668B2 (en) | 2016-07-11 | 2020-06-02 | Hewlett Packard Enterprise Development Lp | Inferring graph topologies |
US10394891B2 (en) | 2016-08-05 | 2019-08-27 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by efficient throughput edge addition |
US10380188B2 (en) | 2016-08-05 | 2019-08-13 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by reducing number of messages required to add a new edge by employing asynchronous communication |
US10552450B2 (en) * | 2016-08-05 | 2020-02-04 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and low latency graph queries |
US10685063B2 (en) * | 2016-09-16 | 2020-06-16 | At&T Intellectual Property I, L.P. | Time-based querying of graph databases |
US10445507B2 (en) | 2016-09-23 | 2019-10-15 | International Business Machines Corporation | Automated security testing for a mobile application or a backend server |
US10789295B2 (en) | 2016-09-28 | 2020-09-29 | Microsoft Technology Licensing, Llc | Pattern-based searching of log-based representations of graph databases |
US10339130B2 (en) * | 2016-10-06 | 2019-07-02 | Microsoft Technology Licensing, Llc | Diverse addressing of graph database entities by database applications |
US10545945B2 (en) * | 2016-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Change monitoring spanning graph queries |
US10754859B2 (en) | 2016-10-28 | 2020-08-25 | Microsoft Technology Licensing, Llc | Encoding edges in graph databases |
US20180121506A1 (en) * | 2016-10-28 | 2018-05-03 | Hewlett Packard Enterprise Development Lp | Solving graph routes into a set of possible relationship chains |
US10452672B2 (en) | 2016-11-04 | 2019-10-22 | Microsoft Technology Licensing, Llc | Enriching data in an isolated collection of resources and relationships |
US10481960B2 (en) | 2016-11-04 | 2019-11-19 | Microsoft Technology Licensing, Llc | Ingress and egress of data using callback notifications |
US10402408B2 (en) | 2016-11-04 | 2019-09-03 | Microsoft Technology Licensing, Llc | Versioning of inferred data in an enriched isolated collection of resources and relationships |
US10885114B2 (en) | 2016-11-04 | 2021-01-05 | Microsoft Technology Licensing, Llc | Dynamic entity model generation from graph data |
US11475320B2 (en) | 2016-11-04 | 2022-10-18 | Microsoft Technology Licensing, Llc | Contextual analysis of isolated collections based on differential ontologies |
US10614057B2 (en) | 2016-11-04 | 2020-04-07 | Microsoft Technology Licensing, Llc | Shared processing of rulesets for isolated collections of resources and relationships |
US10318741B2 (en) | 2016-11-21 | 2019-06-11 | Bank Of America Corporation | Data security and risk ranking tool |
JP6310532B1 (ja) * | 2016-11-24 | 2018-04-11 | ヤフー株式会社 | 生成装置、生成方法、及び生成プログラム |
US10521426B2 (en) | 2016-11-29 | 2019-12-31 | Sap Se | Query plan generation for split table query operations |
US10885032B2 (en) * | 2016-11-29 | 2021-01-05 | Sap Se | Query execution pipelining with shared states for query operators |
US10558661B2 (en) | 2016-11-29 | 2020-02-11 | Sap Se | Query plan generation based on table adapter |
US10372707B2 (en) | 2016-11-29 | 2019-08-06 | Sap Se | Query execution pipelining with pump operators |
US11016973B2 (en) | 2016-11-29 | 2021-05-25 | Sap Se | Query plan execution engine |
US10733184B2 (en) | 2016-11-29 | 2020-08-04 | Sap Se | Query planning and execution with source and sink operators |
US10402403B2 (en) | 2016-12-15 | 2019-09-03 | Microsoft Technology Licensing, Llc | Utilization of probabilistic characteristics for reduction of graph database traversals |
US10445361B2 (en) | 2016-12-15 | 2019-10-15 | Microsoft Technology Licensing, Llc | Caching of subgraphs and integration of cached subgraphs into graph query results |
US10409813B2 (en) * | 2017-01-24 | 2019-09-10 | International Business Machines Corporation | Imputing data for temporal data store joins |
US10671625B2 (en) | 2017-01-26 | 2020-06-02 | Sap Se | Processing a query primitive call on a value identifier set |
US10776353B2 (en) | 2017-01-26 | 2020-09-15 | Sap Se | Application programming interface for database access |
US10860579B2 (en) * | 2017-01-30 | 2020-12-08 | Sap Se | Query planning and execution with reusable memory stack |
US10445321B2 (en) | 2017-02-21 | 2019-10-15 | Microsoft Technology Licensing, Llc | Multi-tenant distribution of graph database caches |
US20180260190A1 (en) * | 2017-03-10 | 2018-09-13 | Microsoft Technology Licensing, Llc | Split and merge graphs |
US10592557B2 (en) | 2017-03-31 | 2020-03-17 | Microsoft Technology Licensing, Llc | Phantom results in graph queries |
US10445319B2 (en) * | 2017-05-10 | 2019-10-15 | Oracle International Corporation | Defining subgraphs declaratively with vertex and edge filters |
US11055352B1 (en) * | 2017-06-08 | 2021-07-06 | Amazon Technologies, Inc. | Engine independent query plan optimization |
CN107239665B (zh) * | 2017-06-09 | 2020-03-10 | 京东方科技集团股份有限公司 | 医疗信息查询系统及方法 |
US10671671B2 (en) | 2017-06-09 | 2020-06-02 | Microsoft Technology Licensing, Llc | Supporting tuples in log-based representations of graph databases |
US10445370B2 (en) | 2017-06-09 | 2019-10-15 | Microsoft Technology Licensing, Llc | Compound indexes for graph databases |
US10425380B2 (en) | 2017-06-22 | 2019-09-24 | BitSight Technologies, Inc. | Methods for mapping IP addresses and domains to organizations using user activity data |
US10628492B2 (en) | 2017-07-20 | 2020-04-21 | Microsoft Technology Licensing, Llc | Distributed graph database writes |
US10628217B1 (en) | 2017-09-27 | 2020-04-21 | Amazon Technologies, Inc. | Transformation specification format for multiple execution engines |
EP3462339A1 (en) * | 2017-09-28 | 2019-04-03 | Siemens Aktiengesellschaft | Method and message handler for processing a query |
US10783143B2 (en) * | 2017-10-24 | 2020-09-22 | Oracle International Corporation | Computing columnar information during join enumeration |
US11256695B1 (en) | 2017-11-22 | 2022-02-22 | Amazon Technologies, Inc. | Hybrid query execution engine using transaction and analytical engines |
WO2019161229A1 (en) | 2018-02-15 | 2019-08-22 | DMAI, Inc. | System and method for reconstructing unoccupied 3d space |
WO2019161207A1 (en) * | 2018-02-15 | 2019-08-22 | DMAI, Inc. | System and method for conversational agent via adaptive caching of dialogue tree |
US10257219B1 (en) | 2018-03-12 | 2019-04-09 | BitSight Technologies, Inc. | Correlated risk in cybersecurity |
US11138230B2 (en) * | 2018-03-26 | 2021-10-05 | Mcafee, Llc | Methods, apparatus, and systems to aggregate partitioned computer database data |
US10983997B2 (en) * | 2018-03-28 | 2021-04-20 | Microsoft Technology Licensing, Llc | Path query evaluation in graph databases |
EP3550444B1 (en) | 2018-04-02 | 2023-12-27 | Thoughtspot Inc. | Query generation based on a logical data model |
US10812520B2 (en) | 2018-04-17 | 2020-10-20 | BitSight Technologies, Inc. | Systems and methods for external detection of misconfigured systems |
US10885117B2 (en) * | 2018-04-24 | 2021-01-05 | Trovares, Inc. | Graph search optimization system based on derived constraint techniques |
US10585720B1 (en) * | 2018-06-01 | 2020-03-10 | Intuit Inc. | Method and system for executing application programming interface (API) requests based on union relationships between objects |
US10956132B1 (en) | 2018-06-11 | 2021-03-23 | Amazon Technologies, Inc. | Unified code and data management for model development |
US11275485B2 (en) | 2018-06-15 | 2022-03-15 | Sap Se | Data processing pipeline engine |
US10949219B2 (en) | 2018-06-15 | 2021-03-16 | Sap Se | Containerized runtime environments |
US10866831B2 (en) | 2018-06-15 | 2020-12-15 | Sap Se | Distributed execution of data processing pipelines |
US10733034B2 (en) | 2018-06-15 | 2020-08-04 | Sap Se | Trace messaging for distributed execution of data processing pipelines |
JP7211255B2 (ja) * | 2018-08-31 | 2023-01-24 | 富士通株式会社 | 検索処理プログラム、検索処理方法及び情報処理装置 |
WO2020055910A1 (en) | 2018-09-10 | 2020-03-19 | Drisk, Inc. | Systems and methods for graph-based ai training |
US11657082B2 (en) | 2018-10-08 | 2023-05-23 | Google Llc | Systems and methods for displaying media files |
US11226963B2 (en) * | 2018-10-11 | 2022-01-18 | Varada Ltd. | Method and system for executing queries on indexed views |
US10942970B2 (en) * | 2018-10-12 | 2021-03-09 | Oracle International Corporation | Reachability graph index for query processing |
US11200323B2 (en) | 2018-10-17 | 2021-12-14 | BitSight Technologies, Inc. | Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios |
US10521583B1 (en) | 2018-10-25 | 2019-12-31 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
GB2583900A (en) * | 2019-04-18 | 2020-11-18 | Data Chemist Ltd | Querying a graph database |
US11928114B2 (en) | 2019-04-23 | 2024-03-12 | Thoughtspot, Inc. | Query generation based on a logical data model with one-to-one joins |
US11461345B2 (en) * | 2019-05-31 | 2022-10-04 | Microsoft Technology Licensing, Llc | Providing access to state information associated with operators in a data processing system |
US12008456B2 (en) * | 2019-06-28 | 2024-06-11 | Intel Corporation | Methods, apparatus, systems and articles of manufacture for providing query selection systems |
US10726136B1 (en) | 2019-07-17 | 2020-07-28 | BitSight Technologies, Inc. | Systems and methods for generating security improvement plans for entities |
US11567995B2 (en) * | 2019-07-26 | 2023-01-31 | Microsoft Technology Licensing, Llc | Branch threading in graph databases |
US11586620B2 (en) * | 2019-07-29 | 2023-02-21 | Thoughtspot, Inc. | Object scriptability |
US11409744B2 (en) * | 2019-08-01 | 2022-08-09 | Thoughtspot, Inc. | Query generation based on merger of subqueries |
US11956265B2 (en) | 2019-08-23 | 2024-04-09 | BitSight Technologies, Inc. | Systems and methods for inferring entity relationships via network communications of users or user devices |
US11216455B2 (en) | 2019-08-24 | 2022-01-04 | International Business Machines Corporation | Supporting synergistic and retrofittable graph queries inside a relational database |
US11599813B1 (en) | 2019-09-26 | 2023-03-07 | Amazon Technologies, Inc. | Interactive workflow generation for machine learning lifecycle management |
US10848382B1 (en) | 2019-09-26 | 2020-11-24 | BitSight Technologies, Inc. | Systems and methods for network asset discovery and association thereof with entities |
US11113267B2 (en) * | 2019-09-30 | 2021-09-07 | Microsoft Technology Licensing, Llc | Enforcing path consistency in graph database path query evaluation |
US11032244B2 (en) | 2019-09-30 | 2021-06-08 | BitSight Technologies, Inc. | Systems and methods for determining asset importance in security risk management |
US11475065B2 (en) * | 2019-10-29 | 2022-10-18 | Neo4J Sweden Ab | Pre-emptive graph search for guided natural language interactions with connected data systems |
US11169979B2 (en) * | 2019-12-31 | 2021-11-09 | Intuit, Inc. | Database-documentation propagation via temporal log backtracking |
US11526513B2 (en) * | 2020-01-07 | 2022-12-13 | Sap Se | SQL interface for embedded graph subqueries |
CN111259205B (zh) | 2020-01-15 | 2023-10-20 | 北京百度网讯科技有限公司 | 一种图数据库遍历方法、装置、设备及存储介质 |
US10791140B1 (en) | 2020-01-29 | 2020-09-29 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity state of entities based on computer network characterization |
US10893067B1 (en) | 2020-01-31 | 2021-01-12 | BitSight Technologies, Inc. | Systems and methods for rapidly generating security ratings |
US10764298B1 (en) | 2020-02-26 | 2020-09-01 | BitSight Technologies, Inc. | Systems and methods for improving a security profile of an entity based on peer security profiles |
US11580102B2 (en) * | 2020-04-02 | 2023-02-14 | Ocient Holdings LLC | Implementing linear algebra functions via decentralized execution of query operator flows |
US11734350B2 (en) | 2020-04-29 | 2023-08-22 | Paypal, Inc. | Statistics-aware sub-graph query engine |
US11232074B2 (en) | 2020-05-19 | 2022-01-25 | EMC IP Holding Company LLC | Systems and methods for searching deduplicated data |
US11461140B2 (en) * | 2020-05-19 | 2022-10-04 | EMC IP Holding Company LLC | Systems and methods for controller-worker architecture for searching a storage system |
US11023585B1 (en) | 2020-05-27 | 2021-06-01 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US11645279B2 (en) * | 2020-08-20 | 2023-05-09 | International Business Machines Corporation | Index selection for database query |
US11216456B1 (en) * | 2020-08-26 | 2022-01-04 | Oxford Semantic Technologies Limited | Complex query evaluation using sideways information passing |
US11122073B1 (en) | 2020-12-11 | 2021-09-14 | BitSight Technologies, Inc. | Systems and methods for cybersecurity risk mitigation and management |
US11928096B2 (en) * | 2020-12-16 | 2024-03-12 | Sap Se | Systems and methods using generic database search models |
US20220222298A1 (en) * | 2021-01-13 | 2022-07-14 | GraphSQL, Inc. | Graph query management using bloom filters and edge delta indexes |
US12079347B2 (en) | 2021-03-31 | 2024-09-03 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity risk in a work from home environment |
US11936517B2 (en) | 2022-03-31 | 2024-03-19 | Cisco Technology, Inc. | Embedding custom container images and FaaS for an extensibility platform |
US12009997B2 (en) | 2022-03-31 | 2024-06-11 | Cisco Technology, Inc. | Cell-based architecture for an extensibility platform |
US12111829B2 (en) * | 2022-04-29 | 2024-10-08 | Microsoft Technology Licensing, Llc. | Instruction level parallelism in a declarative graph query language |
US20240061883A1 (en) * | 2022-08-22 | 2024-02-22 | Oracle Financial Services Software Limited | Declarative modeling paradigm for graph-database |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006153A2 (en) * | 2003-07-07 | 2005-01-20 | Netezza Corporation | Sql code generation for heterogeneous environment |
US20080215543A1 (en) * | 2007-03-01 | 2008-09-04 | Microsoft Corporation | Graph-based search leveraging sentiment analysis of user comments |
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864842A (en) | 1995-10-23 | 1999-01-26 | Ncr Corporation | Optimization of SQL queries using hash star join operations |
US7617179B2 (en) * | 2002-06-29 | 2009-11-10 | Ianywhere Solutions, Inc. | System and methodology for cost-based subquery optimization using a left-deep tree join enumeration algorithm |
US7472112B2 (en) | 2003-06-23 | 2008-12-30 | Microsoft Corporation | Distributed query engine pipeline method and system |
US7337163B1 (en) | 2003-12-04 | 2008-02-26 | Hyperion Solutions Corporation | Multidimensional database query splitting |
US7689524B2 (en) * | 2006-09-28 | 2010-03-30 | Microsoft Corporation | Dynamic environment evaluation and service adjustment based on multiple user profiles including data classification and information sharing with authorized other users |
US7870087B2 (en) | 2006-11-02 | 2011-01-11 | D-Wave Systems Inc. | Processing relational database problems using analog processors |
GB2449501A (en) | 2007-05-25 | 2008-11-26 | Univ Sheffield | Searching method and system |
US7974967B2 (en) | 2008-04-15 | 2011-07-05 | Sap Ag | Hybrid database system using runtime reconfigurable hardware |
US20130173662A1 (en) * | 2012-01-03 | 2013-07-04 | International Business Machines Corporation | Dependency based prioritization of sub-queries and placeholder resolution |
-
2012
- 2012-12-14 US US13/714,787 patent/US9053210B2/en active Active
-
2013
- 2013-12-14 CN CN201380065559.6A patent/CN105210058A/zh active Pending
- 2013-12-14 EP EP13818585.5A patent/EP2932412A2/en not_active Withdrawn
- 2013-12-14 WO PCT/US2013/075211 patent/WO2014093951A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006153A2 (en) * | 2003-07-07 | 2005-01-20 | Netezza Corporation | Sql code generation for heterogeneous environment |
US20080215543A1 (en) * | 2007-03-01 | 2008-09-04 | Microsoft Corporation | Graph-based search leveraging sentiment analysis of user comments |
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
Non-Patent Citations (2)
Title |
---|
SHERIF SAKR 等: "G-SPARQL: A Hybrid Engine for Querying Large Attributed Graphs", 《CIKM’12 PROCEEDING OF THE 21ST ACM INTERNATIONAL CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT》 * |
SHERIF SAKR等: "G-SPARQL: A Hybrid Engine for Querying Large Attributed Graphs", 《HTTP://RESEARCH.MICROSOFT.COM/APPS/PUBS/DEFAULT.ASPX?ID=157417,RETRIEVED FROM THE INTERNET:URL:HTTP://RESEARCH.MICROSOFT.COM/PUBS/157417/GSPARQL.PDF》 * |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11876699B2 (en) | 2015-12-23 | 2024-01-16 | Apstra, Inc. | Verifying service status |
CN109791544A (zh) * | 2016-09-30 | 2019-05-21 | 微软技术许可有限责任公司 | 对跨子图的图查询的查询时分析 |
US11567994B2 (en) | 2017-01-24 | 2023-01-31 | Apstra, Inc. | Configuration, telemetry, and analytics of a computer infrastructure using a graph model |
CN110383765B (zh) * | 2017-01-24 | 2023-04-04 | 艾普斯卓公司 | 使用图形模型的计算机基础结构的配置、遥测和分析 |
CN110383765A (zh) * | 2017-01-24 | 2019-10-25 | 艾普斯卓公司 | 使用图形模型的计算机基础结构的配置、遥测和分析 |
US11748506B2 (en) | 2017-02-27 | 2023-09-05 | Microsoft Technology Licensing, Llc | Access controlled graph query spanning |
CN110574017A (zh) * | 2017-04-21 | 2019-12-13 | 微软技术许可有限责任公司 | 跨多个图的查询执行 |
US11874829B2 (en) | 2017-04-21 | 2024-01-16 | Microsoft Technology Licensing, Llc | Query execution across multiple graphs |
CN107291807A (zh) * | 2017-05-16 | 2017-10-24 | 中国科学院计算机网络信息中心 | 一种基于图遍历的sparql查询优化方法 |
CN107291807B (zh) * | 2017-05-16 | 2020-10-16 | 中国科学院计算机网络信息中心 | 一种基于图遍历的sparql查询优化方法 |
CN107273422A (zh) * | 2017-05-17 | 2017-10-20 | 南京中孚信息技术有限公司 | 一种为关系型数据库扩展图计算功能的系统 |
CN108595255B (zh) * | 2018-04-13 | 2022-01-21 | 武汉理工大学 | 地理分布式云中基于最短路径算法的工作流任务调度方法 |
CN108595255A (zh) * | 2018-04-13 | 2018-09-28 | 武汉理工大学 | 地理分布式云中基于最短路径算法的工作流任务调度方法 |
CN112753029A (zh) * | 2018-09-20 | 2021-05-04 | 华为技术有限公司 | 用于基于图的查询分析的系统和方法 |
CN112805696A (zh) * | 2018-10-06 | 2021-05-14 | 微软技术许可有限责任公司 | Sql服务器中的多步骤查询执行 |
WO2020135050A1 (zh) * | 2018-12-29 | 2020-07-02 | 颖投信息科技(上海)有限公司 | 知识图谱系统及其图服务器 |
CN109670089A (zh) * | 2018-12-29 | 2019-04-23 | 颖投信息科技(上海)有限公司 | 知识图谱系统及其图服务器 |
CN111581237B (zh) * | 2019-02-15 | 2023-06-09 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置、系统及电子设备 |
CN111581237A (zh) * | 2019-02-15 | 2020-08-25 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置、系统及电子设备 |
CN113424173A (zh) * | 2019-02-15 | 2021-09-21 | 微软技术许可有限责任公司 | 用于有效图分析的物化图视图 |
US11444833B1 (en) | 2019-04-24 | 2022-09-13 | Juniper Networks, Inc. | Business policy management for self-driving network |
US11973645B1 (en) | 2019-04-24 | 2024-04-30 | Juniper Networks, Inc. | Business policy management for self-driving network |
US11658872B1 (en) | 2019-04-24 | 2023-05-23 | Juniper Networks, Inc. | Business policy management for self-driving network |
CN114127705B (zh) * | 2019-05-13 | 2023-05-23 | 莱蒂斯有限公司 | 用于解析图形数据库查询的方法、系统和介质 |
CN114127705A (zh) * | 2019-05-13 | 2022-03-01 | 莱蒂斯有限公司 | 用于解析图形数据库查询的方法、系统和介质 |
CN111339334A (zh) * | 2020-02-11 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 异构图数据库的数据查询方法及其系统 |
CN111339334B (zh) * | 2020-02-11 | 2023-04-07 | 支付宝(杭州)信息技术有限公司 | 异构图数据库的数据查询方法及其系统 |
CN111538854B (zh) * | 2020-04-27 | 2023-08-08 | 北京百度网讯科技有限公司 | 搜索方法及装置 |
CN111538854A (zh) * | 2020-04-27 | 2020-08-14 | 北京百度网讯科技有限公司 | 搜索方法及装置 |
CN112035581A (zh) * | 2020-08-21 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 基于模型的任务处理方法、装置、设备和介质 |
CN112035581B (zh) * | 2020-08-21 | 2024-06-11 | 北京字节跳动网络技术有限公司 | 基于模型的任务处理方法、装置、设备和介质 |
CN112256927B (zh) * | 2020-10-21 | 2024-06-04 | 网易(杭州)网络有限公司 | 基于属性图的知识图谱数据处理方法和装置 |
CN112256927A (zh) * | 2020-10-21 | 2021-01-22 | 网易(杭州)网络有限公司 | 基于属性图的知识图谱数据处理方法和装置 |
CN113946600A (zh) * | 2021-10-21 | 2022-01-18 | 北京人大金仓信息技术股份有限公司 | 数据查询方法、装置、计算机设备和介质 |
CN114564571A (zh) * | 2022-04-21 | 2022-05-31 | 支付宝(杭州)信息技术有限公司 | 一种图数据查询方法和系统 |
WO2024055153A1 (en) * | 2022-09-13 | 2024-03-21 | Paypal, Inc. | Dual write and dual read access to graph databases |
CN116383454A (zh) * | 2023-04-10 | 2023-07-04 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
CN116383454B (zh) * | 2023-04-10 | 2024-01-30 | 星环信息科技(上海)股份有限公司 | 图数据库的数据查询方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2014093951A3 (en) | 2014-09-18 |
EP2932412A2 (en) | 2015-10-21 |
US20140172914A1 (en) | 2014-06-19 |
US9053210B2 (en) | 2015-06-09 |
WO2014093951A2 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105210058A (zh) | 使用多个引擎来进行图查询处理 | |
Wylot et al. | RDF data storage and query processing schemes: A survey | |
Dave et al. | Graphframes: an integrated api for mixing graph and relational queries | |
CN105335403B (zh) | 数据库访问方法及装置、数据库系统 | |
US8429108B2 (en) | Fast computation of compact poset isomorphism certificates using position weights | |
Wu et al. | A multilevel index model to expedite web service discovery and composition in large-scale service repositories | |
US11449477B2 (en) | Systems and methods for context-independent database search paths | |
CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
CN101606154A (zh) | 允许元素类型的类型流的查询模式 | |
CN104050202A (zh) | 用于搜索数据库的方法和装置 | |
CN107491476B (zh) | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 | |
Sarma et al. | Uncertainty in data integration and dataspace support platforms | |
CN112989145A (zh) | 查询语句生成方法、装置、系统及计算机可读存储介质 | |
Gomathi et al. | A novel adaptive cuckoo search for optimal query plan generation | |
CN116795859A (zh) | 数据分析方法、装置、计算机设备和存储介质 | |
CN111159427B (zh) | 一种基于众包的知识图谱构建方法及系统 | |
Iglesias-Molina et al. | An ontological approach for representing declarative mapping languages | |
CN115237937A (zh) | 一种基于星际文件系统的分布式协同查询处理系统 | |
Barret et al. | Exploring heterogeneous data graphs through their entity paths | |
Fernández et al. | Management of big semantic data | |
Angelis et al. | Generating and exploiting semantically enriched, integrated, linked and open museum data | |
Raamkumar et al. | Designing a linked data migrational framework for singapore government datasets | |
Litvinov et al. | Paradigm of controls concept for global information systems | |
Szárnyas | Query, analysis, and benchmarking techniques for evolving property graphs of software systems | |
Kaplan | A semantic graph query language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151230 |
|
WD01 | Invention patent application deemed withdrawn after publication |