git clone https://github.com/vesoft-inc/nebula.git
cd nebula/third-party
脚本全安装一遍
mkdir build
cd build
cmake ..
make
make install
/usr/local/nebula/scripts/nebula.service start all
/usr/local/nebula/scripts/nebula.service status all
客户端要单独装:
git clone https://github.com/vesoft-inc/nebula-console
yum install go
go version
make
--local_ip --meta_server_addrs 都改成本地ip
--local_ip=9.134.89.156
--meta_server_addrs=9.134.89.156:9559
存储文件在data下
配置在storage.conf 的 data_path
./nebula-console -addr 9.134.89.156 -port 9669 -u root -p nebula
show HOSTS;
ADD HOSTS 9.134.89.156:9779
https://discuss.nebula-graph.com.cn/t/topic/7788
show hosts graph
show hosts meta
show hosts
create space: https://docs.nebula-graph.com.cn/master/3.ngql-guide/9.space-statements/1.create-space/
CREATE SPACE IF NOT EXISTS my_space_1 (vid_type=FIXED_STRING(30));
SHOW SPACES;
##########
执行语句:
use my_space_1
show tags;
CREATE TAG IF NOT EXISTS player(name string, age int);
CREATE TAG IF NOT EXISTS no_property();
CREATE TAG IF NOT EXISTS player_with_default(name string, age int DEFAULT 20);
CREATE TAG IF NOT EXISTS woman(name string, age int, \
married bool, salary double, create_time timestamp) \
TTL_DURATION = 100, TTL_COL = "create_time";
drop tag no_property;
创建边:https://docs.nebula-graph.com.cn/3.0.1/3.ngql-guide/11.edge-type-statements/1.create-edge/
CREATE EDGE IF NOT EXISTS follow(degree int);
show edges;
CREATE EDGE IF NOT EXISTS no_property();
CREATE EDGE IF NOT EXISTS follow_with_default(degree int DEFAULT 20);
CREATE EDGE IF NOT EXISTS e1(p1 string, p2 int, p3 timestamp) \
TTL_DURATION = 100, TTL_COL = "p2";
查询:
match(n:player) return n limit 2
desc tag player;
insert vertex player(name ,age) values "1":("haha",39)
insert vertex player(name ,age) values "2":("hehe",32)
delete vertex "1";
DELETE VERTEX "1" WITH EDGE;
##GO FROM "player100" OVER serve WHERE properties(edge).start_year == "2021" YIELD dst(edge) AS id | DELETE VERTEX $-.id;
边操作:
CREATE EDGE IF NOT EXISTS e1();
INSERT EDGE e1 () VALUES "10"->"11":();
desc edge e1;
CREATE EDGE IF NOT EXISTS e2 (name string, age int);
# 多次插入属性值。
INSERT EDGE e2 (name, age) VALUES "11"->"13":("n1", 12);
INSERT EDGE e2 (name, age) VALUES "11"->"13":("n1", 13);
INSERT EDGE e2 (name, age) VALUES "11"->"13":("n1", 14);
match(n:e2) return n limit 2
match 语句
https://docs.nebula-graph.com.cn/3.0.1/3.ngql-guide/7.general-query-statements/2.match/
CREATE TAG INDEX IF NOT EXISTS name ON player(name(20))
REBUILD TAG INDEX name;
CREATE TAG INDEX IF NOT EXISTS actorname ON actor(name(20))
REBUILD TAG INDEX actorname;
MATCH (v:player) \
WHERE v.player.name == "haha" \
RETURN v;
CREATE TAG actor (name string, age int);
INSERT VERTEX actor(name, age) VALUES "player100":("Tim Duncan", 42);
INSERT VERTEX actor(name, age) VALUES "1":("haha", 42);
insert vertex player(name ,age) values "1":("haha",39)
insert vertex player(name ,age) values "2":("hehe",32)
insert vertex player(name ,age) values "3":("Tim Duncan",32)
INSERT EDGE e2 (name, age) VALUES "1"->"2":("n1", 12);
INSERT EDGE e2 (name, age) VALUES "3"->"2":("n3", 32);
INSERT EDGE e1 () VALUES "1"->"3":();
INSERT EDGE e1 () VALUES "2"->"3":();
INSERT EDGE e1 () VALUES "3"->"2":();
UPDATE VERTEX ON player "1" SET name = "Tim Duncan"
UPDATE VERTEX ON player "3" SET name = "haohao"
MATCH (v:player:actor) \
RETURN v \
LIMIT 10;
MATCH (v:actor) RETURN v LIMIT 10;
MATCH (v:player{name:"haha"}) RETURN v;
match (v:player) return v;
MATCH (v:player) \
WHERE v.player.name == "haha" \
RETURN v;
MATCH (v) WHERE id(v) == '1' RETURN v;
MATCH (v:player) RETURN v;
MATCH (v:player { name: 'Tim Duncan' })--(v2) \
WHERE id(v2) IN ["1", "2"] \
RETURN v2;
MATCH (v:player{name:"hehe"})--(v2:player) RETURN v2.player.name AS Name;
MATCH (v:player{name:"Tim Duncan"})-->(v2:player) RETURN v2.player.name AS Name;
MATCH (v:player{name:"Tim Duncan"})--(v2) \
RETURN \
CASE WHEN v2.team.name IS NOT NULL \
THEN v2.team.name \
WHEN v2.player.name IS NOT NULL \
THEN v2.player.name END AS Name;
MATCH (v:player{name:"Tim Duncan"})-->()<--(v3) \
RETURN v3.player.name AS Name;
########匹配路径
MATCH p=(v:player{name:"Tim Duncan"})-->(v2) \
RETURN p;
MATCH p=(v:player{name:"haohao"})-->(v2) RETURN p;
###### 匹配边:
MATCH ()<-[e]-() RETURN e LIMIT 3;
MATCH ()<-[e]-() RETURN e LIMIT 5;
MATCH ()-[e:e2]->() RETURN e limit 3;
######## 匹配边的属性:
MATCH (v:player{name:"haohao"})-[e:e2{age:32}]->(v2) RETURN e;
###### 查多个边
MATCH (v:player{name:"Tim Duncan"})-[e:e2|:e1]->(v2) RETURN e;
###### 匹配多条边
MATCH (v:player{name:"Tim Duncan"})-[]->(v2)<-[]-(v3) RETURN v2, v3;
MATCH (v:player{name:"Tim Duncan"})-[p1]->(v2)<-[p2:e2]-(v3) RETURN v2,p1,p2,v3;
###### 匹配定长路径
一跳
MATCH p=(v:player{name:"Tim Duncan"})-[e:e2*1]->(v2) RETURN DISTINCT v2 AS Friends;
两跳
MATCH p=(v:player{name:"Tim Duncan"})-[e:e2*2]-(v2) RETURN DISTINCT v2 AS Friends;
如果hop为 0,模式会匹配路径上的起始点。
MATCH (v:player{name:"Tim Duncan"}) -[*0]-> (v2) RETURN v2;
MATCH p=(v:player{name:"Tim Duncan"})-[e:e1*2]->(v2) RETURN v2 AS Friends;
MATCH p=(v:player{name:"Tim Duncan"})-[e:e1]-()-[e:e2]->(v2) RETURN v2 AS Friends;
MATCH p=(v:player{name:"Tim Duncan"})-[e:e1]-()-[h:e2]->(v2) RETURN v2 AS Friends;
用户可以使用DISTINCT关键字聚合重复结果
MATCH p=(v:player{name:"Tim Duncan"})-[e:e1*1..3]->(v2:player) RETURN DISTINCT v2 AS Friends, count(v2);
MATCH p=(v:player{name:"Tim Duncan"})-[e:e1*1..3]->(v2:player) RETURN v2 AS Friends;
匹配多个 Edge type 的变长路径:
MATCH p=(v:player{name:"Tim Duncan"})-[e:e2|e1*2]->(v2) RETURN v2
MATCH p=(v:player{name:"Tim Duncan"})-[e:e2|e1*2]->(v2) RETURN DISTINCT v2
匹配多个模式
MATCH (v1:player{name:"Tim Duncan"}), (v2:actor{name:"haha"}) RETURN v1,v2
多MATCH检索:
####### lookup
MATCH (v:player) WHERE v.player.name == "haohao" RETURN v;
LOOKUP ON player WHERE player.name == "haohao" YIELD id(vertex);
LOOKUP ON player WHERE player.age > 30 YIELD id(vertex);
############
分享到:
相关推荐
3-3 Nebula Graph v3 ——开源分布式高性能图数据库
Nebula Graph 源码解读系列-Vol.01 Nebula Graph技术概述.docx
图数据库nebula的前端展示界面
基于Nebula Graph和Springboot的数据库ORM框架NGBATIS设计源码,该项目包含...该项目是一个基于Nebula Graph和Springboot的数据库ORM框架NGBATIS设计源码,可能涉及用户界面设计、应用逻辑实现、数据存储等多个方面。
Jepsen 测试框架在图数据库 Nebula Graph 中的技术实践.docx
Nebula Graph 源码解读系列-Vol.03 Planner的实技术现.docx
星云图(Nebula Graph)是一个开放源代码图数据库,能够托管具有数十亿个顶点(节点)和数万亿条边(具有几毫秒的延迟)的超大规模图。 它提供了企业级的高性能,可以将可以想象得到的最复杂的数据集简化为有意义和...
nebula-graph new
nebula-graph-3.2.0.el7.x86_64 安装包,包含客户端console
图数据库nebula官方可视化studio的2.0版本docker-compose安装文件
本文介绍如何使用 Docker Swarm 来部署 Nebula Graph 集群。 二、nebula集群搭建 2.1 环境准备 机器准备 ip 内存(Gb) cpu(核数) 192.168.1.166 16 4 192.168.1.167 16 4 192.168.1...
图数据库nebula官方2.0.0版本的rpm安装包
nebula-graph-study nebula-graph-study 数据结构 Vertex 点 保存实体对象的实例 VID 为唯一表示 点必须至少有一个 Tag Tag 标签 用于对点进行区分。相同标签共享相同属性类型 Edge 边 描述 点与点之间的关系行为 一...
nebula-graph-studio-3.8.0版本 Centos7.9 ARM架构服务器编译的程序,直接解压,运行start.sh脚本即可。
nebula图数据库V2.6.0
SpringGraph实例 用SpringGraph做的一下小实例
星云nodejs 该存储库在Node.js中提供了Nebula客户端API。 下载nebula-nodejs npm install nebula-nodejs 用法示例 建造一个NebulaPool 参加会议 例会 测验 npm install npm test
9-4.Nebula+Graph+v2.x开源分布式高性能图数据库