当前位置: 首页 > 专利查询>福州大学专利>正文

一种基于Redis的RDF数据分布式存储和查询方法技术

技术编号:11739428 阅读:950 留言:0更新日期:2015-07-15 22:32
本发明专利技术涉及一种基于Redis的RDF分布式存储和查询方法,所述RDF分布式存储方法采用Type-P数据分配的、基于Redis的RDF分布式存储系统的RDF分布式存储方法;所述RDF分布式查询方法通过判断查询语句复杂程度,选择不同的查询方式,以达到快速有效的查询。本发明专利技术所提出的一种基于Redis的RDF分布式存储方法和查询方法,通过将分布式存储系统和优化后的查询方法结合起来,有效的缩小了查询范围,提高了查询效率,并且在查询的元组模式个数较多和语义较复杂时也能高效工作,从而满足了大规模RDF数据的存储与查询的需求。

【技术实现步骤摘要】

本专利技术涉及RDF数据存储以及查询
,特别是一种基于Redis的RDF分布 式存储和查询方法。
技术介绍
目前,学术界已经幵发了一些成熟的RDF(Resource Description Framework)管 理系统,如Jena、Sesame、RDF-3X,些系统大都釆用传统的集中式关系型数据库来存储RDF 数据,将数据按照一定的组织方式存储在关系型数据库中,利用成熟的关系或对象关系数 据库进行后台存储,将SPARQL查询转化成SQL查询语句进行查询。 随着RDF数据的急速增长,传统的基于关系型数据库的RDF存储管理系统己经无 法适应爆炸式增长的海量RDF数据,越来越多的研宄者开始利用分布式系统的海量数据存 储与并行计算能力解决海量RDF数据管理问题。分布式RDF数据存储与查询通常采用分布 式文件系统以文件形式或者NoSQL数据库多索引表的形式存储数据,在查询方面通常采用 MapReduce计算模型处理SPARQL子句的连接,或者利用数据库提供的API实现查询处理。 这方面的研宄是近两年的研宄热点,但还处于研宄的初始阶段,目前还没有成熟的系统方 案出现。采用传统关系型数据库存储系统存储RDF数据存在诸多存储瓶颈,而且RDF数据 的无模式特征使得其难以使用关系型数据库管理系统的查询优化策略。现有研宄表明关系 型数据库在处理海量RDF数据时存储与查询效率比分布式数据库低;而采用文件系统的存 储方式对于大规模RDF数据,查询效率很低;基于内存的存储方式存储查询效率虽然都很 快,但是受内存大小的限制,只适应于小规模RDF数据。【
技术实现思路
】 本专利技术的目的在于提供一种基于RediS的RDF分布式存储和查询方法,以解决现 有集中式Redis (Remote Dictionary Server)存储和查询存在的受内存大小限制的问题。 为实现上述目的,本专利技术的技术方案是:一种基于Redis的RDF数据分布式存储方 法,其特征在于,按照如下步骤实现: 51 :提供一基于Redis的RDF数据分布式存储系统,该存储系统包括:一个管理节点 (Manage Node)以及与该管理节点(Manage Node)相匹配的处理节点(Process Node)和存 储节点(Storage Node);其中,所述管理节点(Manage Node)提供对外的接口,负责接收以 及解析外部的RDF数据; 52 :在存储节点(Storage Node)的Redis中,首先根据RDF数据本体中的定义,建立以 主语所属的类名命的类数据库,同时在该类数据库中,为每一个属性建立以该属性命名的 属性集合,即谓语集合;根据解析后RDF数据对应的三元组中主语的类型和谓语,将主语为 同一类、谓语相同的主语不重复地置于该类数据库中的谓语集合中,并为该谓语集合中的 每个主语建立以该主语和其对应的谓语命名的宾语集合,用以存放该主语及其谓语对应的 所有宾语;然后为每一个谓语建立谓语反转备份,即根据同一个谓语,建立一个以该谓语反 转谓语命名的反转谓语集合;再将解析后RDF数据对应的三元组中主语为同一个类、谓语 相同的宾语不重复地置于该反转谓语集合中,并为该反转谓语集合中每个宾语建立以该宾 语和其对应的谓语命名的主语集合,以存放该宾语及其谓语对应的所有主语。 在本专利技术一实施例中,每个存储节点(Storage Node)包含一个Redis,每个Redis 中均能创建N个类数据库,且该N为正整数。 在本专利技术一实施例中,所述管理节点(Manage Node)通过每个存储节点(Storage Node)对应的IP地址、端口地址以及类数据库编号访问每个存储节点(Storage Node)的 Redis中的类数据库。 在本专利技术一实施例中,在所述存储系统中,所述处理节点(Process Node)通过 Redis提供的API与所述存储节点(Storage Node)进行通信。 在本专利技术一实施例中,在所述存储系统中,所述处理节点(Process Node)和所述 存储节点(Storage Node)为多对多的关系。 进一步的,还提供一种基于Redis的RDF数据分布式查询方法,其特征在于,包括 如下步骤: 531 :管理节点(Manage Node)判断查询语句对应的Type;若查询语句的主语所属类已 知、谓语未知,则转入步骤S32 ;若查询语句的主语所属类未知、谓语已知,则转入步骤S33 ; 若查询语句的主语所属类已知、谓语已知,则转入步骤S34 ; 532 :从所述存储系统的各个存储节点(Storage Node)的Redis对应的类数据库中进 行查找; 533 :从查询语句的本体文件中获取谓语的定义域,将所有谓语的定义域的交集作为查 询的主语类型,转化为主语所属类已知、谓语已知的类型,并转入步骤S34 ; 534 :管理节点(Manage Node)判断查询语句中的主语或宾语是否已知,若主语或者宾 语其中有一个已知,管理节点(Manage Node)直接进行查询,且该查询过程的时间复杂度为 0 (1);若主语和或宾语均未知,则转入步骤S35 ; 535 :管理节点(Manage Node)查找处理节点(ProcessNode)的注册表,根据该注册表 中已注册的处理节点(ProcessNode)的个数,将整个查询任务分割成对应个数的子任务,并 分配给各个处理节点(ProcessNode)进行查询;处理节点(ProcessNode)根据子查询任务 中查询语句对应的存储节点(Storage Node),从该存储节点(Storage Node)中进行查询; 处理节点(ProcessNode)查询完成后将结果集返回给管理节点(Manage Node)。 在本专利技术一实施例中,主语或宾语已知的查询,管理节点(Manage Node)将查询分 成三个阶段:查询语句分析、定位数据集和执行查询操作。 在本专利技术一实施例中,对于元组模式个数较多和语义较复杂的查询语句,管理节 点(Manage Node)将查询任务分成多个子查询任务并传送至处理节点(ProcessNode)进行 执行。 在本专利技术一实施例中,对于元组模式个数较多和语义较复杂的查询语句,管理节 点(Manage Node)通过连接选择策略树(SST)生成连接策略,且在所述连接选择策略树 (SST)中,选择策略树包含一个根节点:Decision节点,用于生成连接策略;所述Decision 节点下一级是由每条查询语句中谓语对应生成的Pi节点,Pi节点包含两种子节点:Si (主 语)节点和Oi (宾语)节点,且Si (主语)节点包括所有谓词为Pi的主语实例,Oi (宾语) 节点包括所有谓词为Pi的宾语实例;除了 Decision节点外,每个节点都具有自己的权值, 符号定义如下:Pi :SST中第i个P节点;Si :第i个P节点的S子节点;Oi :第i个P节点 的〇子节点;sj :Si节点下的第j个S子节点;oj :0i节点下的第j个O节点;权值计算公 式如下:当前第1页1 2 本文档来自技高网...

【技术保护点】
一种基于Redis的RDF数据分布式存储方法,其特征在于,按照如下步骤实现:S1:提供一基于Redis的RDF数据分布式存储系统,该存储系统包括:一个管理节点(Manage Node)以及与该管理节点(Manage Node)相匹配的处理节点(Process Node)和存储节点(Storage Node);其中,所述管理节点(Manage Node)提供对外的接口,负责接收以及解析外部的RDF数据;S2:在存储节点(Storage Node)的Redis中,首先根据RDF数据本体中的定义,建立以主语所属的类命名的类数据库,同时在该类数据库中,为每一个属性建立以该属性命名的属性集合,即谓语集合;根据解析后RDF数据对应的三元组中主语的类型和谓语,将主语为同一类、谓语相同的主语不重复地置于该类数据库中的谓语集合中,并为该谓语集合中的每个主语建立以该主语和其对应的谓语命名的宾语集合,用以存放该主语及其谓语对应的所有宾语;然后为每一个谓语建立谓语反转备份,即根据同一个谓语,建立一个以该谓语反转谓语命名的反转谓语集合;再将解析后RDF数据对应的三元组中主语为同一个类、谓语相同的宾语不重复地置于该反转谓语集合中,并为该反转谓语集合中每个宾语建立以该宾语和其对应的谓语命名的主语集合,以存放该宾语及其谓语对应的所有主语。...

【技术特征摘要】

【专利技术属性】
技术研发人员:汪璟玢董书暕
申请(专利权)人:福州大学
类型:发明
国别省市:福建;35

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

1