当前位置:数码通 > 电脑

性能远超Neo4j,专访图数据库Nebula Graph创始人

来源于 数码通 2023-10-07 19:37

本月初,DB-Engines如期发布了最新的全球数据库管理系统排行榜。传统关系数据库仍然占据榜首。位,蚕食了大部分数据库市场。

对于大多数中小型厂家来说,当数据量较小、并发量较小时,公司内部使用的管理系统首选仍然是关系型数据库,包括MySQL、Oracle、SQL Server、 PostgreDB等,这些也是我们平时接触最多的数据库系统。

然而,随着互联网流量的爆发式增长,越来越多的企业需要支持海量数据存储,这对高并发、高可用性、高扩展性等特性提出了更高的要求。传统的关系数据库已经无法应对这些情况。于是,各种NoSQL(Not Only SQL)数据库作为传统关系数据库的补充而迅速发展。

其中,图数据库(Graph DBMS)是基于图论的NoSQL数据库,用于存储实体之间的关系信息。最常见的例子是社交网络中人与人之间的关系。传统的关系数据库在存储“关系”数据方面不是很有效。他们的查询逻辑复杂、缓慢且超出预期。图数据库独特的设计恰好弥补了这一缺点,解决了关系数据库存储和处理复杂关系数据的问题。较弱的问题。

但由于图数据库的应用场景相对垂直,相关技术在国内起步较晚,国内与之相关的讨论和技术文档也相对较少。社区很多朋友对图数据库技术的相关信息不太了解。为此,我们邀请了开源图数据库项目NebulaGraph的创始人叶晓萌,请他为我们分享图数据库在中国的应用现状和市场前景。中国。

什么是图数据库?

图,计算机相关专业的同学应该都学过。它是一种由点和边组成的网络数据结构,图数据库存储图数据并基于它进行语义查询。数据库。

图数据库本身存储了实体(和关系(边),因此擅长处理数据之间的关系,对应的一些典型场景也一应俱全:网络、金融风控、推荐引擎、知识图谱、区块链

社交网络,例如,推荐认识迪丽热巴的最短路径。您还可以添加过滤条件,使路径上的每个人都是单身女性。

金融风控,例如检查信用卡防套现网络。一个非常典型的场景,A传输到B,B传输到C,C再传输回A。这是一个典型的闭环。对于这样的闭环,在图数据库大规模应用之前,这些查询大多是使用离线计算的方式进行搜索。但线下场景下当前的交易很难控制。对于信用卡交易或者网贷来说,整个操作流程非常长,反套现的审核时间仅限于毫秒级。这是图数据库一个非常大的应用场景。

在推荐算法中,向某人推荐朋友。目前的计划是寻找朋友的朋友,并确定朋友的朋友是否有可能成为某人的新朋友。这涉及到好友关系的亲密程度、到达好友的好友的最短路径等。业务方可能会使用MySQL或者HBase等传统数据库来存储各种好友关系,然后通过多个串行Key-Value进行查询,但是这很难满足在线场景的性能要求。

知识图谱近年来非常流行。知识图谱结合自然语言广泛应用于金融医疗、互联网等众多领域。常见的包括语音助手和聊天机器人。 、智能问答等应用场景。图数据库存储的数据结构完全适应知识图数据。图中的实体对应于图数据库的点,实体之间的关系对应于图数据库的边。以星云为例。 Nebula Graph Schema 使用属性图。边上的点 属性对应于图实体和关系中的属性。边缘的方向表示关系的方向,边缘上的标记表示关系的类型。

说起最近国内很火的区块链场景,由于区块链上的所有行为都是公开记录且不可篡改的,所以所有的交易行为,无论是历史数据还是大致每隔几天,就会产生新的区块解析DAT文件后,可以将分钟导入图数据库和GNN中进行分析。比如我们都听说过,在一些数字货币场景中,存在很多洗钱、盗窃、团伙、操纵市场等行为。使用图表可以帮助我们挖掘非法活动。

图数据库与传统关系数据库的关系

社区里很多朋友都在讨论NoSQL数据库,包括图数据库,未来会不会取代传统的关系型数据库?

叶小萌认为两人之间的关系不是谁取代谁,谁杀谁,而是一种相辅相成的互补关系。不可否认,传统关系数据库存在数据存储结构不灵活、性能较差等问题。但相应地,它们使用相同的表结构并且更易于维护。至于企业应该使用哪种类型的数据库,还必须从业务本身出发。毕竟技术还是要为业务服务的。一般来说,NoSQL数据库基于CAP模型,主要解决传统关系数据库无法应对的大数据量,而传统关系数据库基于ACID模型,主要解决数据一致性问题。

而且根据Bloor的2020年图数据库报告:越来越多的关系数据库厂商开始提供图查询和图处理功能,兼容图查询语言。这一趋势表明,数据库厂商意识到用关系数据库或图数据库彻底解决客户需求越来越困难,很多场景下需要集成多种解决方案。可见NoSQL数据库和传统关系数据库是相辅相成的。

星云图的特点

据悉,Nebula Graph叶晓萌完全自主研发的团队Graph数据库系统 ,主要有以下技术特点:

  • 存储与计算分离

Nebula Graph 有几个技术特点:第一是采用存储与计算分离的架构。主要好处是云迁移或者弹性,方便独立扩展。业务水平总是难以预测。可能一时存储不够,有时可能计算不够。在云上或者使用容器技术,计算和存储分离的架构会更方便运维,成本也会得到更好的控制。

  • 海量数据存储

Nebula Graph 擅长处理数千亿节点、数万亿条边的超大型数据集,并提供卓越的性能,这是 Neo4j 等传统图数据库 无法做到的。

星云图 VS Neo4j

说到图数据库,Neo4j自然是绕不开的标杆。这是一个在开源社区非常知名的图数据库项目。它也是 DB-Engines 列表中排名最高的图数据库产品。那么作为后来者,NebulaGraph与Neo4j等市面上主流图数据库相比,在性能上哪个更好、哪个更差呢?

关于NebulaGraph与Neo4j等知名图数据库的性能对比,使用图数据库的开发者进行了专业测试。我们直接找到了这个测试的详细信息:

由于图数据库在挖掘黑灰团伙、构建安全知识图谱等安全领域具有天然优势,为了更好地服务于业务,选择高效且适合业务发展的图数据库就显得尤为关键。腾讯云安全团队的工程师选取了业界流行的几款开源图数据库(Neo4j社区版、HugeGraph),与NebulaGraph进行了多角度对比。

  • 对比对象:

Neo4j:Neo4j是业界广泛使用的图数据库,包括社区版和商业版。本文使用的是社区版本。

HugeGraph:HugeGraph是百度基于JanusGraph改进的分布式图数据库。主要应用场景是解决百度安全事业部面临的反欺诈、威胁情报、黑品打击等业务的图数据存储和图构建。模型分析要求。具有良好的读写性能。

  • 测试硬件环境:

  • 性能对比:

使用不同量级的图,我们从存储时间、首次好友查询、二级好友查询、普通好友查询等几个方面进行了比较。结果如下:

可以看到,在导入性能方面,当数据量较小时,NebulaGraph的导入效率比Neo4j稍慢,但是当数据量较大时,Nebula Graph 的导入明显优于其他两个图。数据库;在三种查询场景中,NebulaGraph的效率明显高于Neo4j,并且与HugeGraph相比也具有一定的优势。

  • 查询语言对比:

从查询语句来看,HugeGraph使用的Gremlin比较复杂,NebulaGraph和Neo4j的nGQL Cypher 相对简洁。从可读性角度来说,nGQLSQL比较类似,更符合大家的使用习惯。

  • 视觉对比:

在可视化方面,所有平台都还处于可用状态。 Nebula Graph 的选择性扩展在帮派挖矿中是一个优点,但在二次结果展示和显示结果自定义展示的流畅度上还存在问题。优化空间。

在对比了业界主要使用的多个开源数据库后,测试团队从性能、学习成本、与业务契合度等多个角度最终选择了Nebula Graph图数据库。

此测试结果由腾讯云安全团队李航宇、邓昌波撰写
完整测试地址: 《Neo4j vs HugeGraph vs Nebula Graph》

中国图数据库的发展

包括开源中文社区,我们发现国内关于图数据库相关的讨论和学习文档相对较少,了解图数据库相关技术的人才也不多。那么图数据库在中国如何才能普及以及当前市场的情况发展得如何呢? 叶晓萌与我们分享了星云项目组推广图数据库技术的个人经验。

前面提到过,在 Nebula Graph 之前叶小萌工作过两个图数据库。可以说,他在这方面有着丰富的经验,也知道业务方的痛点。基于此,他带领团队创建了Nebula Graph。

星云项目于2019年5月开源后,一年多的时间里,Nebula Graph已经被微信、美团、小红书、360数学、企查查等用户使用。已在生产中多个业务场景得到应用。在此过程中,项目团队积累了宝贵的业务经验;同时,由于Nebula Graph是开源产品,很多用户在自己的业务场景中使用时会遇到困难,从而导致项目的失败。在社区论坛上提问也成为项目组了解用户反馈的重要途径。在此基础上,开发和产品团队不断优化Nebula Graph。

谈及图数据库技术在中国的推广,叶晓萌为我们分享了推广Nebula Graph的经验。在推广过程中,主要有四点:一是国内用户对图数据库概念相对陌生,需要输出相关图数据库知识。为此,团队专门召集了一批国内图数据库专家。 home建立了图数据库交流群,对图数据库技术感兴趣的朋友提供了一个讨论的平台;二、产品如何自我宣传?团队定期制作一些产品功能讲解文章,与用户沟通星云为何如此设计以及该功能点背后的原理,从而拉近与用户的距离,降低用户使用图数据库的门槛。 “当然,得益于开源中国这样的开放平台,我们的新技术能够得到关注。”第三,团队定期召开线下图数据库交流会。受疫情影响,今年也改用线上直播。最后,星云Graph将亮相国内知名的QCon和DAMS顶级技术会议,以及国外OCS峰会,与国内开发者分享图数据库技术。

Nebula Graph 开源构建

最后,叶小萌和我们聊了聊他个人对开源的看法,叶小萌认为如果没有Linux,现在的互联网格局将不会是今天这个样子。 我们希望建立一个图数据库社区,做出更好的图数据库产品。我们也希望更多对Nebula Graph和图数据库感兴趣的同学成为社区的贡献者,共同努力实现共同的目标。构建互助互利的共同体。 叶小萌说道。

目前,NebulaGraph的项目仓库已开放21个Repo,贡献者数量超过70,共提交 超过 5k 提交。 团队内部和外部贡献者的比例约为1:1。

叶晓萌介绍,在社区互动方面,未来他们将重点打造外部开发者生态,让开发者参与社区建设和产品设计,我们还会定期举办Hackathons等活动,互相交流。欢迎对图数据库技术感兴趣的朋友前来交流学习

受访者介绍

开源中国的读者朋友们大家好,我是叶小萌,开源分布式图数据库Nebula Graph的创始人。目前我们团队有40多人,开发人员占比70%左右。核心开发团队来自Facebook、阿里巴巴、华为等国内外知名公司。

当然,我也是一个技术人,只不过这个“老码农”已经从硅谷的Facebook去了杭州的蚂蚁,然后自己开发了新一代分布式图数据库Nebula Graph。可以说我一直在做图数据库。开发相关工作。 欢迎对图数据库或Nebula Graph感兴趣的开源中国伙伴交流技术。

登录后参与评论