NebulaGraph教程 — 第二章 概念简单介绍

提示

主要是对官方文档(3.3.0版本) 简介 章节 知识概念进行提炼总结。

1 图

参考文档:

图的构成

图通常由以下几部分组成:

  • 节点,即对象或实体。在本书中,通常简称为点(Vertex)
  • 节点之间的关系,在本书中,通常简称为边(Edge)。通常边是有方向或者无方向的,以表示两个实体之间有持续的关系。
    无向图

为什么要使用图数据库

虽然关系型数据库(MySQL)XML/JSON 等半结构类型的数据库,都可以用来描述图结构的数据模型。

但是,图(数据库)不仅可以描述图结构与存储数据本身,更着眼于处理数据之间的关联(拓扑)关系。具体来说,图(数据库)有这么几个优点:

  • 图是一种更直观、更符合人脑思考直觉的知识表示方式。这使得我们在抽象业务问题时,可以着眼于“业务问题本身”,而不是“如何将问题描述为数据库的某种特定结构(例如表格结构)”。
  • 图更容易展现数据的特征,例如转账的路径、近邻的社区
  • 图查询语言是针对图结构访问设计的,可以更加直观
  • 由于存储引擎和查询引擎可以针对图的结构专门设计,图的遍历(对应 SQL 中的 join)要高效得多
  • 图数据库具有广泛的适用场景。例如数据集成(知识图谱)、个性化推荐、欺诈与威胁检测、风险分析与合规、身份(与控制权)验证、IT 基础设施管理、供应链与物流、社交网络研究等。
  • 根据文献的统计,使用图技术最多的领域,依次是:信息技术(IT)、学术界研究、金融、工业界实验室、政府、医疗健康、国防、制药业、零售与电子商务、交通运输、电信、保险

2 图数据库【略】

3 相关技术【略】

4 什么是 NebulaGraph

参考文档:什么是 NebulaGraph

NebulaGraph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。

什么是图数据库

图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点(Vertex)边(Edge),还可以将属性(Property)附加到点和边上。
什么是图数据库

NebulaGraph 的优势

  • 开源
  • 高性能
  • 易扩展
  • 易开发
  • 高可靠访问控制
  • 生态多样化
  • 兼容 openCypher 查询语言
  • 面向未来硬件,读写平衡
  • 灵活数据建模
  • 广受欢迎

适用场景

  • 欺诈检测
  • 实时推荐
  • 知识图谱
  • 社交网络

5 数据模型

参考文档:数据模型
推荐看 官方文档

※ NebulaGraph 中没有无向边,只支持有向边。

NebulaGraph 数据模型使用 6 种基本的数据模型。

图空间(Space)

图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。

类似于关系数据库(MySQL)的数据表或者NameSpace,因为点的VID在同一图空间中唯一。

点(Vertex)

点用来保存实体对象,特点如下:

  • 点是用点标识符(VID)标识的。VID在同一图空间中唯一。VID 是一个 int64,或者 fixed_string(N)
  • 点可以有 0 到多个 Tag

边(Edge)

边是用来连接点的,表示两个点之间的关系或行为,特点如下:

  • 两点之间可以有多条边。【Rank来区分相同类型边的等级】
  • 边是有方向的,不存在无向边。
  • 四元组 <起点 VID、Edge type、边排序值 (rank)、终点 VID> 用于唯一标识一条边。边没有 EID。
  • 一条边有且仅有一个 Edge type
  • 一条边有且仅有一个 Rank,类型为 int64,默认值为 0

Rank 可以用来区分 Edge type、起始点、目的点都相同的边。该值完全由用户自己指定。
读取时必须自行取得全部的 Rank 值后排序过滤和拼接。
不支持诸如next(), pre(), head(), tail(), max(), min(), lessThan(), moreThan()等函数功能,也不能通过创建索引加速访问或者条件过滤。

标签(Tag)

Tag 由一组事先预定义的属性构成。【组内的属性都是相同类型的】

边类型(Edge type)

Edge type 由一组事先预定义的属性构成。【组内的属性都是相同类型的】

属性(Property)

属性是指以键值对(Key-value pair)形式表示的信息。

※Tag和Edge type的作用

TagEdge type 的作用,类似于关系型数据库中“点表”和“边表”的表结构。

6 路径

参考文档:路径
路径的类型分为三种:walktrailpath

walk

walk类型的路径由有限或无限的边序列构成。遍历时点和边可以重复

GO语句采用的是walk类型路径。

trail

trail类型的路径由有限的边序列构成。遍历时只有点可以重复,边不可以重复。柯尼斯堡七桥问题的路径类型就是trail

trail 类型中,还有cyclecircuit两种特殊的路径类型。

  • cycle 遍历时边不可以重复,起点和终点重复,并且没有其他点重复
  • circuit 遍历时边不可以重复,除起点和终点重复外,可能存在其他点重复

path

path类型的路径由有限的边序列构成。遍历时点和边都不可以重复。

7 点 VID

参考文档:点 VID
推荐看 官方文档

8 服务架构

架构总览

参考文档:NebulaGraph 架构总览
推荐看 官方文档

NebulaGraph 由三种服务构成:Graph 服务、Meta 服务和 Storage 服务,是一种存储与计算分离的架构。
在这里插入图片描述

Meta 服务

参考文档:Meta 服务

NebulaGraph 架构中,Meta 服务是由 nebula-metad 进程提供的,负责数据管理,例如 Schema 操作、集群管理和用户权限管理等。

Graph 服务

参考文档:Graph 服务

Graph 服务负责处理计算请求,包括解析查询语句、校验语句、生成执行计划以及按照执行计划执行四个大步骤,Graph 服务是由 nebula-graphd 进程提供。

Storage 服务

参考文档:Storage 服务

Storage 服务负责存储数据,Storage 服务是由 nebula-storaged 进程提供。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nebula Graph是一款开源的分布式图数据库,它具有高性能、高可靠性、高可扩展性和高灵活性的特点。下面是Nebula Graph的技术栈说明: 1. 图:Nebula Graph采用图数据库的数据模型,即由节点和边构成的图形数据结构。每个节点和边都有一组属性,可以用于描述节点和边的特征和关系。 2. 节点节点是图中的一个基本元素,通常表示实体或对象。每个节点都有一组属性,用于描述节点的特征。 3. 边:边是节点之间的连接,通常表示节点之间的关系。每条边都有一组属性,用于描述边的特征。 4. 属性:节点和边都可以拥有多个属性,属性可以是任何数据类型。 Nebula Graph的图库架构采用分布式存储和计算的方式,可以支持海量数据和高并发访问。它包括三个主要组件:Graph服务、Storage服务和Meta服务。 1. Graph服务:Graph服务是Nebula Graph的查询和分析引擎,它负责解析用户查询请求,执行查询操作,并返回查询结果。Graph服务通常采用分布式计算的方式,可以通过横向扩展来实现高性能和高可伸缩性。 2. Storage服务:Storage服务是Nebula Graph的数据存储引擎,它负责管理和存储图数据。Storage服务通常采用分布式存储的方式,可以通过横向扩展来实现高可靠性和高可扩展性。 3. Meta服务:Meta服务是Nebula Graph的元数据管理引擎,它负责管理图的元数据信息,包括节点和边的类型、属性和索引等。Meta服务通常采用分布式存储的方式,可以通过横向扩展来实现高可靠性和高可扩展性。 Nebula Graph的原理主要包括数据模型、存储引擎、查询引擎和分布式架构等。其数据模型采用图数据库的方式,通过节点和边来描述数据之间的关系。存储引擎采用列式存储的方式,可以提高数据的压缩比和查询性能。查询引擎采用分布式计算的方式,可以通过横向扩展来实现高性能和高可伸缩性。分布式架构采用Master-Slave和Paxos算法来实现高可用性和数据一致性。 总之,Nebula Graph是一款高性能、高可靠性、高可扩展性和高灵活性的分布式图数据库,具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值