CN106599091A - 基于键值存储的rdf图结构存储和索引方法 - Google Patents
基于键值存储的rdf图结构存储和索引方法 Download PDFInfo
- Publication number
- CN106599091A CN106599091A CN201611052842.7A CN201611052842A CN106599091A CN 106599091 A CN106599091 A CN 106599091A CN 201611052842 A CN201611052842 A CN 201611052842A CN 106599091 A CN106599091 A CN 106599091A
- Authority
- CN
- China
- Prior art keywords
- predicate
- key
- node
- key assignments
- storage
- 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.)
- Granted
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于键值存储的RDF图结构存储和索引方法,其包括以下步骤:步骤一,载入图数据并进行划分;步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。本发明提供更加细粒度的RDF数据访问,充分利用系统的局部性,提高系统性能。
Description
技术领域
本发明涉及一种RDF图结构存储和索引方法,具体的说,涉及一种基于键值存储的RDF图结构存储和索引方法。
背景技术
大数据时代,信息呈现出了高度非结构化和自由而丰富的关联性,许多知识库如微博、Facebook等的社交网络图通常以RDF(Resource Description Framework,资源描述框架)的形式进行存储。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数据访问,充分利用系统的局部性,提高系统性能。
上述实施案例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此项技术的人员均可在不违背本发明的精神及范围下,对上述实施例进行修改。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (7)
1.一种基于键值存储的RDF图结构存储和索引方法,其特征在于,所述基于键值存储的RDF图结构存储和索引方法包括以下步骤:
步骤一,载入图数据并进行划分;
步骤二,将图数据按照边的起始节点及谓词进行聚合,并插入到键值存储中;
步骤三,将图数据按照边的终止节点及谓词进行聚合,并插入到键值存储中;
步骤四,生成谓词到起始节点以及谓词到终止节点的映射,即索引,并插入到键值存储中。
2.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤一包括如下步骤:
从分布式文件系统中并行读取图数据,对于每一条边数据,分别计算起始节点和终止节点的哈希值;若两个哈希值对应的机器不相同,则分别将边发给对应的两台机器;若两个哈希值对应的机器相同,则只发送一次;
每个机器接受其他机器发送的边数据,并存储在内存中。
3.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤二包括如下步骤:
将所有边数据按照起始节点排序,若起始节点相同,则继续按照谓词进行排序;
将起始节点及谓词相等的所有边合并成一个键值对,键由起始节点,谓词,以及方向构成,值是指向具体的终止节点数据的指针以及终止节点数据的个数;
将所有起始节点属于本机的键值对插入键值存储中。
4.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤三包括如下步骤:
将所有边数据按照终止节点排序,若终止节点相同,则继续按照谓词进行排序;将终止节点及谓词相等的所有边合并成一个键值对,键由终止节点,谓词,以及方向构成,值是指向具体的起始节点数据的指针以及起始节点数据的个数;
将所有终止节点属于本机的键值对插入键值存储中。
5.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述步骤四包括如下步骤:
聚合每个谓词对应的起始节点以及终止节点;若某个起始节点或者终止节点在同一个谓词中出现多次,则仅保留一次;若某个起始节点或者终止节点不属于本机,则将该起始节点和终止节点去除;
将谓词对应的所有起始节点合并成一个键值对,键位谓词以及方向,值为起始节点;
将谓词对应的所有终止节点合并成一个键值对,键位谓词以及方向,值为终止节点;
将所有键值对插入键值存储中。
6.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述基于键值存储的RDF图结构存储和索引方法采用细粒度的键值存储方式。
7.根据权利要求1所述的基于键值存储的RDF图结构存储和索引方法,其特征在于,所述基于键值存储的RDF图结构存储和索引方法采用本地索引的方法,给所有的谓词建立索引,指向对应的所有起始节点和终止节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611052842.7A CN106599091B (zh) | 2016-11-24 | 2016-11-24 | 基于键值存储的rdf图结构存储和索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611052842.7A CN106599091B (zh) | 2016-11-24 | 2016-11-24 | 基于键值存储的rdf图结构存储和索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599091A true CN106599091A (zh) | 2017-04-26 |
CN106599091B CN106599091B (zh) | 2020-07-14 |
Family
ID=58591956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611052842.7A Active CN106599091B (zh) | 2016-11-24 | 2016-11-24 | 基于键值存储的rdf图结构存储和索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599091B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762915A (zh) * | 2018-04-19 | 2018-11-06 | 上海交通大学 | 一种在gpu内存中缓存rdf数据的方法 |
CN109063191A (zh) * | 2018-08-29 | 2018-12-21 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN109710314A (zh) * | 2018-12-20 | 2019-05-03 | 四川新网银行股份有限公司 | 一种基于图结构分布式并行模式构建图的方法 |
CN110019162A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 实现属性归一的方法和装置 |
CN110134335A (zh) * | 2019-05-10 | 2019-08-16 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
CN110677461A (zh) * | 2019-09-06 | 2020-01-10 | 上海交通大学 | 一种基于键值对存储的图计算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103714134A (zh) * | 2013-12-18 | 2014-04-09 | 中国科学院计算技术研究所 | 一种网络流量数据索引方法及系统 |
US20140310302A1 (en) * | 2013-04-12 | 2014-10-16 | Oracle International Corporation | Storing and querying graph data in a key-value store |
CN104615703A (zh) * | 2015-01-30 | 2015-05-13 | 福州大学 | 一种结合Rete算法的RDF数据分布式并行推理方法 |
CN104834754A (zh) * | 2015-05-29 | 2015-08-12 | 武汉大学 | 一种基于连接代价的sparql语义数据查询优化方法 |
CN106156365A (zh) * | 2016-08-03 | 2016-11-23 | 北京智能管家科技有限公司 | 一种知识图谱的生成方法及装置 |
-
2016
- 2016-11-24 CN CN201611052842.7A patent/CN106599091B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310302A1 (en) * | 2013-04-12 | 2014-10-16 | Oracle International Corporation | Storing and querying graph data in a key-value store |
CN103714134A (zh) * | 2013-12-18 | 2014-04-09 | 中国科学院计算技术研究所 | 一种网络流量数据索引方法及系统 |
CN104615703A (zh) * | 2015-01-30 | 2015-05-13 | 福州大学 | 一种结合Rete算法的RDF数据分布式并行推理方法 |
CN104834754A (zh) * | 2015-05-29 | 2015-08-12 | 武汉大学 | 一种基于连接代价的sparql语义数据查询优化方法 |
CN106156365A (zh) * | 2016-08-03 | 2016-11-23 | 北京智能管家科技有限公司 | 一种知识图谱的生成方法及装置 |
Non-Patent Citations (2)
Title |
---|
CHIDCHANOK CHOKSUCHAT 等: "Large RDF Representation Framework for GPUs Case Study Key-Value Storage and Binary Triple Pattern", 《2013ICSEC》 * |
魏亚洲 等: "S-Index: 一种面向大规模RDF数据的高效率语义索引方案", 《武汉大学学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019162A (zh) * | 2017-12-04 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 实现属性归一的方法和装置 |
CN108762915A (zh) * | 2018-04-19 | 2018-11-06 | 上海交通大学 | 一种在gpu内存中缓存rdf数据的方法 |
CN108762915B (zh) * | 2018-04-19 | 2020-11-06 | 上海交通大学 | 一种在gpu内存中缓存rdf数据的方法 |
CN109063191A (zh) * | 2018-08-29 | 2018-12-21 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN109063191B (zh) * | 2018-08-29 | 2021-07-06 | 上海交通大学 | 在rdf数据集上进行optional查询的方法及存储介质 |
CN109710314A (zh) * | 2018-12-20 | 2019-05-03 | 四川新网银行股份有限公司 | 一种基于图结构分布式并行模式构建图的方法 |
CN110134335A (zh) * | 2019-05-10 | 2019-08-16 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
CN110134335B (zh) * | 2019-05-10 | 2022-08-12 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
CN110677461A (zh) * | 2019-09-06 | 2020-01-10 | 上海交通大学 | 一种基于键值对存储的图计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106599091B (zh) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599091A (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
Ren et al. | Exploiting vertex relationships in speeding up subgraph isomorphism over large graphs | |
Jiang et al. | Hop doubling label indexing for point-to-point distance querying on scale-free networks | |
CN103678520B (zh) | 一种基于云计算的多维区间查询方法及其系统 | |
US9934324B2 (en) | Index structure to accelerate graph traversal | |
CN103186568B (zh) | 树型结构数据的访问方法及系统 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN101692651A (zh) | 一种哈希查找表的方法和装置 | |
CN103593436A (zh) | 文件合并方法和装置 | |
CN103077208B (zh) | 统一资源定位符匹配处理方法及装置 | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN103856462B (zh) | 一种会话的管理方法及系统 | |
CN107229747A (zh) | 一种基于流式处理框架的大规模数据处理装置及方法 | |
US20170154078A1 (en) | Systems and methods for searching multiple related tables | |
WO2021017269A1 (zh) | 迁徙数据的方法、装置、计算机设备及存储介质 | |
CN111666468A (zh) | 一种基于团簇属性在社交网络中搜索个性化影响力社区的方法 | |
Liroz-Gistau et al. | Dynamic workload-based partitioning for large-scale databases | |
CN104346347A (zh) | 数据存储方法、装置、服务器及系统 | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
CN103577564A (zh) | 通过软件搬移降低hash冲突的方法及装置 | |
US8407255B1 (en) | Method and apparatus for exploiting master-detail data relationships to enhance searching operations | |
CN115114289A (zh) | 一种数据查询方法、装置及电子设备 | |
CN115795563A (zh) | 一种状态数据校验方法及装置 | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
CN104598567A (zh) | 一种基于Hadoop 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |