System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种分布式原生图存储数据库的装载方法和装置制造方法及图纸_技高网

一种分布式原生图存储数据库的装载方法和装置制造方法及图纸

技术编号:40662603 阅读:4 留言:0更新日期:2024-03-18 18:55
本发明专利技术涉及数据库领域,特别是涉及一种分布式原生图存储数据库的装载方法和装置。主要包括:估算数据文件中待装载的记录的数量,根据记录的数量为每个类型的记录创建相应大小的哈希索引表;其中,记录的类型包括:顶点数据或边数据;根据记录的关键字获取每个记录的存储站点,从存储站点获取每个记录的行地址,根据获取到的行地址更新哈希索引表;根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中。本发明专利技术可以避免数据装载时行地址的唯一性校验过程,实现了一次取值多次分配,减少了网络交互的次数。

【技术实现步骤摘要】

本专利技术涉及数据库领域,特别是涉及一种分布式原生图存储数据库的装载方法和装置


技术介绍

1、图数据库是非关系型数据库的一种类型,主要应用图形理论来存储实体之间的关系信息。图数据库中的基本概念有三种:顶点一般用来指示一个实体;边用来表示实体之间的关系,多数情况下都使用有向边;属性用于描述顶点或者边的某种信息。图数据库中的建模方式与传统的关系型数据库有所区别,直接基于现实世界的实体和关系建模,没有关系型数据库那么高的抽象层次,更简单易懂。在复杂关系查询能力方面,图数据库适用于分析多层次的复杂关系,更能适应当今海量的数据处理形势。

2、分布式原生图存储数据库,采用的图模型为属性图,即同属性的顶点属于同一个标签表,同属性的边属于同一个关系表,而标签表、关系表必须属于一个图,一个图可以有多个标签、关系。系统中可以存在多个图。每个图的数据逻辑隔离。

3、基于行地址(rowid)的分布式原生图存储数据库,采用原生图数组存储。原生图数组为点边的邻接信息,单独维护,采用rowid索引。rowid由表类型、站点id、数组id拼接组成,并且是全局唯一的id号,用于表示一条记录在图数据系统中的唯一标识。对于顶点数据,只需分配顶点rowid;而对于边数据,需要分配边rowid,同时为了更便捷的进行邻接查询,需要保存起点rowid,终点rowid,针对跨站点的边,还需要保存远端边rowid。

4、在在线装载流程中,每次新增顶点,都涉及到关键字(key)的唯一性校验;而每次新增边,则涉及到key的唯一性校验,根据顶点key查询顶点rowid,根据终点key查询顶点rowid,同时需要在顶点分区、终点分区预留边rowid。由于新增顶点或边会涉及驱动与多个存储服务站点的多次交互,导致在线装载性能较低,且随着顶点或边数量的增加呈现断崖式下跌。

5、鉴于此,如何克服现有技术所存在的缺陷,解决行地址唯一性校验导致的数据库装载效率降低的现象,是本
待解决的问题。


技术实现思路

1、针对现有技术的以上缺陷或改进需求,本专利技术解决了行地址唯一性校验导致的数据库装载效率降低的问题。

2、本专利技术实施例采用如下技术方案:

3、第一方面,本专利技术提供了一种分布式原生图存储数据库的装载方法,具体为:估算数据文件中待装载的记录的数量,根据记录的数量为每个类型的记录创建相应大小的哈希索引表;其中,记录的类型包括:顶点数据或边数据;根据记录的关键字获取每个记录的存储站点,从存储站点获取每个记录的行地址,根据获取到的行地址更新哈希索引表;根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中。

4、优选的,所述估算数据文件中待装载的记录的数量,具体包括:在数据文件中读取指定字节数量的数据,获取已读取到数据中包含的待装载的记录的数量;获取数据文件的总字节数量,根据总字节数量、指定字节数量和已读取到的待装载的记录的数量,估算数据文件中所有待装载的记录的数量。

5、优选的,所述根据记录的关键字获取每个记录的存储站点,具体包括:当记录的类型为顶点数据时,根据顶点数据的关键字进行哈希计算,根据计算得到的哈希值对存储站点的总数取余数,将余数对应的存储站点作为顶点数据的存储站点;当记录的类型为边数据时,根据边数据的起点顶点的关键字进行哈希计算,根据计算得到的哈希值对存储站点的总数取余数,将余数对应的存储站点作为起点顶点的存储站点;根据边数据的终点顶点的关键字进行哈希计算,根据计算得到的哈希值对存储站点的总数取余数,将余数对应的存储站点作为终点顶点的存储站点。

6、优选的,所述从存储站点获取每个记录的行地址,具体包括:向顶点数据的存储站点发送查询行地址的消息,和/或,依次向边数据的起点顶点的存储站点和终点顶点的存储站点发送查询行地址的消息;存储站点查询本地的顶点数组或边数组,以获取当前可用的行地址,并返回获取到的行地址;获取存储站点返回的行地址,并保存获取到的行地址。

7、优选的,所述根据获取到的行地址更新哈希索引表,具体包括:当记录的类型为顶点数据时,将顶点数据的行地址更新为获取到的行地址,在哈希索引表中生成相应的表项,将生成的表项加入顶点类型的哈希索引表中;其中,表项的哈希关键字为顶点数据的关键字,表项的哈希值为顶点数据的行地址;当记录的类型为边数据时,将起点顶点的行地址更新为从起点顶点的存储站点获取的行地址,将更新后的起点顶点写入哈希索引表中起点顶点的关键字对应的表项中;将终点顶点的行地址更新为从终点顶点的存储站点获取的行地址,将更新后的终点数据写入哈希索引表中终点顶点的关键字对应的表项中。

8、优选的,当记录的类型为顶点数据时,所述根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中,具体包括:将哈希索引表中加入的顶点数据发送至相应的存储站点,存储站点生成顶点数据相应的记录,将生成的记录加入本地的顶点数值中顶点数据的行地址对应的位置;其中,记录的出边值为无,入边值为无。

9、优选的,当记录的类型为边数据时,所述根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中,具体包括:从哈希索引表中获取起点顶点的起点行地址和终点顶点的终点行地址,向起点顶点的存储站点申请边数据的第一行地址,向终点顶点的存储站点申请边数据的第二行地址;根据起点行地址、终点行地址、第一行地址和第二行地址,在起点顶点的存储站点和终点顶点的存储站点上,分别生成顶点数据的记录和边数据的记录,将记录加入相应存储站点的本地相应类型的数组中;将边数据的关键字作为哈希表项,加入边数据的哈希索引表中。

10、优选的,当起点顶点和终点顶点的存储站点不同时,所述在起点顶点的存储站点和终点顶点的存储站点上,分别生成顶点数据的记录和边数据的记录,具体包括:起点顶点的存储站点建立边数据的记录,将边数据的记录写入边数组中第一行地址对应的位置;在边数据的记录中,起点的值为起点行地址,终点的值为终点行地址,远端行地址的值为第二行地址;起点顶点的存储站点建立起点顶点的记录,将起点顶点的记录写入顶点数组中起点行地址对应的位置;在起点顶点的记录中,出边的值为第一行地址;终点顶点的存储站点建立边数据的记录,将边数据的记录写入边数组中第二行地址对应的位置;在边数据的记录中,起点的值为起点行地址,终点的值为终点行地址,远端行地址的值为第一行地址;终点顶点的存储站点建立终点顶点的记录,将终点顶点的记录写入顶点数组中终点行地址对应的位置;在终点顶点的记录中,入边的值为第二行地址。

11、优选的,当起点顶点和终点顶点的存储站点相同时,所述在起点顶点的存储站点和终点顶点的存储站点上,分别生成顶点数据的记录和边数据的记录,具体包括:起点顶点的存储站点增加边数据的第一记录,将第一记录写入边数组中第一行地址对应的位置;在边数据的第一记录中,起点的值为起点行地址,终点的值为终点行地址,远端行地址的值为第二行地址;本文档来自技高网...

【技术保护点】

1.一种分布式原生图存储数据库的装载方法,其特征在于,包括:

2.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述估算数据文件中待装载的记录的数量,具体包括:

3.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述根据记录的关键字获取每个记录的存储站点,具体包括:

4.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述从存储站点获取每个记录的行地址,具体包括:

5.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述根据获取到的行地址更新哈希索引表,具体包括:

6.根据权利要求5所述的分布式原生图存储数据库的装载方法,其特征在于,当记录的类型为顶点数据时,所述根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中,具体包括:

7.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,当记录的类型为边数据时,所述根据哈希索引表中的行地址生成相应的记录,根据记录的行地址将记录装载至相应的存储站点中,具体包括:

8.根据权利要求7所述的分布式原生图存储数据库的装载方法,其特征在于,当起点顶点和终点顶点的存储站点不同时,所述在起点顶点的存储站点和终点顶点的存储站点上,分别生成顶点数据的记录和边数据的记录,具体包括:

9.根据权利要求7所述的分布式原生图存储数据库的装载方法,其特征在于,当起点顶点和终点顶点的存储站点相同时,所述在起点顶点的存储站点和终点顶点的存储站点上,分别生成顶点数据的记录和边数据的记录,具体包括:

10.一种分布式原生图存储数据库的装载装置,其特征在于:

...

【技术特征摘要】

1.一种分布式原生图存储数据库的装载方法,其特征在于,包括:

2.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述估算数据文件中待装载的记录的数量,具体包括:

3.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述根据记录的关键字获取每个记录的存储站点,具体包括:

4.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述从存储站点获取每个记录的行地址,具体包括:

5.根据权利要求1所述的分布式原生图存储数据库的装载方法,其特征在于,所述根据获取到的行地址更新哈希索引表,具体包括:

6.根据权利要求5所述的分布式原生图存储数据库的装载方法,其特征在于,当记录的类型为顶点数据时,所述根据哈希索引表中的行地址生成相应的记录,根据记录的行...

【专利技术属性】
技术研发人员:程萍唐俊冷建琴丁先胜张睿王振宇
申请(专利权)人:四川蜀天梦图数据科技有限公司
类型:发明
国别省市:

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

1