Nebula一些常用命令

#记录工作中的一些总结

----连接Nebula Graph
./nebula-console -addr 207.207.75.106 -port 9669 -u root -p nebula

-----创建图空间
create space basketballplayer(partition_num=15,replica_factor=1,vid_type=fixed_string(30))

-----查看图空间
show spaces

----创建Tag以及Edge type
create TAG player(name string, age int)
create edge follow(degree int)

----删除tag
drop tag xxx
删除前需先删除索引

----插入点和边
insert vertex player(name, age) values "player23":("Michael Jordan",59)
insert vertex people(name, age) values "people1":("aaa",1),"people2":("bbb",2),"people3":("ccc",3),"people4":("ddd",4),"people5":("eee",5),"people6":("fff",6)
insert vertex tem(name) values "team1":("Bulls"), "team2":("Nets"), "team3":("Sixers");
insert edge service(start_year, end_year) values "player23" -> "team1":(1996, 2003),"player3" -> "team3":(1996, 2008),"player1" -> "team1":(1999, 2009),"player11" -> "team2":(2020, 2022),"player11" -> "team2":(2020, 22);
insert edge follow(degree) values "player7" -> "player1":(90)

--两个点间插入多条边
insert edge e1() valuees "10->11"@1:()  建立rank为1的边


----创建索引

create TAG INDEX team_index_1 on tem();
create edge INDEX follow_index_1 on follow(degree);
--重建索引确保能对已存在数据生效
:sleep
REBUILD TAG INDEX team_index_1;

--为单属性创建索引
create TAG INDEX player_index_1 on player(name(20));

--创建复合索引
create TAG INDEX player_index_2 on player(name,age);(失败)
create edge INDEX service_index_2 on service(start_year,end_year)(成功)

--删除索引
drop edge index service_index_2

----go语句
--go from "player11" over follow yield id($$)
yield:指定该查询需要返回的值或结果
$$:表示边的终点

//沿着边follow查找年龄大于等于10的球员并返回他们的名字,同时重命名对应的列
go from "player11" over follow where properties($$).age >= 10 yield properties($$).name AS starName

go from "t->0_0_people_36" over peopleHoldHouse yield properties($$) AS starName(返回房子的字段)

//沿着边follow查找连接的球员,然后检索这些球员的球队

go from "player11" over follow yield dst(edge) AS id | go from $-.id over service yield properties($$).name AS Team,properties($^).name AS Player

go from "t->0_0_people_36" over peopleHoldHouse yield dst(edge) AS id (返回房子的vid)(peopleName不能有多余的空格)

//返回入方向的点
go from "t->0_0_people_36" over peopleFriendShip reversely yield src(edge) as friend

//只返回第二跳中的边
go 2 to 2 steps from 't->1___0_0' over * yield edge as relation(出度)

//返回两跳的朋友
go 2 steps from "player7" over follow yield dst(edge)

----fetch语句
--fetch prop on player "player23" yield properties(vertex)

----lookup语句
lookup on service where service.start_year == 1996 yield src(edge),dst(edge)
(若为同一个TAG类型,或不允许)

--统计TAG为player的点的数量
lookup on player yield id(vertex) | yield count(*) as Player_Count


----match语句 match比较慢
match (player) return player limit 5(必须加limit)
||
match (x:player) return x

--根据某个属性索引
match (v:player{name:"Allen Iverson"}) return v

--索引TAG为service的全部属性值
match () -[e:service]-() return e

--查询和欧文有关的球员和球队
match p=(v:player{name:"Kyrie Irving"}) -->(v3) return p

--返回路径
match p=(v:player{name:"Kyrie Irving"})-[*3..3]->() return p  只能返回出度的路径

----find path
寻找两个点之间经过的边的路径
find all path from 'player11' to 'player3' over * yield path as pathes;

----get subgraph
根据跳数获得相应子图(go语法更快)
get subgraph 2 steps from 'player11' yield vertices as nodes,edges as relationships
get subgraph 2 steps from 't->0___1_0' yield vertices as nodes,edges as relationships

返回的是0到n跳的子图

----查询当前所有的点和边的数量(数据有变化时,需要重新执行submit语句(异步的作业))
submit job stats
show stats

"insert vertex people(column1, column2, column3, column4, column5," 
                    + " column6, column7, column8, column9, column10) values '" 
                    + peopleName 
                    + "':(''"
get subgraph 1 steps from 1 both relation

//停止某一作业
stop job 197

insert vertex lawCase(column) values "t->2_2000_lawCase_999":("sdfg58gs45df123gytgf");

go 2 steps from "t->0_0_people_21" over peopleFriendShip,peopleHoldCar bidirect yield distinct dst(edge) as name union go 2 steps from "t->0_0_people_21" over peopleFriendShip,peopleHoldCar reversely yield distinct src(edge) as name 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值