官方文档
一. 安装NebulaGraph
1.1 通过 Git 克隆nebula-docker-compose仓库的3.8.0分支到主机
mkdir -p /Users/wanfei/docker-compose/nebula && cd /Users/wanfei/docker-compose/nebula
git clone -b release-3.8 https://github.com/vesoft-inc/nebula-docker-compose.git
# 切换至目录nebula-docker-compose
cd nebula-docker-compose/
1.2 部署
docker-compose up -d
1.3 卸载
docker-compose down
1.4 查看
wanfei@mofeideMacBook-Pro nebula-docker-compose % docker ps | grep nebula
70137f541760 vesoft/nebula-console:v3.6.0 "sh -c 'for i in `se…" 3 minutes ago Up 3 minutes nebula-docker-compose-console-1
3f29aa421def vesoft/nebula-graphd:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:9669->9669/tcp, 0.0.0.0:63886->19669/tcp, 0.0.0.0:63887->19670/tcp nebula-docker-compose-graphd-1
ef5190a9df6c vesoft/nebula-graphd:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:63885->9669/tcp, 0.0.0.0:63883->19669/tcp, 0.0.0.0:63884->19670/tcp nebula-docker-compose-graphd1-1
7640e2812514 vesoft/nebula-graphd:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:63888->9669/tcp, 0.0.0.0:63889->19669/tcp, 0.0.0.0:63890->19670/tcp nebula-docker-compose-graphd2-1
fc31d6efbdab vesoft/nebula-storaged:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9777-9778/tcp, 9780/tcp, 0.0.0.0:63873->9779/tcp, 0.0.0.0:63874->19779/tcp, 0.0.0.0:63875->19780/tcp nebula-docker-compose-storaged2-1
c7fe852c181a vesoft/nebula-storaged:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9777-9778/tcp, 9780/tcp, 0.0.0.0:63871->9779/tcp, 0.0.0.0:63872->19779/tcp, 0.0.0.0:63870->19780/tcp nebula-docker-compose-storaged0-1
04356a7f0f43 vesoft/nebula-storaged:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9777-9778/tcp, 9780/tcp, 0.0.0.0:63878->9779/tcp, 0.0.0.0:63876->19779/tcp, 0.0.0.0:63877->19780/tcp nebula-docker-compose-storaged1-1
383136cd274e vesoft/nebula-metad:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9560/tcp, 0.0.0.0:63866->9559/tcp, 0.0.0.0:63864->19559/tcp, 0.0.0.0:63865->19560/tcp nebula-docker-compose-metad2-1
6385839bf6ba vesoft/nebula-metad:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9560/tcp, 0.0.0.0:63861->9559/tcp, 0.0.0.0:63859->19559/tcp, 0.0.0.0:63860->19560/tcp nebula-docker-compose-metad1-1
b70e6755bb45 vesoft/nebula-metad:v3.8.0 "/usr/local/nebula/b…" 3 minutes ago Up 3 minutes (healthy) 9560/tcp, 0.0.0.0:63868->9559/tcp, 0.0.0.0:63869->19559/tcp, 0.0.0.0:63867->19560/tcp nebula-docker-compose-metad0-1
二. 安装NebulaGraph Studio
Studio 可以方便管理 NebulaGraph 数据,具备以下功能:
- 使用 Schema 管理功能,用户可以使用图形界面完成图空间、Tag(标签)、Edge Type(边类型)、索引的创建,查看图空间的统计数据,快速上手 NebulaGraph 。
- 使用导入功能,通过简单的配置,用户即能批量导入点和边数据,并能实时查看数据导入日志。
- 使用控制台功能,用户可以使用 nGQL 语句创建 Schema,并对数据执行增删改查操作。
2.1 下载 Studio 的部署配置文件
cd ..
curl https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/3.10.0/nebula-graph-studio-3.10.0.tar.gz -o nebula-graph-studio-3.10.0.tar.gz
2.2 创建nebula-graph-studio-3.10.0目录,并将安装包解压至目录中
mkdir nebula-graph-studio-3.10.0 && tar -zxvf nebula-graph-studio-3.10.0.tar.gz -C nebula-graph-studio-3.10.0
2.3 解压后进入 nebula-graph-studio-3.10.0 目录
cd nebula-graph-studio-3.10.0
2.4 部署Studio
docker-compose up -d
当屏幕返回以下信息时,表示 Docker 版 Studio 已经成功启动
Creating docker_web_1 ... done
2.5 启动成功后,在浏览器地址栏输入 http://ip:7001
本地部署可访问 http://localhost:7001
也可以访问 http://10.0.89.32:7001
IP:10.0.89.32
账号:root
密码:nebula
2.6 演示
2.6.1 规划 Schema
2.6.2 创建图空间basketballplayer
操作图空间文档
创建成功
2.6.3 创建 Schema
操作Tag 文档
操作 Edge type 文档
操作索引 文档
查看 Schema 文档
使用控制台创建 Schema
输入
// 创建 Tag player,带有 2 个属性
CREATE TAG player(name string, age int);
// 创建 Tag team,带有 1 个属性
CREATE TAG team(name string);
// 创建 Edge type follow,带有 1 个属性
CREATE EDGE follow(degree int);
// 创建 Edge type serve,带有 2 个属性
CREATE EDGE serve(start_year int, end_year int);
点击右侧运行
至此,用户已经完成了 Schema
创建。用户可以运行以下语句查看 Tag
与 Edge type
的定义是否正确、完整
// 列出当前图空间中所有 Tag
SHOW TAGS;
// 列出当前图空间中所有 Edge type
SHOW EDGES;
// 查看每种 Tag 和 Edge type 的结构是否正确
DESCRIBE TAG player;
DESCRIBE TAG team;
DESCRIBE EDGE follow;
DESCRIBE EDGE serve;
2.6.4 导入数据
新建数据源
选择下载的示例文件(解压后)
点击确认,上传成功,数据源管理可以查看上传文件
创建导入任务
点击导入
输入密码确认
导入完成
2.6.5 查看
统计
使用命令
SHOW STATS;
查看Schema
查所有的数据
因为数据量太小了,所以可以把所有数据在
NebulaGraph Explorer
中渲染出来
命令
MATCH ()-[e]->() RETURN e LIMIT 10000
点击可视化
2.6.6 更多示例下载
下载完成可以查看 Demo介绍
,也可以去控制台操作查看
三. NebulaGraph介绍
3.1 数据模型
NebulaGraph 数据模型使用 6 种基本的数据模型:
图空间(Space):
图空间用于隔离不同团队或者项目的数据。不同图空间的数据是相互隔离的,可以指定不同的存储副本数、权限、分片等。
点(Vertex):点用来保存实体对象,特点如下:
- 点是用点标识符(VID)标识的。VID在同一图空间中唯一。VID 是一个 int64,或者 fixed_string(N)。
- 点可以有 0 到多个 Tag。
NebulaGraph 2.x 及以下版本中的点必须包含至少一个 Tag。
点代表图中的实体,可以带有各种属性。在 Nebula 中,每个点都有一个唯一的标识符,称为 Vertex ID。点用于表达现实世界中的实体。
边(Edge)
边是用来连接点的,表示两个点之间的关系或行为,特点如下:
- 两点之间可以有多条边。
- 边是有方向的,不存在无向边。
- 四元组 <起点 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 的作用,类似于关系型数据库中“点表”和“边表”的表结构。
属性是与点和边相关的数据。每个点和边都可以拥有零个或多个属性,用于描述它们的特征、信息或状态。例如,人的点可以有姓名、年龄、性别等属性。