美文网首页
【知识图谱】Nebula Graph

【知识图谱】Nebula Graph

作者: 宅家学算法 | 来源:发表于2021-11-11 16:42 被阅读0次

1.后端存储

  Nebula Graph使用自行开发的KVStore,使用RocksDB作为本地存储引擎,Nebula Graph的存储分为Meta和Storage两部分。
  Meta(配置详情)负责存储用户账号和权限信息、存储存储分片的位置信息、存储图空间的元数据(在官方文档中图空间和Schema是分开描述的)、负责存储Schema的相关信息、TTL、作业等。

元数据存储路径meta
  Storage(配置详情)负责存储图的主要数据,主要是点和边,将点和边的信息存储为key,同时将点和边的属性信息存储在value中。(分片策略采用静态 Hash的方式)
数据存储sortage

2.模式管理

2.1 Schema

  一个Nebula Graph实例由一个或多个图空间(可以常规理解为一个数据库)组成。每个图空间都是物理隔离的,用户可以在同一个实例中使用不同的图空间存储不同的数据集。为了在图空间中插入数据,需要为图数据库定义一个Schema(从可视化界面操作来看,一个图空间只可以定一个schema)。


图空间,在可视化页面的Schema板块和图空间是一一对应

  Nebula Graph的Schema是由如下几部分组成


Schema内容

2.2 点/边

  Nebula Graph中的数据模型在Schema(Space图空间)之下还有点、边、标签、边类型、属性。标签预先定义点的类型、属性,边类型预先定义边的类型和属性。
  标签Tag可以理解为概念模型中的本体,比如人;点可以对比实体,理解为具备属性信息的实例化后的本体。在Tag中定义一个“player”,具备name属性,则导入“palyer001, David”的数据就是点。同理理解边类型和边。

标签/点
边类型/边

2.3 模式的可视化编辑

  提供属性编辑功能,但是在已入库数据的情况下,所修改的属性不会与已入库数据保持一致。比如player节点的name属性入库的数据是string类型,在入库数据后修改为int型成功,但已入库数据仍为string类型,没有做一致性检查。


编辑属性类型不影响已入库数据

  提供属性删除功能,但是在已入库数据的情况下,删除属性的同时并不会删除已入库的该属性的数据。比如player节点的age属性入库的数据的前提下,删除age属性,通过查询可视化无法查询出该属性;然后再新增age属性,不导入数据,重新查询,数据又可以查出来了,可见删除属性并不影响该属性已入库的数据。

3. Studio

  • 提供简单的路径检索算法交互,在Nebula Graph中将路径分为walk(无限路径,即改路径可以形成一个圆)、trail(节点可以重复但边不可以重复的有限路径)、path(节点和边都不可以重复的路径)三类。


    FIND ALL PATH FROM "palyer100" TO "team204" over *
  • 提供点击节点对该节点进行拓展的交互


    可视化的图拓展
  • 控制台,编写nGQL,支持大部分openCypher 9图查询语法(不支持修改和控制语法)

相关文章

网友评论

      本文标题:【知识图谱】Nebula Graph

      本文链接:https://www.haomeiwen.com/subject/npcgzltx.html