长风破浪八千里,落日晚霞不回头。 ——大宁。
NebulaGrap——分布式图数据库
官方文档:
NebulaGraph Database手册
官方文档
介绍
简介:
NebulaGraph 一款开源、分布式图数据库,擅长处理超大规模数据集。 Nebula Graph 采用存储计算分离架构,支持水平扩展,利用 RAFT 分布式 concensus 协议来实现金融级的高可用,类 SQL 查询语言降低了 SQL 程序员迁移成本。
特点:开源、分布式、易扩展、原生图数据库。能够承载包含数千亿个点和数万亿条边的超大规模数据集。提供毫秒级查询、类SQL
图数据库介绍:
图数据库是专门存储庞大的图像网络并从中检索信息的数据库。它可以将途中的数据搞笑存储为(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上。模型图如下:
图数据库适合存储大多数从现实抽象出的数据类型。世界上几乎所有领域的事物都有内在联系,像关系型数据库这样的建模系统会提取实体之间的关系,并将关系单独存储到表和列中,而实体的类型和属性存储在其他列甚至其他表中,这使得数据管理费时费力。
NebulaGraph 的优势:
NebulaGraph 作为一个典型的图数据库,可以将丰富的关系通过边及其类型和属性自然地呈现。
特点 | NebulaGraph | |
---|---|---|
开源 | NebulaGraph 是在 Apache 2.0 条款下开发的。越来越多的人,如数据库开发人员、数据科学家、安全专家、算法工程师,都参与到 NebulaGraph 的设计和开发中来,欢迎访问 NebulaGraph GitHub 主页参与开源项目。 | |
高性能 | 基于图数据库的特性使用 C++ 编写的 NebulaGraph,可以提供毫秒级查询。众多数据库中,NebulaGraph 在图数据服务领域展现了卓越的性能,数据规模越大,NebulaGraph 优势就越大。详情请参见 NebulaGraph benchmarking 页面。 | |
易扩展 | NebulaGraph 采用 shared-nothing 架构,支持在不停止数据库服务的情况下扩缩容。 | |
易开发 | NebulaGraph 提供 Java、Python、C++ 和 Go 等流行编程语言的客户端,更多客户端仍在开发中。详情请参见 NebulaGraph clients。 | |
高可靠访问控制 | NebulaGraph 支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。详情请参见验证和授权。 | |
生态多样化 | NebulaGraph 开放了越来越多的原生工具,例如 Nebula Graph Studio、Nebula Console、Nebula Exchange 等,更多工具可以查看生态工具概览。 此外,NebulaGraph 还具备与 Spark、Flink、HBase 等产品整合的能力,在这个充满挑战与机遇的时代,大大增强了自身的竞争力。 |
|
兼容 openCypher 查询语言 | NebulaGraph 查询语言,简称为 nGQL,是一种声明性的、部分兼容 openCypher 的文本查询语言,易于理解和使用。详细语法请参见 nGQL 指南。 | |
面向未来硬件,读写平衡 | 闪存型设备有着极高的性能,并且价格快速下降,NebulaGraph 是一个面向 SSD 设计的产品,相比于基于 HDD + 大内存的产品,更适合面向未来的硬件趋势,也更容易做到读写平衡。 | |
灵活数据建模 | 用户可以轻松地在 NebulaGraph 中建立数据模型,不必将数据强制转换为关系表。而且可以自由增加、更新和删除属性。详情请参见数据模型。 | |
广受欢迎(忽略) | 腾讯、美团、京东、快手、360 等科技巨头都在使用 NebulaGraph。详情请参见 Nebula Graph 官网。 | |
适用场景 | 金融机构必须仔细研究大量的交易信息,才能检测出潜在的金融欺诈行为,并了解某个欺诈行为和设备的内在关联。这种场景可以通过图来建模,然后借助 NebulaGraph,可以很容易地检测出诈骗团伙或其他复杂诈骗行为。 | |
实时推荐 | NebulaGraph 能够及时处理访问者产生的实时信息,并且精准推送文章、视频、产品和服务。 | |
知识图谱 | 自然语言可以转化为知识图谱,存储在 NebulaGraph 中。用自然语言组织的问题可以通过智能问答系统中的语义解析器进行解析并重新组织,然后从知识图谱中检索出问题的可能答案,提供给提问人。 | |
社交网络 | 人际关系信息是典型的图数据,NebulaGraph 可以轻松处理数十亿人和数万亿人际关系的社交网络信息,并在海量并发的情况下,提供快速的好友推荐和工作岗位查询。 | |
nebula的六种数据模型:
数据模型 | 模型名称 | 模型解释 |
---|---|---|
space | 图空间 | 相当于一个数据库,不同的图空间数据是相互隔离的 |
tag | 标签 | 由一组事先定义的属性构成 |
vertex | 点 | 用vid标识,vid在同一个图空间唯一,相当于主键,一个点至少一个tag |
edge type | 边类型 | 同tag,由一组事先定义的属性构成 |
edge | 边 | nebula中只有有向边,一条边只有一个edge type,只有一个rank,rank是边的一个排序值,可用作边权,一个边由四元组<起点vid,edge type,rank,终点vid>唯一标识 |
properties | 属性 | 属性就是键值对形式存储的信息 |
图论中的路径:
路径就是一个有限或者无线的点边连成的序列,路径的类型分为三种: walk, trail, path
路径类型 | 解释 | 备注 |
---|---|---|
walk | 点边可以重复的路径 | GO语句采用的是walk类型路径 |
trail | 点可以重复,边不可重复的路径 | MATCH、FIND PATH和GET SUBGRAPH语句采用的是trail类型路径 trail中还有两类特殊的路径类型:cycle和circuit。 2.1 cycle:只有起点终点重复 2.2 circuit:除了起点终点重复外,还有其他点重复 |
path | 点边都不重复 |
总结:文章来源:https://www.toymoban.com/news/detail-712506.html
点重复 | 点不重复 | |
---|---|---|
边重复 | walk | NONE |
边不重复 | trail | path |
安装部署
集群安装
参考:
https://www.nebula-graph.com.cn/download (安装包下载)
https://docs.nebula-graph.com.cn/3.6.0/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster/(手册)
#step1: 下载rpm包=====================================================================================
# 下载地址 https://www.nebula-graph.com.cn/download
wget https://oss-cdn.nebula-graph.com.cn/package/3.6.0/nebula-graph-3.6.0.el7.x86_64.rpm
#step2: 安装到指定位置==================================================================================
rpm -ivh nebula-graph-3.0.0.el7.x86_64.rpm --prefix=/opt/nebula
#step3:到安装目录的 ./etc 下面进行配置 nebula-graphd.conf、 nebula-storaged.conf、 nebula-metad.conf ====
#注意测试环境这三个文件--meta_server_addrs 和 --local_ip配置一样, 生产环境一般metad只有三个。 具体可参考官网:https://docs.nebula-graph.com.cn/3.4.1/4.deployment-and-installation/2.compile-and-install-nebula-graph/deploy-nebula-graph-cluster/
--meta_server_addrs=node1:9559,node2:9559,node3:9559
--local_ip=nodex
#step4: 启动服务,查看状态
./scripts/nebula.service start all
./scripts/nebula.service status all
[WARN] Config file specified but the target is `all'
[INFO] nebula-metad(de9b3ed): Running as 161172, Listening on 9559
[INFO] nebula-graphd(de9b3ed): Running as 161239, Listening on 9669
[WARN] nebula-storaged after v3.0.0 will not start service until it is added to cluster.
[WARN] See Manage Storage hosts:ADD HOSTS in https://docs.nebula-graph.io/
[INFO] nebula-storaged(de9b3ed): Running as 161282, Listening on 9779
#step5:三台机子上同样的操作。
#step6:将节点初始化(ADD HOSTS)到一个集群中。========================================================================
#6.1 安装命令行客户端1:Nebula Console
wget https://github.com/vesoft-inc/nebula-console/releases/download/v3.5.0/nebula-console-linux-amd64-v3.5.0
chmod +x nebula-console-linux-amd64-v3.0.0
#随意选一台机子进入:
./nebula-console-linux-amd64-v3.0.0 -addr nodex -port 9669 -u root -p nebula
#执行ADD HOSTS
ADD HOSTS node1:9779, node1:9779, node1:9779;
#6.2 安装可视化界面客户端:Nebula Graph Studio
wget https://oss-cdn.nebula-graph.com.cn/nebula-graph-studio/3.2.2/nebula-graph-studio-3.2.2.x86_64.rpm
sudo rpm -i nebula-graph-studio-3.2.2.x86_64.rpm --prefix=/opt/nebula/studio
访问 ip:7001
登录: nodex:9669 / root / nebula
#step7: add host到一个集群之后,在看status就正常了
[root@nj-bigdata-warehouse03 etc]# /opt/nebula/scripts/nebula.service status all
[INFO] nebula-metad(de9b3ed): Running as 164396, Listening on 9559
[INFO] nebula-graphd(de9b3ed): Running as 164473, Listening on 9669
[INFO] nebula-storaged(de9b3ed): Running as 164528, Listening on 9779
文章来源地址https://www.toymoban.com/news/detail-712506.html
到了这里,关于NebulaGrap入门介绍和集群安装部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!