【高手问答汇总】聊聊图数据库 Nebula Graph

将数据资产视为公司重要资产是企业的共识,数据的产生、存储、消费…每一个数据流动环节都不可忽视。伴随着企业业务的多元化,一方面业务数据量激增,另外一方面,数据不统1、数据孤岛、数据价值被低估等问题也浮出水面,其根本缘由在于忽视了数据之间的关联性。git

图数据库技术的出现,为企业赋予了挖掘数据关联价值的能力。而大数据时代的图数据库,除了具有优秀的关联价值挖掘能力,还要应对海量数据的存储计算挑战。图数据库 Nebula Graph 应运而生,它是一款开源的分布式图数据库,其 shared-nothing 分布式架构和存储与计算分离的架构特性,使得它尤为擅长处理千亿顶点、万亿条边的超大规模数据集,同时保持毫秒级低延时。Nebula Graph 目前已应用在多家互联网头部企业的金融风控、数据治理、实时推荐、智能问答等业务场景。github

资深图数据库技术专家,开源的分布式图数据库 Nebula Graph 研发商欧若数网 CEO Sherman 在 03.08 - 03.14 期间同 开源中国·高手问答 的小伙伴们以「聊聊图数据库 Nebula Graph」为切入点展开讨论,包括:「Nebula Graph 的技术设计」、「Nebula Graph 应用场景」、「图数据库技术展望」等方面内容,本文整理于他和开源中国小伙伴对图数据库的讨论内容~数据库

嘉宾简介

Sherman,资深图数据库技术专家,现任杭州欧若数网科技有限公司 CEO,曾任职 Facebook、蚂蚁金服等公司。一直从事图数据库研发工做,主导了分布式图数据库 Nebula Graph 的研发,并将其开源为美团、京东、腾讯等一线大厂业务所用。网络

本文目录

  • 图数据库的场景应用
    • 和 AI 结合的场景
    • 对物联网行业有没有什么应用场景
    • 图数据库的应用场景是什么?有哪些行业应用?
  • 认识图数据库 Nebula Graph
    • Nebula Graph 高性能的缘由
    • Nebula Graph 数据库设计的取舍
    • Nebula Graph 的查询优化
  • 图数据库 Nebula Graph 的将来
    • Nebula Graph 对 HDD 的支持程度
    • Nebula Graph 对客户端的规划
    • Nebula Graph 2021 年的开发重点和方向是什么

图数据库的场景应用

和 AI 结合的场景?

@edra:请问这个做为分布式图形处理数据库,有和 AI 技术结合使用的场景吗。架构

你好,目前跟 AI 结合的应用场景有两类,一类是常见的知识图谱,另外一类是基于图的机器学习,简称 GNN,在模型训练中将数据之间的关联关系考虑进去。并发

图数据库对物联网行业有没有什么应用场景?

@猪娃娃:您好,图数据库对物联网行业有没有什么应用场景?框架

物联网自己是物体之间的关联,因此很天然地能够用图数据库来存放,随着智能汽车的使用,物联网中的关系在动态变化中,图数据库是解决这种动态变化的关系网络最好的工具。机器学习

图数据库的应用场景是什么?有哪些行业应用?

@开源中国首席罗纳尔多:您好,请问图数据库的应用场景是什么?有哪些行业应用?数据库设计

这个是一个通用问题啦,常见的是社交推荐、知识图谱、金融风控、机器学习 AI、区块链等等应用。你能够关注 Nebula Graph 以前的线下分享的文字整理稿:http://www.javashuo.com/article/p-rmiwptih-gv.html, 固然除了上面的,以前微众银行也分享了他们用图数据库 Nebula Graph 作数据治理的分享,能够看看咱们发在开源中国的博文呀,感谢支持^ ^分布式

认识图数据库 Nebula Graph

Nebula Graph 高性能的缘由

@jasonwu24:老师您好!以前看过一篇文章,其中对比了 Neo4j、 Nebula Graph 以及 Huge Graph 这三大图数据库在入库时间、一度好友查询、二度好友查询、共同好友查询等几个方面的性能,在导入性能上,数据量小的时候 Nebula Graph 的导入效率稍慢于 Neo4j,但在大数据量的时候 Nebula Graph 的导入明显优于其余两款图数据库。在 3 种查询场景下, Nebula Graph 的效率都明显高于 Neo4j,与 HugeGraph 相比也有必定的优点。这是由于 Nebula Graph 采用 shared-nothing 分布式架构,因此更擅长处理千亿节点万亿条边的超大规模数据集吗?除此以外还有没有其余方面的缘由使其性能更为突出呢?谢谢!

你好,感谢提问。除了 shared-nothing 的架构,还有一方面是由于数据分片和存储的方式(将点和其相邻的关系放在一块儿,增长 data locality),另一方面咱们在查询层也作了一些优化,好比计算下推。具体能够参考咱们的架构系列博客文章:https://nebula-graph.com.cn/tags/%E6%9E%B6%E6%9E%84%E5%89%96%E6%9E%90/

Nebula Graph 数据库设计的取舍

@赤脚小子:在 NEBULA 研发过程当中确定会有不少取舍,好比事务,是否能够更新结构,历史数据是否能够更新/删除等等特性。

一开始 NEBULA 在作支持某些特性不支持某些特性的过程当中,是怎样的一个思考过程?一开始就有明确的使用场景/商业领域在指引?仍是也是亦步亦趋直到最后走出本身的路的?

是的,在研发过程当中是有取舍的,目前 Nebula 专一的场景是高并发低延时的 TP 场景。因此,取舍的原则就是一个新特性是否能很好地支撑 TP 场景的性能要求。随着产品的成熟,咱们也会慢慢开始支持 AP 场景,如离线分析和计算。

Nebula Graph 的查询优化

@osc_64757058:请问 nebula graph 在查询时有哪些优化,是否支持并行计算?

Nebula 在查询时作了不少优化,如计算下推、执行计算重构等。Nebula 支持多种计算框架,例如 GraphX、Plato 等。

最佳分区配置

@becke:看介绍,Nebula Graph 使用了raft 协议保持数据一致性,性能由底层的 partition 数据决定,不清楚怎么来选择最佳的分区数据?

咱们建议一台机器上的分区数量不小于机器的 CPU 核数,同时考虑到将来扩容的须要,这个数量能够适当放大。 图数据库 Nebula Graph 的将来

Nebula Graph 对 HDD 的支持程度

@osc_ajxzbfuw:您好, Nebula 如今也是愈来愈火, 关注的人愈来愈多啦。

有个小需求, 就是 Nebula 增长是 HDD 磁盘的优化, 不知道可有这方面的计划,优先级是怎样的,毕竟 Nebula 可能还有更重要的功能须要开发、支持。

在实际的企业中, 受限于预算、审批流程等各类缘由的限制,SSD 磁盘的主机并不容易得到。

你好,因为 HDD 磁盘自己的限制,在数据量大的 TP 场景下,不管怎么优化,性能都不会很好。若是你的数据量小到足够放在内存中处理,今年咱们会推出基于内存的存储引擎,这样能够解决你的问题。可是对于大数据量的 TP 场景,仍是建议申请 SSD 磁盘。HDD 磁盘用于 AP 场景是可行的,今年咱们会解决这个问题。

Nebula Graph 对客户端的规划

@荒野刀客 :你好 ,最近也在选型图数据库,初步考虑 nebula graph,但看到客户端 cpp client 好像活跃度不高,没几我的在 github 上贡献,而 go 语言等客户端 SDK 贡献者不少,这块儿后续有什么计划?另外纯 C 的客户端也没有看到 ,使用能够将 go 语言的 nebula client 编译成动态库,输出一些 C API?

CPP Client 一直是咱们优先级最高的 Client 之一,咱们会持续支持。纯 C 的客户端目前确实没有,这是由于目前好像没有看到这方面的需求,若是需求量大的话,咱们也会考虑支持。也欢迎你来贡献!

Nebula Graph 2021 年的开发重点和方向是什么

@荣飞coder:1.Nebula Graph 2021 年的开发重点和方向是什么?我知道 2.0 ga 立刻就要发布了,这个应该算是一个里程碑;2.Nebula Graph的目的实际上是发挥数据价值的。数据价值很重的一个方面是数据关系,图计算在关系处理里面做用很大(图计算 我理解有限,还在学习),想知道图计算和 Nebula Graph 结合的案例以及有没有相关资料推荐啊,谢谢

  1. 2021 年的重点是在增强性能和稳定性的基础上,增长图计算的融合,同时推出云服务;
  2. Nebula 跟图计算结合的案例咱们博客里有几篇,好比这篇 GraphX 的:https://nebula-graph.com.cn/posts/practice-graphx-nebula-graph-algorithm/

以上为本次图数据库交流的整理,若是你打算使用图数据库,在使用 Nebula Graph 过程当中遇到任何问题,记得来咱们的论坛和咱们交流下:https://discuss.nebula-graph.com.cn/ ,在实践以前记得关注下咱们的开源中国专栏了解更多 Nebula Graph 的特性呀:https://my.oschina.net/u/4169309

相关文章
相关标签/搜索