NebulaGraph

文章目录

      • 关于 NebulaGraph
      • 客户端支持
      • 安装 NebulaGraph
      • 关于 nGQL
        • nGQL 可以做什么
        • 2500 条 nGQL 示例
        • 原生 nGQL 和 openCypher 的关系
      • Backup&Restore
          • 功能
      • 导入导出
          • 导入工具
          • 导出工具
      • NebulaGraph Importer
      • NebulaGraph Exchange
      • NebulaGraph Spark Connector
      • NebulaGraph Flink Connectors
      • NebulaGraph Studio
      • NebulaGraph Dashboard
          • 产品功能
        • NebulaGraph Operator
          • 工作原理
          • 功能介绍
      • NebulaGraph Algorithm 图计算
      • NebulaGraph Bench


关于 NebulaGraph

  • 官网:https://www.nebula-graph.com.cn

  • 官方文档:https://docs.nebula-graph.com.cn/3.8.0/

    手册PDF : https://docs.nebula-graph.com.cn/3.8.0/pdf/NebulaGraph-CN.pdf


客户端支持

NebulaGraph 提供多种类型客户端,便于用户连接、管理 NebulaGraph 图数据库。

  • NebulaGraph Console:原生 CLI 客户端
  • NebulaGraph CPP:C++ 客户端
  • NebulaGraph Java:Java 客户端
  • NebulaGraph Python:Python 客户端
  • NebulaGraph Go:Go 客户端

安装 NebulaGraph

有以下安装方式:

  • 基于 Docker
  • 从云开始(免费试用)
  • 本地部署步骤 1:安装 NebulaGraph

releases : https://github.com/vesoft-inc/nebula-console/releases


关于 nGQL

nGQL是 NebulaGraph 使用的的声明式图查询语言,支持灵活高效的图模式,而且 nGQL 是为开发和运维人员设计的类 SQL 查询语言,易于学习。

nGQL 是一个进行中的项目,会持续发布新特性和优化,因此可能会出现语法和实际操作不一致的问题,如果遇到此类问题,请提交 issue 通知 NebulaGraph 团队。 NebulaGraph 3.0 及更新版本正在支持 openCypher 9。


nGQL 可以做什么
  • 支持图遍历
  • 支持模式匹配
  • 支持聚合
  • 支持修改图
  • 支持访问控制
  • 支持聚合查询
  • 支持索引
  • 支持大部分 openCypher 9 图查询语法(不支持修改和控制语法)

2500 条 nGQL 示例

https://github.com/vesoft-inc/nebula/tree/master/tests/tck/features

features 目录内包含很多.features格式的文件,每个文件都记录了使用 nGQL 的场景和示例。例如:


原生 nGQL 和 openCypher 的关系

原生 nGQL 是由 NebulaGraph 自行创造和实现的图查询语言。openCypher 是由 openCypher Implementers Group 组织所开源和维护的图查询语言,最新版本为 openCypher 9。

由于 nGQL 语言部分兼容了 openCypher,这个部分在本文中称为 openCypher 兼容语句。


Backup&Restore

Backup&Restore(简称 BR)是一款命令行界面(CLI)工具,可以帮助备份 NebulaGraph 的图空间数据,或者通过备份文件恢复数据。


功能
  • 一键操作备份和恢复数据。
  • 支持基于以下备份文件恢复数据:
    • 本地磁盘(SSD 或 HDD),建议仅在测试环境使用。
    • 兼容亚马逊对象存储(Amazon S3)云存储服务接口,例如:阿里云对象存储(Alibaba Cloud OSS)、MinIO、Ceph RGW 等。
  • 支持备份并恢复整个 NebulaGraph 集群。
  • (实验性功能)支持备份指定图空间数据。

导入导出


导入工具

有多种方式可以将数据写入NebulaGraph 3.8.0:

  • 使用命令行 -f 的方式导入:可以导入少量准备好的 nGQL 文件,适合少量手工测试数据准备。
  • 使用 Studio 导入:可以用过浏览器导入本机多个 CSV 文件,格式有限制。
  • 使用 Importer 导入:导入单机多个 CSV 文件,大小没有限制,格式灵活。适合十亿条数据以内的场景。
  • 使用 Exchange 导入:从 Neo4j、Hive、MySQL 等多种源分布式导入,需要有 Spark 集群。适合十亿条数据以上的场景。
  • 使用 Spark-connector/Flink-connector 读写 API:这种方式需要编写少量代码来使用 Spark/Flink 连接器提供的 API。
  • 使用 C++/GO/Java/Python SDK:编写程序的方式导入,需要有一定编程和调优能力。

下图给出了几种方式的定位:

image


导出工具
  • 使用 Spark-connector/Flink-connector 读写 API:这种方式需要编写少量代码来使用 Spark/Flink 连接器提供的 API。
  • 使用 Exchange 导出功能将数据导出至 CSV 文件或另一个图空间(支持不同 NebulaGraph 集群)中。

NebulaGraph Importer

NebulaGraph Importer(简称 Importer)是一款 NebulaGraph 的 CSV 文件单机导入工具,可以读取并批量导入多种数据源的 CSV 文件数据,还支持批量更新和删除操作。


功能

  • 支持多种数据源,包括本地、S3、OSS、HDFS、FTP、SFTP、GCS。
  • 支持导入 CSV 格式文件的数据。单个文件内可以包含多种 Tag、多种 Edge type 或者二者混合的数据。
  • 支持过滤数据源数据。
  • 支持批量操作,包括导入、更新、删除。
  • 支持同时连接多个 Graph 服务进行导入并且动态负载均衡。
  • 支持失败后重连、重试。
  • 支持多维度显示统计信息,包括导入时间、导入百分比等。统计信息支持打印在 Console 或日志中。
  • 支持 SSL 加密。

NebulaGraph Exchange

NebulaGraph Exchange(简称 Exchange)是一款 Apache Spark™ 应用,用于在分布式环境中将集群中的数据批量迁移到 NebulaGraph 中,能支持多种不同格式的批式数据和流式数据的迁移。

Exchange 由 Reader、Processor 和 Writer 三部分组成。Reader 读取不同来源的数据返回 DataFrame 后,Processor 遍历 DataFrame 的每一行,根据配置文件中fields的映射关系,按列名获取对应的值。在遍历指定批处理的行数后,Writer 会将获取的数据一次性写入到 NebulaGraph 中。下图描述了 Exchange 完成数据转换和迁移的过程。

NebulaGraph® Exchange 由 Reader、Processor、Writer 组成,可以完成多种不同格式和来源的数据向 NebulaGraph 的迁移

Exchange 有社区版和企业版两个系列,二者功能不同。社区版在 GitHub 开源开发,企业版属于 NebulaGraph 企业套餐。


NebulaGraph Spark Connector

详情:https://github.com/vesoft-inc/nebula-spark-connector/blob/release-3.8/README_CN.md

NebulaGraph Spark Connector 是一个 Spark 连接器,提供通过 Spark 标准形式读写 NebulaGraph 数据的能力。NebulaGraph Spark Connector 由 Reader 和 Writer 两部分组成。

  • Reader
    提供一个 Spark SQL 接口,用户可以使用该接口编程读取 NebulaGraph 图数据,单次读取一个点或 Edge type 的数据,并将读取的结果组装成 Spark 的 DataFrame。
  • Writer
    提供一个 Spark SQL 接口,用户可以使用该接口编程将 DataFrame 格式的数据逐条或批量写入 NebulaGraph 。

NebulaGraph Flink Connectors

NebulaGraph Flink Connector 是一款帮助 Flink 用户快速访问NebulaGraph的连接器,支持从NebulaGraph图数据库中读取数据,或者将其他外部数据源读取的数据写入NebulaGraph图数据库。


NebulaGraph Studio

NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的开源图数据库可视化工具,搭配 NebulaGraph 内核使用,提供构图、数据导入、编写 nGQL 查询等一站式服务。

用户可以在 NebulaGraph GitHub 仓库中查看最新源码,详情参见 nebula-studio https://github.com/vesoft-inc/nebula-studio。


Studio 可以方便管理 NebulaGraph 数据,具备以下功能:

  • 使用 Schema 管理功能,用户可以使用图形界面完成图空间、Tag(标签)、Edge Type(边类型)、索引的创建,查看图空间的统计数据,快速上手 NebulaGraph 。
  • 使用导入功能,通过简单的配置,用户即能批量导入点和边数据,并能实时查看数据导入日志。
  • 使用控制台功能,用户可以使用 nGQL 语句创建 Schema,并对数据执行增删改查操作。

NebulaGraph Dashboard

NebulaGraph Dashboard(简称 Dashboard)是一款用于监控 NebulaGraph 集群中机器和服务状态的可视化工具。


产品功能
  • 监控集群中所有机器的状态,包括 CPU、内存、负载、磁盘和流量。
  • 监控集群中所有服务的信息,包括服务 IP 地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟等)。
  • 监控集群本身的信息,包括集群的服务信息、分区信息、配置和长时任务。
  • 支持全局调整监控数据的页面更新频率。

NebulaGraph Operator

NebulaGraph Operator 是用于在 Kubernetes 系统上自动化部署和运维 NebulaGraph 集群的工具。

依托于 Kubernetes 扩展机制,NebulaGraph 将其运维领域的知识全面注入至 Kubernetes 系统中,让 NebulaGraph 成为真正的云原生图数据库。

operator_map


工作原理

对于 Kubernetes 系统内不存在的资源类型,用户可以通过添加自定义 API 对象的方式注册,常见的方法是使用 CustomResourceDefinition(CRD)。

NebulaGraph Operator 将 NebulaGraph 集群的部署管理抽象为 CRD。通过结合多个内置的 API 对象,包括 StatefulSet、Service 和 ConfigMap,NebulaGraph 集群的日常管理和维护被编码为一个控制循环。在 Kubernetes 系统内,每一种内置资源对象,都运行着一个特定的控制循环,将它的实际状态通过事先规定好的编排动作,逐步调整为最终的期望状态。当一个 CR 实例被提交时,NebulaGraph Operator 会根据控制流程驱动数据库集群进入最终状态。


功能介绍

NebulaGraph Operator 已具备的功能如下:

  • 集群创建和卸载:NebulaGraph Operator 简化了用户部署和卸载集群的过程。用户只需提供对应的 CR 文件,NebulaGraph Operator 即可快速创建或者删除一个对应的 NebulaGraph 集群。更多信息参见创建 NebulaGraph 集群。
  • 集群升级:支持升级 3.5.0 版的 NebulaGraph 集群至 3.6.0 版。
  • 故障自愈:NebulaGraph Operator 调用 NebulaGraph 集群提供的接口,动态地感知服务状态。一旦发现异常,NebulaGraph Operator 自动进行容错处理。更多信息参考故障自愈。
  • 均衡调度:基于调度器扩展接口,NebulaGraph Operator 提供的调度器可以将应用 Pods 均匀地分布在 NebulaGraph 集群中。

NebulaGraph Algorithm 图计算

NebulaGraph Algorithm (简称 Algorithm)是一款基于 GraphX 的 Spark 应用程序,通过提交 Spark 任务的形式使用完整的算法工具对 NebulaGraph 数据库中的数据执行图计算,也可以通过编程形式调用 lib 库下的算法针对 DataFrame 执行图计算。


NebulaGraph Bench

NebulaGraph Bench 是一款利用 LDBC 数据集对 NebulaGraph 进行性能测试的工具。


2024-05-21(二)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行Android项目时,提示错误: 程序包javax.annotation.processing不存在

今天在运行项目时提示错误: 错误: 程序包javax.annotation.processing不存在 import javax.annotation.processing.Generated; 最后是修改了Android Studio的JDK的路径修改为你安装的JDK路径,完成的修复:

在深度学习中常见的初始化操作

目录 截断正态分布来初始化张量 逐行代码解释 相关理论解释 截断正态分布函数 截断正态分布的定义 截断正态分布的作用 计算截断点的作用 具体步骤 正态分布的累积分布函数(CDF) 正态分布的累积分布函数与误差函数的关系 示例计算 误差函数 应…

软件设计师-上午题-计算题汇总

一、存储系统 - 存储容量计算(字节编址、位编址、芯片个数) 内存地址是16进制 内存地址编址的单位是Byte,1K1024B 1B 8 bit 1.计算存储单元个数 存储单元个数 末地址 - 首地址 1 eg. 按字节编址,地址从 A4000H 到 CBFFFH&…

使用B2M 算法批量将可执行文件转为灰度图像

参考论文 基于二进制文件的 C 语言编译器特征提取及识别 本实验使用 B2M 算法将可执行文件转为灰度图像,可执行文件转为灰度图的流程如图 4-3 所示。将 可执行文件每 8 位读取为一个无符号的的整型常量,一个可执行文件得到一个一维向量, …

深度学习之基于Tensorflow+Keras+CNN模型实时对手写数字进行分类

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着深度学习和计算机视觉技术的快速发展,手写数字识别已成为一个重要的应用场景。…

装备制造项目管理软件:奥博思PowerProject项目管理系统

数字化正逐步改变着制造方式和企业组织模式。某制造企业领导层透露,在采用数字化项目管理模式后,企业的发展韧性更加强劲,构筑起了竞争新优势,企业产品研制周期缩短25%,生产效率提升18%。 随着全球经济的发展&#xf…

SpringBootWeb 篇-深入了解 Mybatis 删除、新增、更新、查询的基础操作与 SQL 预编译解决 SQL 注入问题

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Mybatis 的基础操作 2.0 基础操作 - 环境准备 3.0 基础操作 - 删除操作 3.1 SQL 预编译 3.2 SQL 预编译的优势 3.3 参数占位符 4.0 基础操作 - 新增 4.1 主键返回…

深度学习之基于Pytorch框架多人多摄像头摔倒跌倒坠落检测

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着智能监控技术的广泛应用,对于公共场合的安全监控需求日益增加。摔倒跌倒坠落是常见的…

基于深度学习的Tensorflow卷积神经网络(CNN)车牌识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 车牌识别(License Plate Recognition, LPR)是智能交通系统(ITS&a…

解锁产品迭代新速度:A/B测试在AI大模型时代的应用

本文作者为火山引擎A/B测试平台DataTester的资深研发工程师刘明瑶。作为火山引擎数智平台VeDI旗下的核心产品,DataTester源于字节跳动长期的技术和业务沉淀,目前已经服务了数百家企业,助力企业在业务增长、用户转化、产品迭代、策略优化以及运…

深度学习之Tensorflow卷积神经网络手势识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手势识别是计算机视觉和人工智能领域的重要应用之一,具有广泛的应用前景&#xff…

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具 抖音视频去水印保存部分源码: 通过使用Python中的requests、re和os等库,可以编写如下代码来实现抖音视频去水印保存的功能。 短视频爬虫提取手机下载工具的使用方法: 该工具主…

【Linux学习】进程地址空间与写时拷贝

文章目录 Linux进程内存布局图&#xff1a;内存布局的验证 进程地址空间写时拷贝 Linux进程内存布局图&#xff1a; 地址空间的范围&#xff0c;在32位机器上是2^32比特位,也就是[0,4G]。 内存布局的验证 代码验证内存布局&#xff1a; 验证代码&#xff1a; #include<s…

基于FPGA的VGA协议实现----条纹-文字-图片

基于FPGA的VGA协议实现----条纹-文字-图片 引言&#xff1a; ​ 随着数字电子技术的飞速发展&#xff0c;现场可编程门阵列&#xff08;FPGA&#xff09;因其高度的灵活性和并行处理能力&#xff0c;在数字系统设计中扮演着越来越重要的角色。FPGA能够实现复杂的数字逻辑&#…

字节面试:百亿级数据存储,怎么设计?只是分库分表吗?

尼恩&#xff1a;百亿级数据存储架构起源 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;经常性的指导小伙伴们改造简历。 经过尼恩的改造之后&#xff0c;很多小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试机会&#xff0c…

基于Tensorflow卷积神经网络垃圾智能分类系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着城市化进程的加速&#xff0c;垃圾问题日益严重&#xff0c;垃圾分类成为解决这一问题的关…

(全面)Nginx格式化插件,Nginx生产工具,Nginx常用命令

目录 &#x1f3ab; 前言 &#x1f389; 开篇福利 &#x1f381; 开篇福利 x2 Double happiness # 介绍 # 地址 # 下载 &#x1f4bb; 命令及解析 # 整个文件系统中搜索名为nginx.conf的文件 # 编辑nginx.conf文件 # 重新加载配置文件 # 快速查找nginx.conf文件并使…

Android和flutter交互,maven库的形式导入aar包

记录遇到的问题&#xff0c;在网上找了很多资料&#xff0c;都是太泛泛了&#xff0c;使用后&#xff0c;还不能生效&#xff0c;缺少详细的说明&#xff0c;或者关键代码缺失&#xff0c;我遇到的问题用红色的标注了 导入aar包有两种模式 1.比较繁琐的&#xff0c;手动将aar…

Linux应用入门(二)

1. 输入系统应用编程 1.1 输入系统介绍 常见的输入设备有键盘、鼠标、遥控杆、书写板、触摸屏等。用户经过这些输入设备与Linux系统进行数据交换。这些设备种类繁多&#xff0c;如何去统一它们的接口&#xff0c;Linux为了统一管理这些输入设备实现了一套能兼容所有输入设备的…

【真人Q版手办风】线稿手绘+ AI绘图 Stable Diffusion 完整制作过程分享

大家好&#xff0c;我是设计师阿威。 今天给大家分享一篇【真人Q版卡通手办】风格的制作过程&#xff0c;话不多说&#xff0c;进入正题。 成品预览 手绘线稿 首先&#xff0c;我使用的是老款手绘软件【SAI】&#xff0c;用[钢笔工具]进行了人物的线稿Q版描绘。&#x1f447…