一种跳跃式连接的优化路径查询方法、装置、设备及存储介质制造方法及图纸

技术编号:33156815 阅读:21 留言:0更新日期:2022-04-22 14:13
本发明专利技术涉及子图匹配技术领域,公开了一种跳跃式连接的优化路径查询方法、装置、设备及存储介质,即针对一个路径边数为n且边标签为的查询语句先获取对应的两个子查询语句:和并有k1+k2+1=n,然后根据两个子查询语句从目标数据图中查询得到对应的子查询匹配结果,最后对两子查询匹配结果中的边匹配结果进行跳跃式连接的边扩展,可以得到与所述查询语句对应的最终边匹配结果,进而可有效减少中间结果的产生及存储压力,加快计算,提高查询性能,同时保证最快情况下的最优性,便于实际应用和推广。便于实际应用和推广。便于实际应用和推广。

【技术实现步骤摘要】
一种跳跃式连接的优化路径查询方法、装置、设备及存储介质


[0001]本专利技术属于子图匹配
,具体地涉及一种跳跃式连接的优化路径查询方法、装置、设备及存储介质。

技术介绍

[0002]当前,有很多图系统被提出来用于高效地存储数据图和处理查询图,它们主要包括RDF(Resource

Description

Framework,即资源描述框架,是采用XML编写的一种网络资源描述模型)图系统,如Jena、Virtuoso、RDF4J和gStore等,以及属性图系统Neo4j、Graphflow和EmptyHeaded等,其中,一些系统查询语言支持变长路径查询操作,最常见是SPARQL和Cypher查询语言。
[0003]作为一个图系统来说,查询无外乎是一个重要的基本操作,并可以把所有的查询操作归纳为子图匹配,即查找数据图G中与查询图q同构的所有嵌入。子图匹配在学术界得到了广泛的应用。由于子图匹配的重要性,人们提出了各种算法。在数据库领域,可以将子图匹配算法分为两种类型,其中一类就是连接类型(即Join类型),现有的连接策略可以大致分为三种策略(当然也有不属于这三类的连接策略,因与本申请无关,不再介绍)。
[0004](1)第一种连接策略就是pair

wise join(以下简称为PJ),这种策略即是在数据库中常见的两列表连接策略(因与本申请无关,不再过多介绍),例如在属性图系统Neo4j中就是采用的这种策略。
[0005](2)第二种连接策略就是Binary join,这种策略即是通过求解一系列二进制连接来计算子图匹配,它首先将原始查询图分解为一组连接单元,这些单元的匹配可以根据预定义的连接顺序连接基本单元,最终得到结果。Binary join算法只是在连接单元和连接顺序上有所不同,其中连接单元比较典型的算法有StarJoin、TwinTwigJoin和CliqueJoin。StarJoin显而易见是用一个星型作为连接单元来分解查询图,首先定位查询图的顶点覆盖,每个覆盖的顶点和还没有使用过的邻居点自动形成一个星型,最终所得到的一组星型连接单元根据左深连接顺序得到所有结果。但是StarJoin存在一个很大的弊端,在一个度数为d的顶点上枚举k

star,它将花费的代价为O(dk),那么如果度数非常大的情况将会产生“star explosion”得到一张非常大的表。TwinTwigJoin对StarJoin进行了优化,它的连接单元是“TwinTwig”,TwinTwig是最多只能有两条边的星型结构,因此它对星型结构提出了约束,但是它和StarJoin一样遵循左深连接顺序。TwinTwigJoin在一定程度上阻碍了“star explosion”,但是它还是存在一定的弊端:执行时间很长,并且左深连接是一个次优连接计划。2016年CliqueJoin的提出很好地解决了这个问题,首先,在数据划分的时候采用三角划分策略,基于这个策略CliqueJoin可以采用“团”和“星型”作为连接单元,团的使用可以大大地缩短执行的时间。其次CliqueJoin加入了Bushy join计划连接分解得到的连接单元。
[0006](3)第三种连接策略是最坏情况下最优连接(Worst case optimal Join,简称WCOJ),其是一项关于数据库中连接操作的最新技术。给定若干表{R1,R2,...,R
n
},在它们之
上的多表连接所能得到结果的数量上限可以根据它们的连接所对应超图(hypergraph)的部分边覆盖(fractional edge cover)来确定。所谓超图H=(V(H),E(H)),就是图中每条边可以有多个端点,而不再是常用的图定义中每条边只有两个端点。显然,超图是常用的图定义的泛化,所以在超图上满足的性质在常用的图定义上也满足。而所谓超图上的部分边覆盖(fractional edge cover)就是一个函数f:E

R
+
,这个函数满足对于任意属于V(H)的v都有∑
e∈E:v∈e
f(e)≥1。对于任意部分边覆盖f,∑
e∈E
f(e)被称为部分边覆盖f的权重,记为w。所有部分边覆盖f的权重中最小的值称为部分边覆盖值(fractional edge cover number),记为w
*
。部分边覆盖值所对应的部分边覆盖记为f
*
。表{R1,R2,...,R
n
}上的任意一个多表连接可以对应到一个超图H。具体而言,在表{R1,R2,...,R
n
}中的每个表可以对应一个超图H中的边,而每个表中属性对应一个超图H中的点。然后,我们就可以有如下性质,表{R1,R2,...,R
n
}上的一个多表连接所能得到结果的数量|OUT|满足一下性质:
[0007][0008]式中,R
e
为超图H上边e所对应的表,|R
e
|是R
e
的大小,而f为一个部分边覆盖。分析时,常常假设任意一张表大小都是N,所以表{R1,R2,...,R
n
}上的一个多表连接所能得到结果的数量|OUT|上限为w
*
为超图H的部分边覆盖值。子图匹配查询也可以视为多表连接的一种特例。在子图匹配查询中,每条边都是一个只有两列的表,多条边的子图对应多个两列表连接。一个典型例子就是三角查询,在这个查询中假设每条边都在图上能匹配图上N条边的话,那么这个查询所能得到结果的数量|OUT|上限为N
1.5
。因为这个三角形部分边覆盖值是1.5,其所对应的部分边覆盖f
*
是将所有边都赋值0.5。这个结论是令人兴奋的,因为传统的多表连接都是将两张表转化成二表连接的组合,执行过程中会导致N3的结果数量。
[0009]但是对于现在的查询来说,存在查询过程中的中间结果太多,导致存储压力太大及处理性能降低的问题,如图1所示的一个极端案例,左侧为数据图G,右侧为基于查询图q而得到的一个路径边数为3且边标签为a的路径查询P3(a),基于现有的WCOJ算法,将扩展已连接子查询结果且通过与已连接子查询结果中至少一个顶点相邻的一个查询顶点做交集,即首先会枚举路径查询P2(a)(其路径边数为2且边标签为a)的所有结果,这个结果有1000001个,最后扩展最末一个点得到最后的结果数量为1000,如图2所示,前述查询过程可以看出路径查询P2(a)中的大多数结果在路径查询P3(a)中并没有被利用到,反而带来了巨大的内存消耗和计算时间代价。

技术实现思路

[0010]为了解决在子图匹配中现有路径查询方式所存在中间结果太多,导致存储压力太大及处理性能降低的问题,本专利技术目的在于提供一种跳跃式连接的优化路径查询方法、装置、计算机设备及计算机可读存储介质,可有效减少中间结果的产生及存储压力,加快计算,提高查询性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跳跃式连接的优化路径查询方法,其特征在于,包括:针对一个路径边数为n且边标签为的查询语句获取对应的第一子查询语句和第二子查询语句其中,n为大于或等于三的正整数,k1为正整数且表示所述第一子查询语句的路径边数,k2为正整数且表示所述第二子查询语句的路径边数,k1+k2+1=n,所述查询语句所述第一子查询语句和所述第二子查询语句的起始查询点分别只有一条出边,所述查询语句所述第一子查询语句和所述第二子查询语句的终止查询点分别只有一条入边,所述查询语句所述第一子查询语句和所述第二子查询语句的其余查询点分别只有一对入边和出边;根据所述第一子查询语句从目标数据图中查询得到第一子查询匹配结果,以及根据所述第二子查询语句从所述目标数据图中查询得到第二子查询匹配结果,其中,所述第一子查询匹配结果和所述第二子查询匹配结果分别包含有至少一个边匹配结果,所述边匹配结果的起点只有一条出边,所述边匹配结果的终点只有一条入边,所述边匹配结果的其它点分别只有一对入边和出边;从所述第一子查询匹配结果和所述第二子查询匹配结果中,选取一个子查询匹配结果,然后根据该子查询匹配结果中的所有边匹配结果的起点构建一个第一点集合,并对另一子查询匹配结果中的各个边匹配结果的终点进行如下边扩展:针对某个终点,在所述第一点集合中遍历搜索对应的所有扩展点,并在发现能搜索到某个拓展点时,通过扩展连接与所述某个终点对应的边匹配结果和与所述某个扩展点对应的边匹配结果,得到一个与所述查询语句对应的边匹配结果。2.如权利要求1所述的优化路径查询方法,其特征在于,当k1=k2时,所述第一子查询语句和所述第二子查询语句为相同的子查询语句,所述第一子查询匹配结果和所述第二子查询匹配结果为相同的子查询匹配结果;从所述第一子查询匹配结果和所述第二子查询匹配结果中,选取一个子查询匹配结果,包括:从所述第一子查询匹配结果和所述第二子查询匹配结果中,任意选取一个子查询匹配结果。3.如权利要求1所述的优化路径查询方法,其特征在于,当k1≠k2时,所述第一子查询语句和所述第二子查询语句为不同的子查询语句,所述第一子查询匹配结果和所述第二子查询匹配结果为不同的子查询匹配结果;从所述第一子查询匹配结果和所述第二子查询匹配结果中,选取一个子查询匹配结果,包括:从所述第一子查询匹配结果和所述第二子查询匹配结果中,选取边匹配结果总数较多的一个子查询匹配结果。4.如权利要求1所述的优化路径查询方法,其特征在于,针对所述第一子查询语句
或所述第二子查询语句若对应的路径边数为大于或等于三的正整数,则根据对应的子查询语句从目标数据图中查询得到对应的子查询匹配结果,包括:针对子查询语句获取对应的第一孙查询语句和第二孙查询语句其中,所述子查询语句为所述第一子查询语句或所述第二子查询语句k为k1或k2,k
11
为正整数且表示所述第一孙查询语句的路径边数,k
22
为正整数且表示所述第二孙查询语句的路径边数,k
11
+k
22
+1=k,所述第一孙查询语句和所述第二孙查询语句的起始查询点分别只有一条出边,所述第一孙查询语句和所述第二孙查询语句的终止查询点分别只有一条入边,所述第一孙查询语句和所述第二孙查询语句的其余查询点分别只有一对入边和出边;根据所述第一孙查询语句从目标数据图中查询得到第一孙查询匹配结果,以及根据所述第二孙查询语句从所述目标数据图中查询得到第二孙查询匹配结果,其中,所述第一孙查询匹配结果和所述第二孙查询匹配结果分别包含有至少一个边匹配结果,所述边匹配结果的起点只有一条出...

【专利技术属性】
技术研发人员:李艳彭鹏李文杰
申请(专利权)人:北京途普科技有限公司
类型:发明
国别省市:

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

1