一种基于内存的高性能查询图数据的软件方法技术

技术编号:37509018 阅读:10 留言:0更新日期:2023-05-07 09:48
本发明专利技术公开了一种基于内存的高性能查询图数据的软件方法,涉及计算机应用与软件工程领域技术领域,所述方法包括在内存中构建图实体的数据结构,所述数据结构包括节点表结构、边表结构以及字符串映射表结构;获取图查询请求,并根据所述图查询请求确定待查询图实体所在存储位置的地址信息,根据所述地址信息从定长存储空间中读取待查询图实体。本发明专利技术通过基于内存计算、外存缓存的加速以及改良的图遍历算法,使图的遍历速度有了大幅的提升,通过深度定制的内存结构,使图数据占用较少的内存空间,在良好的内存占用下能够有效地提高庞大数据的查询性能。据的查询性能。据的查询性能。

【技术实现步骤摘要】
一种基于内存的高性能查询图数据的软件方法


[0001]本专利技术涉及计算机应用与软件工程领域
,具体涉及一种基于内存的高性能查询图数据的软件方法。

技术介绍

[0002]在图数据库及图计算的概念中,图(Graph)指的是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述事物之间的某种特定关系,同时也是数学分支中图论(Graph Theory)的主要研究对象。图数据是以节点(点)、关系(边)为基础单元,适用于表示数据与数据之间拓扑关系的一种数据结构。
[0003]图数据库是以图数据为存储单元,以高效存储、查询图数据为目标,更适合处理复杂关联型数据的数据管理系统,属于非关系型数据库(NoSQL)。随着各行各业对于智能化的更高要求,除了需要存储更大规模的数据之外,对于异构数据、汇集新数据、基于复杂关联分析等能力的需求也越来越强,图数据库可以很好的补充传统数据库的不足,以相互补充的方式,更好的满足市场需求。
[0004]图数据库与传统的关系型数据库在建模方式方面有着很大的不同,图基于现实世界的实体和关系建模,更为直接易懂;传统关系数据库建模需要的抽象层次更高,也更为复杂。因为图数据库以实体和关系为基本单位,所以特别适合查询和分析多层次、多样的复杂关系;关系数据库则在复杂关系查询方面不堪重负,尤其是涉及多表关联或者递归查询时,很难做到及时响应。因此对于海量的多层次、多样的复杂关系查询和分析,关系数据库已经难以胜任,图数据库得益于实体和关系的建模设计,更适用于这样的需求。
[0005]图数据库中的图查询主要可以分为三类。其一,可应用于知识图谱等场景的子图查询。其二,可应用于风险控制等场景的路径查询。其三,可应用于社交关系等场景的邻居查询。
[0006]子图查询、路径查询、邻居查询的本质共同点都是图的拓展探索,基于一起点或基于多起点。在图的拓展探索过程中遇到的核心问题是探索性能,这也是查询性能瓶颈之一。以一起点的邻居查询为例,在查询其1~6跳的邻居时,需要先跟据起点获取其1跳邻居,然后根据其1跳邻居获取其2跳邻居。以此类推,直至获取全部的1~6跳邻居。在此过程中如何高效的遍历相关节点是提升探索性能的关键所在。
[0007]此外,如果一个节点为起点的1跳邻居,则该节点不应该再被认为是起点的更远跳邻居。在查询过程中如何高效的判断节点是否被遍历过,是提升查询性能的重要因素。
[0008]在路径查询中,在图的拓展探索的同时,也需要记录其中间结果并根据业务场景的需要对其进行节点/边查重。记录中间结果的目的是在查询结束后对数据进行重新组合并生成完整的路径数据。对中间结果的节点/边查重的目的是根据实际业务场景对路径进行去环处理。因此,控制中间结果的内存占用以及高效查重是提升路径查询性能的可取之法。
[0009]综上所述,本专利技术需要解决的问题有三,其一,提升图的遍历性能,其二,高效判断
节点/边的遍历状态,其三,图查询时控制其内存占用。

技术实现思路

[0010]针对现有技术中的缺陷,本专利技术提供一种基于内存的高性能查询图数据的软件方法。
[0011]本专利技术的方案为:一种基于内存的高性能查询图数据的软件方法,包括:
[0012]在内存中构建图实体的数据结构,所述数据结构包括节点表结构、边表结构以及字符串映射表结构,所述节点表结构和所述边表结构存储在定长存储空间中,所述字符串映射表结构存储在非定长存储空间中,获取图查询请求,并根据所述图查询请求确定待查询图实体所在存储位置的地址信息;
[0013]根据所述地址信息从定长存储空间中读取待查询图实体。
[0014]优选地,在内存中构建图实体的数据结构包括:
[0015]从内存中获取第一定长存储空间和第二定长存储空间;
[0016]将节点实体按序存储在第一定长存储空间中,将边实体按序存储在第二定长存储空间中;
[0017]其中,所述第一定长存储空间的存储单位的长度根据所有节点实体中的最大节点实体决定,所述第二定长存储空间的存储单位的长度根据所有边实体中的最大边实体决定。
[0018]优选地,所述节点实体包括类型和槽位,所述边实体包括类型、边ID、终点ID和槽位,其中,所述槽位用于连续存储不同类型的属性信息。
[0019]优选地,根据所述图查询请求确定待查询图实体所在存储位置的地址信息包括:
[0020]根据所述图查询请求获取查询参数,所述查询参数包括但不限于节点ID、边ID、属性条件;
[0021]根据所述查询参数和定长存储空间中存储单位的长度,计算所述待查询图实体所在存储单位的偏移地址,得到所述地址信息。
[0022]优选地,根据所述查询参数和定长存储空间中存储单位的长度,计算所述待查询图实体所在存储单位的偏移地址包括:
[0023]根据所述查询参数确定定长存储空间的首地址和偏移个数;
[0024]根据所述首地址、偏移个数和所述定长存储空间中存储单位的长度,计算所述待查询图实体所在存储单位的偏移地址。
[0025]优选地,根据所述图查询请求获取查询参数包括:
[0026]获取待查询键值对,根据内存表或者排序字符串表获取待查询键值对中的键值,根据所述键值确定所述键值的数值所对应的查询参数;所述内存表为存储在内存的KV结构,所述排序字符串表为存储在外存的KV结构。
[0027]本专利技术的有益效果体现在:本专利技术所提供的一种基于内存的高性能查询图数据的软件方法,通过基于内存计算、外存缓存的加速以及改良的图遍历算法,使图的遍历速度有了大幅的提升,通过深度定制的内存结构,使图数据占用较少的内存空间,在良好的内存占用下能够有效地提高庞大数据的查询性能。
附图说明
[0028]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
[0029]图1为本专利技术实施例所提供的节点实体的示意图;
[0030]图2为本专利技术实施例所提供的边实体的示意图;
[0031]图3为本专利技术实施例所提供的节点表结构的结构示意图;
[0032]图4为本专利技术实施例所提供的边表结构的结构示意图;
[0033]图5为本专利技术实施例所提供的槽位的结构示意图;
[0034]图6为本专利技术实施例所提供的一种基于内存的高性能查询图数据的软件方法的流程图。
具体实施方式
[0035]下面将结合附图对本专利技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,因此只作为示例,而不能以此来限制本专利技术的保护范围。
[0036]需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本专利技术所属领域技术人员所理解的通常意义。
[0037]实施例
[0038]现代计算机的CPU本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于内存的高性能查询图数据的软件方法,其特征在于,包括:在内存中构建图实体的数据结构,所述数据结构包括节点表结构、边表结构以及字符串映射表结构,所述节点表结构和所述边表结构存储在定长存储空间中,所述字符串映射表结构存储在非定长存储空间中;获取图查询请求,并根据所述图查询请求确定待查询图实体所在存储位置的地址信息,根据所述地址信息从定长存储空间中读取待查询图实体。2.根据权利要求1所述的一种基于内存的高性能查询图数据的软件方法,其特征在于,在内存中构建图实体的数据结构包括:从内存中获取第一定长存储空间和第二定长存储空间;将节点实体按序存储在第一定长存储空间中,将边实体按序存储在第二定长存储空间中;其中,所述第一定长存储空间的存储单位的长度根据所有节点实体中的最大节点实体决定,所述第二定长存储空间的存储单位的长度根据所有边实体中的最大边实体决定。3.根据权利要求2所述的一种基于内存的高性能查询图数据的软件方法,其特征在于,所述节点实体包括类型和槽位,所述边实体包括类型、边ID、终点ID和槽位,其中,所述槽位用于连续存储不同类型的属性信息。4.根据权利要...

【专利技术属性】
技术研发人员:何真杜辰王文博曹旭
申请(专利权)人:北京意如图真科技有限公司
类型:发明
国别省市:

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

1