百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

第三代图数据库Nebula Graph的魅力

ztj100 2025-02-16 23:45 8 浏览 0 评论

数据库市场的一大优点是存在许多不同种类的数据,并且随着存储数据的速度和数量的增加,存储,组织和查询数据也需要解决的问题也越来越多。这是IT组织的噩梦,也是软件工程师的梦想,因此是各种类型的数据库管理系统的泛滥。

通常情况下,开发出一种特定技术来解决一系列特定问题-关系,对象,文档,空间,图形-并且第一代工具做得很好,并且该技术获得了立足之地。但是,在此第一阶段通常会遇到性能和规模问题,有时会采用一种新方法来使软件更好地适应数据中心中可用的任何硬件。有时,硬件本身必须发展-计算引擎需要更多的线程或内存带宽,存储设备需要更高的吞吐量或更低的延迟或更大的容量,分布式节点需要高带宽和低延迟的互连才能扩展-才能进一步推动软件或满足企业客户的期望。

通常是第二代,有时甚至是第三代将所有这些结合在一起,然后一项技术才能真正起飞。它是一家幸运的公司,可以在内部完成所有这些工作,但很多时候,创新者需要经过不同公司的多次通行证,才可以吸收所有知识并创造出他们认为是产品的产品可以在RFP中的所有方框中打勾。 vesoft也是如此,该公司由公司首席执行官谢尔曼·叶(Sherman Ye)创立,他在构建了一些世界上最大的图形数据库后,将Nebula Graph图形数据库推向市场。

自1990年代末互联网泡沫破灭以来,Ye一直从事编码工作,其中包括Open Text的高级软件工程师,该公司销售各种Web应用程序框架,LogLogic的团队负责人,该团队的领导者被TIBCO收购,顾名思义,该工具出售用于管理日志数据以增强IT安全性的工具。 2011年初,Ye移居到Facebook,在那里他在社交网络的图形数据库上工作了四年,鉴于Facebook是世界上最大的社交媒体网络,这是一项非常重要的任务。四年后,根据叶的丰富经验,他被中国超大型企业阿里巴巴的蚂蚁金服付款处理部门聘用,创建了自己的内部图形数据库。 2018年10月,Ye独自奋力创建了开源Nebula Graph数据库项目并成立了vesoft公司,该公司将为企业提供Nebula Graph的商业级支持。像蚂蚁金服一样,vesoft位于中国浙江省杭州市,这是一个大型技术中心。

Ye几个月前在这里的Next Platform上参加了Next Database Platform活动,并且刚刚发布了Nebula Graph v2.0.0版本数据库的Release Candidate 1,我们认为这是个不错的时机。谈论vesoft以及Nebula Graph与竞争对手之间的差异,其中包括Neo4j,TigerGraph,JanusGraph和Dgraph。

e说,Nebula Graph项目于2019年5月启动,并且在这一年的大部分时间里,该公司专注于为其分布式图形数据库创建基础。在2019年底,Ye开始招募各个互联网领域的早期客户来试用它,并于2020年6月首次发布了完整版的Nebula Graph。

“这是有选择的客户,”叶告诉下一个站台。“我们选择了中国每个互联网领域的领导者,之所以这样做,是因为他们每个人都在与实力更强,更传统的公司接轨,他们愿意尝试一种新技术来取得成功。他们还拥有大量数据以及复杂的业务逻辑和业务场景,因此对于我们来说,这是与他们一起试用时间以改善我们的产品的完美选择。”

在许多方面,从中国开始对vesoft来说是合乎逻辑的。首先,中国的大型超大规模企业和云建设者并不像Google,Amazon Web Services,Facebook和Microsoft那样古老,而且这些公司不仅历史悠久,而且规模更大,而且在某些情况下,他们需要各种数据库技术在任何商业实体可以提供之前进行更改。直到最近,阿里巴巴才真正做到这一点,而百度,腾讯和中国其他众多服务提供商则并非如此。可以肯定的是,其中一些中国大公司已经创建了自己的NoSQL和关系数据库,并且它们在机器学习等新技术的前沿。阿里巴巴拥有自己的Gremlin图查询语言的iGraph变体,Ye协助创建了GeaBase,用于金融应用程序的风险分析,而GeaBase不仅用于数据库,还可以用于数据库。除这些之外,据Ye所知,其他任何中国超大规模生产者都没有解决过图形数据库,如果可以按比例缩放它们,则在许多方面更有用。

这种规模在中国尤为重要,中国有14亿人口,而印度为13.7亿,欧盟为4.46亿,美国为3.28亿。鉴于美国和中国之间的人口差异,可以肯定地说,中国的超级市场最终将拥有更多的客户,并且规模会更大。因此,对于中国本土的开源项目和支持该项目的商业实体而言,现在进入图数据库技术可能是一个非常有利可图的主张。

好消息是,世界上任何人都可以使用Nebula Graph。仍然有待观察的是,该软件公司能够在中国以外的地区进行扩展有多么容易,但是这个市场足够大,足以让叶先生和他的团队在未来很多年保持忙碌状态。与关系数据库及其SQL查询语言已有40多年的历史了,因此,有很多人从里到外都了解它们,而图数据库仅存在了10年左右,而且实际上才刚刚起步。在过去的三年左右的时间里,人们开始全神贯注于自己的想法,并遇到了实际上可以通过图形技术最好地解决的问题。

Ye在Facebook的图形数据库上投入了大量心血,帮助创建了Dragon分布式图形查询引擎,Facebook在2016年3月对此进行了讨论,这是一个相对简单得多的项目,该项目相对简单,即The Associations and Objects服务器,这是一个庞大的单一项目。 单跳查询引擎,可保留用户在整个社交网络上创建的所有消息,喜欢,评论和共享。

Ye说,当他转到蚂蚁金服从事上面提到的Graph Exploration and Analytics或GeaBase图形数据库的工作时,他采用了Dragon所拥有的架构知识,并应用了这些知识以及一些新方法。早在2018年10月就在USENIX操作系统设计和实现研讨会上进行了介绍,当时据说可以扩展到100亿个节点(顶点)和1000亿个边缘。现在据说可以扩展到数万亿个节点和数万亿个边缘。

节点代表图中的实体,边缘代表实体之间的关系,正如我们之前所说的,关于分布式图数据库正常运行的强大功能-意味着它可以跨多个节点扩展而不会造成严重的性能下降或数据一致性问题–与关系数据库不同,图数据库默认情况下将所有连接完成。您只需遍历数据库即可提取所需的关系,而不必将数据整合到一个大的表中,然后对其进行查询。这是一个非常有趣的图表,说明了这一点,显示了由阿里巴巴创始人马云(Jack Ma)资助的公司之间的关系:


蚂蚁金服使用GeaBase进行风险分析,包括筛选交易中的欺诈,洗钱和其他风险分析,而这些分析必须以非常高的用户交易速度进行。

叶说:“我曾经经历过的这段经历真是太棒了,这是vesoft的最大优势。”

Nebula Graph与某些现有图形数据库(例如Neo4j)相比的另一个优势是,其代码中约有93%是用C ++而不是Java编写的。一些与Nebula Graph一起使用的实用程序是用Go编写的,Go是Google创建的一种语言,用于混合和匹配C和Java的某些优点,而不会遇到一些性能问题。它的其他部分在Yacc,Thrift,Scala和Lex中完成。该代码受Apache 2.0许可,但通过Commons Clause 1.0附录保持公有云和超大规模者的诚实,该附录不允许公司抓取代码,对其进行修改,将其作为服务托管并且不提供对代码的修改对社区。 (在我们看来,这总是错误的。如果您是在赚钱或获得影响力或数据,从而可以间接赚钱,然后退还或从头开始编写您自己的代码。)

有两种不同的图数据库,一种涉及事务处理,另一种涉及深度分析,而Nebula Graph则比后者更前者;相比之下,TigerGraph的成立是为了处理更多的后者,而不是前者。 (尽管有时很难画出这些线,并且随着时间的流逝它们常常会模糊。每个主要的关系数据库都可以执行OLTP和OLAP。)

您可能会认为分布式图数据库可能需要具有大量网络带宽的大型胖服务器,但还算不错。 Ye说Nebula Graph在使用10 Gb / sec以太网互连的服务器群集上运行良好,但是在某些情况下,使用40 Gb / sec,100 Gb / sec或更快的互连会更好。但是,这些机器应该配备大量内核以提高吞吐量-每个服务器节点可以使用32个内核或48个内核,但是越多越好。 vesoft支持X86和Arm架构,很高兴能在AWS的Graviton2 Arm服务器实例上部署这些软件,供希望在公共云上一些最便宜的基础架构上烦恼的客户使用。每个节点或云实例应至少具有128 GB的主内存,并且,越多越好。这是要考虑的最后一件事:胖服务器节点的成本更高,但是Nebula Graph在更强大的计算机上给定数量的内核上将具有更好的性能,这是由于网络延迟。 (我们想象Nebula Graph可能在具有32或64个套接字和数十兆字节主内存得非常胖的NUMA服务器上运行,但这不是它的设计要点。)

规模始终取决于数据的性质,并且查询会针对数据进行,但总的来说,Nebula Graph 规模可扩展到数十亿个顶点(节点)和数万亿条边。早期的客户正在教vesoft如何突破可扩展性限制并调整性能。

像其他图数据库制造商一样,vesoft也有自己的图查询语言变体,称为nGQL,它类似于SQL,并添加了图形原理。(到目前为止,还没有标准的GQL,因为关系数据库有标准的SQL,但是行业越来越紧密。)Nebula Graph Studio还用于数据导入和数据可视化。

为了发展,vesoft从天使投资人Matrix Partners China筹集了一些资金(未指定金额),当它在2020年6月退出隐形模式时,该公司表示已从所谓的“ Series Pre-A融资”中筹集了800万美元。 ”,这是我们之前从未听说过的,Redpoint China Ventures是主要投资者。2020年12月,vesoft又获得了4.1亿美元的Pre-A轮融资,其中Source Code Capital是主要投资者。

vesoft引用了Gartner的数据,该数据表明,目前全球关系数据库市场约为500亿美元,而图数据库将在未来三年内以三位数的速度增长,构成一个100亿美元的市场。目前尚不清楚关系型数据库现有者的增量(或创造性地具有破坏性)。

(本文由闻数起舞翻译自蒂莫西·普里克特·摩根的文章《THIRD TIME IS THE CHARM FOR NEBULA GRAPH DATABASE》,转载请注明出处)

相关推荐

Vue 技术栈(全家桶)(vue technology)

Vue技术栈(全家桶)尚硅谷前端研究院第1章:Vue核心Vue简介官网英文官网:https://vuejs.org/中文官网:https://cn.vuejs.org/...

vue 基础- nextTick 的使用场景(vue的nexttick这个方法有什么用)

前言《vue基础》系列是再次回炉vue记的笔记,除了官网那部分知识点外,还会加入自己的一些理解。(里面会有部分和官网相同的文案,有经验的同学择感兴趣的阅读)在开发时,是不是遇到过这样的场景,响应...

vue3 组件初始化流程(vue组件初始化顺序)

学习完成响应式系统后,咋们来看看vue3组件的初始化流程既然是看vue组件的初始化流程,咋们先来创建基本的代码,跑跑流程(在app.vue中写入以下内容,来跑流程)...

vue3优雅的设置element-plus的table自动滚动到底部

场景我是需要在table最后添加一行数据,然后把滚动条滚动到最后。查网上的解决方案都是读取html结构,暴力的去获取,虽能解决问题,但是不喜欢这种打补丁的解决方案,我想着官方应该有相关的定义,于是就去...

Vue3为什么推荐使用ref而不是reactive

为什么推荐使用ref而不是reactivereactive本身具有很大局限性导致使用过程需要额外注意,如果忽视这些问题将对开发造成不小的麻烦;ref更像是vue2时代optionapi的data的替...

9、echarts 在 vue 中怎么引用?(必会)

首先我们初始化一个vue项目,执行vueinitwebpackechart,接着我们进入初始化的项目下。安装echarts,npminstallecharts-S//或...

无所不能,将 Vue 渲染到嵌入式液晶屏

该文章转载自公众号@前端时刻,https://mp.weixin.qq.com/s/WDHW36zhfNFVFVv4jO2vrA前言...

vue-element-admin 增删改查(五)(vue-element-admin怎么用)

此篇幅比较长,涉及到的小知识点也比较多,一定要耐心看完,记住学东西没有耐心可不行!!!一、添加和修改注:添加和编辑用到了同一个组件,也就是此篇文章你能学会如何封装组件及引用组件;第二能学会async和...

最全的 Vue 面试题+详解答案(vue面试题知识点大全)

前言本文整理了...

基于 vue3.0 桌面端朋友圈/登录验证+60s倒计时

今天给大家分享的是Vue3聊天实例中的朋友圈的实现及登录验证和倒计时操作。先上效果图这个是最新开发的vue3.x网页端聊天项目中的朋友圈模块。用到了ElementPlus...

不来看看这些 VUE 的生命周期钩子函数?| 原力计划

作者|huangfuyk责编|王晓曼出品|CSDN博客VUE的生命周期钩子函数:就是指在一个组件从创建到销毁的过程自动执行的函数,包含组件的变化。可以分为:创建、挂载、更新、销毁四个模块...

Vue3.5正式上线,父传子props用法更丝滑简洁

前言Vue3.5在2024-09-03正式上线,目前在Vue官网显最新版本已经是Vue3.5,其中主要包含了几个小改动,我留意到日常最常用的改动就是props了,肯定是用Vue3的人必用的,所以针对性...

Vue 3 生命周期完整指南(vue生命周期及使用)

Vue2和Vue3中的生命周期钩子的工作方式非常相似,我们仍然可以访问相同的钩子,也希望将它们能用于相同的场景。...

救命!这 10 个 Vue3 技巧藏太深了!性能翻倍 + 摸鱼神器全揭秘

前端打工人集合!是不是经常遇到这些崩溃瞬间:Vue3项目越写越卡,组件通信像走迷宫,复杂逻辑写得脑壳疼?别慌!作为在一线摸爬滚打多年的老前端,今天直接甩出10个超实用的Vue3实战技巧,手把...

怎么在 vue 中使用 form 清除校验状态?

在Vue中使用表单验证时,经常需要清除表单的校验状态。下面我将介绍一些方法来清除表单的校验状态。1.使用this.$refs...

取消回复欢迎 发表评论: