图数据库初探——6. Nebula Graph安装和简单使用
参考:用 NetworkX + Gephi + Nebula Graph 分析<权力的游戏>人物关系(上)用 NetworkX + Gephi + Nebula Graph 分析<权力的游戏>人物关系(下)使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink...
文章目录
1. 前置工作
基本就是照着下面的中文文档走了一遍,直接去看文档是最好的!!!!
1.1 Ubuntu 20.04上安装
下载地址:https://www.nebula-graph.com.cn/download/
中文文档:✅https://docs.nebula-graph.com.cn/2.6.1/
下载链接形式:
我这里下载最新版本,如果要下载历史版本,去这里
# 下载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 由三种服务构成: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,参考:
# 直接安装最新版
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 的安装部署
参考:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)