Nebula Graph

Nebula Graph是一款图数据库软件,如果你需要部署数据库就可以选择这款软件,软件可以将图形数据储存为点、边,方便用户快速建立数据关系,点是用点标识符(VID)标识的,VID在同一图空间中唯一,点必须有至少一个标签,标签可以用于对点进行区分。具有相同标签的点共享相同的属定义,边是用来连接点的,表示两个点之间的关系或行为,边类型用于对边进行区分,具有相同边类型的边共享相同的属定义,通过点和边的储存方式可以让数据之间更容易建立关系,方便以后快速建立数据模型分析事件,快速在数据库查询资源!

相关推荐 软件介绍 下载地址
Nebula Graph官方版v1.2.1 NebulaGaph是一款图数据库软件,如果你需要部署数据库就可以选择这款软件,软件可以将图形数据储存为点、边,方便用户快速建立数据关系,点是用点标识符(VID)标识的,VID在同一图空间中唯一,点必须有至少一个标签,标签可以用于对点进行区分。具有相同标签的点… 点击查看
Huawei LiteOS官方版v5.0.0 HuaweiLieOS提供物联网功能,通过这款软件就可以直接在电脑部署控制系统,让用户可以配置和适合企业使用的物联网作系统,该软件满足大部分行业使用,提供互联互通、传感框架、低功耗框架、AI智能、引擎、安全框架、IDE工具,LieOS轻量级内核等内容,为用户搭建… 点击查看
Hasor官方版v4.2.2 Has提供软件开发功能,可以借助该框架快速部署应用程序,为用户提供更专业的应用程序部署方案,软件主要提供lc/Ap容器框架、Web开发框架、JD数据库访问框架、DaaQL聚合查询引擎、RSF分布式RPC框架、CsleCLI框架、Spg整合框架,无论是构建小型的应用程序… 点击查看

Nebula Graph软件功能

Nebula Graph是一款开源的、分布式的、易扩展的原生图数据库,能够承载数十亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。

什么是图数据库

图数据库是专门存储庞大的图形网络并从中检索的数据库。它可以将图形中的数据高效存储为点(vertex)和边(edge),还可以将属(pperty)附加到点和边上。

图数据库适合存储大多数从现实象出的数据类型。世界上几乎所有领域的事物都有内在联系,像关系型数据库这样的建模系统会提取实体之间的关系,并将关系单独存储到表和列中,而实体的类型和属存储在其他列甚至其他表中,这使得数据管理费时费力。

Nebula Graph作为一个典型的原生图数据库,允许将丰富的关系存储为边,边的类型和属可以直接附加到边上。

Nebula Graph的优势

1、开源

Nebula Graph是在Apache 2.0和Commons Clse 1.0条款下开发的。越来越多的人,如数据库开发人员、数据科学家、安全专家、算法工程师,都参与到Nebula Graph的设计和开发中来

2、高能

基于图数据库的特使用C++编写的Nebula Graph,可以提供毫秒级查询。众多数据库中,Nebula Graph在图数据服务领域展现了卓越的能,数据规模越大,Nebula Graph优势就越大。

3、易扩展

Nebula Graph采用shared-nothing架构,支持在不停止数据库服务的情况下扩缩容。

4、易开发

Nebula Graph提供Java、Python、C++和Go等流行编程语言的客户端,更多客户端仍在开发中。

5、高可访问控制

Nebula Graph支持严格的角色访问控制和LDAP(Lightweight Directory Access Ptocol)等外部认证服务,能够有效提高数据安全。

6、生态多样化

Nebula Graph开放了越来越多的原生工具,例如Nebula Graph Studio、nebula-console、Nebula Graph Exchange等。

此外,Nebula Graph还具备与Spark、Flink、HBase等产品整合的能力,在这个充满与机遇的时代,大大增强了自身的竞争力。

7、兼容openCypher查询语言

Nebula Graph查询语言,也称为nGQL,是一种声明的、兼容openCypher的文本查询语言,易于理解和使用。

8、灵活数据建模

您可以轻松地在Nebula Graph中建立数据模型,不必将数据强制转换为关系表之类的结构,而且可以自由增加、更新和删除属。

Nebula Graph软件特色

星云图(Nebula Graph)是一个开放源代码图数据库,能够托管具有数十亿个顶点(节点)和数万亿条边(具有几毫秒的延迟)的超大规模图。它提供了企业级的高能,可以将可以想象得到的最复杂的数据集简化为有意义和有用的。

与其他图形数据库解决方案相比,Nebula Graph具有以下优点:

对称分布

存储与计算分离

横向可扩展

通过RAFT协议实现强大的数据一致

类似于SQL的查询语言

基于角色的访问控制可提供更高级别的安全

Nebula Graph教程

基作语法

本文介绍Nebula Graph基作的语法。

图空间和Schema

一个Nebula Graph实例由一个或多个图空间组成。每个图空间都是物理隔离的,您可以在同一个实例中使用不同的图空间存储不同的数据集。

为了在图空间中插入数据,需要为图数据库定义一个Schema。Nebula Graph的Schema是由如下几部分组成。

Nebula Graph集群的机器状态

首先建议您机器状态,确保所有的Storage服务连接到了Meta服务。执行命令SHOW HOSTS查看机器状态。

在返回结果中,查看Status列,可以看到所有Storage服务都在线。

异步实现创建和修改

Nebula Graph中执行如下创建和修改作,是异步实现的,需要在下一个心跳周期才同步数据。

CREATE SPACE

CREATE TAG

CREATE EDGE

ALTER TAG

ALTER EDGE

CREATE TAG INDEX

CREATE EDGE INDEX

说明:默认心跳周期是10秒。修改心跳周期参数heartbeat_interval_secs,

为确保数据同步,后续作能顺利进行,可采取以下方法之一:

执行SHOW或DESCRIBE命令相应对象的状态,确保创建或修改已完成。如果没有完成,请等待几秒重试。

等待2个心跳周期(20秒)。

创建和选择图空间

nGQL语法

创建图空间

列出创建成功的图空间

示例

1、执行如下创建名为basketballplayer的图空间

2、执行命令SHOW HOSTS分片的分布情况,确保平衡分布。

如果Leader distbution分布不均匀,请执行命令BALANCE LEADER重新分配

3、选择图空间basketballplayer。

您可以执行命令SHOW SPACES查看创建的图空间。

创建标签和边类型

nGQL语法

示例

创建标签player和team,以及边类型follow和serve。说明如下表。

插入点和边

您可以使用,基于现有的标签插入点,或者基于现有的边类型插入边。

nGQL语法

插入点

VID是Vertex ID的缩写,VID在一个图空间中是唯一的。

插入边

示例

插入代表球员和球队的点

插入代表球员和球队之间关系的边。

查询数据

GO可以根据指定的条件遍历数据库。GO从一个或多个点开始,沿着一条或多条边遍历,返回YIELD子句中指定的。

FETCH可以获得点或边的属。

LOOKUP是基于索引的,和WHERE子句一起使用,查找符合特定条件的数据。

MATCH是查询图数据最常用的,但是它依赖索引去匹配Nebula Graph中的数据模型。

nGQL语法

GO示例

从VID为player100的球员开始,沿着边follow找到连接的球员。

从VID为player100的球员开始,沿着边follow查找年龄大于或等于35岁的球员,并返回他们的姓名和年龄,同时重命名对应的列。

从VID为player100的球员开始,沿着边follow查找连接的球员,检索这些球员的球队。为了合并这两个查询请求,可以使用管道符或临时变量。

使用管道符

使用临时变量

说明:当复合作为一个整体提交给时,其中的临时变量会在结束时被释放。

FETCH示例

查询VID为player100的球员的属。

修改点和边

您可以使用或UPSERT修改现有数据。

UPSERT是和的结合体。当您使用UPSERT更新一个点或边,如果它不存在,数据库会自动插入一个新的点或边。

说明:UPSERT作是基于Nebula Graph的分区进行串行作,所以执行速度比单独执行或慢。

nGQL语法

示例

用修改某条边的degree属,用FETCH结果

用UPSERT插入一个VID为player111的点

身份验证

身份验证用于将会话映到特定用户,从而实现访问控制。

当客户端连接到Nebula Graph时,Nebula Graph会创建一个会话,会话中存储连接的各种,如果开启了身份验证,就会将会话映到对应的用户。

说明:默认情况下,身份验证功能是关闭的,输入任意用户名和密码都可以连接到Nebula Graph。

Nebula Graph支持两种身份验证方式:本地身份验证和LDAP验证。

本地身份验证

本地身份验证是指在本地存储用户名、加密密码,当用户尝试访问Nebula Graph时,将进行身份验证。

启用本地身份验证

1、编辑配置文件nebula-graphd.conf(默认目录为/usr/local/nebula/etc/),设置–enable_thoze=true并保存退出。

2、重启Nebula Graph服务。

说明:开启身份验证后,默认的God角色为ot,密码为nebula。

LDAP验证

轻型目录访问协议(LDAP)是用于访问目录服务的轻型客户端-协议,可以实现集中管理。 启用LDAP验证后,LDAP中存储的用户优先级高于本地用户。例如本地和LDAP都有一个名为Amber的用户,则优先从LDAP读取该用户的设置和角色。

启用LDAP验证

当前仅企业版支持集成LDAP进行身份验证

用户管理

用户管理是Nebula Graph访问控制中不可或缺的组成部分,本文将介绍用户管理的相关语法。

开启身份验证后,您需要使用已创建的用户才能连接Nebula Graph,而且连接后可以进行的作也取决于该用户拥有的角色权限。

说明:

默认情况下,身份验证功能是关闭的,输入任意用户名和密码都可以连接到Nebula Graph。

修改权限后,对应的用户需要重新登录才能生效。

创建用户(CREATE USER)

执行CREATE USER可以创建新的Nebula Graph用户。当前仅God角色用户(即ot用户)能够执行CREATE USER。

授权用户(GRANT ROLE)

执行GRANT ROLE可以将指定图空间的内置角色权限授予用户。当前仅God角色用户和Admin角色用户能够执行GRANT ROLE。

撤销用户权限(REVOKE ROLE)

执行REVOKE ROLE可以撤销用户的指定图空间的内置角色权限。当前仅God角色用户和Admin角色用户能够执行REVOKE ROLE

修改用户密码(CHANGE PWORD)

执行CHANGE PWORD可以修改用户密码,修改时需要提供旧密码和新密码。

修改用户密码(ALTER USER)

执行ALTER USER可以修改用户密码,修改时不需要提供旧密码。当前仅God角色用户(即ot用户)能够执行ALTER USER。

删除用户(DROP USER)

执行DROP USER可以删除用户。当前仅God角色用户能够执行DROP USER。

说明:删除用户不会自动断开该用户当前会话,而且权限仍在当前会话中生效。

查看用户列表(SHOW USERS)

执行SHOW USERS可以查看用户列表。当前仅God角色用户能够执行SHOW USERS。

内置角色权限

所谓角色,就是一组相关权限的。您可以把角色分配给创建的用户,从而实现访问控制。

内置角色

Nebula Graph内置了多种角色,说明如下:

God

初始最高权限角色,拥有所有作的权限。类似于Linux中的ot和Windows中的。

Meta服务初始化时,会自动创建God角色用户ot,密码为nebula。

注意:请及时修改ot用户的密码,保证数据安全。

一个集群只能有一个God角色用户,该用户可以管理集群内所有图空间。

不支持手动授权God角色,只能使用默认God角色用户ot。

Admin

对权限内的图空间拥有Schema和data的读写权限。

可以将权限内的图空间授权给其他用户。

注意:只能授权低于级别的角色给其他用户。

DBA

对权限内的图空间拥有Schema和data的读写权限。

无法将权限内的图空间授权给其他用户。

User

对权限内的图空间拥有Schema的只读权限。

对权限内的图空间拥有data的读写权限。

Guest

对权限内的图空间拥有Schema和data的只读权限。

说明:

暂不支持自行创建角色,只能使用默认的内置角色。

一个用户在一个图空间内只能拥有一个角色权限

角色权限

各角色的执行权限如下

上一篇 2023-02-16
下一篇 2022-12-29

相关推荐

  • Nebula Graph

    Nebula Graph是一款图数据库软件,如果你需要部署数据库就可以选择这款软件,软件可以将图形数据储存为点、边,方便用户快速建立数据关系,点是用点标识符(VID)标识的,V...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)