本发明专利技术提供了一种基于键值存储的RDF图结构存储和索引方法,其包括以下步骤:步骤一,载入图数据并进行划分;步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。本发明专利技术提供更加细粒度的RDF数据访问,充分利用系统的局部性,提高系统性能。
【技术实现步骤摘要】
本专利技术涉及一种RDF图结构存储和索引方法,具体的说,涉及一种基于键值存储的RDF图结构存储和索引方法。
技术介绍
大数据时代,信息呈现出了高度非结构化和自由而丰富的关联性,许多知识库如微博、Facebook等的社交网络图通常以RDF(ResourceDescriptionFramework,资源描述框架)的形式进行存储。RDF数据实际上是由一系列的三元组数据组成的,其中每个三元组都是由主语,谓语,宾语组成。如果把主语和宾语当成是一个顶点,那么每个三元组实际上就是由主语这个起始顶点指向宾语这个终止节点的一条边,则整个RDF数据集可以认为是一张有向图。随着RDF数据的增多,如何在分布式环境中有效地存储与查询RDF数据成为了一个亟需解决的问题。传统的RDF图数据通常采用粗粒度的存储方式,即为每个顶点存储它的所有出边和入边。这种存储方式简单易懂,但也有它的缺点。因为对RDF图数据的查询通常会指定具体的谓词,所以更加细粒度的键值存储方式更加高效,不需要每次都把节点相关的所有边都读取出来,可以减少数据搬移,降低读取数据的开销。此外,RDF图数据的查询可能会不指定具体的起始点或终止点,这种情况下,根据已知的谓词找到所有符合条件的起始点或终止点就相当重要了。每个谓词都可能分布在所有机器上,如果建立一个集中式的索引,那么就需要大量的数据搬运,效率十分低下,而且集中式的索引也会成为单点的瓶颈。因此,建立一个分布式的索引,充分利用访问局部性,可以大大加速用户的查询请求。因此如何针对RDF数据的访问模式设计存储方式,以及如何充分利用局部性建立分布式的索引,提高RDF数据的查询性能,降低请求的延迟,实已成为本领域技术人员亟待解决的技术难题。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供基于键值存储的RDF图结构存储和索引方法,提供更加细粒度的RDF数据访问,充分利用系统的局部性,提高系统性能。根据本专利技术的一个方面,提供一种基于键值存储的RDF图结构存储和索引方法,其特征在于,所述采用基于键值存储的RDF图结构存储和索引方法包括以下步骤:步骤一,载入图数据并进行划分;步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。优选地,所述步骤一包括如下步骤:从分布式文件系统中并行读取图数据,对于每一条边数据,分别计算起始节点和终止节点的哈希值。若两个哈希值对应的机器不相同,则分别将边发给对应的两台机器;若两个哈希值对应的机器相同,则只发送一次;每个机器接受其他机器发送的边数据,并存储在内存中。优选地,所述步骤二包括如下步骤:将所有边数据按照起始节点排序,若起始节点相同,则继续按照谓词进行排序;将起始节点及谓词相等的所有边合并成一个键值对,键由起始节点,谓词,以及方向构成,值是指向具体的终止节点数据的指针以及终止节点数据的个数;将所有起始节点属于本机的键值对插入键值存储中。优选地,所述步骤三包括如下步骤:将所有边数据按照终止节点排序,若终止节点相同,则继续按照谓词进行排序;将终止节点及谓词相等的所有边合并成一个键值对,键由终止节点,谓词,以及方向构成,值是指向具体的起始节点数据的指针以及起始节点数据的个数;将所有终止节点属于本机的键值对插入键值存储中。优选地,所述步骤四包括如下步骤:聚合每个谓词对应的起始节点以及终止节点;若某个起始节点或者终止节点在同一个谓词中出现多次,则仅保留一次。若某个起始节点或者终止节点不属于本机,则将该起始节点和终止节点去除;将谓词对应的所有起始节点合并成一个键值对,键位谓词以及方向,值为起始节点;将谓词对应的所有终止节点合并成一个键值对,键位谓词以及方向,值为终止节点;将所有键值对插入键值存储中。优选地,所述基于键值存储的RDF图结构存储和索引方法采用细粒度的键值存储方式。优选地,所述基于键值存储的RDF图结构存储和索引方法采用本地索引的方法,给所有的谓词建立索引,指向对应的所有起始节点和终止节点。与现有技术相比,本专利技术具有如下的有益效果:本专利技术提出的基于键值存储的RDF图结构存储和索引方法,提供更加细粒度的RDF数据访问,充分利用系统的局部性,提高系统性能。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术基于键值存储的RDF图结构存储和索引方法的流程图。图2为本专利技术的存储方式的结构示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进。这些都属于本专利技术的保护范围。如图1所示,本专利技术基于键值存储的RDF图结构存储和索引方法包括以下步骤:步骤一,载入图数据并进行划分。步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中。步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中。步骤四,生成谓词到起始节点以及终止节点的映射,即索引,并插入到键值存储中。在步骤一,系统从分布式文件系统中并行读取图数据,对于每一条边数据,分别计算起始节点和终止节点的哈希值。若两个哈希值对应的机器不相同,则分别将边发给对应的两台机器。若两个哈希值对应的机器相同,则只发送一次。每个机器接受其他机器发送的边数据,并存储在内存中。步骤二将所有边数据按照起始节点排序,若起始节点相同,则继续按照谓词进行排序。接着将起始节点及谓词相等的所有边合并成一个键值对,键由起始节点,谓词,以及方向构成,值是指向具体的终止节点数据的指针以及终止节点数据的个数。最后将所有起始节点属于本机的键值对插入键值存储中。步骤三将所有边数据按照终止节点排序,若终止节点相同,则继续按照谓词进行排序。接着将终止节点及谓词相等的所有边合并成一个键值对,键由终止节点,谓词,以及方向构成,值是指向具体的起始节点数据的指针以及起始节点数据的个数。最后将所有终止节点属于本机的键值对插入键值存储中。步骤四聚合每个谓词对应的起始节点以及终止节点。若某个起始节点或者终止节点在同一个谓词中出现多次,则仅保留一次。若某个起始节点或者终止节点不属于本机,则将该起始节点和终止节点去除。最终存储如图2所示。本专利技术采用并行加载的方式,每个机器只需要读取一小部分数据,再将属于其他机器的数据发送出去。随着机器数的增多,每个机器读取的数据更少,大大提高了系统初始化的效率。本专利技术采用细粒度的键值存储方式。键由节点、谓词,以及方向组成,大小为64位,其中节点占了36位,足够支持包含687亿个节点的RDF图;谓词占了27位,足够支持1亿种不同的谓词;方向占1位,用来表示对应的节点是起始节点还是终止节点。值由目标节点数组的起始地址以及数组大小构成。读取的时候先将对应的键值对读取出来,再根据值的内容找到对应的所有目标节点。相比传统的以节点为键,以所有入边和出边为值的方法,采用细粒度的键值存储方式效率更高。因为对RDF图数据的查询通常会指定具体的谓词,所以更加细粒度的键值存储方本文档来自技高网...
【技术保护点】
一种基于键值存储的RDF图结构存储和索引方法,其特征在于,所述基于键值存储的RDF图结构存储和索引方法包括以下步骤:步骤一,载入图数据并进行划分;步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。
【技术特征摘要】
1.一种基于键值存储的RDF图结构存储和索引方法,其特征在于,所述基于键值存储的RDF图结构存储和索引方法包括以下步骤:步骤一,载入图数据并进行划分;步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。2.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤一包括如下步骤:从分布式文件系统中并行读取图数据,对于每一条边数据,分别计算起始节点和终止节点的哈希值;若两个哈希值对应的机器不相同,则分别将边发给对应的两台机器;若两个哈希值对应的机器相同,则只发送一次;每个机器接受其他机器发送的边数据,并存储在内存中。3.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤二包括如下步骤:将所有边数据按照起始节点排序,若起始节点相同,则继续按照谓词进行排序;将起始节点及谓词相等的所有边合并成一个键值对,键由起始节点,谓词,以及方向构成,值是指向具体的终止节点数据的指针以及终止节点数据的个数;将所有起始节点属于本机的键值对插入键值存储中。4.根据权利要求1所述的基于键值存储的RDF...
【专利技术属性】
技术研发人员:陈榕,陈海波,臧斌宇,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。