【技术实现步骤摘要】
一种图数据存储方法和装置
[0001]本专利技术涉及数据库
,特别是涉及一种图数据存储方法和装置。
技术介绍
[0002]图是由若干点及连接点的边所构成的一种数据结构。图因其对事物之间的关系的直观表达方式以及易于扩展的结构,在计算机和人工智能领域得到越来越普遍的应用。
[0003]存储图这种数据结构的方法有很多,总体上可分为原生图存储和非原生图存储两大类。原生图存储通过在内部维护原生的邻接关系能够很好地解决大量实体之间的关联性分析,在处理实体间的关系时具有很好的性能。而非原生图存储多采用基于KV键值对的数据结构来表示顶点之间的邻接关系,一个KV键值对一般只能表示一层邻接关系,在进行多层邻接查询时需要频繁访问KV结构,在一些计算与存储分离的图存储架构中,需要多次网络通信,查询性能较低,无法体现出图存储在关系挖掘中的优势。
[0004]常见的原生图存储方式主要有邻接矩阵和邻接表。邻接矩阵用一个一维数组存储图中所有的顶点,用一个二维数组存储图中各顶点之间的邻接关系(边),两个点之间即使不存在边,也要在二维数组中占据一个存储位置,其空间复杂度是O(V2)。邻接表也是用一个一维数组存储图中所有的顶点,但存储边时则是为每个顶点建立一个单链表,记录了该顶点的所有的边,其空间复杂度是O(V+E)。比较两种存储方式,邻接矩阵的优点是比较适合稠密图的存储,很容易确定图中任意两个顶点之间是否有边相连,插入、删除边也很简单,但在存储稀疏图时空间浪费很大,而且一般情况下无法存储多重边,且判断一个顶点有多少关联边时需要扫描 ...
【技术保护点】
【技术特征摘要】
1.一种图数据存储方法,其特征在于,数据存储结构包括多个分区数据表、邻接表、属性索引表和顶点索引表,所述存储方法包括:将数据记录存储到对应的分区数据表中;其中,基于关系和标签,所述多个分区数据表还被划分为关系分区数据表和标签分区数据表,基于顶点和边的不同,所述数据记录还被划分为顶点记录和边记录,每一个关系对应一个关系分区数据表,用于存储具有对应关系的边记录,每一个标签对应一个标签分区数据表,用于存储具有对应标签的顶点记录,所述顶点记录包括顶点ID和对应顶点的所有属性,所述边记录包括边ID、对应边的起始顶点的顶点ID、对应边的终止顶点的顶点ID和对应边的所有属性;将属性索引记录存储到属性索引表中,以便于通过属性查找到对应的数据记录;其中,所述属性索引记录包括属性值和对应数据记录的ROWID;将图拓扑数据存储到邻接表中,以便于通过边或顶点查找到对应的数据记录;其中,所述图拓扑数据包括边ID、顶点ID、边与顶点之间的拓扑结构以及对应数据记录的ROWID。2.根据权利要求1所述的图数据存储方法,其特征在于,所述将数据记录存储到对应的分区数据表中,具体包括:以每个数据文件作为对应分区数据表中的一个分区,将每个数据文件划分为多个页,将数据记录写入相应页;其中,每个分区数据表包含一个或多个分区;并根据所述数据记录所在分区的文件号、所述数据记录所在页的页号和所述数据记录在所在页内的相对偏移,生成对应的ROWID,以用于确定所述数据记录的所在位置;在分区数据表的第一分区中存储各分区的分区索引数据,以便于访问分区数据表中的每个分区;其中,每个分区的分区索引数据至少包括分区的尾页地址和分区的数据记录数量。3.根据权利要求2所述的图数据存储方法,其特征在于,所述方法还包括数据记录的插入操作,具体包括:根据数据记录所对应的标签或关系,找到对应的目标分区数据表;根据分区索引数据,找到目标分区数据表中数据记录数量最少且未上锁的目标分区,访问所述目标分区的尾页;根据所述分区索引数据中的尾页地址,判断所述尾页的剩余存储空间是否充足,若所述尾页的存储空间充足,则对所述目标分区的分区锁进行上锁,将所述数据记录写入至所述尾页,并更新所述目标分区的分区索引数据,在所述数据写入成功后,对所述目标分区的分区锁进行解锁;若所述尾页的剩余存储空间不足,则在所述尾页后,为所述目标分区分配一个新页,以所述新页作为所述目标分区的新尾页,对所述目标分区的分区锁进行上锁,将所述数据记录写入至所述新尾页,在所述数据写入成功后,对所述目标分区的分区锁进行解锁,并更新所述目标分区的分区索引数据。4.根据权利要求2所述的图数据存储方法,其特征在于,所述方法还包括数据记录的更新操作,具体包括:根据旧数据记录的ROWID,确定所述旧数据记录的所在分区和存储位置;将所述旧数据记录的数据大小与新数据记录的数据大小进行比较,若所述新数据记录的数据大小不大于旧数据记录的数据大小,则将所述新数据记录直接覆盖写入旧记录的存
储位置;若所述新数据记录的数据大小大于旧数据记录的数据大小,则以数据插入的形式,将所述新数据记录写入至所述分区的尾页中,并将指向所述新数据记录的指针覆盖写入旧数据记录的存储位置。5.根据权利要求2所述的图数据存储方法,其特征在于,所述方法还包括数据记录...
【专利技术属性】
技术研发人员:吕继云,李鹏,张睿,王振宇,
申请(专利权)人:四川蜀天梦图数据科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。