CN105447156A - 资源描述框架分布式引擎及增量式更新方法 - Google Patents
资源描述框架分布式引擎及增量式更新方法 Download PDFInfo
- Publication number
- CN105447156A CN105447156A CN201510860272.3A CN201510860272A CN105447156A CN 105447156 A CN105447156 A CN 105447156A CN 201510860272 A CN201510860272 A CN 201510860272A CN 105447156 A CN105447156 A CN 105447156A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- rdf
- correspondence
- statement
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种资源描述框架分布式引擎及增量式更新方法,RDF分布式引擎部署在计算机集群上,通过主节点接收查询语言和SPARQL语句,对SPARQL语句进行解析,以将其转换为查询子图,并从N个从节点中确定SPARQL语句中RDF数据的对应从节点,根据查询子图生成操作日志及执行计划,并将SPARQL语句、执行计划发送及操作日志发送至主节点中的备份管理器,将SPARQL语句与执行计划发送至对应节点,并对对应从节点上的数据进行备份,由对应从节点用于根据执行计划,通过增量式方式更新内存。该过程中,通过增加能够解析SPARQL语句的查询解析器,使RDF分布式引擎能够支持数据更新语句,从而支持动态数据源。
Description
技术领域
本发明涉及语义网数据库检索技术,尤其涉及一种资源描述框架分布式引擎及增量式更新方法。
背景技术
语义网(SemanticWeb)通过给万维网上的文档,如超级文本标记语言(HyperTextMarkupLanguage,HTML)添加能够被计算机所理解的语义(Metadata),从而使整个互联网成为一个通用的信息交换媒介。资源描述框架(ResourceDescriptionFramework,RDF)是描述万维网资源的标准模型。
基于RDF数据进行语义网的研究过程中,通过搜索引擎,如分布式引擎TriAD对RDF数据进行存储和查询等。具体的,分布式搜索引擎TriAD采用关系型存储模型进行数据存储,对RDF数据模型进行优化,从而有自己的图数据剪枝、查询语言和数据获取协议(SimpleProtocolandRDFQueryLanguage,SPARQL)语句预处理机制,具有较高的查询效率。
然而,分布式引擎TriAD不支持动态数据源支持、并发请求处理、数据持久化策略等功能,无法满足多样化的RDF数据查询需求。
发明内容
本发明提供一种资源描述框架分布式引擎及增量式更新方法,提供一种支持RDF数据查询的同时,支持数据通过增量式方式更新到及数据持久化功能的资源描述框架分布式引擎,使其能够支持动态数据源。
第一个方面,本发明实施例提供一种资源描述框架分布式引擎,所述资源描述框架RDF分布式引擎部署在计算机集群上,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数,所述主节点包括:查询服务器、查询解析器、处理器、备份管理器,其中,
所述查询服务器,用于接收查询语言和数据获取协议SPARQL语句,并将所述SPARQL语句发送至所述查询解析器;
所述查询解析器,用于对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;
所述处理器,用于根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,并将所述SPARQL语句、所述执行计划发送及所述操作日志发送至所述备份管理器;
所述备份管理器,用于根据所述操作日志,将所述SPARQL语句与所述执行计划发送至所述对应节点,并对所述对应从节点上的数据进行备份;
所述对应从节点中的每一个从节点上设置内存,所述对应从节点用于根据所述执行计划,更新所述内存。
可选的,所述处理器根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,包括:
所述处理器根据所述RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述RDF数据确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS;
所述对应从节点具体用于将所述六个索引对应的数据更新到所述内存中。
可选的,所述对应节点中的每一个从节点还设置持久化存储介质,
所述管理备份单元还用于将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
可选的,所述对应节点中的每一个从节点还具有一个持久化存储介质,
所述处理器确定出所述操作日志对应的更新数据未通过增量式方式更新到所述对应节点的持久化存储介质,则发送更新命令与所述更新数据至所述对应从节点;
所述对应从节点根据所述更新命令,将所述更新数据更新至所述持久化存储介质。
可选的,所述对应从节点为编号为{SmodN}的从节点与所述编号为{OmodN}的从节点,其中,mod为求余操作,当所述SmodN与所述OmodN相同时,所述SPARQL语句的对应从节点为1个。
可选的,所述SPARQL语句包括:插入语句,和/或,删除语句。
可选的,所述主节点与所述N个从节点通过消息传递接口MPI进行数据传输。
第二个方面,本发明实施例提供一种增量式更新方法,适用于部署在算机集群上的RFD分布式引擎,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数,该方法包括:
主节点接收查询语言和数据获取协议SPARQL语句;
所述主节点对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;
所述主节点从所述N个从节点中为所述SPARQL语句确定对应从节点,根据所述查询子图生成操作日志及执行计划;
所述主节点根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,并对所述对应从节点上的数据进行备份,以使所述对应从节点根据所述执行计划,更新内存,所述对应从节点中的每一个从节点上设置所述内存。
可选的,所述主节点根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,具体为:
所述处理器根据所述RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述SPARQL语句确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS,以使得所述对应从节点将所述六个索引对应的数据更新到所述内存中。
可选的,所述对应节点中的每一个从节点还设置持久化存储介质;
所述主节点还将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
本发明实施例提供的资源描述框架分布式引擎及增量式更新方法,RDF分布式引擎部署在包括一个主节点及N个从节点的计算机集群上,通过主节点接收查询语言和数据获取协议SPARQL语句,并对SPARQL语句进行解析,以将SPARQL语句转换为查询子图,并根据哈希映射规则,从N个从节点中确定SPARQL语句中RDF数据的对应从节点,根据查询子图生成操作日志及执行计划,并将SPARQL语句、执行计划发送及操作日志发送至主节点中的备份管理器,将SPARQL语句与执行计划发送至对应节点,并对对应从节点上的数据进行备份,由对应从节点用于根据执行计划,通过增量式方式更新内存。该过程中,通过增加能够解析SPARQL语句的查询解析器,使RDF分布式引擎能够支持数据更新语句,从而支持动态数据源,即支持对数据源的更改,而无需在更改数据源前后中断TriAD引擎的查询服务。
附图说明
图1为本发明RDF分布式引擎实施例一的结构示意图;
图2为本发明RDF分布式引擎所适用的6个索引示意图;
图3为本发明RDF分布式引擎所适用的索引分布规则示意图;
图4为本发明一实施例提供的增量式更新方法的流程图。
具体实施方式
图1为本发明RDF分布式引擎实施例一的结构示意图。如图1所示,本发明实施例提供的RDF分布式引擎,部署在计算机集群上,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数,所述主节点包括:查询服务器、查询解析器、处理器、备份管理器,其中,所述查询服务器,用于接收查询语言和数据获取协议SPARQL语句,并将所述SPARQL语句发送至所述查询解析器;所述查询解析器,用于对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;所述处理器,用于根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,并将所述SPARQL语句、所述执行计划发送及所述操作日志发送至所述备份管理器;所述备份管理器,用于根据所述操作日志,将所述SPARQL语句与所述执行计划发送至所述对应节点,并对所述对应从节点上的数据进行备份;所述对应从节点中的每一个从节点具有一个内存,所述对应从节点用于根据所述执行计划,更新所述内存。
请参照图1,通过前端设备,如JavaWeb前端设备发送SPARQL语句,RDF分布式引擎接收该SPARQL语句,该SPARQL语句为支持动态数据源的语句。支持动态数据源,可以理解为对数据源的更新,而对数据源的更新操作包括两类:第一、数据插入;第二、数据删除。在此基础上,对原有数据的更新,可以拆分为先删除、再插入这两个步骤。其中,数据插入的语句格式如下所示:
PREFIXdc:<http://purl.org/dc/elements/1.1>
INSERTDATA
{
<http://example/book1>dc:title″Anewbook″;
dc:creator″A.N.toher″.
}
数据删除的语句格式如下所示:
PREFIXdc:<http://purl.org/dc/elements/1.1>
DELETEDATA
{
<http://example/book2>dc:title″DavidCopperfield″;
dc:creator″EdmundWells″.
}
请参照图1,在数据层面,为了支持动态数据源,添加了对SPARQL语句的查询解析器,例如,RDF3X的SPARQL查询解析器,该查询解析器区分了常规查询任务及新增加的更新任务。在执行对SPARQL语句的转化上,采用该查询解析器,识别出选择(SELECT)、哪里(WHERE)、前缀(PREFIX)等标识符,并将SPARQL语句转化成查询子图(QueryGraph)。一般来说,每条语句中三元组所构成的一个字图模型,称为一个匹配模式(pattern),对应QueryGraph中的一个查询节点(QueryNode)。
由上述可知,相较于目前支持的操作类型仅有SELECT一种的QueryGraph,本发明实施例中的查询子图则添加了对删除(DELETE)、插入(INSERT)两种更新类型的支持,查询解析器将语句识别转化后,生成QueryGraph实例,以供后续的执行计划生成所使用。而在对数据的组织上,TriAD对RDF数据进行了编码,并将其置于6类全排列索引内,如图2所示,图2为本发明RDF分布式引擎所适用的6个索引示意图。
请参照图2,本发明实施例中,每一条SPARQL语句中的中RDF数据,以下称为一条Triple数据,都将对应6个Index中的条目。因此,若对数据源中的一条Triple数据进行更新,则最终需要对6个条目中的所有数据全部进行更新。由于每个index中的Triple数据,都是按照该index中,SPO的顺序升序排列的。因而要进行插入操作,则必须保证插入后index的顺序。在实现数据插入时,按照每条数据的编号,在index中找到对应位置进行插入。由此可知,本发明实施例提供的RDF分布式引擎,采用同步通过增量式方式更新到,并不阻塞用户进程。
本发明实施例提供的RDF分布式引擎,部署在包括一个主节点及N个从节点的计算机集群上,通过主节点接收查询语言和数据获取协议SPARQL语句,并对SPARQL语句进行解析,以将SPARQL语句转换为查询子图,并根据哈希映射规则,从N个从节点中确定SPARQL语句中RDF数据的对应从节点,根据查询子图生成操作日志及执行计划,并将SPARQL语句、执行计划发送及操作日志发送至主节点中的备份管理器,将SPARQL语句与执行计划发送至对应节点,并对对应从节点上的数据进行备份,由对应从节点用于根据执行计划,通过增量式方式更新内存。该过程中,通过增加能够解析SPARQL语句的查询解析器,使RDF分布式引擎能够支持数据更新语句,从而支持动态数据源,即支持对数据源的更改,而无需在更改数据源前后中断TriAD引擎的查询服务。
再请参照图1,本发明实施例提供的RDF分布式引擎中,所述主节点与所述N个从节点通过消息传递接口(MessagePassingInterface,MPI)进行数据传输,该接口包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。
再请参照图1,本发明实施例提供的RDF分布式引擎,还包括数据解析器,用于对SPARQL语句进行索引、编码;数据字典,用于对RDF数据进行创建字典及统计信息;数据确定处理器等,用于对RDF数据进行分片。
可选的,在本发明一实施例中,所述处理器根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,包括:所述处理器根据RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述RDF数据确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS;所述对应从节点具体用于将所述六个索引对应的数据更新到所述内存中。其中,所述对应从节点为编号为{SmodN}的从节点与所述编号为{OmodN}的从节点,其中,mod为求余操作,当所述SmodN与所述OmodN相同时,所述RDF数据的对应从节点为1个。
具体的,在集群节点的内存中,经过编码的RDF数据,按照三元组(Triple)的形式存储。在主节点将SPARQL语句进行编码后,将其三元组中的三个元素,主体(Subject)、谓词(Predicate)及客体(Object)进行全排列,形成六种排列顺序不同的三元组格式。这六种三元组,即为从节点中存储RDF数据的六个索引。主节点则根据三元组中元素的编号进行哈希,将其传输到对应的从节点上,存储在内存中。具体步骤为:令某一RDF三元组的编号分别为S、O、P。N为Slave节点数量。则Master节点会将此RDF三元组进行两次传输。第一次,将其传输至节点编号为{SmodN}的节点上;第二次,将其传输至节点编号为{OmodN}的节点上。
由上述可知,将RDF数据通过增量式方式更新到本发明实施例提供的RDF分布式引擎中的从节点的内存可以概括为:通过前端将SPARQL更新语句传入RDF分布式引擎;查询解析器识别出语句中的更新具体操作(插入/删除),构建对应的QueryGraph;在Master节点上生成更新操作日志;继续生成执行计划;将执行计划及更新数据发送至各个从节点;从节点返回执行结果,告知主节点执行成功与否。若未能执行不成功,则重复执行,直至返回成功为止,更新操作保证幂等。
本发明实施例中,N个从节点中的每一个从节点,其上设置有内存与持久化存储介质,因此,数据通过增量式方式更新到也分为两部分,一是同步通过增量式方式更新到从节点的内存中,二是异步更新在从节点的持久化存储中。这样便涉及到了本发明提供的数据持久化及一致性策略。而上述的各实施例中,是将数据同步通过增量式方式更新到到从节点的内存中;下面,对将数据通过增量式方式更新到本发明实施例提供的RDF分布式引擎中的持久化存储介质进行详细说明。
首先,在上述图2的基础上,对RDF数据进一步进行详细说明。根据图2可知,RDF数据的内部数据组织形式,是将一条RDF数据,转码并存储在6个全排列的SPOindex中。6个index分布在整个计算机集群内,每条Triple需要根据指定的哈希规则,匹配到该条数据所存储的从节点。
一般来说,上述的6个index又可分成两类:Subject最优权重(Subject始终排在Object之前)以及Object最优权重(Object始终排在Subject之前)。本发明实施例中,规定一条Triple所产生的6个index,最多仅能分布在两个从节点上。这两个从节点,分别对应两类index其中的一类(也可以一台slave机器同时保存这条index的所有两类数据),分布规则如图3所示,图3为本发明RDF分布式引擎所适用的索引分布规则示意图。
请参照图3,一条Triple对应的6个index,先全部存储在数据索引(dataIndex)数组结构中。可以明显看到,数组中的前三项为Subject最优权重的几个index,后三项为Object最优权重。每一类index都会分布在某一个从从节点上,两类index可同时分布在同一台从节点上。
由上可知,为了尽量减少磁盘开销,持久化数据仅需覆盖每类index中的一个即可。最终决定,对SPO及OPS这两个index进行持久化,其余4个index可通过已持久化的这两个index进行推算得到。初次数据持久化,在系统初始化过程中触发。主节点将数据源中读入的SPARQL语句发送至哈希结果对应的从节点上,在计算数据统计的流程之后,持久化到持久化存储介质上。由于仅持久化了6个index中的两个,因而磁盘开销有限。
其次,将数据通过增量式方式更新到本发明实施例提供的RDF分布式引擎中的持久化存储介质。本发明实施例中,数据持久化可分为两部分:
第一、系统初始化时检测备份数据是否存在,若无备份,则创建备份。此时,所述管理备份单元还用于将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
具体的,系统管理员输入命令,启动RDF分布式引擎;主节点接收SPARQL语句;主节点对SPARQL语句中的RDF数据进行索引、编码、创建字典及统计信息并进行分片;主节点将分片好的RDF数据发布至各从节点;Slave节点接收到数据后,将该节点的RDF数据进行二次切分,分成最大32MB的数据,通过增量式方式更新到持久化存储介质,从节点返回初始化成功消息。主节点进入等待请求状态。
第二、SPARQL更新语句执行后,需要异步将更新通过增量式方式更新到持久数据文件中。此时,所述处理器确定出所述操作日志对应的更新数据,未通过增量式方式更新到所述对应节点的持久化存储介质,则发送更新命令与所述更新数据至所述对应从节点;所述对应从节点根据所述更新命令,将所述更新数据更新至所述持久化存储介质。
具体的,而当初次初始化完成后,从节点上即已存在持久化文件,随后系统再次启动的过程中,即直接从各从节点读取RDF数据,避免了计算统计数据、数据分片的网络传输以及数据字典创建的各类开销。更新数据异步通过增量式方式更新到持久数据文件的详细流程如下所述。该过程中,TriAD系统初始化完成后,进入等待请求阶段;后台的定时线程,在超时后触发数据同步策略;主节点检测本机的更新日志,若有尚未同步的更新数据,则发送更新命令和更新数据至各从节点;从节点接收到更新命令及数据后,依照更新类型及数据的编号,索引到具体的数据文件以及文件的偏移量,执行更新操作;从节点返回更新结果。若更新失败,则会重复执行同步数据操作直至返回成功。数据同步操作保证幂等;主节点收到返回成功消息后,将现有更新日志失效。随后的更新操作记录通过增量式方式更新到新的更新文件。
上述数据持久化部分,通过将更新的数据持久化到持久化存储介质上,并通过更新日志,提供了一定的容灾功能,避免了数据丢失。持久化的备份数据同时用于系统启动时的数据读入,优化了系统启动效率。更新操作的异步同步机制保证了查询功能的效率尽可能少的受到同步机制的干扰。
另外,在上述RDF分布式搜索引擎的基础上,本发明实施例还提供一种增量式更新方法,该方法适用于部署在算机集群上的RFD分布式引擎,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数。具体的,可参见图4.图4为本发明一实施例提供的增量式更新方法的流程图。如图4所示,该方法包括:
101、主节点接收查询语言和数据获取协议SPARQL语句;
102、所述主节点对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;
103、所述根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,根据所述查询子图生成操作日志及执行计划;
104、所述主节点根据所述操作日志,将所述SPARQL语句与所述执行计划发送至所述对应节点,并对所述对应从节点上的数据进行备份,以使所述对应从节点根据所述执行计划,更新内存,所述对应从节点中的每一个从节点上设置所述内存。
具体的,可参见上述图1实施例,此处不再赘述。
本发明实施例提供的增量式更新方法,通过主节点接收查询语言和数据获取协议SPARQL语句,并对SPARQL语句进行解析,以将SPARQL语句转换为查询子图,并根据查询子图生成操作日志及执行计划,根据哈希映射规则,从N个从节点中确定SPARQL语句中RDF数据的对应从节点,根据查询子图生成操作日志及执行计划,并将SPARQL语句、执行计划发送及操作日志发送至主节点中的备份管理器,将SPARQL语句与执行计划发送至对应节点,并对对应从节点上的数据进行备份,由对应从节点用于根据执行计划,更新内存。该过程中,通过增加能够解析SPARQL语句的查询解析器,使RDF分布式引擎能够支持数据更新语句,从而支持动态数据源,即支持对数据源的更改,而无需在更改数据源前后中断TriAD引擎的查询服务。该优化方法为现有的分布式RDF引擎TriAD提供了数据通过增量式方式更新到功能及数据持久化策略。通过扩展SPARQL语句的查询解析器,使RDF引擎能够支持数据更新语句。将更新内容,根据RDF数据的六种全排列编号进行数据切分及分配,最终将待更新内容通过增量式方式更新到集群中对应机器的内存及持久化存储中。本发明为高性能的RDF分布式引擎TriAD提供了数据通过增量式方式更新到及数据持久化策略。在原有仅支持RDF数据查询的基础上,使其能够支持动态数据源,并有一定的容灾功能,增强了系统的可靠性。
可选的,在本发明一实施例中,所述主节点根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,具体为:
所述处理器根据所述RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述SPARQL语句确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS,以使得所述对应从节点将所述六个索引对应的数据更新到所述内存中。
可选的,在本发明一实施例中,所述对应节点中的每一个从节点还设置持久化存储介质;
所述主节点还将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
可选的,在本发明一实施例中,所述对应节点中的每一个从节点还具有一个持久化存储介质,所述主节点还用于在确定出所述操作日志对应的更新数据,未通过增量式方式更新到所述对应节点的持久化存储介质后,则发送更新命令与所述更新数据至所述对应从节点,以使得所述对应从节点根据所述更新命令,将所述更新数据更新至所述持久化存储介质。
可选的,在发明一实施例中,所述对应从节点为编号为{SmodN}的从节点与所述编号为{OmodN}的从节点,其中,mod为求余操作,当所述SmodN与所述OmodN相同时,所述SPARQL语句的对应从节点为1个。
可选的,在本发明一实施例中,所述SPARQL语句包括:插入语句,和/或,删除语句。
可选的,在本发明一实施例中,所述主节点与所述N个从节点通过消息传递接口MPI进行数据传输。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种资源描述框架分布式引擎,其特征在于,所述资源描述框架RDF分布式引擎部署在计算机集群上,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数,所述主节点包括:查询服务器、查询解析器、处理器、备份管理器,其中,
所述查询服务器,用于接收查询语言和数据获取协议SPARQL语句,并将所述SPARQL语句发送至所述查询解析器;
所述查询解析器,用于对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;
所述处理器,用于根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,并将所述SPARQL语句、所述执行计划发送及所述操作日志发送至所述备份管理器;
所述备份管理器,用于根据所述操作日志,将所述SPARQL语句与所述执行计划发送至所述对应节点,并对所述对应从节点上的数据进行备份;
所述对应从节点中的每一个从节点上设置内存,所述对应从节点用于根据所述执行计划,更新所述内存。
2.根据权利要求1所述的RDF分布式引擎,其特征在于,所述处理器根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,包括:
所述处理器根据所述RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述RDF数据确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS;
所述对应从节点具体用于将所述六个索引对应的数据更新到所述内存中。
3.根据权利要求2所述的RDF分布式引擎,其特征在于,所述对应节点中的每一个从节点还设置持久化存储介质,
所述管理备份单元还用于将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
4.根据权利要求2所述的RDF分布式引擎,其特征在于,所述对应节点中的每一个从节点还具有一个持久化存储介质,
所述处理器确定出所述操作日志对应的更新数据未通过增量式方式更新到所述对应节点的持久化存储介质,则发送更新命令与所述更新数据至所述对应从节点;
所述对应从节点根据所述更新命令,将所述更新数据更新至所述持久化存储介质。
5.根据权利要求2~4任一项所述的RDF分布式引擎,其特征在于,所述对应从节点为编号为{SmodN}的从节点与所述编号为{OmodN}的从节点,其中,mod为求余操作,当所述SmodN与所述OmodN相同时,所述SPARQL语句的对应从节点为1个。
6.根据权利要求1~4任一项所述的RDF分布式引擎,其特征在于,所述SPARQL语句包括:插入语句,和/或,删除语句。
7.根据权利要求1~4任一项所述的RDF分布式引擎,其特征在于,所述主节点与所述N个从节点通过消息传递接口MPI进行数据传输。
8.一种增量式更新方法,其特征在于,适用于部署在算机集群上的RFD分布式引擎,所述计算机集群包括一个主节点及N个从节点,N≥1且为整数,该方法包括:
主节点接收查询语言和数据获取协议SPARQL语句;
所述主节点对所述SPARQL语句进行解析,以将所述SPARQL语句转换为查询子图;
所述主节点从所述N个从节点中为所述SPARQL语句确定对应从节点,根据所述查询子图生成操作日志及执行计划;
所述主节点根据所述查询子图生成操作日志及执行计划,根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,并对所述对应从节点上的数据进行备份,以使所述对应从节点根据所述执行计划,更新内存,所述对应从节点中的每一个从节点上设置所述内存。
9.根据权利要求8所述的方法,其特征在于,所述主节点根据哈希映射规则,从所述N个从节点中确定所述SPARQL语句中RDF数据的对应从节点,具体为:
所述处理器根据所述RDF数据确定出三元组中的三个元素,对所述三元组中的三个元素进行排列组合,形成六种不同的三元组格式,所述六种不同的三元组格式对应六个索引,根据所述六个索引,从所述N个从节点中为所述SPARQL语句确定出1个或2个从节点,作为所述对应从节点,其中,所述三个元素为主体S,谓词P,客体O,所述六个索引分别为SPO,OPS,SOP,PSO,OSP,POS,以使得所述对应从节点将所述六个索引对应的数据更新到所述内存中。
10.根据权利要求9所述的方法,其特征在于,所述对应节点中的每一个从节点还设置持久化存储介质;
所述主节点还将已经更新到所述内存中的所述六个索引对应的数据,其中两个索引对应的数据通过增量式方式更新到所述持久化存储介质,其中,所述两个索引为所述SPO与所述OPS。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510860272.3A CN105447156A (zh) | 2015-11-30 | 2015-11-30 | 资源描述框架分布式引擎及增量式更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510860272.3A CN105447156A (zh) | 2015-11-30 | 2015-11-30 | 资源描述框架分布式引擎及增量式更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447156A true CN105447156A (zh) | 2016-03-30 |
Family
ID=55557332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510860272.3A Pending CN105447156A (zh) | 2015-11-30 | 2015-11-30 | 资源描述框架分布式引擎及增量式更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447156A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955999A (zh) * | 2016-04-20 | 2016-09-21 | 华中科技大学 | 一种大规模RDF图的ThetaJoin查询处理方法 |
CN106790108A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 协议数据解析方法、装置和系统 |
CN107153679A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种针对半结构化大数据的提取统计方法及系统 |
CN108062329A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 一种数据导入方法及装置 |
CN108733678A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 一种数据搜索的方法、装置和相关设备 |
WO2018205986A1 (en) * | 2017-05-12 | 2018-11-15 | Shanghai Putu Technology Partnership (General Partnership) | Method and system for parallelizing sequential graph computation |
CN110096515A (zh) * | 2019-05-10 | 2019-08-06 | 天津大学深圳研究院 | 一种基于三元组的rdf数据管理方法、装置及存储介质 |
CN110502460A (zh) * | 2018-05-16 | 2019-11-26 | 华为技术有限公司 | 数据处理的方法和节点 |
CN110909023A (zh) * | 2018-09-17 | 2020-03-24 | 华为技术有限公司 | 一种查询计划的获取方法、数据查询方法及装置 |
CN111352961A (zh) * | 2020-03-16 | 2020-06-30 | 华南师范大学 | 分布式rdf流数据处理方法、系统、装置及介质 |
CN112182139A (zh) * | 2019-08-29 | 2021-01-05 | 盈盛智创科技(广州)有限公司 | 一种资源描述框架三元组的溯源方法、装置及设备 |
CN112817990A (zh) * | 2021-01-28 | 2021-05-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备以及可读存储介质 |
CN112825069A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 数据库数据的分析方法、设备、系统及存储介质 |
CN113934745A (zh) * | 2020-06-29 | 2022-01-14 | 中兴通讯股份有限公司 | 数据同步处理方法、电子设备以及存储介质 |
CN115348185A (zh) * | 2022-08-19 | 2022-11-15 | 招银云创信息技术有限公司 | 一种分布式查询引擎的控制方法及其控制装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216851A (zh) * | 2008-01-11 | 2008-07-09 | 孟小峰 | 一种本体数据(Ontology)管理系统和方法 |
US20130238667A1 (en) * | 2012-02-23 | 2013-09-12 | Fujitsu Limited | Database, apparatus, and method for storing encoded triples |
EP2674875A1 (en) * | 2012-06-12 | 2013-12-18 | Fujitsu Limited | Method, controller, program and data storage system for performing reconciliation processing |
CN103605654A (zh) * | 2013-09-29 | 2014-02-26 | 柳州市宏亿科技有限公司 | 一种基于互联网的历史数据查询方法 |
CN104778277A (zh) * | 2015-04-30 | 2015-07-15 | 福州大学 | 一种基于Redis的RDF数据分布式存储和查询方法 |
-
2015
- 2015-11-30 CN CN201510860272.3A patent/CN105447156A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216851A (zh) * | 2008-01-11 | 2008-07-09 | 孟小峰 | 一种本体数据(Ontology)管理系统和方法 |
US20130238667A1 (en) * | 2012-02-23 | 2013-09-12 | Fujitsu Limited | Database, apparatus, and method for storing encoded triples |
EP2674875A1 (en) * | 2012-06-12 | 2013-12-18 | Fujitsu Limited | Method, controller, program and data storage system for performing reconciliation processing |
CN103605654A (zh) * | 2013-09-29 | 2014-02-26 | 柳州市宏亿科技有限公司 | 一种基于互联网的历史数据查询方法 |
CN104778277A (zh) * | 2015-04-30 | 2015-07-15 | 福州大学 | 一种基于Redis的RDF数据分布式存储和查询方法 |
Non-Patent Citations (5)
Title |
---|
宋金玉 等: "一种多索引的RDF数据存储与查询方案", 《第29届中国数据库学术会议论文集(B辑)》 * |
杜方 等: "RDF数据查询处理技术综述", 《软件学报》 * |
杨梦伦: "基于图的RDF数据存储及查询方法的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
欧石燕: "面向关联数据的语义数字图书馆资源描述与组织框架设计与实现", 《中国图书馆学报》 * |
秦冬生: "基于云计算的RDF数据存储系统的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955999A (zh) * | 2016-04-20 | 2016-09-21 | 华中科技大学 | 一种大规模RDF图的ThetaJoin查询处理方法 |
CN108062329A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 一种数据导入方法及装置 |
CN106790108B (zh) * | 2016-12-26 | 2019-12-06 | 东软集团股份有限公司 | 协议数据解析方法、装置和系统 |
CN106790108A (zh) * | 2016-12-26 | 2017-05-31 | 东软集团股份有限公司 | 协议数据解析方法、装置和系统 |
CN108733678A (zh) * | 2017-04-14 | 2018-11-02 | 华为技术有限公司 | 一种数据搜索的方法、装置和相关设备 |
CN108733678B (zh) * | 2017-04-14 | 2021-11-09 | 华为技术有限公司 | 一种数据搜索的方法、装置和相关设备 |
CN107153679A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种针对半结构化大数据的提取统计方法及系统 |
CN107153679B (zh) * | 2017-04-18 | 2020-11-24 | 北京思特奇信息技术股份有限公司 | 一种针对半结构化大数据的提取统计方法及系统 |
WO2018205246A1 (en) * | 2017-05-12 | 2018-11-15 | Shanghai Putu Technology Partnership (General Partnership) | Parallel computation engine for graph data |
WO2018205986A1 (en) * | 2017-05-12 | 2018-11-15 | Shanghai Putu Technology Partnership (General Partnership) | Method and system for parallelizing sequential graph computation |
CN110502460A (zh) * | 2018-05-16 | 2019-11-26 | 华为技术有限公司 | 数据处理的方法和节点 |
CN110502460B (zh) * | 2018-05-16 | 2021-03-23 | 华为技术有限公司 | 数据处理的方法和节点 |
CN110909023A (zh) * | 2018-09-17 | 2020-03-24 | 华为技术有限公司 | 一种查询计划的获取方法、数据查询方法及装置 |
CN110909023B (zh) * | 2018-09-17 | 2021-11-19 | 华为技术有限公司 | 一种查询计划的获取方法、数据查询方法及装置 |
CN110096515A (zh) * | 2019-05-10 | 2019-08-06 | 天津大学深圳研究院 | 一种基于三元组的rdf数据管理方法、装置及存储介质 |
CN112182139A (zh) * | 2019-08-29 | 2021-01-05 | 盈盛智创科技(广州)有限公司 | 一种资源描述框架三元组的溯源方法、装置及设备 |
CN112825069A (zh) * | 2019-11-21 | 2021-05-21 | 阿里巴巴集团控股有限公司 | 数据库数据的分析方法、设备、系统及存储介质 |
CN112825069B (zh) * | 2019-11-21 | 2024-05-24 | 阿里巴巴集团控股有限公司 | 数据库数据的分析方法、设备、系统及存储介质 |
CN111352961A (zh) * | 2020-03-16 | 2020-06-30 | 华南师范大学 | 分布式rdf流数据处理方法、系统、装置及介质 |
CN111352961B (zh) * | 2020-03-16 | 2023-03-28 | 华南师范大学 | 分布式rdf流数据处理方法、系统、装置及介质 |
CN113934745A (zh) * | 2020-06-29 | 2022-01-14 | 中兴通讯股份有限公司 | 数据同步处理方法、电子设备以及存储介质 |
CN112817990A (zh) * | 2021-01-28 | 2021-05-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备以及可读存储介质 |
CN112817990B (zh) * | 2021-01-28 | 2024-03-08 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备以及可读存储介质 |
CN115348185A (zh) * | 2022-08-19 | 2022-11-15 | 招银云创信息技术有限公司 | 一种分布式查询引擎的控制方法及其控制装置 |
CN115348185B (zh) * | 2022-08-19 | 2023-12-05 | 招银云创信息技术有限公司 | 一种分布式查询引擎的控制方法及其控制装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447156A (zh) | 资源描述框架分布式引擎及增量式更新方法 | |
CN110196871B (zh) | 数据入库方法和系统 | |
JP7271670B2 (ja) | データレプリケーション方法、装置、コンピュータ機器及びコンピュータプログラム | |
US11580070B2 (en) | Utilizing metadata to prune a data set | |
US20190340291A1 (en) | Unified data organization for multi-model distributed databases | |
US10579634B2 (en) | Apparatus and method for operating a distributed database with foreign tables | |
US9514188B2 (en) | Integrating map-reduce into a distributed relational database | |
US8732213B2 (en) | Scalable analysis platform for semi-structured data | |
CN102402596B (zh) | 一种主从分离数据库的读写方法和系统 | |
Khandelwal et al. | Zipg: A memory-efficient graph store for interactive queries | |
RU2507574C2 (ru) | Постраничное разбиение иерархических данных | |
US20120203745A1 (en) | System and method for range search over distributive storage systems | |
CN106909563B (zh) | 一种分布式系统 | |
CN113868028B (zh) | 一种在数据节点上回放日志的方法、数据节点及系统 | |
US11514009B2 (en) | Method and systems for mapping object oriented/functional languages to database languages | |
CN111581234B (zh) | Rac多节点数据库查询方法、装置及系统 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
WO2012056734A1 (ja) | データベースの管理方法 | |
GC | A critical comparison of NOSQL databases in the context of ACID and BASE | |
WO2016177027A1 (zh) | 批量数据查询方法和装置 | |
WO2013132628A1 (ja) | データベースの管理方法 | |
CN114817402B (zh) | 分布式数据库于多region部署场景下的SQL执行优化方法 | |
Grasmann et al. | Integration of skyline queries into spark sql | |
CN115544173B (zh) | 可线性扩展的分布式数据库 | |
CN106484379B (zh) | 一种应用的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160330 |
|
WD01 | Invention patent application deemed withdrawn after publication |