CN115952323A - 对大规模超图的查询方法及系统 - Google Patents
对大规模超图的查询方法及系统 Download PDFInfo
- Publication number
- CN115952323A CN115952323A CN202211674509.5A CN202211674509A CN115952323A CN 115952323 A CN115952323 A CN 115952323A CN 202211674509 A CN202211674509 A CN 202211674509A CN 115952323 A CN115952323 A CN 115952323A
- Authority
- CN
- China
- Prior art keywords
- query
- hypergraph
- edge
- thread
- super
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种对大规模超图的查询方法及系统,包括数据加载步骤:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;线程启动步骤:启动一个或多个代理线程以及工作线程;解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;查询步骤:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;反馈步骤:代理线程将查询结果返回给用户。本发明能够快速计算出当前查询所需数据所在的位置,能够更好的复用原系统的模块,也提升了超图数据的查询性能。
Description
技术领域
本发明涉及数据处理技术领域,具体地,涉及一种对大规模超图的查询方法及系统。
背景技术
互联网时代,随着网络的普及,社交网络产生的数据呈爆炸式增长。而这些数据有几个显著的特征:数据量极大、数据更新极快,并且像网络一般交织在一起,错综复杂。在这样的背景下,为了适应新的场景,涌现出了一批以图模型为基础的图数据库。在图模型中,顶点与边分别被用来表示数据中的实体与实体之间的关系。相较传统的关系模型,图模型易于表示、易于扩展、易于查询、易于分析的特性使之能够更好的适应网络数据。
知识图谱是一种基于图模型的数据描述模型,是图数据库关联最为紧密、场景最广泛的一个应用方向。RDF是W3C定义的一种数据模型,基于图模型来表示表示Web上的数据关系;与之相对应的SPARQL同样由W3C定义,是一种专门用于查询使用RDF模型进行存储的数据的查询语言。SPARQL通常语句由若干<主语,谓语,宾语>三元组模式组成,图查询系统通过匹配这些三元组模式找到目标数据。
然而随着网络数据日益庞大、复杂,人们逐渐发现了传统图模型的局限性。有文章指出,小组是许多社交互动的基本组成部分,从一起参加活动到团队合作,多元实体关系也就是“组”关系有时甚至比二元关系更为常见。传统的RDF图只包含了实体及实体间的二元关系,这种“组”的概念难以被表示。
超图的出现,弥补了传统图模型在表示实体间“组”关系时的不足。超图是图模型的一种扩展,不同于传统图模型将实体和实体间二元关系分别抽象为点与边,超图将实体间的多元关系抽象为超边。超图的概念在很多现实场景下都可以套用,例如两个公司的共同股东、一篇论文的所有共同作者均可以用超边关系来表示。因此,将超图的概念应用于传统图查询系统来表达实体见的多元关系就成为了解决上文中问题的一种方案。
目前,国内外有很多对RDF图查询系统的研究,针对超图查询系统的研究论文少之又少。部分相关论文对超图数据在分布式系统中的划分进行了深入挖掘,其中包括点划分与边划分算法。另一部分涉及超图查询系统的文章多数探究的是子图查询,也就是从图数据(多张图)中寻找包含或包含于待查询子图的图,鲜有针对图结构匹配查询的超图查询系统,也就是根据查询给出的信息在图数据(一张大图)中匹配某种特定图模式。而针对图结构匹配查询的超图查询系统,均未给出具体的性能测试结果或是无法同时满足以下两个指标:
(1)支持对十亿级别数量的顶点和超边的存储。
(2)在几毫秒时延内完成基础的超图查询。
因此,如何设计与优化针对超图模型的存储结构和查询方法,使得这两个指标能够同时得到满足是本领域研究人员亟待解决的一大问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种对大规模超图的查询方法及系统。
根据本发明提供的一种对大规模超图的查询方法,包括:
数据加载步骤:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
线程启动步骤:启动一个或多个代理线程以及工作线程;
解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
查询步骤:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;
反馈步骤:代理线程将查询结果返回给用户。
优选地,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。
优选地,所述数据加载步骤包括:
边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;
点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,值为相关超边ID列表,这种键值对用来表示与一预设顶点相连的预设类型的所有超边。
优选地,所述线程启动步骤包括:
代理线程和工作线程的数量在系统启动前配置,代理线程对查询任务进行解析,并对查询任务的派发做负载均衡,而工作线程负责执行查询任务,代理线程的负载小于工作线程的负载,工作线程的数量高于代理线程数量。
优选地,所述查询步骤采用SPARQL-H查询命令,所述SPARQL-H查询命令包括:WHERE关键字后面的每个查询模式包括三个部分,输入列表、查询类型参数以及输出,其中输入与输出位置上是常量或者变量,查询类型分为五种:GE/GV、E2V、V2E、E2E与V2V,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点。
优选地,所述超图查询任务包括一个或多个超图查询步;
工作线程按照超图查询任务中给出的顺序依次执行查询模式,每个查询步都从输入变量出发查询输出变量,输入变量必须为已知,输出变量为已知或未知,当输出变量未知时查询步需要从已知输入出发获取未知变量并记入中间结果;当输出变量已知时只需检查输入输出变量是否符合该查询模式指定关系,不符合的数据行会被从中间结果中剔除。
根据本发明提供的一种对大规模超图的查询系统,包括:
数据加载模块:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
线程启动模块:启动一个或多个代理线程以及工作线程;
解析模块:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
查询模块:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;
反馈模块:代理线程将查询结果返回给用户。
优选地,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。
优选地,所述数据加载模块包括:
边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;
点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,值为相关超边ID列表,这种键值对用来表示与一预设顶点相连的预设类型的所有超边。
优选地,所述线程启动模块包括:
代理线程和工作线程的数量在系统启动前配置,代理线程对查询任务进行解析,并对查询任务的派发做负载均衡,而工作线程负责执行查询任务,代理线程的负载小于工作线程的负载,工作线程的数量高于代理线程数量。
与现有技术相比,本发明具有如下的有益效果:
1、本发明使用边划分的方式将超图数据划分到多台机器上,在查询执行过程中,能够快速计算出当前查询所需数据所在的位置;用键值对的形式存储超图的邻接表,能够更好的复用原系统的模块,也提升了超图数据的查询性能;
2、本发明利用RDMA技术,能够大大提升不同机器之间数据通讯的效率,减少在分布式场景下对于数据划分的开销;
3、本发明根据需求调研,在W3C制定的SPARQL语言标准的基础上设计了超图查询语法SPARQL-H,根据通过类型获取超边/顶点、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点,能够满足绝大部分的实际需求;
4、本发明在实现对超图的存储和对SPARQL-H语句的解析和执行的同时,保留了一部分SPARQL语法如SELECT、WHERE关键字,对熟悉SPARQL语法的用户来说更为友好;
5、本发明根据SPARQL-H超图查询语法的特性,对各种超图查询模式的执行进行了优化,并为此设计实现了多种中间结果的存储结构,提升了对于中间结果的遍历效率,从而提升整个查询执行的效率。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明使用面向大规模超图数据的查询方法设计的流程图;
图2为实施例中用到SPARQL-H超图查询语句。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1
本发明提供的一种面向大规模超图数据的查询方法及系统,如图1-2所示,包括:
步骤S1:在系统启动时采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
线程启动步骤:在每台机器上启动若干个代理线程和若干个工作线程;
解析步骤:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
查询步骤:工作线程收到超图查询任务后,将查询中的超图模式逐步执行得到最终查询结果,并将查询结果返回给代理线程;
反馈步骤:代理线程将查询结果返回给用户。
具体地,超图数据被持久化存储在若干文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组分为三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是该超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,一般包含两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
具体地,数据加载步骤采用:数据加载步骤采用边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,其值为相关超边ID列表,比如由A顶点与B超边类型组成的键对应的超边就是与A顶点相连且类型为B的超边,这种键值对用来表示与一特定顶点相连的特定类型的所有超边。
具体地,线程启动步骤采用:代理线程和工作线程的数量在系统启动前配置;代理线程的任务主要是对查询进行解析,并对查询任务的派发做负载均衡,负载较小,而工作线程负责执行查询任务,负载较大,因此规定工作线程的数量须高于代理线程数量,前者的数量往往在后者的十倍以上。
具体地,用户的查询请求采用:SPARQL-H,一种自行设计的类SPARQL超图查询命令;超图查询命令的其中一个参数是一个文本文件的路径名,该文件的内容是一条包含若干超图查询模式的SPARQL-H语句。
SPARQL-H查询命令包括:WHERE关键字后面的每个查询模式包括三个部分,输入列表、查询类型参数以及输出,其中输入与输出位置上可以是常量或者变量,查询类型分为五种,GE/GV、E2V、V2E、E2E与V2V,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点。
更为具体地,GE/GV查询关键字为“etype”与“vtype”,分别用于根据超边类型获取相关超边与根据顶点类型获取相关顶点;E2V查询关键字为“vertices”,用于根据给定输入边获取与其相连的所有顶点,当输入边有多条时获取它们相邻顶点的交集;V2E查询关键字为“edges”,用于根据给定输入顶点获取与其相连的所有超边,当输入顶点有多个时获取它们相邻超边的交集;E2E查询关键字有“intersectEdges”、“inEdges”和“containEdges”,分别用于根据给定输入超边获取与其有相交、包含、被包含关系的所有超边,该类查询模式一般带有用于指定输出超边类型以及表示相交程度的参数;V2V查询关键字为“intersectVertices”,用于根据给定输入顶点获取与其相邻超边有交集的所有顶点,该类查询模式一般带有用于指定相交超边类型的参数。
具体地,解析步骤采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
具体地,查询任务包括若干个超图查询步;
查询步骤采用:工作线程按照查询任务中给出的顺序依次执行查询模式,由于超图数据通常分布在各台机器上,执行过程中往往需要通过向其他机器发布子查询的方式获取完整的数据;随着查询的执行,其中间结果不断更新,当所有查询步都被执行完毕时就得到了最终结果;
每个查询步都从输入变量出发查询输出变量,输入变量必须为已知,输出变量可以为已知或未知,当输出变量未知时查询步需要从已知输入出发获取未知变量并记入中间结果;当输出变量已知时只需检查输入输出变量是否符合该查询模式指定关系,不符合的数据行会被从中间结果中剔除。
为了支持大规模超图数据的存储和查询,本发明使用分布式架构也就是用多台机器来存储图数据,每台机器负责存储图的一部分,同时各台机器能够协作执行一条SPARQL-H查询来加快查询速度。各台机器之间使用TCP或RDMA网络进行通信,如果有支持RDMA的硬件,应当使用RDMA来进行通信,这会大大减少查询时延。当然使用TCP进行通信也是可以实现正确的查询的。
本发明在现有原生知识图谱查询系统的基础上重新设计了底层数据结构以支持超图数据的存储,又在SPARQL标准语法的基础上设计了超图查询语法SPARQL-H,并将原系统中的查询语法解析模块以及查询执行模块进行了修改,使其能够支持针对超图查询语法SPARQL-H,最终实现了对大规模超图数据的高效查询。
实施例2
本发明还提供一种面向大规模超图数据的查询系统,所述面向大规模超图数据的查询系统可以通过执行所述面向大规模超图数据的查询方法的流程步骤予以实现,即本领域技术人员可以将所述面向大规模超图数据的查询方法理解为所述面向大规模超图数据的查询系统的优选实施方式。
本发明提供的一种面向大规模超图数据的查询系统,包括:
数据加载模块:在系统启动时采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
线程启动模块:在每台机器上启动若干个代理线程和若干个工作线程;
解析模块:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
查询模块:工作线程收到超图查询任务后,将查询中的超图模式逐步执行得到最终查询结果,并将查询结果返回给代理线程;
反馈模块:代理线程将查询结果返回给用户。
具体地,超图数据被持久化存储在若干文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组分为三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是该超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,一般包含两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
具体地,数据加载模块采用:数据加载模块采用边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,其值为相关超边ID列表,比如由A顶点与B超边类型组成的键对应的超边就是与A顶点相连且类型为B的超边,这种键值对用来表示与一特定顶点相连的特定类型的所有超边。
具体地,线程启动模块采用:代理线程和工作线程的数量在系统启动前配置;代理线程的任务主要是对查询进行解析,并对查询任务的派发做负载均衡,负载较小,而工作线程负责执行查询任务,负载较大,因此规定工作线程的数量须高于代理线程数量,前者的数量往往在后者的十倍以上。
具体地,用户的查询请求采用:SPARQL-H,一种自行设计的类SPARQL超图查询命令;超图查询命令的其中一个参数是一个文本文件的路径名,该文件的内容是一条包含若干超图查询模式的SPARQL-H语句。
SPARQL-H查询命令包括:WHERE关键字后面的每个查询模式包括三个部分,输入列表、查询类型参数以及输出,其中输入与输出位置上可以是常量或者变量,查询类型分为五种,GE/GV、E2V、V2E、E2E与V2V,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点。
更为具体地,GE/GV查询关键字为“etype”与“vtype”,分别用于根据超边类型获取相关超边与根据顶点类型获取相关顶点;E2V查询关键字为“vertices”,用于根据给定输入边获取与其相连的所有顶点,当输入边有多条时获取它们相邻顶点的交集;V2E查询关键字为“edges”,用于根据给定输入顶点获取与其相连的所有超边,当输入顶点有多个时获取它们相邻超边的交集;E2E查询关键字有“intersectEdges”、“inEdges”和“containEdges”,分别用于根据给定输入超边获取与其有相交、包含、被包含关系的所有超边,该类查询模式一般带有用于指定输出超边类型以及表示相交程度的参数;V2V查询关键字为“intersectVertices”,用于根据给定输入顶点获取与其相邻超边有交集的所有顶点,该类查询模式一般带有用于指定相交超边类型的参数。
具体地,解析模块采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
具体地,查询任务包括若干个超图查询步;
查询模块采用:工作线程按照查询任务中给出的顺序依次执行查询模式,由于超图数据通常分布在各台机器上,执行过程中往往需要通过向其他机器发布子查询的方式获取完整的数据;随着查询的执行,其中间结果不断更新,当所有查询步都被执行完毕时就得到了最终结果;
每个查询步都从输入变量出发查询输出变量,输入变量必须为已知,输出变量可以为已知或未知,当输出变量未知时查询步需要从已知输入出发获取未知变量并记入中间结果;当输出变量已知时只需检查输入输出变量是否符合该查询模式指定关系,不符合的数据行会被从中间结果中剔除。
为了支持大规模时序数据的存储和查询,本发明使用分布式架构也就是用多台机器来存储图数据,每台机器负责存储图的一部分,同时各台机器能够协作执行一条SPARQL-H查询来加快查询速度。各台机器之间使用TCP或RDMA网络进行通信,如果有支持RDMA的硬件,应当使用RDMA来进行通信,这会大大减少查询时延。当然使用TCP进行通信也是可以实现正确的查询的。
本发明在现有原生知识图谱查询系统的基础上重新设计了底层数据结构以支持超图数据的存储,又在SPARQL标准语法的基础上设计了超图查询语法SPARQL-H,并将原系统中的查询语法解析模块以及查询执行模块进行了修改,使其能够支持针对超图查询语法SPARQL-H,最终实现了对大规模超图数据的高效查询。
实施例3
实施例3是实施例1的优选例
本发明提供了一种面向大规模超图数据的查询方法及系统,完成对大规模超图数据的查询。下面以8台机器为例,结合图1对以下步骤进行详细描述:
在步骤1中,系统在多台机器上同时启动,每台机器在从用户指定的特定目录中加载超图数据。超图数据往往由两个存储字符串和ID之间映射关系的文本文件与若干图数据文件组成,后者一般由上万行变长多元组格式的数据行组成,多元组的第一部分为超边名称以及超边类型ID,第二部分为超边包含顶点ID列表,第三部分为超边属性列表,三个部分用“|”符号隔开。最终系统将数据分布式均匀地存储到8台机器的内存中;
在步骤2中,系统在每台机器上都创建1个代理线程和16个工作线程;
在步骤3中,用户向机器0的代理线程0发送了一个SPARQL-H查询请求。该代理线程收到用户的发来的查询(该查询的具体内容如图2)请求后,调用系统中的解析模块将查询请求从字符串形式转化为数据结构,换而言之,提取查询请求中的有用内容并组织成工作线程可以理解的数据结构;而后代理线程选择机器15上的工作线程8作为目标工作线程,并通过TCP或RDMA网络将该查询任务转发给该工作线程;
步骤4:机器15的工作线程8收到解析后的查询请求后,开始执行查询任务。本实施例中,查询任务由5个查询步组成,在执行过程中,部分查询步中涉及的数据分布在各台机器上,需要通过单次或多次发布子任务的形式获取完整查询数据;随着查询的执行,该查询的中间结果不断更新,当5个查询步都被执行完毕时就得到了最终结果;得到结果后,机器15的工作线程8将查询结果同样通过TCP或RDMA网络发送给指定它来执行该查询的代理线程(即机器0的代理线程0);
步骤5:机器0的代理线程0将该查询的结果返回给用户,然后回到步骤3。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
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,分别用于根据类型获取超边/顶点列表、根据超边获取顶点、根据顶点获取超边、根据超边获取超边与根据顶点获取顶点。
6.根据权利要求1所述的对大规模超图的查询方法,其特征在于,所述超图查询任务包括一个或多个超图查询步;
工作线程按照超图查询任务中给出的顺序依次执行查询模式,每个查询步都从输入变量出发查询输出变量,输入变量必须为已知,输出变量为已知或未知,当输出变量未知时查询步需要从已知输入出发获取未知变量并记入中间结果;当输出变量已知时只需检查输入输出变量是否符合该查询模式指定关系,不符合的数据行会被从中间结果中剔除。
7.一种对大规模超图的查询系统,其特征在于,包括:
数据加载模块:采用分布式的方法加载并划分超图数据,并用键值对形式存储加载到内存中的超图数据;
线程启动模块:启动一个或多个代理线程以及工作线程;
解析模块:代理线程接收来自用户的超图查询请求,并对用户的查询请求进行解析,将解析后得到的超图查询任务派发给工作线程;
查询模块:工作线程收到超图查询任务后,将超图查询任务中的超图模式逐步执行得到查询结果,将查询结果返回给代理线程;
反馈模块:代理线程将查询结果返回给用户。
8.根据权利要求7所述的对大规模超图的查询系统,其特征在于,所述超图数据被持久化存储在一个或多个文本文件中,每个文本文件都由变长多元组形式的数据行组成,多元组包括三个部分,每个部分之间由标点隔开,第一个部分包括两个元素,分别是超图数据的超边的名称和超边类型转化后得到的ID;第二个部分为可变长多元组,为超边中所包含的顶点列表转化后得到的ID列表;最后一个部分为超边属性列表,包含两个元素分别表示超边有效期限的开始时间和截止时间的时间戳。
9.根据权利要求8所述的对大规模超图的查询系统,其特征在于,所述数据加载模块包括:
边到点键值对中的键即超边ID,值是超边所包含顶点的ID列表,这种键值对用来表示一条超边所有相邻顶点;
点到边键值对中的键是由顶点ID与超边类型ID组成的二元组,值为相关超边ID列表,这种键值对用来表示与一预设顶点相连的预设类型的所有超边。
10.根据权利要求7所述的对大规模超图的查询系统,其特征在于,所述线程启动模块包括:
代理线程和工作线程的数量在系统启动前配置,代理线程对查询任务进行解析,并对查询任务的派发做负载均衡,而工作线程负责执行查询任务,代理线程的负载小于工作线程的负载,工作线程的数量高于代理线程数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674509.5A CN115952323A (zh) | 2022-12-26 | 2022-12-26 | 对大规模超图的查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674509.5A CN115952323A (zh) | 2022-12-26 | 2022-12-26 | 对大规模超图的查询方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115952323A true CN115952323A (zh) | 2023-04-11 |
Family
ID=87287178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211674509.5A Pending CN115952323A (zh) | 2022-12-26 | 2022-12-26 | 对大规模超图的查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952323A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235120A (zh) * | 2023-11-09 | 2023-12-15 | 支付宝(杭州)信息技术有限公司 | 具有时序特性的超图数据存储和查询方法及装置 |
-
2022
- 2022-12-26 CN CN202211674509.5A patent/CN115952323A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235120A (zh) * | 2023-11-09 | 2023-12-15 | 支付宝(杭州)信息技术有限公司 | 具有时序特性的超图数据存储和查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10817533B2 (en) | Graphical user interface for filtering import data in a data modeling mode of operation | |
CN110990638A (zh) | 基于fpga-cpu异构环境的大规模数据查询加速装置及方法 | |
US9146979B2 (en) | Optimization of business warehouse queries by calculation engines | |
WO2022143045A1 (zh) | 数据血缘关系的确定方法及装置、存储介质、电子装置 | |
CN112434046B (zh) | 一种数据血缘分析方法、装置、设备及存储介质 | |
CN116383238B (zh) | 基于图结构的数据虚拟化系统、方法、装置、设备及介质 | |
US20090063384A1 (en) | Method of applying user-defined inference rule using function of searching knowledge base and knowledge base management system therefor | |
JP2022504205A (ja) | インタラクティブなデータプレップアプリケーションのための複数のデータセットの相関増分ロード | |
CN115952323A (zh) | 对大规模超图的查询方法及系统 | |
CN106445913A (zh) | 基于MapReduce的语义推理方法及系统 | |
Zou et al. | Lachesis: automatic partitioning for UDF-centric analytics | |
US20050044067A1 (en) | Collection processing system | |
Ahamed et al. | Data integration-challenges, techniques and future directions: a comprehensive study | |
CN116383247A (zh) | 一种大规模图数据高效查询方法 | |
CN114417066A (zh) | 面向大规模时序rdf图数据的查询方法及系统 | |
RU2605387C2 (ru) | Способ и система для хранения данных графов | |
CN112905598B (zh) | 基于接口实现分离的图任务中间结果存储方法及系统 | |
US11023674B2 (en) | Generation and application of object notation deltas | |
Lee et al. | Similarity-based change detection for RDF in MapReduce | |
Pan et al. | Parallelizing multiple group-by queries using MapReduce: optimization and cost estimation | |
Pelekh | Principles of mashup system semistructured data processing | |
Zhang et al. | The research and design of SQL processing in a data-mining system based on MapReduce | |
Ponce et al. | Extension of a Task-based model to Functional programming | |
JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
Benhamed et al. | Classification of knowledge processing by MapReduce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |