文章目录
1. 前置工作
1.1 Ubuntu 20.04上安装
1.2 启动 Nebula Graph 服务
1.3 连接Nebula Graph
1.4 使用常用 nGQL(CRUD 命令)
1.4.1 对Nebula Graph的基本认识
1.4.2 检查 Nebula Graph 集群的机器状态
1.4.3 异步实现创建和修改
1.4.4 创建图空间(数据库),创建点和边类型
2. 相关
2.1 工具介绍
2.2 Nebula Graph数据结构
2.3 Nebula Graph设计架构
2.4 Nebula Studio安装和使用
2.4.1 安装
2.4.2 启动和停止服务
2.4.3 使用
其他
1. 前置工作
基本就是照着下面的中文文档走了一遍,直接去看文档是最好的!!!!
1.1 Ubuntu 20.04上安装
下载地址:https://www.nebula-graph.com.cn/download/
中文文档:✅https://docs.nebula-graph.com.cn/2.6.1/
下载链接形式:
https://oss-cdn.nebula-graph.com.cn/package/release_version/nebula-graph-release_version.ubuntu2004.amd64.deb
我这里下载最新版本,如果要下载历史版本,去这里
https://oss-cdn.nebula-graph.com.cn/package/2.6.1/nebula-graph-2.6.1.ubuntu2004.amd64.deb
# 下载release的2.6.1版本
wget https://oss-cdn.nebula-graph.com.cn/package/2.6.1/nebula-graph-2.6.1.ubuntu2004.amd64.deb
# 安装deb包
sudo dpkg -i nebula-graph-2.6.1.ubuntu2004.amd64.deb
如果不指定安装位置的话,这个nebula默认位于:/usr/local/nebula/

1.2 启动 Nebula Graph 服务
Nebula Graph 使用脚本nebula.service管理服务,包括启动、停止、重启、中止和查看。
nebula.service的默认路径是/usr/local/nebula/scripts,如果修改过安装路径,请使用实际路径。

其实可以打开这个文件看看,就是一个可执行文件,或者直接去github上看,也有,点击这里
#! /bin/bash
function usage { echo "Usage: ${USAGE_INFO}"}
[[ -z ${USAGE_INFO} ]] && USAGE_INFO="${0} [-v] [-c /path/to/config] <start|stop|restart|status|kill> <metad|graphd|storaged|all>"
最重要的几个命令,如下:
# 启动所有服务(一般都是启动所有,也可以单独启动某个服务)
sudo /usr/local/nebula/scripts/nebula.service start all
# 停止所有服务
sudo /usr/local/nebula/scripts/nebula.service stop all
# 查看服务状态
sudo /usr/local/nebula/scripts/nebula.service status all
注意:如果使用kill -9 命令强制终止进程,可能较小概率出现数据丢失。

另外,脚本nebula.service的使用语法如下([ ]中括号是可选,尖括号是必选):
sudo /usr/local/nebula/scripts/nebula.service[-v]
[-c <config_file_path>]
<start|stop|restart|kill|status>
<metad|graphd|storaged|all>


1.3 连接Nebula Graph
就好像neo4j提供了一个neo4j browser来进行命令行的调用;
nebula也提供了一个原生CLI客户端 ——Nebula Console,也是连接了就可以使用。其实使用别的也可以,就好像Navicat可以连接mysql等数据库。
其实就是一个管理工具/CLI控制台命令行工具
直接按照文档的推荐去下载Nebula Console,windows版本的。github的release地址,点击这里
在 Windows 系统中,重命名为nebula-console.exe。
确保Nebula Graph 服务已启动,sudo /usr/local/nebula/scripts/nebula.service start all
确保安装了Nebula Console的机器可以访问安装了Nebula Graph的服务器(比如端口9669等要开放)
使用以下命令
# 基本语法
nebula-console.exe -addr <ip> -port <port> -u <username> -p <password>
[-t 120] [-e "nGQL_statement" | -f filename.nGQL]
# 运行时,应该是类似
nebula-console.exe -addr 127.0.0.1 -port 9669 -u root -p 123456
# 尖括号必选,方括号可选,可以只连接,什么都不执行。

上面的-port,默认是9669,其实就是Nebula Graph Service启动之后,查看状态时[INFO] nebula-graphd(de03025): Running as 30206, Listening on 9669。即nebula-graph这个服务,运行在端口9669。
如果用windows自带的powershell,
切换到nebula-console.exe这个程序所在的文件夹,直接输入nebula-console.exe -addr 127.0.0.1 -port 9669 -u root -p 123456这个命令会报错。。
需要改成./nebula-console.exe -addr 127.0.0.1 -port 9669 -u root -p 123456
连接成功后显示如下

但是是真的丑。
断开连接,直接输入:QUIT或者:EXIT

1.4 使用常用 nGQL(CRUD 命令)
增删改查:增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)
1.4.1 对Nebula Graph的基本认识
一个 Nebula Graph 实例由一个或多个图空间组成。每个图空间都是物理隔离的,用户可以在同一个实例中使用不同的图空间存储不同的数据集。
为了在图空间中插入数据,需要为图数据库定义一个 Schema。Nebula Graph 的 Schema 是由如下几部分组成。简单来说,就是点和点的类型(标签/实体类型),边和边的类型

1.4.2 检查 Nebula Graph 集群的机器状态
首先建议检查机器状态,确保所有的 Storage 服务连接到了 Meta 服务。执行命令SHOW HOSTS查看机器状态。

可以看到,Status这列,是ONLINE表示Storage服务在线。(这里只有一个存储,所以只列出了一项)
1.4.3 异步实现创建和修改
Nebula Graph 中执行如下创建和修改操作,是异步实现的。要在下一个心跳周期之后才能生效;否则访问会报错。
对于常见的六种数据结构:space(空间)、vertex(点)、edge(边)、tag(标签)、edge type(边类型)、properties(属性)
除了创建图(create space),在对点(实体)和边(关系)进行创建/修改/添加索引时,都是异步实现的!
create/alter tag/edge及create tag/edge index
默认心跳周期是 10 秒。修改心跳周期参数heartbeat_interval_secs,请参见配置简介。
简单来说,就是与schema相关的操作就比较耗时,是异步操作。
其他添加数据的操作,这种照样还是实时的,所以也没有很大的必要去修改心跳周期
1.4.4 创建图空间(数据库),创建点和边类型
我没有打算用命令行的方式去创建图。。。累
大佬请参考:https://docs.nebula-graph.com.cn/2.6.1/2.quick-start/4.nebula-graph-crud/#_2,直接命令行上
和我一样的懒人,请转到 2.4 Nebula Studio安装和使用
2. 相关
2.1 工具介绍
参考:企业版和社区版的区别
由于比较穷,所以只能看看社区版有啥工具,🤐🤐🤐。这些东西都可以对标neo4j的,名字都差不多。
Nebula Graph,
大部分特性都支持,企业版的都是集群那种功能
Nebula Studio,
可视化 Schema 管理、可视化数据导入、nGQL 查询控制台
社区版和企业版都有(功能一模一样)
Nebula Explorer
只有企业版有,社区版别想了
Nebula Dashboard
主要是监控资源
社区版只有几个功能,企业版多一些
图算法
社区版和企业版支持的一模一样

另外,关于工具的介绍,也可以看:生态工具概览
2.2 Nebula Graph数据结构
关于Nebula Graph中的数据结构,可以查看这里

和neo4j相比:
Nebula Graph 中没有无向边,只支持有向边。
neo4j中有有向边和无向边,还有双向和单向的分别。
2.3 Nebula Graph设计架构
参考:Nebula Graph 架构总览
Nebula Graph 由三种服务构成:Graph 服务、Meta 服务和 Storage 服务,是一种存储与计算分离的架构。
每个服务都有可执行的二进制文件和对应进程,用户可以使用这些二进制文件在一个或多个计算机上部署 Nebula Graph 集群。如下图

Meta 服务是由 nebula-metad 进程提供的,负责数据管理,例如 Schema 操作、集群管理和用户权限管理等。(元数据管理)
Nebula Graph 采用计算存储分离架构。Graph 服务负责处理计算请求,Storage 服务负责存储数据。它们由不同的进程提供,Graph 服务是由 nebula-graphd 进程提供,Storage 服务是由 nebula-storaged 进程提供。
2.4 Nebula Studio安装和使用
2.4.1 安装
Nebula Studio其实也是安装在linux端,然后提供一个网页接口,去访问这个网页,就可以访问Nebula Studio这个服务。
参考:部署 Studio
安装之前的准备:
Nebula Graph所有的服务都已经打开
linux系统上安装有 v10.12.0 以上的 Node.js
以下两个端口不能被占用(可以使用sudo lsof -i:7001这个命令看一下有没有占用)
7001端口:Studio 提供的 web 服务
8080端口:Nebula-http-gateway,Client 的 HTTP 服务
如果没有安装nodejs,参考:
NodeSource Node.js Binary Distributions
# 直接安装最新版
curl -fsSL https://deb.nodesource.com/setup_17.x
# 这句会直接安装nodejs和npm
sudo apt-get install -y nodejs
# 安好了看看版本
node -v
npm -v
这里存在一个坑,不能安装最新版本,只能是12~14之间的版本。
参考:nebula-graph-studio-3.1.0.x86_64.rpm安装报错 【这个很奇怪,百度搜中文确实比google好一些,哈哈】
# 移除nodejs和npm
sudo apt-get remove nodejs
sudo apt autoremove
参考:Ubuntu系统中安装升级卸载nodejs和npm
重新安装12-14之间的版本
curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
# 查看版本
node -v
满足基本条件后,就可以开始进行安装了
由于是Ubuntu,所以只能通过tar的方式进行安装。
# 默认下载包位于home目录下
wget https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/3.1.0/nebula-graph-studio-3.1.0.x86_64.tar.gz
# 解压到当前文件夹
tar -xvf nebula-graph-studio-3.1.0.x86_64.tar.gz
2.4.2 启动和停止服务
根目录 nebula-graph-studio 下一共有两个安装包:nebula-graph-studio 和 nebula-http-gateway。用户需要在同一台机器上分别部署并启动服务,才能完成 Studio 的部署。

# 部署 nebula-http-gateway 并启动
cd nebula-http-gateway
nohup ./nebula-httpd & # 放到后台运行
# 部署 nebula-graph-studio 并启动
cd ../nebula-graph-studio
npm run start
出现一下提示:

然后就去浏览器访问:ip:7001就可以看到以下内容了,代表配置成功!

停止服务的方式也很简单:
kill $(lsof -t -i :8080) # stop nebula-http-gateway
cd nebula-graph-studio
npm run stop # stop nebula-graph-studio

2.4.3 使用
需要确保已经有space(空间/图数据库),如果没有,可以使用命令行创建一个

这里配置数据库部分,三个字段,其实和使用Nebula Console连接Nebula Graph是一样的。
nebula-console.exe -addr 127.0.0.1 -port 9669 -u root -p 123456
即使 Nebula Graph 数据库与 Studio 部署在同一台机器上,用户也必须在 Host 字段填写这台机器的本机 IP 地址,而不是 127.0.0.1 或者 localhost。
一次连接会话持续 30 分钟。如果超过 30 分钟没有操作,会话即断开,用户需要重新登录数据库。
登陆成功后,就会让你选择图(space),所以必须提前使用命令行建立一个图,然后才可以继续使用Nebula Studio进行操作。
使用限制
Studio 上传数据仅支持上传无表头的 CSV 文件,但是,单个文件大小及保存时间不受限制,而且数据总量以本地存储容量为准。
目前仅支持在 控制台 上以 CSV 格式导出查询结果和 图探索页面 上以 CSV 格式和图片形式导出数据,不支持其他数据备份方式。
除以下内容外,用户可以在 控制台 上执行所有 nGQL 语句:
USE <space_name>:只能在 Space 下拉列表中选择图空间,不能运行这个语句选择图空间。
控制台 上使用 nGQL 语句时,用户可以直接回车换行,不能使用换行符。
剩下都是可视化,自己点点就好了
其他
企业版和社区版的区别:https://nebula-graph.com.cn/pricing/
github项目地址:https://github.com/vesoft-inc/nebula
Nebula博客园官方账号:图数据库 Nebula Graph 的安装部署
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000523/viewspace-3130025/ ,如需转载,请注明出处,否则将追究法律责任。