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

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

ztj100 2025-02-16 23:45 15 浏览 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》,转载请注明出处)

相关推荐

Java的SPI机制详解

作者:京东物流杨苇苇1.SPI简介SPI(ServiceProvicerInterface)是Java语言提供的一种接口发现机制,用来实现接口和接口实现的解耦。简单来说,就是系统只需要定义接口规...

90%的Java程序员都忽视的内部类使用不当导致内存泄露!

...

一文读懂 Spring Boot 启动原理,开发效率飙升!

在当今的Java开发领域,SpringBoot无疑是最热门的框架之一。它以其“约定大于配置”的理念,让开发者能够快速搭建和启动应用,极大地提高了开发效率。但是,你是否真正了解Spring...

ServiceLoader

ServiceLoader是Java提供的一种服务发现机制(ServiceProviderInterface,SPI)...

深入探索 Spring Boot3 中的自定义扩展操作

在当今互联网软件开发领域,SpringBoot无疑是最受欢迎的框架之一。随着其版本迭代至SpringBoot3,它为开发者们带来了更多强大的功能和特性,其中自定义扩展操作更是为我们在项目开发中...

Spring Boot启动过程全面解析:从入门到精通

一、SpringBoot概述SpringBoot是一个基于Spring框架的快速开发脚手架,它通过"约定优于配置"的原则简化了Spring应用的初始搭建和开发过程。...

Spring Boot 3.x 自定义 Starter 详解

今天星期六,继续卷springboot3.x。在SpringBoot3.x中,自定义Starter是封装和共享通用功能、实现“约定优于配置”理念的强大机制。通过创建自己的Starte...

Spring Boot 的 3 种动态 Bean 注入技巧

在SpringBoot开发中,动态注入Bean是一种强大的技术,它允许我们根据特定条件或运行时环境灵活地创建和管理Bean。相比于传统的静态Bean定义,动态注入提供了更高的灵活性和可...

大佬用4000字带你彻底理解SpringBoot的运行原理!

SpringBoot的运行原理从前面创建的SpringBoot应用示例中可以看到,启动一个SpringBoot工程都是从SpringApplication.run()方法开始的。这个方法具体完成...

Springboot是如何实现自动配置的

SpringBoot的自动配置功能极大地简化了基于Spring的应用程序的配置过程。它能够根据类路径中的依赖和配置文件中的属性,自动配置应用程序。下面是SpringBoot实现自动配置的...

Spring Boot3.x 应用的生命周期深度解析

SpringBoot应用的生命周期可以清晰地划分为三个主要阶段:启动阶段(Startup)...

Springboot 启动流程及各类事件生命周期那点事

前言本文通过Springboot启动方法分析SpringApplication逻辑。从静态run方法执行到各个阶段发布不同事件完成整个应用启动。...

Spring框架基础知识-常用的接口1

BeanDefinition基本概念BeanDefinition是Spring框架中描述bean配置信息的核心接口,它包含了创建bean实例所需的所有元数据。...

一家拥有 158 年历史的公司遭遇索赔,被迫关闭!

...

Java 技术岗面试全景备战!从基础到架构的系统性通关攻略分享

Java技术岗的面试往往是一项多维度的能力检验。本文将会从核心知识点、项目经验到面试策略,为你梳理一份系统性的备战攻略!...

取消回复欢迎 发表评论: