本发明专利技术提供了一种对大规模超图的查询方法及系统,包括数据加载步骤:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;线程启动步骤:启动一个或多个代理线程以及工作线程;解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;查询步骤:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;反馈步骤:代理线程将查询结果返回给用户。本发明专利技术能够快速计算出当前查询所需数据所在的位置,能够更好的复用原系统的模块,也提升了超图数据的查询性能。升了超图数据的查询性能。升了超图数据的查询性能。
【技术实现步骤摘要】
对大规模超图的查询方法及系统
[0001]本专利技术涉及数据处理
,具体地,涉及一种对大规模超图的查询方法及系统。
技术介绍
[0002]互联网时代,随着网络的普及,社交网络产生的数据呈爆炸式增长。而这些数据有几个显著的特征:数据量极大、数据更新极快,并且像网络一般交织在一起,错综复杂。在这样的背景下,为了适应新的场景,涌现出了一批以图模型为基础的图数据库。在图模型中,顶点与边分别被用来表示数据中的实体与实体之间的关系。相较传统的关系模型,图模型易于表示、易于扩展、易于查询、易于分析的特性使之能够更好的适应网络数据。
[0003]知识图谱是一种基于图模型的数据描述模型,是图数据库关联最为紧密、场景最广泛的一个应用方向。RDF是W3C定义的一种数据模型,基于图模型来表示表示Web上的数据关系;与之相对应的SPARQL同样由W3C定义,是一种专门用于查询使用RDF模型进行存储的数据的查询语言。SPARQL通常语句由若干<主语,谓语,宾语>三元组模式组成,图查询系统通过匹配这些三元组模式找到目标数据。
[0004]然而随着网络数据日益庞大、复杂,人们逐渐发现了传统图模型的局限性。有文章指出,小组是许多社交互动的基本组成部分,从一起参加活动到团队合作,多元实体关系也就是“组”关系有时甚至比二元关系更为常见。传统的RDF图只包含了实体及实体间的二元关系,这种“组”的概念难以被表示。
[0005]超图的出现,弥补了传统图模型在表示实体间“组”关系时的不足。超图是图模型的一种扩展,不同于传统图模型将实体和实体间二元关系分别抽象为点与边,超图将实体间的多元关系抽象为超边。超图的概念在很多现实场景下都可以套用,例如两个公司的共同股东、一篇论文的所有共同作者均可以用超边关系来表示。因此,将超图的概念应用于传统图查询系统来表达实体见的多元关系就成为了解决上文中问题的一种方案。
[0006]目前,国内外有很多对RDF图查询系统的研究,针对超图查询系统的研究论文少之又少。部分相关论文对超图数据在分布式系统中的划分进行了深入挖掘,其中包括点划分与边划分算法。另一部分涉及超图查询系统的文章多数探究的是子图查询,也就是从图数据(多张图)中寻找包含或包含于待查询子图的图,鲜有针对图结构匹配查询的超图查询系统,也就是根据查询给出的信息在图数据(一张大图)中匹配某种特定图模式。而针对图结构匹配查询的超图查询系统,均未给出具体的性能测试结果或是无法同时满足以下两个指标:
[0007](1)支持对十亿级别数量的顶点和超边的存储。
[0008](2)在几毫秒时延内完成基础的超图查询。
[0009]因此,如何设计与优化针对超图模型的存储结构和查询方法,使得这两个指标能够同时得到满足是本领域研究人员亟待解决的一大问题。
技术实现思路
[0010]针对现有技术中的缺陷,本专利技术的目的是提供一种对大规模超图的查询方法及系统。
[0011]根据本专利技术提供的一种对大规模超图的查询方法,包括:
[0012]数据加载步骤:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
[0013]线程启动步骤:启动一个或多个代理线程以及工作线程;
[0014]解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
[0015]查询步骤:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;
[0016]反馈步骤:代理线程将查询结果返回给用户。
[0017]优选地,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。
[0018]优选地,所述数据加载步骤包括:
[0019]边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;
[0020]点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,值为相关超边ID列表,这种键值对用来表示与一预设顶点相连的预设类型的所有超边。
[0021]优选地,所述线程启动步骤包括:
[0022]代理线程和工作线程的数量在系统启动前配置,代理线程对查询任务进行解析,并对查询任务的派发做负载均衡,而工作线程负责执行查询任务,代理线程的负载小于工作线程的负载,工作线程的数量高于代理线程数量。
[0023]优选地,所述查询步骤采用SPARQL
‑
H查询命令,所述SPARQL
‑
H查询命令包括:WHERE关键字后面的每个查询模式包括三个部分,输入列表、查询类型参数以及输出,其中输入与输出位置上是常量或者变量,查询类型分为五种:GE/GV、E2V、V2E、E2E与V2V,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点。
[0024]优选地,所述超图查询任务包括一个或多个超图查询步;
[0025]工作线程按照超图查询任务中给出的顺序依次执行查询模式,每个查询步都从输入变量出发查询输出变量,输入变量必须为已知,输出变量为已知或未知,当输出变量未知时查询步需要从已知输入出发获取未知变量并记入中间结果;当输出变量已知时只需检查输入输出变量是否符合该查询模式指定关系,不符合的数据行会被从中间结果中剔除。
[0026]根据本专利技术提供的一种对大规模超图的查询系统,包括:
[0027]数据加载模块:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
[0028]线程启动模块:启动一个或多个代理线程以及工作线程;
[0029]解析模块:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
[0030]查询模块:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;
[0031]反馈模块:代理线程将查询结果返回给用户。
[0032]优选地,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。
[003本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种对大规模超图的查询方法,其特征在于,包括:数据加载步骤:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;线程启动步骤:启动一个或多个代理线程以及工作线程;解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;查询步骤:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;反馈步骤:代理线程将查询结果返回给用户。2.根据权利要求1所述的对大规模超图的查询方法,其特征在于,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。3.根据权利要求2所述的对大规模超图的查询方法,其特征在于,所述数据加载步骤包括:边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,值为相关超边ID列表,这种键值对用来表示与一预设顶点相连的预设类型的所有超边。4.根据权利要求1所述的对大规模超图的查询方法,其特征在于,所述线程启动步骤包括:代理线程和工作线程的数量在系统启动前配置,代理线程对查询任务进行解析,并对查询任务的派发做负载均衡,而工作线程负责执行查询任务,代理线程的负载小于工作线程的负载,工作线程的数量高于代理线程数量。5.根据权利要求1所述的对大规模超图的查询方法,其特征在于,所述查询步骤采用SPARQL
‑
H查询命令,所述SPARQL
‑
H查询命令包括:WHERE关键字后面的每个查询模式包括三个部分,输入列表、查询类型参数以及输出,其中输入与输出位置上是常量或者变量,查询类型分为五种:GE/GV、E2V、V2E、E2E与V2V,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超...
【专利技术属性】
技术研发人员:陈榕,张懿雯,夏虞斌,陈海波,臧斌宇,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。