一种复杂空间RDF查询并行处理方法及装置

文档序号:32402920发布日期:2022-12-02 19:37阅读:70来源:国知局
一种复杂空间RDF查询并行处理方法及装置
一种复杂空间rdf查询并行处理方法及装置
技术领域
1.本发明涉及数据查询领域,具体而言,涉及一种复杂空间rdf查询并行处理方法及装置。


背景技术:

2.现有的大部分空间rdf查询方法是基于串行的,个别支持并行rdf查询方法是基于数据空间索引而实现的,并未考虑到空间rdf查询的复杂性(查询中含有众多三元组查询模式,以及多个空间过滤条件),在实际使用中对于复杂空间rdf查询效率不太理想,而对于大规模知识库查询而言,提高复杂空间rdf查询效率是必要的,因此研究一种支持复杂空间rdf的并行查询方法对于大规模知识库的相关研究具有重要意义。


技术实现要素:

3.本发明解决的问题是如何解决在大规模知识库中复杂空间rdf查询效率较低的问题。
4.为解决上述问题,本发明提供本发明提供一种复杂空间rdf查询并行处理方法,包括如下步骤:获取空间rdf数据和查询数据;根据第一算法,将所述查询数据分解为可并行执行的带空间过滤的查询计划图;根据所述空间rdf数据和所述查询计划图,进行并行查询处理。
5.可选地,所述获取空间rdf数据,具体包括:获取初始rdf数据;根据所述初始rdf数据建立多个二维存储表,且每个所述二维存储表封装为一个弹性分布式数据集;获取两个数据存储结构,所述数据存储结构用于存储所述弹性分布式数据集中的空间对象,且每个所述数据储存结构封装为一个空间弹性分布式数据集;根据所述空间弹性分布式数据集获得所述空间rdf数据。
6.可选地,所述根据第一算法,将所述查询数据分解为可并行执行的带空间过滤的查询计划图,具体包括:将所述查询数据转化为变量图;根据第二算法,形成满足特定条件的查询计划图;根据所述满足特定条件的查询计划图和第五算法,形成可并行执行的带空间过滤的查询计划图。
7.可选地,所述根据第二算法,形成满足特定条件的查询计划图,具体包括:获取特定队列;根据所述特定队列与第三算法,形成最终查询计划集合;根据所述最终查询计划集合,筛选出所述满足特定条件的查询计划图。
8.可选地,所述根据所述特定队列与第三算法,形成最终查询计划集合,具体包括:获取原始查询计划集合;将所述变量图加入所述特定队列中,判断所述变量图的规模大小;当所述变量图的规模等于1时,根据第四算法,得到当前查询计划图,将所述当前查询查询图加入到所述原始查询计划集合中,形成最终查询计划集合;当所述变量图的规模大于1时,将所述原始查询计划集合初始化,并将所述变量图分解为多个子图,根据所述子图的内容对所述变量图进行缩减,得到当前变量图,将所述当前变量图加入所述特定队列中,判断当前所述变量图的规模,若所述当前变量图的规模大于1,将所述当前变量图分解为多个第一子图,根据所述第一子图的内容对所述当前变量图进行缩减,直至所述当前变量图的规模等于1。
9.可选地,所述当所述变量图的规模等于1时,根据第四算法,得到当前查询计划图,具体包括:判断所述特定队列是否为第一个图;若所述特定队列是第一个图,根据第一运算符,转换所述特定队列中所有数据,得到所述当前查询计划图;若当所述特定队列不是第一个图,根据第二运算符,转换当前所述特定队列中所有数据,得到所述当前查询计划图。
10.可选地,所述根据所述满足特定条件的查询计划图和第五算法,形成可并行执行的带空间过滤的查询计划图,具体包括:获取空间过滤符;根据所述满足特定条件的查询计划图,将所述空间过滤操作符添加到所述满足特定条件的查询计划图中;当所述空间过滤操作符为范围过滤操作符时,通过范围过滤方式形成可并行执行的带空间过滤的查询计划图;当所述空间过滤操作符为距离过滤操作符时,通过距离过滤方式形成可并行执行的带空间过滤的查询计划图。
11.可选地,所述根据所述空间rdf数据和所述查询计划图,进行并行查询处理,具体包括:将所述带空间过滤的查询计划图进行任务分区;若所述任务中涉及空间过滤,对所述任务涉及的所述弹性分布式数据集进行所述空间过滤,生成新的所述弹性分布式数据集;对若干个所述新的弹性分布式数据集进行并行表连接操作,至完成对所有所述任务的查询。
12.本发明所述的复杂空间rdf查询并行处理方法相对于现有技术的优势在于:本发明提供一种复杂空间rdf查询并行处理方法,解决了在大规模知识库中复杂空间rdf查询效率较低的问题,实现了对复杂空间rdf数据的并行查询处理,效率高。
13.为解决上述技术问题,本发明还提供一种复杂空间rdf查询并行处理装置,包括:获取单元,所述获取单元用于获取空间rdf数据和查询数据;分解单元,所述分解单元用于根据第一算法,将所述查询数据分解为可并行执行
的带空间过滤的查询计划图;查询单元,所述查询单元用于根据所述空间rdf数据和所述查询计划图,进行并行查询处理。
14.本发明所述的复杂空间rdf查询并行处理装置与复杂空间rdf查询并行处理方法相对于现有技术的优势相同,在此不再赘述。
15.为解决上述技术问题,本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述复杂空间rdf查询并行处理方法的步骤。
16.本发明所述的计算机设备与所述复杂空间rdf查询并行处理方法 相对于现有技术的优势相同,在此不再赘述。
附图说明
17.图1为本发明实施例中复杂空间rdf查询并行处理方法的应用环境图;图2为本发明实施例中复杂空间rdf查询并行处理方法的流程图;图3为本发明实施例中geospark数据管理图;图4为本发明实施例中空间rdf查询并行处理方法中表t1和t9的距离空间过滤示意图;图5为本发明实施例中复杂空间rdf查询并行处理装置结构图;图6为本发明实施例中计算机设备的内部结构图。
具体实施方式
18.下面将结合附图对本技术实施例中的技术方案进行清楚、详尽地描述。
19.在本技术实施例的描述中,术语“一些实施例”的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
20.图1为本技术实施例中复杂空间rdf查询并行处理方法的应用环境图。参照图1,该复杂空间rdf查询并行处理方法应用于复杂空间rdf查询并行处理系统。该复杂空间rdf查询并行处理系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
21.如图2所示,在一个实施例中,提供了一种复杂空间rdf查询并行处理方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该复杂空间rdf查询并行处理方法具体包括如下步骤:步骤s1,获取空间rdf数据和查询数据;步骤s2,根据第一算法,将所述查询数据分解为可并行执行的带空间过滤的查询计划图;步骤s3,根据所述空间rdf数据和所述查询计划图,进行并行查询处理;在一些优选的实施例中,空间rdf数据是由空间rdf组成的图结构,其中空间rdf表
示为三元组。
22.其中,主语subject(sub) 或者宾语object(obj) 含有空间信息;资源描述框架rdf是一个使用可扩展标记语言语法来表示的资料模型,用来描述网络资源的特性,及资源与资源之间的关系。
23.在一些优选的实施例中,查询数据为查询语句,具体查询语句如:其中,空间变量是与空间信息相关联的变量,如在一个查询中存在, 两个三元组查询模式时,变量a与空间点存在关联,则称a其为空间变量;本实施例中,空间变量在图中以加粗及大写形式表示以与非空间变量区别,如空间变量a与空间信息相关联,则以a表示。
24.本实施例提供一种复杂空间rdf查询并行处理方法,通用过将查询数据分解为可并行执行的带空间过滤的查询计划图,再通过查询计划图和空间red数据进行并行查询处理,很大程度的提高了在大规模知识库中复杂空间rdf查询效率。
25.一些实施例中,步骤s1中,获取空间rdf数据,具体包括:步骤s11,获取初始rdf数据;步骤s12,根据所述初始rdf数据建立多个二维存储表,且每个所述二维存储表封装为一个弹性分布式数据集;步骤s13,获取两个数据存储结构,所述数据存储结构用于存储所述弹性分布式数据集中的空间对象,且每个所述数据储存结构封装为一个空间弹性分布式数据集;步骤s14,根据所述空间弹性分布式数据集获得所述空间rdf数据。
26.在一些优选的实施例中,如图3所示,geospark是一个用于处理大规模空间数据的开源内存集群,通过储存系统获取若干空间rdf数据,根据不同谓词predicate建立多个二
维存储表,每个表对应一个弹性分布式数rdd,其中每个表分别用两棵r树存储subject(sub)和object(obj)对象中的空间对象,每个r树对应一个空间弹性分布式数据集srdd。
27.其中,将空间rdf数据存储到存储系统hdfs/hbase中,geospark组织管理存储的数据以便于后续查询并行执行。
28.一些实施例中,步骤s2中,根据第一算法,将所述查询数据分解为可并行执行的带空间过滤的查询计划图,具体包括:步骤s21,将所述查询数据转化为变量图;步骤s22,根据第二算法,形成满足特定条件的查询计划图;步骤s23,根据所述满足特定条件的查询计划图和第五算法,形成可并行执行的带空间过滤的查询计划图。
29.在一些优选的实施例中,查询数据为查询语句,根据查询语句生成对应的变量图,执行现有的第二算法,生成对应的查询计划图。
30.一些实施例中,步骤s22中,根据第二算法,形成满足特定条件的查询计划图,具体包括:步骤s221,获取特定队列;步骤s222,根据所述特定队列与第三算法,形成最终查询计划集合;步骤s223,根据所述最终查询计划集合,筛选出所述满足特定条件的查询计划图。
31.其中,在一些优选的实施例中,第二算法为优化版团聚算法cliquesquare-msc,cliquesquare-msc是配备了基于图和团的独特优化算法,能够基于n元相等联接生成高度可并行化的平面查询计划,使并行查询处理更高效。
32.在一些优选的实施例中,步骤s222中,根据所述最终查询计划集合,筛选出所述满足特定条件的查询计划图,具体包括:在最终查询计划图集合qp中筛选出满足最小集覆盖及简单覆盖的查询计划图;另一些实施例中,步骤s222中,根据所述特定队列与第三算法,形成最终查询计划集合,具体包括:步骤s2221,获取原始查询计划集合;步骤s2222,将所述变量图加入所述特定队列中,判断所述变量图的规模大小;步骤s2223,当所述变量图的规模等于1时,根据第四算法,得到当前查询计划图,将所述当前查询查询图加入到所述原始查询计划集合中,形成最终查询计划集合;步骤s2224,当所述变量图的规模大于1时,将所述原始查询计划集合初始化,并将所述变量图分解为多个子图,根据所述子图的内容对所述变量图进行缩减,得到当前变量图,将所述当前变量图加入所述特定队列中,判断当前所述变量图的规模,若所述当前变量图的规模大于1,将所述当前变量图分解为多个第一子图,根据所述第一子图的内容对所述当前变量图进行缩减,直至所述当前变量图的规模等于1。
33.其中,在一些优选的实施例中,第三算法为团聚算法cliquesquare;第四算法为创建查询计划图算法createqueryplans,createqueryplans算法是根据队列内容生成对应的查询计划图,根据判断特定队列,最后得到查询计划图,基于这两种算法,使并行查询处理高效。
34.一些优选的实施例中,步骤s2223中,当所述变量图的规模等于1时,根据第四算
法,得到当前查询计划图,具体包括:步骤a1,判断所述特定队列是否为第一个图;步骤a2,若所述特定队列是第一个图,根据第一运算符,转换所述特定队列中所有数据,得到所述当前查询计划图;步骤a3,若当所述特定队列不是第一个图,根据第二运算符,转换当前所述特定队列中所有数据,得到所述当前查询计划图。
35.在一些优选的实施例中,步骤sa2中,若所述特定队列是第一个图,根据第一运算符,转换所述特定队列中所有数据,得到所述当前查询计划图,具体包括:如果特定队列是第一个图,则使用数学match运算符,将特定队列中所有三元组转换,得到所述当前查询计划图。
36.在一些优选的实施例中,步骤sa3中,若当所述特定队列不是第一个图,根据第二运算符,转换当前所述特定队列中所有数据,得到所述当前查询计划图,具体包括:如果特定队列不是第一个图,则使用连接join运算符,将当前图中的每个节点与前一个图出现过该节点的团连接起来,重复此步骤,得到查询计划图;其中,将多个三元组根据特定要求组成一个个团。
37.另一些实施例中,步骤s22中,根据所述满足特定条件的查询计划图和第五算法,形成可并行执行的带空间过滤的查询计划图,具体包括:步骤s221,获取空间过滤符;步骤s222,根据所述满足特定条件的查询计划图,将所述空间过滤操作符添加到所述满足特定条件的查询计划图中;步骤s223,当所述空间过滤操作符为范围过滤操作符时,通过范围过滤方式形成可并行执行的带空间过滤的查询计划图;步骤s224,当所述空间过滤操作符为距离过滤操作符时,通过距离过滤方式形成可并行执行的带空间过滤的查询计划图。
38.其中,一些优选的实施例中,第五算法为空间过滤算法spatialfiltertask,将空间过滤操作符添加到查询计划图中,连接对应的实体,形成包含空间过滤操作符的查询计划图并返回。
39.一些优选的实施例中,步骤s223中,当所述空间过滤操作符为范围过滤操作符时,通过范围过滤方式形成可并行执行的带空间过滤的查询计划图,具体包括:若为范围过滤,则连接至图中,并连接subject(sub)和object(obj)对应的match运算符,其中subject(sub)和object(obj)需为空间变量,将查询语句中的空间过滤操作符添加至当前图中,得到可并行执行的带空间过滤的查询计划图。
40.在一些优选的实施例中,步骤s224中,当所述空间过滤操作符为距离过滤操作符时,通过距离过滤方式形成可并行执行的带空间过滤的查询计划图,具体包括:若为距离过滤,则连接至图中,并连接subject(sub)对应的match运算符,其中subject(sub)为空间变量,得到可并行执行的带空间过滤的查询计划图。
41.一些实施例中,步骤s3中,根据所述空间rdf数据和所述查询计划图,进行并行查询处理,具体包括:步骤s31,将所述带空间过滤的查询计划图进行任务分区;步骤s32,若所述任务中涉及空间过滤,对所述任务涉及的所述弹性分布式数据集进行所述空间过滤,生成新的所述弹性分布式数据集;步骤s33,对若干个所述新的弹性分布式数据集进行并行表连接操作,至完成对所有所述任务的查询。
42.一些优选的实施例中,步骤s32中,若所述任务中涉及空间过滤,对所述任务涉及的所述弹性分布式数据集进行所述空间过滤,生成新的所述弹性分布式数据集,具体包括:如果任务中涉及空间过滤,对任务涉及的二维存储表rdd和所对应的srdd进行空间过滤(t1表和t9表为例,如图4),过滤后生成新的二维存储表rdd以及新的srdd,其中,a和l表示带空间信息的变量,b和k表示不带空间信息的变量;一些优选的实施中,步骤s33中,对若干个所述新的弹性分布式数据集进行并行表连接操作,至完成对所有所述任务的查询,具体包括:对新的二维存储表rdd进行表连接操作,输出表连接结果,同时执行下一步并行连接操作,当执行完查询计划图的顶层节点任务后,返回查询结果。
43.其中,用特定格式的查询语句对空间rdf数据图进行查询,则称为空间rdf查询,形如:其中,为需要选择的实体,表示方式形如var(a)等;为形式的spo三元组查询模式,其中subject(sub)、property、object(obj)都可以为常数或变量;condition为过滤条件,当condition是针对查询中的空间变量进行空间过滤时,考虑以下两种空间过滤方式:范围过滤,空间变量a对应实例的空间信息在范围range内,或与范围range相交,即认为该实例符合范围查询条件;距离过滤,空间变量a对应实例的空间信息与空间变量b对应实例的空间信息 距离范围小于等于给定数值distance,即则认为空间变量a对应实例和空间变量b对应实例,符合空间距离条件。
44.本实施例提供一种复杂空间rdf查询并行处理方法,通用调用第一算法,即支持空间数据的优化版团聚算法geocliquesquare-msc,将查询语句生成对应变量图,先执行现有的优化版团聚算法cliquesquare-msc,生成对应的查询计划图,并执行空间过滤算法
spatialfiltertask,生成可并行执行的带空间过滤的查询计划图,geospark根据查询计划执行复杂空间rdf查询,获得查询结果,很大程度上解决了现有技术中大规模知识库中复杂空间rdf查询效率较低的问题。
45.如图5所示,在一个实施例中,提供复杂空间rdf查询并行处理装置,包括:获取单元510,所述获取单元510用于获取空间rdf数据和查询数据;分解单元520,所述分解单元520用于根据第一算法,将所述查询数据分解为可并行执行的带空间过滤的查询计划图;查询单元530,所述查询单元530用于根据所述空间rdf数据和所述查询计划图,进行并行查询处理。
46.本实施例中的获取单元510还用于获取初始rdf数据;根据所述初始rdf数据建立多个二维存储表,且每个所述二维存储表封装为一个弹性分布式数据集;获取两个数据存储结构,所述数据存储结构用于存储所述弹性分布式数据集中的空间对象,且每个所述数据储存结构封装为一个空间弹性分布式数据集;根据所述空间弹性分布式数据集获得所述空间rdf数据;本实施例中的分解单元520还用于将所述查询数据转化为变量图;根据第二算法,形成满足特定条件的查询计划图;根据所述满足特定条件的查询计划图和第五算法,形成可并行执行的带空间过滤的查询计划图;本实施例中的处理单元530还用于将所述带空间过滤的查询计划图进行任务分区;若所述任务中涉及空间过滤,对所述任务涉及的所述弹性分布式数据集进行所述空间过滤,生成新的所述弹性分布式数据集;对若干个所述新的弹性分布式数据集进行并行表连接操作,至完成对所有所述任务的查询。
47.本发明所述的复杂空间rdf查询并行处理装置与所述复杂空间rdf查询并行处理方法相对于现有技术的优势相同,在此不再赘述。
48.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述复杂空间rdf查询并行处理方法的步骤。
49.图6示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图6所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现复杂空间rdf查询并行处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行复杂空间rdf查询并行处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
50.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述复杂空间rdf查询并行处理方法 的步骤。
51.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取
存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
52.虽然本公开披露如上,但本公开的保护范围并非仅限于此。本领域技术人员在不脱离本公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1