CN114417066A - 面向大规模时序rdf图数据的查询方法及系统 - Google Patents
面向大规模时序rdf图数据的查询方法及系统 Download PDFInfo
- Publication number
- CN114417066A CN114417066A CN202111678455.5A CN202111678455A CN114417066A CN 114417066 A CN114417066 A CN 114417066A CN 202111678455 A CN202111678455 A CN 202111678455A CN 114417066 A CN114417066 A CN 114417066A
- Authority
- CN
- China
- Prior art keywords
- query
- time
- graph data
- threads
- edge
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种面向大规模时序RDF图数据的查询方法及系统,包括:步骤S1:采用键‑值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;步骤S2:在每台机器上创建若干个客户端线程和若干个工作线程;步骤S3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,将解析后的查询请求发送至相应机器的工作线程;步骤S4:工作线程执行查询任务得到最终查询结果;步骤S5:工作线程将查询结果返回至客户端线程。
Description
技术领域
本发明涉及知识图谱的查询技术领域,具体地,涉及一种面向大规模时序RDF图数据的查询方法及系统。
背景技术
图是一种复杂的数据结构,它将数据对象抽象为顶点,将数据对象之间的关系抽象为边。随着Web技术的发展和完善以及大数据时代的到来,图优秀的表达海量数据及其之间关系的能力使得使用图作为数据结构来存储数据成为了一种流行的选择。
RDF是W3C制定的一种表示Web上的数据的图模型,它是目前应用最为广泛的知识图谱框架之一,与RDF配套的SPARQL是一种专门用于查询使用RDF模型进行存储的数据的查询语言。普通SPARQL语句由若干<主语,谓语,宾语>三元组模式组成,只有符合这些模式的数据才能被加入查询结果集中。
传统的RDF图只有实体及其之间的关系,但是在现实场景中,实体之间的关系不一定是静态不变的,而是可能会随着时间而改变,在某一时刻存在的关系在另一时刻可能就不存在了。因此,将时序的概念应用于RDF来允许基于时间的图数据查询就成为了一种解决方案。很多实际应用程序都可能会有查询时序数据的需求,例如检索网站的历史信息、查询与时间有关的资源(例如股票、新闻)的数据。
目前,国内外有很多对时序知识图谱的研究,很多时序图的存储方法也被提了出来,比较具有代表性的两种方案分别是标签化和版本化。标签化指的是给图的边加上时间标签(可以理解为边的属性),表示这条边在哪个时间点或时间段是有效的;版本化指的是为图的每一个状态维护一个快照,每当一个或一组边发生改变,新的图版本就被创建。同时,也出现了一些时序知识图谱的存储和查询系统,但是这些系统尚无法同时满足以下两个指标:
(1)支持对十亿级别数量的顶点和边的存储。
(2)在几毫秒时延内完成基础的SPARQL查询。
如何设计一种存储结构和查询算法,使得这两个指标能够同时得到满足是本领域研究人员亟待解决的一大问题。
专利文献CN110909111A(申请号:201910982253.6)公开了基于知识图谱RDF数据特征的分布式存储与索引方法,步骤如下:对于存储数据进行处理,统计数据信息以及挖掘数据集中的关联信息;通过步骤1)中的数据信息,在三元组类之间构建有效实体聚集索引;基于统计信息对每个实体类进行本体划分处理,增加实体类所包含谓语聚合度,建立谓语指向索引;对数据集进行连接操作,保存连接特指类,以提高出现频率极高的星型查询效率;基于前述步骤将数据集划分级别,保证数据按照定义级别降序存放;对于输入查询,引入查询优化。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向大规模时序RDF图数据的查询方法及系统。
根据本发明提供的一种面向大规模时序RDF图数据的查询方法,包括:
步骤S1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
步骤S2:在每台机器上创建若干个客户端线程和若干个工作线程;
步骤S3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,将解析后的查询请求发送至相应机器的工作线程;
步骤S4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
步骤S5:工作线程将查询结果返回至客户端线程。
优选地,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
优选地,所述步骤S1采用:键是由有向图的顶点ID、谓语ID以及方向组成的三元组;值是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组列表;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
优选地,所述步骤S2采用:客户端线程和工作线程的数量在运行前配置;且由于工作线程的负载较大,工作线程的数量为客户端线程数量的预设倍数以上。
优选地,所述用户的查询请求采用:时序扩展的SPARQL查询命令;
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量。
优选地,所述步骤S3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
优选地,所述查询任务包括若干个三元组或五元组查询步;
所述步骤S4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
根据本发明提供的一种面向大规模时序RDF图数据的查询系统,包括:
模块M1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
模块M2:在每台机器上创建若干个客户端线程和若干个工作线程;
模块M3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,将解析后的查询请求发送至相应机器的工作线程;
模块M4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
模块M5:工作线程将查询结果返回至客户端线程。
优选地,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳;
所述模块M1采用:键是由有向图的顶点ID、谓语ID以及方向组成的三元组;值是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组列表;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
优选地,所述模块M2采用:客户端线程和工作线程的数量在运行前配置;且由于工作线程的负载较大,工作线程的数量为客户端线程数量的预设倍数以上;
所述用户的查询请求采用:时序扩展的SPARQL查询命令;
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量;
所述模块M3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程;
所述查询任务包括若干个三元组或五元组查询步;
所述模块M4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
与现有技术相比,本发明具有如下的有益效果:
1、本发明使用键-值存储的方法将图数据分布式地存储在多台机器的内存中,当一个图查询请求进来时,可以快速地定位并读取到需要用到的数据所在机器及内存地址,大大提高了查询引擎的效率。同时,机器的数量可以根据数据量方便地进行配置,理论上可以扩展到任意多台机器;
2、本发明根据需求调研,在W3C制定的SPARQL语言标准的基础上设计了两类时序扩展的语法,既支持根据时间点或时间段过滤查询结果,又支持查询边的时间数据,能够满足绝大部分的实际需求;
3、本发明在实现对时序RDF图的存储和对时序扩展的SPARQL语句的解析和执行的同时,也支持普通RDF图的存储和普通SPARQL语句的解析和执行,即该发明具有很强的兼容性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明使用面向大规模时序RDF图数据的查询方法及系统设计的流程图。
图2为实施例中用到的时序扩展的SPARQL查询语句。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
针对现有技术中的缺陷,本发明的目的是提供一种面向大规模时序RDF图数据的查询方法及系统,本发明在现有原生知识图谱查询系统的基础上重新设计了底层数据结构以支持时序RDF数据的存储,又在SPARQL标准语法的基础上设计了两类时序扩展语法,并对原SPARQL语法的解析和执行逻辑进行了修改,使其能够支持扩展后的SPARQL语法,实现了对大规模时序RDF图数据的高效查询。
实施例1
根据本发明提供的一种面向大规模时序RDF图数据的查询方法,如图1-2所示,包括:
步骤S1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
步骤S2:完成图数据的存储后,在每台机器上创建若干个客户端线程和若干个工作线程;
步骤S3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,使用其内置的查询语言解析器转换成工作线程可以理解的形式,将解析后的查询请求发送至相应机器的工作线程;
步骤S4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
步骤S5:工作线程将查询结果返回至客户端线程。
具体地,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
具体地,所述步骤S1采用:键是由有向图的顶点ID(用vid表示)、谓语ID(用pid表示)以及方向(值为IN或OUT,用dir表示)组成的三元组;值是一个列表,列表的每个元素都是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
具体地,所述步骤S2采用:客户端线程和工作线程的数量都可以在系统运行前由运行者配置;且由于工作线程的负载较大,工作线程的数量一般为客户端线程数量的十倍以上。
具体地,所述用户的查询请求采用:时序扩展的SPARQL查询命令;时序扩展的SPARQL查询命令的其中一个参数是一个文本文件的路径名,该文件的内容是一条时序扩展的SPARQL语句。
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量。
更为具体地,WHERE关键字前面可以有一个时间常量(表示一个时间点)或两个时间常量(表示一个时间段)。它要求该查询所涉及的所有边必须在该时间点有效(一个时间常量时)或者在该时间段中存在一个时间点有效(两个时间常量时)。
WHERE关键字后面的每个查询模式都可以包含两个时间量,这两个时间量都既可以是常量,也可以是变量,分别表示该模式匹配到的边的有效期限的开始时间和截止时间。若第一个时间量为常量,则只有有效期限开始时间等于该常量的边才符合该查询模式;若为变量,则可以把它看成SPARQL语句中的普通变量,只不过它指代的是边有效期限的开始时间。第二个时间量同理。
具体地,所述步骤S3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
具体地,所述查询任务包括若干个三元组或五元组查询步;
所述步骤S4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
为了实现与普通SPARQL查询的兼容,当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当WHERE关键字前面没有时间常量,则退到普通的SPARQL查询;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
为了支持大规模时序数据的存储和查询,它的实现是分布式的,即用多台机器来存储图数据,每台机器负责存储图的一部分,同时各台机器也会尽量一起来执行一条SPARQL查询来加快查询速度。各台机器之间使用TCP或RDMA网络进行通信,如果有支持RDMA的硬件,应当尽量使用RDMA来进行通信,这会大大减少查询时延。当然使用TCP进行通信也是可以实现正确的查询的。
本发明重新设计了知识图谱查询系统的底层数据结构以支持时序RDF数据的存储,然后在W3C制定的SPARQL查询语言标准的基础上设计了两类时序相关扩展语法,最后对的SPARQL语法的解析和执行逻辑进行了修改,使其能够支持扩展后的SPARQL语法。本发明能够支持对大规模时序RDF格式的知识图谱数据进行高效查询。
根据本发明提供的一种面向大规模时序RDF图数据的查询系统,包括:
模块M1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
模块M2:完成图数据的存储后,在每台机器上创建若干个客户端线程和若干个工作线程;
模块M3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,使用其内置的查询语言解析器转换成工作线程可以理解的形式,将解析后的查询请求发送至相应机器的工作线程;
模块M4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
模块M5:工作线程将查询结果返回至客户端线程。
具体地,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
具体地,所述模块M1采用:键是由有向图的顶点ID(用vid表示)、谓语ID(用pid表示)以及方向(值为IN或OUT,用dir表示)组成的三元组;值是一个列表,列表的每个元素都是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
具体地,所述模块M2采用:客户端线程和工作线程的数量都可以在系统运行前由运行者配置;且由于工作线程的负载较大,工作线程的数量一般为客户端线程数量的十倍以上。
具体地,所述用户的查询请求采用:时序扩展的SPARQL查询命令;时序扩展的SPARQL查询命令的其中一个参数是一个文本文件的路径名,该文件的内容是一条时序扩展的SPARQL语句。
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量。
更为具体地,WHERE关键字前面可以有一个时间常量(表示一个时间点)或两个时间常量(表示一个时间段)。它要求该查询所涉及的所有边必须在该时间点有效(一个时间常量时)或者在该时间段中存在一个时间点有效(两个时间常量时)。
WHERE关键字后面的每个查询模式都可以包含两个时间量,这两个时间量都既可以是常量,也可以是变量,分别表示该模式匹配到的边的有效期限的开始时间和截止时间。若第一个时间量为常量,则只有有效期限开始时间等于该常量的边才符合该查询模式;若为变量,则可以把它看成SPARQL语句中的普通变量,只不过它指代的是边有效期限的开始时间。第二个时间量同理。
具体地,所述模块M3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
具体地,所述查询任务包括若干个三元组或五元组查询步;
所述模块M4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
为了实现与普通SPARQL查询的兼容,当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当WHERE关键字前面没有时间常量,则退到普通的SPARQL查询;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
为了支持大规模时序数据的存储和查询,它的实现是分布式的,即用多台机器来存储图数据,每台机器负责存储图的一部分,同时各台机器也会尽量一起来执行一条SPARQL查询来加快查询速度。各台机器之间使用TCP或RDMA网络进行通信,如果有支持RDMA的硬件,应当尽量使用RDMA来进行通信,这会大大减少查询时延。当然使用TCP进行通信也是可以实现正确的查询的。
本发明重新设计了知识图谱查询系统的底层数据结构以支持时序RDF数据的存储,然后在W3C制定的SPARQL查询语言标准的基础上设计了两类时序相关扩展语法,最后对的SPARQL语法的解析和执行逻辑进行了修改,使其能够支持扩展后的SPARQL语法。本发明能够支持对大规模时序RDF格式的知识图谱数据进行高效查询。
实施例2
实施例2是实施例1的优选例
本发明提供了一种面向大规模时序RDF图数据的查询方法,完成对大规模时序RDF图的查询。下面以8台机器为例,结合图1对以下步骤进行详细描述:
在步骤1中,系统启动,开始从文件系统的特定目录(由用户在配置文件中自行配置)中加载五元组格式的时序RDF图数据文件,这些文件都由十多万行五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,表示图的一条边;后两个元素则是两个分别表示该边有效期限的开始时间和截止时间的时间戳;此外还有两个存储字符串和ID之间映射关系的文本文件。最终系统将数据分布式均匀地存储到8台机器的内存中;
在步骤2中,系统在每台机器上都创建1个客户端线程和16个工作线程;
在步骤3中,机器0的客户端线程0开始等待用户在命令行输入时序扩展的SPARQL查询命令并回车。客户端线程收到用户的输入后(输入的查询语句如图2),使用其内置的解析器将它解析成工作线程可以理解的形式,然后通过RDMA网络将其发送给机器5的工作线程3;
步骤4:机器5的工作线程3收到解析后的查询请求后,开始执行查询任务。本实施例中,查询任务由两个查询步组成,每执行一个查询步,就会更新一次中间结果,直到所有查询步被执行完毕,得到最终结果;
步骤5:机器5的工作线程3将查询结果同样通过RDMA网络发送给指定它来执行该查询的客户端线程(即机器0的客户端线程0),然后回到步骤3。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种面向大规模时序RDF图数据的查询方法,其特征在于,包括:
步骤S1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
步骤S2:在每台机器上创建若干个客户端线程和若干个工作线程;
步骤S3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,将解析后的查询请求发送至相应机器的工作线程;
步骤S4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
步骤S5:工作线程将查询结果返回至客户端线程。
2.根据权利要求1所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳。
3.根据权利要求2所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述步骤S1采用:键是由有向图的顶点ID、谓语ID以及方向组成的三元组;值是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组列表;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
4.根据权利要求1所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述步骤S2采用:客户端线程和工作线程的数量在运行前配置;且由于工作线程的负载较大,工作线程的数量为客户端线程数量的预设倍数以上。
5.根据权利要求1所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述用户的查询请求采用:时序扩展的SPARQL查询命令;
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量。
6.根据权利要求1所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述步骤S3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程。
7.根据权利要求1所述的面向大规模时序RDF图数据的查询方法,其特征在于,所述查询任务包括若干个三元组或五元组查询步;
所述步骤S4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
8.一种面向大规模时序RDF图数据的查询系统,其特征在于,包括:
模块M1:采用键-值存储方式将五元组格式的时序RDF图数据均匀地加载和存储到多台机器的内存中;
模块M2:在每台机器上创建若干个客户端线程和若干个工作线程;
模块M3:客户端线程接收用户的查询请求,并对用户的查询请求进行解析,将解析后的查询请求发送至相应机器的工作线程;
模块M4:工作线程基于解析后的查询请求执行查询任务得到最终查询结果;
模块M5:工作线程将查询结果返回至客户端线程。
9.根据权利要求8所述的面向大规模时序RDF图数据的查询系统,其特征在于,所述时序RDF图数据被持久化存储在若干文本文件中,每个文本文件都由五元组形式的数据行组成,五元组的前三个元素分别是将主语、谓语和宾语转化后得到的ID,五元组的前三个元素表示有向图的一条边,该边由主语对应的顶点指向宾语对应的顶点,谓语则表示边的类型;后两个元素分别表示该边有效期限的开始时间和截止时间的时间戳;
所述模块M1采用:键是由有向图的顶点ID、谓语ID以及方向组成的三元组;值是由顶点ID、有效期限开始时间和截止时间的两个时间戳组成的三元组列表;一个键-值对是由方向为dir、类型为pid的边以及顶点vid连接的所有顶点的ID及该相邻关系的有效期限。
10.根据权利要求8所述的面向大规模时序RDF图数据的查询系统,其特征在于,所述模块M2采用:客户端线程和工作线程的数量在运行前配置;且由于工作线程的负载较大,工作线程的数量为客户端线程数量的预设倍数以上;
所述用户的查询请求采用:时序扩展的SPARQL查询命令;
所述时序扩展的SPARQL查询命令包括:WHERE关键字前面包含一个时间常量或两个时间常量,和/或WHERE关键字后面的每个查询模式包含两个时间量,其中,两个时间量包括常量和/或变量;
所述模块M3采用:将解析后的查询请求通过TCP或RDMA网络发送至预设机器的工作线程;
所述查询任务包括若干个三元组或五元组查询步;
所述模块M4采用:每执行一个查询步,就会更新一次中间结果,当所有查询步都被执行完毕时就得到了最终结果;
当一个查询步是三元组时,匹配到的边只需要符合WHERE关键字前面的时间常量对有效期限的限制;当一个查询步是五元组时,则需要符合五元组的两个时间量对有效期限的限制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111678455.5A CN114417066A (zh) | 2021-12-31 | 2021-12-31 | 面向大规模时序rdf图数据的查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111678455.5A CN114417066A (zh) | 2021-12-31 | 2021-12-31 | 面向大规模时序rdf图数据的查询方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417066A true CN114417066A (zh) | 2022-04-29 |
Family
ID=81271443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111678455.5A Pending CN114417066A (zh) | 2021-12-31 | 2021-12-31 | 面向大规模时序rdf图数据的查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417066A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108245A (zh) * | 2023-03-31 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 图数据查询方法和查询引擎 |
-
2021
- 2021-12-31 CN CN202111678455.5A patent/CN114417066A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108245A (zh) * | 2023-03-31 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 图数据查询方法和查询引擎 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marcu et al. | Spark versus flink: Understanding performance in big data analytics frameworks | |
US20170083573A1 (en) | Multi-query optimization | |
CN112905595A (zh) | 一种数据查询方法、装置及计算机可读存储介质 | |
US7840585B2 (en) | DISCOSQL: distributed processing of structured queries | |
CN116383238B (zh) | 基于图结构的数据虚拟化系统、方法、装置、设备及介质 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
CN114417066A (zh) | 面向大规模时序rdf图数据的查询方法及系统 | |
Yan et al. | G-thinker: a general distributed framework for finding qualified subgraphs in a big graph with load balancing | |
CN115952323A (zh) | 对大规模超图的查询方法及系统 | |
CN107818181A (zh) | 基于Plcient交互式引擎的索引方法及其系统 | |
US8965899B1 (en) | Progressive indexing for improved ad-hoc query performance | |
Tešanovic et al. | Embedded databases for embedded real-time systems: A component-based approach | |
CN112905598B (zh) | 基于接口实现分离的图任务中间结果存储方法及系统 | |
CN113672556A (zh) | 一种批量文件的迁移方法及装置 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN114547083A (zh) | 数据处理方法、装置及电子设备 | |
Ventocilla | Big data programming with Apache spark | |
Pelekh | Principles of mashup system semistructured data processing | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
Warnke | Integrating self-describing data formats into file systems | |
Gulisano et al. | Data-streaming and concurrent data-object co-design: Overview and algorithmic challenges | |
CN111159218B (zh) | 数据处理方法、装置及可读存储介质 | |
JP2010282347A (ja) | 構文解析装置、構文解析方法、及びプログラム | |
Rebele et al. | Technical report: Answering datalog queries with unix shell commands | |
CN118132670A (zh) | 时序超图数据的存储和查询方法及系统 |
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 |