一种基于属性图模型存储和编码图数据的方法技术

技术编号:35293735 阅读:17 留言:0更新日期:2022-10-22 12:40
本发明专利技术提供一种基于属性图模型存储和编码图数据的方法,包括如下步骤:S1、设计构建属性图存储模型:在图存储模型设计上将一张图按照关系类型可以划分为多个子图,并且可以设置子图独立生命周期和存储介质;S2、设计图数据编码方式:将节点数据和关系数据的Id用定长的byte[]表示,关系数据中的关系类型直接编码到数据的Id中,其次,将uniqueValue编码到关系的key中,最后在关系Id设计中,采用方向标示位。本发明专利技术采用新图存储模型和数据编码,有效解决轨迹数据按子图设置存储周期和存储介质,其次采用自定义编码方式,高效压缩数据存储占用的空间和查询的高效性。空间和查询的高效性。空间和查询的高效性。

【技术实现步骤摘要】
一种基于属性图模型存储和编码图数据的方法


[0001]本专利技术属于图数据库
,更具体地说,特别涉及一种基于属性图模型存储和编码图数据的方法。

技术介绍

[0002]随着大数据技术广泛应用及物联网领域的快速发展,海量关联数据的急速增长,图数据库表现出其特有存储和计算能力。有人把关系型数据库比作火车,把图数据库比作大数据时代高铁,它已经是NoSQL中最活跃、发展趋势最明显的数据库。
[0003]图数据库相比传统关系型数据库,善于处理大量、复杂、互联多变的网状数据,因此在社交网络,推荐系统、金融征信系统、反欺诈系统以及知识图谱、人工智能等领域有着广泛的应用。
[0004]图数据库根据是否对存储进行过专门优化分为原生图存储和非原生图存储,无论是哪种图存储,都将要面临因存储模型设计不合理导致的超级节点和轨迹关系存储等相关问题,如:
[0005]1、无法友好处理处理超级节点带来数据入库和热点问题(注释:超级节点指单个节点关联边的数量超过数十万及百万以上),现有存储模型,在出现超级节点后,存储关系数据的链表会很长,在批量数据入库时,会形成热点任务导致任务超时及失败;
[0006]2、对于轨迹类关系数据存储周期和计算不能很好隔离设置,缺乏灵活性,不能按照关系类型自定义存储,只能全局统一存储周期和存储介质(如图1和图2所示),现实中对于轨迹类关系数据具有一定时效性,因此在数据建模时要根据静态关系和动态关系分子图存储,解决存储周期不统一问题和存储介质灵活选择的问题,实现了子图级别的数据隔离;/>[0007]3、双向关系数据现有方案冗余存储(如图3所示),主流图存储模型,在有向图场景中,双向关系存储会按照两条不同图数据进行存储,数据本身上除方向外,其他字段和属性都是冗余存储,浪费一定空间,基于现有存储方案优化存储模型为双向存储只存方向上标记存储,减少占用存储空间。
[0008]于是,有鉴于此,针对现有的结构及缺失予以研究改良,提供一种基于属性图模型存储和编码图数据的方法,以期达到更具有更加实用价值性的目的。

技术实现思路

[0009]为了解决上述技术问题,本专利技术提供一种基于属性图模型存储和编码图数据的方法,由以下具体技术手段所达成:
[0010]一种基于属性图模型存储和编码图数据的方法,包括如下步骤:
[0011]S1、设计构建属性图存储模型:根据图数据类型,将不同的关系数据划分到不同的子图中进行存储,以实现子图级别的数据隔离和数据存储生命周期,在图存储模型设计上将一张图按照关系类型可以划分为多个子图,并且可以设置子图独立生命周期和存储介质;
[0012]S2、设计图数据编码方式:将节点数据和关系数据的Id用定长的byte[]表示,关系数据中的关系类型直接编码到数据的Id中,其次,将uniqueValue编码到关系的key中,最后在关系Id设计中,采用方向标示位。
[0013]进一步的,步骤S1的图存储模型对应的schema中可设置数据的hash位,用于标识各子图的存储起始位。
[0014]进一步的,步骤S1具体为:一张子图对应5个region,hash位为4,则该子图对应的5个region的起始范围会被4位byte标识:[

∞,0200)、[0200,0400)、[0400,0600)、[0600,0800)、[0800,∞)。
[0015]进一步的,在图数据存储时,可根据节点数据的Id,经hash算法,均匀地落入5个region中;在关系数据在入库时,根据起始节点的Id,经hash算法,均匀地落入5个region中。
[0016]进一步的,步骤S2包括节点数据Id编码,具体为将节点数据的主key和主value经过hash生成定长的节点key,长度为hash位+8,hash位即为步骤S1图模型中指定的hash长度,8为long型节点Id对应的byte[]长度。
[0017]进一步的,步骤S2包括还关系数据Id编码,具体为将起始节点、关系类型、方向、终止节点和uniqueValue生成定长的关系key,长度为hash位+29位,并分别对应起始节点id对应的8位byte[]长度、关系类型映射为int值对应的4位byte[]长度、方向对应的1位byte、终止节点Id对应的8位byte[]长度,以及关系uniqueValue对应的8位byte[]长度,uniqueValue用于唯一标识两点对应的一条关系数据,用于识别存储轨迹关系数据。
[0018]进一步的,hash算法具体是用标识各子图数据存储的散列算法。
[0019]与现有技术相比,本专利技术具有如下有益效果:
[0020]本专利技术采用新图存储模型和数据编码,有效解决轨迹数据按子图设置存储周期和存储介质。其次采用自定义编码方式,高效压缩数据存储占用的空间和查询的高效性。
附图说明
[0021]图1是现有技术中主流图存储模型示意图。
[0022]图2是现有技术中主主流图存储模型的轨迹关系存储示意图。
[0023]图3是现有技术中本主流存储模型的双向关系存储示意图。
[0024]图4是本专利技术关系Id存储设计示意图。
[0025]图5是本专利技术基于属性图存储设计示意图。
[0026]图6是本专利技术基于属性图存储编码示意图。
具体实施方式
[0027]下面结合附图和实施例对本专利技术的实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不能用来限制本专利技术的范围。
[0028]实施例1
[0029]本专利技术提供一种基于属性图模型存储和编码图数据的方法,包括如下步骤:
[0030]S1、设计构建属性图存储模型:根据图数据类型,将不同的关系数据划分到不同的子图中进行存储,以实现子图级别的数据隔离和数据存储生命周期,在图存储模型设计上
将一张图按照关系类型可以划分为多个子图,并且可以设置子图独立生命周期和存储介质,同时防止超级节点引起的数据热点和倾斜,图存储模型对应的schema中可设置数据的hash位,用于标识各子图的存储起始位。
[0031]比如其中的一张子图对应5个region,hash位为4,则该子图对应的5个region的起始范围会被4位byte标识:[

∞,0200)、[0200,0400)、[0400,0600)、[0600,0800)、[0800,∞);
[0032]图数据存储时,根据节点数据的Id,经过指定的hash算法,会均匀地落入上述5个region中;类似关系数据在入库时,会根据起始节点的Id,经过指定的hash算法,均匀地落入上述5个region中。hash算法具体是用标识各子图数据存储的散列算法,具体如下:
[0033][0034][0035]S2、设计图数据编码方式:主要解决节点数据和关系数据的Id均可用定长的byte[]表示,关系数据中的关系类型直接编码在数据的Id中,便于数据查询与数据类型区分。其次,通本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于属性图模型存储和编码图数据的方法,其特征在于:包括如下步骤:S1、设计构建属性图存储模型:根据图数据类型,将不同的关系数据划分到不同的子图中进行存储,以实现子图级别的数据隔离和数据存储生命周期,在图存储模型设计上将一张图按照关系类型可以划分为多个子图,并且可以设置子图独立生命周期和存储介质;S2、设计图数据编码方式:将节点数据和关系数据的Id用定长的byte[]表示,关系数据中的关系类型直接编码到数据的Id中,其次,将uniqueValue编码到关系的key中,最后在关系Id设计中,采用方向标示位。2.如权利要求1所述基于属性图模型存储和编码图数据的方法,其特征在于:所述步骤S1的图存储模型对应的schema中可设置数据的hash位,用于标识各子图的存储起始位。3.如权利要求2所述基于属性图模型存储和编码图数据的方法,其特征在于:所述步骤S1具体为:一张子图对应5个region,hash位为4,则该子图对应的5个region的起始范围会被4位byte标识:[

∞,0200)、[0200,0400)、[0400,0600)、[0600,0800)、[0800,∞)。4.如权利要求3所述基于属性图模型存储和编码图数据的方法,其特征在于:在图数据存储时,可根...

【专利技术属性】
技术研发人员:丁军峰王栋平黄晓丹赵智峰夏军生
申请(专利权)人:南京烽火星空通信发展有限公司
类型:发明
国别省市:

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

1