图数据库NebulaGraph学习

news2025/2/2 0:50:42

1.图空间(Space)操作

1.1创建图空间,指定vid_type为整形

CREATE SPACE play_space (partition_num = 10, replica_factor = 1, vid_type = INT64) COMMENT = "运动员库表空间";

1.2创建图空间,指定vid_type为字符串

CREATE SPACE play_space (partition_num = 10, replica_factor = 1, vid_type = FIXED_STRING(32)) COMMENT = "运动员库表空间";

1.3删除图空间

drop SPACE play_space;

2.标签(Tag)操作

2.1创建点

CREATE tag player (name string NULL  COMMENT "姓名", age int8 NULL  COMMENT "年龄")  COMMENT = "球员";
CREATE tag team (name string NULL  COMMENT "球队名称")  COMMENT = "归属球队";

2.2查看库下面的点

SHOW TAGS;

2.2查看某个点的属性

describe TAG player;

2.3基于标签创建点

单条插入示例:

insert vertex player(name,age) values 100:("詹姆斯",38);
insert vertex player(name,age) values 101:("库里",34);
insert vertex player(name,age) values 102:("杜兰特",34);

批量插入示例:

insert vertex team(name) values 200:("洛杉矶湖人队"),201:("金州勇士队"),202:("布鲁克林篮网队");

2.4查看点

指定属性查看示例:

fetch prop on player 100,101,102 YIELD properties(vertex).name,properties(vertex).age;

查询全部属性示例 :

fetch prop on team 200,201,202 YIELD properties(vertex);

2.5删除点

delete vertex 100;

3.边(Edge)操作

3.1创建边

CREATE edge follow (attention_rate int16 NULL  COMMENT "关注度")  COMMENT = "球员关注度关联表";
CREATE edge service (start_time int32 NULL  COMMENT "开始时间", end_time int32 NULL  COMMENT "结束时间")  COMMENT = "球员服役时间关联表";

3.2查看库下面的边

SHOW edges;

3.3查看边的属性

describe edge service;

3.4插入边

单条插入示例:

insert edge follow(attention_rate) values 100->101:(20);
insert edge follow(attention_rate) values 101->102:(50);
insert edge follow(attention_rate) values 102->103:(80);

批量插入示例:

insert edge service(start_time,end_time) values 100->200:(2003,2023),101->201:(2009,2023),102->203:(2007,2023);

3.5查看边

单条查看示例:

fetch prop on follow 100->101 YIELD properties(edge);

批量查看示例:

fetch prop on service 100->200,101->201 YIELD properties(edge).start_time,properties(edge).end_time;

4.查看图谱关系图

5.索引创建

5.1创建索引

CREATE {TAG | EDGE} INDEX [IF NOT EXISTS] <index_name>
ON {<tag_name> | <edge_name>} ([<prop_name_list>]) [COMMENT = '<comment>'];

示例

//点
CREATE TAG INDEX IF NOT EXISTS index_player ON player(name(30), age);
//边
CREATE EDGE INDEX IF NOT EXISTS index_follow ON follow(attention_rate);

5.2重建索引

REBUILD {TAG | EDGE} INDEX <index_name>;

示例

//点
REBUILD TAG INDEX index_name;
//边
REBUILD EDGE INDEX index_follow;

6.常用查询

6.1Go语句查询

        语句从一个或多个点开始,沿着一条或多条边遍历,返回YIELD子句中指定的信息。

GO [[<M> TO] <N> STEPS ] FROM <vertex_list>
OVER <edge_type_list> [{REVERSELY | BIDIRECT}]
[ WHERE <conditions> ]
YIELD [DISTINCT] <return_list>
[{ SAMPLE <sample_list> | <limit_by_list_clause> }]
[| GROUP BY {<col_name> | expression> | <position>} YIELD <col_name>]
[| ORDER BY <expression> [{ASC | DESC}]]
[| LIMIT [<offset>,] <number_rows>];

从vid为100的球员开始找,沿着service边找到终点vid,输出起点vid和终点vid及其信息

GO FROM 100 OVER service YIELD id($^),properties($^),id($$),properties($$);

备注:

$^ :表示边的起点
$$ :表示边的终点
properties() :返回点/边的所有属性

6.2FETCH语句查询

可以获得点或边的属性

6.2.1查看点

查看点

语法:
FETCH PROP ON {<tag_name>[, tag_name ...] | *}
<vid> [, vid ...]
YIELD <return_list> [AS <alias>];

示例:

fetch prop on player 100 YIELD properties(vertex);
6.2.2查看边

语法:
FETCH PROP ON <edge_type> <src_vid> -> <dst_vid>[@<rank>] [, <src_vid> -> <dst_vid> ...]
YIELD <output>;

示例:

fetch prop on follow 100->101 YIELD properties(edge);

6.3LOOKUP查找

        语句是基于索引的,和WHERE子句一起使用,查找符合特定条件的数据,要先创建索引

LOOKUP ON {<vertex_tag> | <edge_type>}
[WHERE <expression> [AND <expression> ...]]
YIELD <return_list> [AS <alias>];

<return_list>
    <prop_name> [AS <col_alias>] [, <prop_name> [AS <prop_alias>] ...];

a.找出点中名称为詹姆斯的球员

LOOKUP ON player WHERE player.name == "詹姆斯" YIELD properties(vertex); 

 

b.找出球员中名字经库里开始,并且年龄在34和38两个值之前的球员

LOOKUP ON player WHERE player.name STARTS WITH "库里" AND player.age IN [34,38] YIELD properties(vertex).name, properties(vertex).age;

 

c.根据条件查看边

LOOKUP ON follow WHERE follow.attention_rate > 20 YIELD properties(edge); 

d.统计边或者点的数量 

LOOKUP ON player YIELD id(vertex)| YIELD COUNT(*) AS Player_Number;
LOOKUP ON follow YIELD edge AS e| YIELD COUNT(*) AS Follow_Number;

 

6.4MATCH查找

        可以灵活的描述各种图模式,但是它依赖索引去匹配 Nebula Graph 中的数据模型,性能也还需要调优,要先创建索引

MATCH <pattern> [<clause_1>]  RETURN <output>  [<clause_2>];

查找球员名称为的点并返回

 MATCH (v:player{name:"杜兰特"}) RETURN v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker安装ES:7.8和Kibana:7.8

本文适用于centos7,快速入手练习es语法 前置&#xff1a;安装docker教程docker、docker-component安装-CSDN博客 1.安装es 9200为启动端口&#xff0c;9300为集群端口 docker pull elasticsearch:7.8.0mkdir -p /mydata/elasticsearch/pluginsmkdir -p /mydata/elasticsear…

LangChain入门指南:定义、功能和工作原理

LangChain入门指南&#xff1a;定义、功能和工作原理 引言LangChain是什么&#xff1f;LangChain的核心功能LangChain的工作原理LangChain实际应用案例如何开始使用LangChain 引言 在人工智能的浪潮中&#xff0c;语言模型已成为推动技术革新的重要力量。从简单的文本生成到复…

【附带大模型训练数据】大模型系统优化:怎么计算模型所需的算力、内存带宽、内存容量和通信数据量?

大模型系统优化&#xff1a;怎么计算模型所需的算力、内存带宽、内存容量和通信数据量&#xff1f; 大模型需要多少算力&#xff1f;大模型需要几块GPU&#xff1f;预训练、领域微调区别?预训练需要多少数据?怎么做数据去重&#xff1f;怎么做数据增强&#xff1f;训练多少ep…

基于ssm+jsp理发店管理系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;理发店管理系统也不例外&#xff0c;但目前国内的市场仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0…

Appium安装及配置

一、前置说明 Appium 是一个用于自动化移动应用程序的开源测试框架&#xff0c;它支持 Android 和 iOS&#xff0c;同时支持使用多种编程语言&#xff08;如 Java、Python、JavaScript 等&#xff09;进行测试脚本的编写。 二、操作步骤 1. 安装Node.js Appium Server 由 n…

创建Github Pages 仓库

Github Pages 仓库创建 1. 在 GitHub 上创建一个新仓库2. 在仓库中创建一个分支&#xff08;可选&#xff0c;可跳过&#xff09;3. 创建您的静态网站4. 启用 GitHub Pages5. 等待构建完成6. 访问您的网站 在 GitHub 上创建一个 GitHub Pages 仓库是相对简单的。GitHub Pages 允…

Element UI导航菜单之秘:无痕迹浏览与历史记录栈的管理

前言 需求 在使用 Element UI 的 el-menu 导航栏菜单时&#xff0c;发现 history 栈&#xff08;历史记录栈&#xff09;会不断缓存之前的记录&#xff0c;而在某些场景下我们可能不希望 history 栈&#xff08;历史记录栈&#xff09;中有之前的记录&#xff0c;即实现无痕迹流…

【扩散模型】7、GLIDE | 文本指引的图像生成和编辑

论文&#xff1a;GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models 代码&#xff1a;https://link.zhihu.com/?targethttps%3A//github.com/openai/glide-text2im 出处&#xff1a;OpenAI 一、背景 在扩散模型经过了一系列…

python 用OpenCV 将图片转视频

import os import cv2 import numpy as npcv2.VideoWriter&#xff08;&#xff09;参数 cv2.VideoWriter() 是 OpenCV 中用于创建视频文件的类。它的参数如下&#xff1a; filename&#xff1a;保存视频的文件名。 fourcc&#xff1a;指定视频编解码器的 FourCC 代码&#xf…

智能优化算法应用:基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.卷尾猴算法4.实验参数设定5.算法结果6.参考文…

创造音乐的终极工具 - Studio One Pro6音乐制作编曲软件

音乐制作是一项富有创造力和技巧的艺术&#xff0c;而Studio One Pro6音乐制作编曲软件则是这个领域中的终极工具。无论您是一名专业音乐制作人&#xff0c;还是一位热爱音乐的业余爱好者&#xff0c;Studio One Pro6都能帮助您实现无限的创意和潜力。 首先&#xff0c;Studio…

C++ 复合数据类型:指针

文章目录 指针用法无效指针空指针void *ptr指向指针的指针指向常量的指针指针常量指针和数组指针数组和数组指针 指针 计算机中的数据都存在内存中&#xff0c;访问内存的最小单元是“字节”&#xff0c;所有数据&#xff0c;就保存在内存中具有连续编号的一串字节中。 指针顾…

B039-SpringMVC基础

目录 SpringMVC简介复习servletSpringMVC入门导包配置前端控制器编写处理器实现Contoller接口普通类加注解(常用) 路径问题获取参数的方式过滤器简介自定义过滤器配置框架提供的过滤器 springMVC向页面传值的三种方式视图解析器springMVC的转发和重定向 SpringMVC简介 1.Sprin…

MongoDB 单机安装部署

文章目录 说明1. 下载安装包2. 安装数据库3. 配置 systemctl4. 创建 root 用户 说明 本篇文章介绍 MongoDB 二进制安装的步骤&#xff0c;整个过程还是比较简单。 1. 下载安装包 进入 MongoDB 官网&#xff0c;获取安装包的下载链接&#xff1a; https://www.mongodb.com/tr…

Node.js安装部署

Node.js安装部署 在 Windows 上安装 Node.js1.使用安装程序2.使用包管理器 Chocolatey 安装 在 macOS 上安装 Node.js1.使用 Homebrew 安装 在 Linux 上安装 Node.js1.使用包管理器安装2.使用 Node.js 官方二进制包 安装完成验证 Node.js 是一个基于 Chrome V8 引擎的 JavaScri…

2023年12月21日开发正式版v1.2.3更新·本次更新30多个细节优化·完善丰富后台功能·加入演员关联机制

2023年12月21日开发正式版v1.2.3更新本次更新30多个细节优化完善丰富后台功能加入演员关联机制 产品简介 安卓苹果PCH5四端&#xff0c;蜻蜓z暗影版的衍生级版本&#xff0c;2023年优雅草蜻蜓z冬季雪花限定版&#xff0c;不仅继承了蜻蜓z的精良功能&#xff0c;还特色增加了弹…

基于深度学习的森林火焰烟雾检测系统(含UI界面,yolov8、Python代码,数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主干c…

【Linux 驱动】Linux设备树(四)—— 设备树驱动LED

有了设备树以后&#xff0c;我们可以将寄存器信息保存到设备树&#xff0c;即便是更换了一个设备&#xff0c;我们也无需修改驱动文件&#xff0c;只需要修改设备树文件并重新编译。 下面介绍两种通过设备树驱动 LED 的最简单的方式&#xff0c;这两种方式的主要是设备树中 re…

轻量Http客户端工具VSCode和IDEA

文章目录 前言Visual Studio Code 的插件 REST Client编写第一个案例进阶&#xff0c;设置变量进阶&#xff0c;设置Token 前言 作为一个WEB工程师&#xff0c;在日常的使用过程中&#xff0c;HTTP请求是必不可少的。我们采用的HTTP工具有如下&#xff1a; Postman Insomnia Ap…

从零实现一套低代码(保姆级教程) --- 【4】实现右侧属性面板

摘要 继画布区的实现之后&#xff0c;来到本系列的第四篇文章&#xff0c;如果你没有看过之前的文章&#xff0c;可以建议先看一下第一篇文章&#xff0c;里面介绍了要实现的项目&#xff0c;是否是你要学习的内容&#xff0c;再决定是否要学习这一些列的文章。 从零实现一套低…