前言
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/111599765
未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys
1,关于图数据库
使用的文章:
参考文章:
https://my.oschina.net/u/4169309/blog/4833649
研究了下这两个图数据库。
2,关于nebula-graph
官网地址:
https://nebula-graph.com.cn/
是一个中国的企业开源的。apache 2.0 协议。
github地址:
https://github.com/vesoft-inc/nebula
docker hub地址:
https://hub.docker.com/r/vesoft/nebula-graphd
nebula图数据库文档相当的丰富,同时还支持类似于mysql的命令行。
可以各种操作。
https://docs.nebula-graph.com.cn/manual-CN/1.overview/2.quick-start/1.get-started/
Nebula Graph 使用
https://space.bilibili.com/472621355/channel/detail?cid=86880
docker pull vesoft/nebula-graphd:latest
docker images | grep nebula
vesoft/nebula-graphd latest 729508bff4bd 3 months ago 282MB
docker run -itd -p 3699:3699 --name nebula vesoft/nebula-graphd:latest
docker run -it vesoft/nebula-console:v1.2.0 -addr xx.xx.0.1 -port 3699 -u root -p root
(root@nebula) [(none)]> SHOW HOSTS;
[ERROR (-8)]: RPC failure in MetaClient: N6apache6thrift9transport19TTransportExceptionE: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused): Connection refused
Thu Dec 24 14:42:29 2020
(root@nebula) [(none)]> CREATE SPACE nba (partition_num=1, replica_factor=1);
[ERROR (-8)]: Create space `nba' failed: RPC failure in MetaClient: N6apache6thrift9transport19TTransportExceptionE: AsyncSocketException: connect failed, type = Socket not open, errno = 111 (Connection refused): Connection refused.
Thu Dec 24 14:43:03 2020
本地端口是3699,需要使用docker-compose 启动集群服务才可以。
但是可以用console连接到nebula上面了。
https://docs.nebula-graph.com.cn/manual-CN/1.overview/2.quick-start/1.get-started/
3,docker-compose启动
代码:
https://github.com/vesoft-inc/nebula-docker-compose
启动之后就可以使用 console 的命令行了:
ip查看:
docker inspect nebula-docker-compose_graphd0_1 | grep IPAddress
docker run -it vesoft/nebula-console:v1.2.0 -addr xxx.xxx.xx.xx -port 3699 -u root -p root
xxx.xxx.xx.xx 是宿主机IP才可以。
使用命令行执行:
SHOW HOSTS;
=============================================================================================
| Ip | Port | Status | Leader count | Leader distribution | Partition distribution |
=============================================================================================
| 172.28.2.1 | 44500 | online | 0 | No valid partition | No valid partition |
---------------------------------------------------------------------------------------------
| 172.28.2.2 | 44500 | online | 0 | No valid partition | No valid partition |
---------------------------------------------------------------------------------------------
| 172.28.2.3 | 44500 | online | 0 | No valid partition | No valid partition |
---------------------------------------------------------------------------------------------
| Total | | | 0 | | |
---------------------------------------------------------------------------------------------
Got 4 rows (Time spent: 21.894/27.132 ms)
Thu Dec 24 14:56:38 2020
(root@nebula) [(none)]> CREATE SPACE nba (partition_num=1, replica_factor=1);
Execution succeeded (Time spent: 23.469/26.797 ms)
Thu Dec 24 14:57:04 2020
(root@nebula) [(none)]> SHOW HOSTS;
=============================================================================================
| Ip | Port | Status | Leader count | Leader distribution | Partition distribution |
=============================================================================================
| 172.28.2.1 | 44500 | online | 0 | No valid partition | No valid partition |
---------------------------------------------------------------------------------------------
| 172.28.2.2 | 44500 | online | 0 | | nba: 1 |
---------------------------------------------------------------------------------------------
| 172.28.2.3 | 44500 | online | 0 | No valid partition | No valid partition |
---------------------------------------------------------------------------------------------
| Total | | | 0 | | nba: 1 |
---------------------------------------------------------------------------------------------
Got 4 rows (Time spent: 1.658/4.974 ms)
Thu Dec 24 14:57:12 2020
(root@nebula) [(none)]> USE nba;
Execution succeeded (Time spent: 11.215/14.906 ms)
Thu Dec 24 14:57:23 2020
(root@nebula) [nba]> SHOW SPACES;
========
| Name |
========
| nba |
--------
Got 1 rows (Time spent: 1.525/7.606 ms)
Thu Dec 24 14:57:30 2020
(root@nebula) [nba]> CREATE TAG player(name string, age int);
Execution succeeded (Time spent: 26.199/30.046 ms)
Thu Dec 24 14:57:43 2020
(root@nebula) [nba]> CREATE TAG team(name string);
Execution succeeded (Time spent: 24.661/28.844 ms)
Thu Dec 24 14:57:50 2020
(root@nebula) [nba]> SHOW TAGS;
===============
| ID | Name |
===============
| 2 | player |
---------------
| 3 | team |
---------------
Got 2 rows (Time spent: 1.074/4.102 ms)
Thu Dec 24 14:58:00 2020
(root@nebula) [nba]> SHOW EDGES;
Empty set (Time spent: 1.336/4.656 ms)
Thu Dec 24 14:58:08 2020
(root@nebula) [nba]> DESCRIBE TAG player;
==================
| Field | Type |
==================
| name | string |
------------------
| age | int |
------------------
Got 2 rows (Time spent: 5.171/9.324 ms)
Thu Dec 24 14:58:19 2020
(root@nebula) [nba]> INSERT VERTEX player(name, age) VALUES 100:("Tim Duncan", 42);
Execution succeeded (Time spent: 12.409/16.585 ms)
Thu Dec 24 14:58:35 2020
(root@nebula) [nba]> INSERT VERTEX player(name, age) VALUES 101:("Tony Parker", 36);
Execution succeeded (Time spent: 4.928/7.612 ms)
Thu Dec 24 14:58:41 2020
(root@nebula) [nba]> INSERT VERTEX player(name, age) VALUES 100:("Tim Duncan", 42), \
-> 101:("Tony Parker", 36), 102:("LaMarcus Aldridge", 33);
Execution succeeded (Time spent: 3.451/7.338 ms)
Thu Dec 24 14:59:04 2020
(root@nebula) [nba]> FETCH PROP ON player 100;
=======================================
| VertexID | player.name | player.age |
=======================================
| 100 | Tim Duncan | 42 |
---------------------------------------
Got 1 rows (Time spent: 5.038/7.898 ms)
Thu Dec 24 14:59:15 2020
4,总结
在使用上面nebula还是非常给力的,经过了很多公司的实际测试。
同时在本地跑起来需要使用docker-compose。启动之后直接使用。
同时配合使用console 可以很方便使用 查询语句,和 mysql 命令行比较像呢。要是能执行 jdbc 也不错呢。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/111599765