开源分布式图数据库-NebulaGraph
2023-08-16 20:29:17 阿炯

本站赞助商链接,请多关照。 NebulaGraph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。


其拥有强大的原生图引擎来提供低延迟的读写和高吞吐量,确保高并发访问、快速的图遍历和有效的内存使用,使 NebulaGraph 能够存储和处理具有数万亿条边和点的超大规模图数据。分布式架构,计算与存储分离的设计,可以按需在集群中增加更多节点或服务而不影响性能,满足不同业务场景计算存储容量的不同需求。支持快照、全量备份、增量备份等多种数据备份方式,保证在局部失败的情况下服务的高可用性,并在灾难发生后快速恢复,不会有数据损失。



特点

开源:在 Apache 2.0 条款下开发的。数据库开发人员、数据科学家、安全专家、算法工程师,都参与到 NebulaGraph 的设计和开发中来。

高性能:基于图数据库的特性并使用 C++ 编写的,可以提供毫秒级查询。众多数据库中,NebulaGraph 在图数据服务领域展现了卓越的性能,数据规模越大,其优势就越大。详情请参见 NebulaGraph benchmarking 页面。

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

易开发:提供 Java、Python、C++ 和 Go 等流行编程语言的客户端,更多客户端仍在开发中。详情请参见 NebulaGraph clients。

高可靠访问控制:支持严格的角色访问控制和 LDAP(Lightweight Directory Access Protocol)等外部认证服务,能够有效提高数据安全性。详情请参见验证和授权。

生态多样化:开放了越来越多的原生工具,例如 NebulaGraph Studio、Console、Exchange 等,更多工具可以查看生态工具概览。此外还具备与 Spark、Flink、HBase 等产品整合的能力,在这个充满挑战与机遇的时代,大大增强了自身的竞争力。

兼容 openCypher 查询:查询语言简称为 nGQL,是一种声明性的、部分兼容 openCypher 的文本查询语言,易于理解和使用。详细语法请参见 nGQL 指南。

面向未来硬件,读写平衡:闪存型设备有着极高的性能,并且价格快速下降, NebulaGraph 是一个面向 SSD 设计的产品,相比于基于 HDD + 大内存的产品,更适合面向未来的硬件趋势,也更容易做到读写平衡。

灵活数据建模:用户可以轻松地在 NebulaGraph 中建立数据模型,不必将数据强制转换为关系表。而且可以自由增加、更新和删除属性。详情请参见数据模型。

广受欢迎:腾讯、美团、京东、快手等科技巨头都在使用。

适用场景:可用于各种基于图的业务场景。为节约转换各类数据到关系型数据库的时间,以及避免复杂查询,建议使用 NebulaGraph。

欺诈检测:金融机构必须仔细研究大量的交易信息,才能检测出潜在的金融欺诈行为,并了解某个欺诈行为和设备的内在关联。这种场景可以通过图来建模,然后借助其可以很容易地检测出诈骗团伙或其他复杂诈骗行为。

实时推荐:能够及时处理访问者产生的实时信息,并且精准推送文章、视频、产品和服务。

知识图谱:自然语言可以转化为知识图谱,存储在其中。用自然语言组织的问题可以通过智能问答系统中的语义解析器进行解析并重新组织,然后从知识图谱中检索出问题的可能答案,提供给提问人。

社交网络:人际关系信息是典型的图数据,NebulaGraph 可以轻松处理数十亿人和数万亿人际关系的社交网络信息,并在海量并发的情况下,提供快速的好友推荐和工作岗位查询。


最新版本:3.6
v3.6.0 版本于2023年8月中旬发布,主要强化全文索引能力,以及优化部分场景下的 MATCH 性能:
强化增强全文索引功能,
支持使用 MATCH 子句检索 VID 或属性索引时使用变量,
支持并行启动 RocksDB 实例以加快 Storage 服务的启动速度,
优化 RocksDB 迭代器执行 DeleteRange 操作后的前缀搜索性能,
优化 appendLog 发送逻辑以避免 follower 宕机后影响写性能,
优化 MATCH 语句查询不存在的属性时的性能,
修复 Meta 数据不一致的问题,
修复 RocksDB 导入操作导致 leader 租约无效的问题,
修复存储的统计逻辑错误的问题,
修复设置无效请求参数的标志导致 Web 服务崩溃的问题,
修复列出会话时打印过多日志的问题,
修复单个大查询导致 Graph 服务崩溃的问题,
修复执行 Find All Path 语句导致 Graph 服务崩溃的问题,
修复部分过期数据在最底层不会被回收的问题,
修复在 MATCH 语句中添加路径变量会导致 all() 函数下推优化失效的问题,
修复 MATCH 语句中通过最短路径查询自环时返回结果错误的问题,
修复通过管道符删除边导致 Graph 服务崩溃的问题,
修复 MATCH 语句中匹配多跳时返回结果缺少边属性的问题,
增强全文索引特性,涉及变更内容如下:原有的全文索引功能由调用 Elasticsearch 的 Term-level queries 改为 Full text queries 方式。
变更后除了支持原有的通配符、正则、模糊匹配等方式(但语法发生变化),还增加了对分词的支持(依赖 Elasticsearch 自身使用的分词器),查询结果包含评分结果。更多语法请参见 Elasticsearch 官方文档。
具体步骤参考升级文档:升级版本 - NebulaGraph Database 手册

官方主页:https://www.nebula-graph.com.cn/