面向图的DBMS Nebula Graph 3.2发布

开放式 DBMS Nebula Graph 3.2 已发布,旨在高效存储大量互连数据,形成包含数十亿个节点和数万亿个连接的图。 该项目是用 C++ 编写的,并根据 Apache 2.0 许可证分发。 用于访问 DBMS 的客户端库是为 Go、Python 和 Java 语言准备的。

DBMS采用分布式架构,不共享资源(shared-nothing),这意味着启动独立且自给自足的图形查询处理进程和存储存储进程。 元服务协调数据的移动并提供有关图的元信息。 为了保证数据的一致性,采用了基于RAFT算法的协议。

Nebula Graph的主要特点:

  • 通过将访问限制为仅经过身份验证的用户(其权限通过基于角色的访问控制 (RBAC) 系统设置)来确保安全。
  • 能够连接不同类型的存储引擎。 支持使用新算法扩展查询生成语言。
  • 确保读取或写入数据时的延迟最小并保持高吞吐量。 在一个图形节点和三个存储节点的集群、一个 632 GB 的数据库(包括 1.2 亿个顶点和 8.4 亿条边的图形)中进行测试时,延迟为几毫秒,吞吐量高达每秒 140 万个请求。
  • 线性可扩展性。
  • 一种类似于 SQL 的查询语言,功能强大且易于理解。 支持的操作包括 GO(图形顶点的双向遍历)、GROUP BY、ORDER BY、LIMIT、UNION、UNION DISTINCT、INTERSECT、MINUS、PIPE(使用先前查询的结果)。 支持索引和用户定义的变量。
  • 确保高可用性和故障恢复能力。
  • 支持使用数据库状态片段创建快照,以简化备份副本的创建。
  • 适合工业用途(已在京东、美团、小红书的基础设施中使用)。
  • 能够更改数据存储方案并更新它,而不会停止或影响正在进行的操作。
  • TTL 支持以限制数据生命周期。
  • 用于管理设置和存储主机的命令。
  • 用于管理工作和安排工作启动的工具(当前支持的工作是 COMPACT 和 FLUSH)。
  • 查找给定顶点之间的完整路径和最短路径的操作。
  • 用于与第三方分析平台集成的 OLAP 接口。
  • 用于从 CSV 文件或 Spark 导入数据的实用程序。
  • 使用 Prometheus 和 Grafana 导出用于监控的指标。
  • Nebula Graph Studio Web 界面,用于可视化图形操作、图形导航、设计数据存储和加载方案。

在新版本中:

  • 添加了对 extract() 函数的支持,以提取与给定表达式匹配的子字符串。
  • 优化配置文件中的设置。
  • 添加了优化规则以删除无用的 AppendVertices 运算符并禁用边缘和顶点过滤器的应用。
  • 为 JOIN 操作以及 Traverse 和 AppendVertices 运算符复制的数据量已减少。
  • SHORTEST PATH 和 SUBGRAPH 的性能优化
  • 改进了内存分配(启用 Arena Allocator)。

来源: opennet.ru

添加评论