关于图数据库的两个比较好的开源项目,nebula-graph 和 dgraph ,一个是C++写的,一个是golang写的

46 篇文章 0 订阅
5 篇文章 0 订阅

前言


本文的原文连接是:
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

博主地址是:https://blog.csdn.net/freewebsys

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值