基于接口实现分离的图任务中间结果存储方法及系统技术方案

技术编号:28709910 阅读:13 留言:0更新日期:2021-06-05 23:43
本发明专利技术提供了一种基于接口实现分离的图任务中间结果存储方法及系统,该方法包括:步骤S1:由服务器接受并解析客户端组合图任务请求中的查询任务与分析任务,发送给查询引擎执行;步骤S2:查询引擎确定中间结果使用的底层数据结构,执行查询任务,查询引擎将查询结果传递给分析引擎;步骤S3:使用定义的数据接口,构造分析算法使用的数据结构,并在构造出的数据结构上运行分析算法;步骤S4:使用数据接口将分析结果添加到原有的查询结果中,并将结果返回给客户端。本发明专利技术设计了一套统一的数据接口及不同种类的底层数据结构,减少了查询任务与分析任务之间的数据格式转换开销,使得在单一系统中可以进行高效的执行组合图任务。一系统中可以进行高效的执行组合图任务。一系统中可以进行高效的执行组合图任务。

【技术实现步骤摘要】
基于接口实现分离的图任务中间结果存储方法及系统


[0001]本专利技术涉及图任务中间结果存储
,具体地,涉及一种基于接口实现分离的图任务中间结果存储方法及系统。

技术介绍

[0002]随着大数据时代的来临,数据之间呈现出复杂的关联性,图(Graph)结构数据通过将数据实例抽象为节点,将实例之间的关联抽象为边,可以很好的表达海量数据之间复杂的关联信息。许多应用场景例如社交网络、知识图谱都使用图作为数据存储结构,这些应用在图数据上执行的工作负载主要有两种:图数据查询以及图数据分析。其中,组合图任务是指图查询+图分析,三元组由主语、谓词、宾语的ID组成。
[0003]图查询任务根据用户给定的特定语义,查询符合语义要求的节点与边数据,SPARQL是针对采用RDF格式保存的图数据上的一种查询语言,使用SPARQL语言编写的查询语句通常由多个三元组(主语、谓词、宾语)组成,这些三元组描述了目标数据应满足的语义要求。在图查询系统中,查询的中间结果通常以简单的二维数据进行表示,每一行数据代表符合查询语义的一组节点数据。
[0004]图分析任务在图数据上执行复杂的分析算法,例如SSSP(单源最短路径)、BFS(广度优先搜索)等,分析算法执行过程中,需要遍历各个节点的邻居进行消息传递操作,为了获得更快的执行性能,图分析系统在底层存储使用了便于遍历节点邻居的压缩稀疏矩阵格式(Compressed Sparse Row,Compressed Sparse Column)。
[0005]公开号为CN105210058A的中国专利技术专利,公开了一种使用多个引擎来进行图查询处理,接收被提交给由属性图来建模的图数据库的图查询。将图查询分解成多个查询分量。对于这些查询分量中的每一者,标识这些查询执行引擎中可用于处理该查询分量的查询执行引擎,生成表示该查询分量的子查询,将该子查询发送给标识出的查询执行引擎以供处理,以及从标识出的查询执行引擎中接收该子查询的结果。随后组合接收到的结果以生成对该图查询的响应。
[0006]目前的系统只针对图查询任务或是图分析任务单独开发,但是在实际的应用场景中,一个任务中会同时涉及到图查询与图分析。例如在电影推荐系统中,一个典型的推荐任务由图查询+图分析两个阶段组成,当用户观看完一部电影后,系统会查询观看该电影的其他用户以及这些用户最近观看的电影;之后会在查询结果上运行PageRank算法分析出近期最受关注的几部电影作为推荐结果返回给用户。目前的解决方案需要先在图查询系统中执行查询操作,再将查询结果传递给图分析系统执行分析算法,这个传递过程中需要将查询结果转换为图分析系统使用的底层数据结构,而这一格式转换操作带来了巨大的性能开销。
[0007]现有系统针对这种组合式任务的格式转换开销,通常通过修改图查询系统的中间结果数据结构来减少格式转换的开销,但是这一方案存在着可扩展性的问题:不同的图分析算法使用了不同的底层数据存储,当应用中的分析算法发生改变后,开发者需要重新编
写图查询中的执行逻辑来适应新的分析算法。也有一些系统设计了通用的数据结构,同时在查询过程及分析过程中使用,但是这些数据结构为了兼顾通用性,降低了分析系统的执行性能。
[0008]因此如何针对查询+分析的组合式任务,设计一种通用的数据结构方案,降低查询与分析间的数据转换开销,而且在各种分析算法中,都可以接近于最优的数据结构执行性能,从而提升组合式任务的执行性能,已经成为本领域技术人员亟待解决的技术难题。

技术实现思路

[0009]针对现有技术中的缺陷,本专利技术的目的是提供一种基于接口实现分离的图任务中间结果存储方法及系统。
[0010]根据本专利技术提供的一种基于接口实现分离的图任务中间结果存储方法及系统,所述方案如下:
[0011]第一方面,提供了一种基于接口实现分离的图任务中间结果存储方法,所述方法包括:
[0012]步骤S1:由服务器接受客户端的组合图任务请求,并解析组合图任务请求中的查询任务与分析任务,发送给查询引擎执行;
[0013]步骤S2:查询引擎收到请求后,根据后续分析任务的特点确定中间结果使用的底层数据结构,开始执行查询任务,查询任务执行结束后,查询引擎将查询结果传递给分析引擎;
[0014]步骤S3:分析引擎收到查询结果后,使用定义的数据接口,构造分析算法使用的数据结构,并在构造出的数据结构上运行分析算法;
[0015]步骤S4:分析算法运行结束后,分析引擎使用数据接口将分析结果添加到原有的查询结果中,并将结果返回给客户端。
[0016]优选的,所述步骤S1具体如下:
[0017]接受由客户端发送过来的组合任务请求,组合任务请求包括需要执行的查询任务与分析任务;
[0018]查询任务的解析是将字符串表示的SPARQL查询语句转换为数字表示的三元组;
[0019]分析任务的解析包括分析算法的名称、算法使用的参数、算法输出结果命名;
[0020]解析完成后,查询任务和分析任务将会被传递给查询引擎,由查询引擎先执行查询任务。
[0021]优选的,所述步骤S2中的查询任务包括:
[0022]查询引擎依次执行三元组查询语句,在查询到三元组对应的图数据后,使用定义的数据接口对中间结果进行修改;
[0023]重复步骤S2反复执行,直到所有三元组被执行完毕,则进入步骤S3继续执行。
[0024]优选的,所述步骤S2包括:
[0025]查询引擎根据后续执行的分析算法,确定查询中间结果所使用的底层数据结构;
[0026]初始化中间结果数据,开始执行查询,依次执行查询语句中的三元组,根据主语与谓词访问键值对存储中的边数据,使用边数据修改查询中间结果,修改操作都使用定义的数据接口对中间结果进行操作,包括添加操作和剪枝操作。
[0027]优选的,所述步骤S3包括:分析引擎接受查询引擎发送的查询结果,使用定义的数据接口,从查询结果中获取分析引擎要进行分析的两列节点数据以及边数据,构造便于分析算法执行的数据结构,执行分析算法。
[0028]第二方面,提供了一种基于接口实现分离的图任务中间结果存储系统,所述系统包括:
[0029]模块M1:由服务器接受客户端的组合图任务请求,并解析组合图任务请求中的查询任务与分析任务,发送给查询引擎执行;
[0030]模块M2:查询引擎收到请求后,根据后续分析任务的特点确定中间结果使用的底层数据结构,开始执行查询任务,查询任务执行结束后,查询引擎将查询结果传递给分析引擎;
[0031]模块M3:分析引擎收到查询结果后,使用定义的数据接口,构造分析算法使用的数据结构,并在构造出的数据结构上运行分析算法;
[0032]模块M4:分析算法运行结束后,分析引擎使用数据接口将分析结果添加到原有的查询结果中,并将结果返回给客户端。
[0033]优选的,所述模块M1包括:
[0034]接受由客户端发送过来的组合任务请求,组合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于接口实现分离的图任务中间结果存储方法,其特征在于,包括:步骤S1:由服务器接受客户端的组合图任务请求,并解析组合图任务请求中的查询任务与分析任务,发送给查询引擎执行;步骤S2:查询引擎收到请求后,根据后续分析任务的特点确定中间结果使用的底层数据结构,开始执行查询任务,查询任务执行结束后,查询引擎将查询结果传递给分析引擎;步骤S3:分析引擎收到查询结果后,使用定义的数据接口,构造分析算法使用的数据结构,并在构造出的数据结构上运行分析算法;步骤S4:分析算法运行结束后,分析引擎使用数据接口将分析结果添加到原有的查询结果中,并将结果返回给客户端。2.根据权利要求1所述的基于接口实现分离的图任务中间结果存储方法,其特征在于,所述步骤S1具体如下:接受由客户端发送过来的组合任务请求,组合任务请求包括需要执行的查询任务与分析任务;查询任务的解析是将字符串表示的SPARQL查询语句转换为数字表示的三元组;分析任务的解析包括分析算法的名称、算法使用的参数、算法输出结果命名;解析完成后,查询任务和分析任务将会被传递给查询引擎,由查询引擎先执行查询任务。3.根据权利要求1所述的基于接口实现分离的图任务中间结果存储方法,其特征在于,所述步骤S2中的查询任务包括:查询引擎依次执行三元组查询语句,在查询到三元组对应的图数据后,使用定义的数据接口对中间结果进行修改;重复步骤S2反复执行,直到所有三元组被执行完毕,则进入步骤S3继续执行。4.根据权利要求3所述的基于接口实现分离的图任务中间结果存储方法,其特征在于,所述步骤S2包括:查询引擎根据后续执行的分析算法,确定查询中间结果所使用的底层数据结构;初始化中间结果数据,开始执行查询,依次执行查询语句中的三元组,根据主语与谓词访问键值对存储中的边数据,使用边数据修改查询中间结果,修改操作都使用定义的数据接口对中间结果进行操作,包括添加操作和剪枝操作。5.根据权利要求1所述的基于接口实现分离的图任务中间结果存储方法,其特征在于,所述步骤S3包括:分析引擎接受查询引擎发送的查询结果,使用定义的数据接口,从查询结果中获取分析引擎要进行分析的两列节点数据以及边数据,构造便于分析算法执行的数据结构,执行分析算法。6.一种基于...

【专利技术属性】
技术研发人员:陈榕姚子航陈海波臧斌宇
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1