一种图数据的存储方法、读取方法和系统技术方案

技术编号:37779580 阅读:21 留言:0更新日期:2023-06-09 09:10
本发明专利技术涉及数据存储技术领域,提供一种图数据的存储方法、读取方法和系统,方法包括:将图数据的每个顶点和边分别建立一个主键,所述主键能够排序,并且每个顶点和所述顶点的临边的主键是连续排序的;将所述图数据的顶点和边的数据值存储在持久性内存里,得到一个存储地址,每个所述存储地址都对应一个所述主键;利用特定数据结构形成索引来记录所述主键和对应存储地址的关系,所述特定数据结构为一个支持范围查询的数据结构,该数据结构以主键来排序;将所述特定数据结构存在动态随机存取存储器里。提高了图拓扑访问性能,以及对属性图查询的性能。该系统不仅支持属性图上的分析型负载,还能够支持事务型负载,具有较好的通用性和扩展性。和扩展性。和扩展性。

【技术实现步骤摘要】
一种图数据的存储方法、读取方法和系统


[0001]本专利技术涉及数据存储
,具体涉及图数据的存储方法、读取方法和系统。

技术介绍

[0002]数字化普及后,图数据大量运用于计算机科学中。图数据是一种用节点和边来表示实体和关系的数据结构,它可以很好地模拟复杂的网络和系统。
[0003]图数据的应用场景有:
[0004]社交网络:可以用图数据来表示用户之间的好友关系、兴趣爱好、动态信息等,从而提供更个性化的服务。
[0005]知识图谱:可以用图数据来表示各种领域的知识实体和关系,从而支持智能问答、语义搜索、自然语言理解等。
[0006]电子商务:可以用图数据来表示商品之间的相似度、用户之间的购买行为、评价信息等,从而提供更精准的推荐和营销。
[0007]图数据的读取和存储是数字化生活、生产中非常重要的应用场景,读取和存储图数据的效率至关重要。
[0008]一种常见的存储属性图的做法是采用基于LSM—Tree的键值存储系统。在这些系统中,通常是把每一个顶点和每一条边都构建成一对独立的主键值

数据值对。LSM

Tree的结构对写友好,但是存在读放大的问题,特别是做图的拓扑遍历时。因为图遍历的基本操作是从某个顶点出发扫描邻居,这个操作在LSM

Tree里对应的是一个范围查询的操作,效率较低。
[0009]还有一种常见方式是利用已有的关系数据库来存储属性图,关系数据库的问题也是对拓扑查询不友好,会需要执行代价很高的表连接操作。
[0010]以上的这些方法都不能体现图的拓扑结构,查找某个顶点或者边通常涉及大量的图遍历操作,这会消耗大量的计算资源和网络带宽,导致性能下降,在图数据过大的时候,这个问题尤其严重。

技术实现思路

[0011]为解决上述问题,本专利技术提供一种图数据的存储方法。
[0012]该方法包括:
[0013]将图数据的每个顶点和边分别建立一个主键,所述主键能够排序,并且每个顶点和所述顶点的临边的主键是连续排序的;将所述图数据的顶点和边的数据值存储在持久性内存里,得到一个存储地址,每个所述存储地址都对应一个所述主键;利用特定数据结构形成索引来记录所述主键和对应存储地址的关系,所述特定数据结构为一个支持范围查询的数据结构,该数据结构以主键来排序;将所述特定数据结构存在动态随机存取存储器里。
[0014]进一步的,将所述图数据的顶点和边的数据值存储在持久性内存里包括:在持久性内存里申请一块连续的存储空间,将所述图数据的每个顶点及其临边的数据值存储在所
述连续存储空间里。
[0015]优选的,将所述图数据的顶点和边的数据值存储在持久性内存里包括:将所述图数据的顶点和边的数据值分页存储在持久性内存里。
[0016]优选的,对于属性图的图数据,将标签相同的数据值存储在同一页里。
[0017]优选的,所述主键用数值来表示,所述主键排序使用数值排序规则。
[0018]优选的,所述特定数据结构为B+树,所述B+树的叶子节点记录所述存储地址。
[0019]本专利技术还公开了一种上述存储方法所存储的图数据的读取方法,包括:计算一个图数据的某个顶点或者边的键值;在动态随机存取存储器里根据所述键值查询持久性内存中的存储地址,所述存储地址存储了一个图数据的某个顶点或者边的数据值;以及从持久性内存中的所述存储地址中读取数据值。
[0020]为解决上述问题,本专利技术还提供了一种图数据的存储系统。
[0021]该系统包括:
[0022]主键生成模块,用于将图数据的每个顶点和边分别建立一个主键,所述主键能够排序,并且每个顶点和所述顶点的临边的主键是连续排序的;持久性内存存储模块,用于将所述图数据的顶点和边的数据值存储在持久性内存里,得到一个存储地址,每个所述存储地址都对应一个所述主键;匹配模块,用于利用特定数据结构形成索引来记录所述主键和对应存储地址的关系,所述特定数据结构为一个支持范围查询的数据结构,该数据结构以主键来排序;动态存储模块,用于将所述特定数据结构存在动态随机存取存储器里。
[0023]本专利技术中的系统与方法相对应,方法的具体优选方案,同样适用于系统。
[0024]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0025]通过将图的拓扑和属性分别存储在动态随机存取存储器和持久性内存中,充分利用了这两种物理存储介质的优点。通过将拓扑和索引合二为一,把图中获取邻居的操作转换为对索引的范围扫描,提高了图拓扑访问性能时同时并不会增加额外的存储开销和操作的复杂性;并根据标签组织属性数据等策略,提高了对属性图查询的性能。该系统不仅支持属性图上的分析型负载,还能够支持事务型负载,具有较好的通用性和扩展性。
附图说明
[0026]图1为本专利技术实施例提供的一种图数据的存储方法的流程框图;
[0027]图2为本专利技术实施例提供的一种图数据的存储系统的框图;
[0028]图3为本专利技术实施例提供的从B+树查询存储地址的逻辑示意图;
[0029]图4为本专利技术实施例提供的属性图的点和边及其主键对应图;
[0030]图5为本专利技术实施例提供的分页存储数据的结构图;
[0031]图6为本专利技术实施例提供的动态随机存取存储器与持久性内存数据结构图。
具体实施方式
[0032]以下结合附图和具体实施例,对本专利技术进行详细说明,在详细说明本专利技术各实施例的技术方案前,对所涉及的名词和术语进行解释说明,在本说明书中,名称相同或标号相同的部件代表相似或相同的结构,且仅限于示意的目的。
[0033]众所周知,动态随机存取存储器与持久性内存相比读写速度略快,价格高,容量
低,同时动态随机存取存储器的数据可能会丢失,而持久性内存的数据不易丢失。本专利技术针对持久性内存和动态随机存取存储器的特点构建了混合的架构,针对图的拓扑和属性的访问特点,分别设计了索引即拓扑的策略和基于标签的页划分策略,实现了对图的事务型和分析型负载的高效支持。
[0034]参见图1,本专利技术提供的图数据的存储方法,包括:
[0035]步骤102,将图数据的每个顶点和边分别建立一个主键,所述主键能够排序,并且每个顶点和所述顶点的临边的主键是连续排序的;
[0036]该主键可以是支持排序的任何数据类型,例如数字类型,字符串类型等。数字类型或者字符串类型的排序为本领域公知常识,在此不做详细叙述。每个顶点和所述顶点的临边的主键是连续排序的,即按照排序规则,每个顶点和该顶点的临边的主键中间不会有其他顶点或者边的主键。这样在查找某个顶点或边时,只需要在某个范围内查找,可以提升查找效率。
[0037]步骤104,将所述图数据的顶点和边的数据值存储在持久性内存里,得到一个存储地址,每个所述存储地址都对应一个所述主键;
[0038]每个顶点和边都会有唯一的主键,而且每个顶点和边的也都本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据的存储方法,其特征在于,包括:将图数据的每个顶点和边分别建立一个主键,所述主键能够排序,并且每个顶点和所述顶点的临边的主键是连续排序的;将所述图数据的顶点和边的数据值存储在持久性内存里,得到一个存储地址,每个所述存储地址都对应一个所述主键;利用特定数据结构形成索引来记录所述主键和对应存储地址的关系,所述特定数据结构为一个支持范围查询的数据结构,该数据结构以主键来排序;将所述特定数据结构存在动态随机存取存储器里。2.根据权利要求1所述的存储方法,其特征在于,将所述图数据的顶点和边的数据值存储在持久性内存里包括:在持久性内存里申请一块连续的存储空间,将所述图数据的每个顶点及其临边的数据值存储在所述连续存储空间里。3.根据权利要求1所述的存储方法,其特征在于,将所述图数据的顶点和边的数据值存储在持久性内存里包括:将所述图数据的顶点和边的数据值分页存储在持久性内存里。4.根据权利要求3所述的存储方法,其特征在于,对于属性图的图数据,将标签相同的数据值存储在同一页里。5.根据权利要求1所述的存储方法,其特征在于,所述主键用数值来表示,所述主键排序使用数值排序规则。6.根据权利要求1所述的存储方法,其特征在于,对于简单图的图数据,为每个顶点分配一个唯一的数值编号,每个顶点基于自己的数值编号生成一个唯一的主键,每个边基于组成所述边的两个顶点的数值编号生成一个唯一的主键。7.根据权利要求1所述的存储方法,其特征在于,对于属性图...

【专利技术属性】
技术研发人员:吕敏卢明祥许胤龙
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

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

1