浅谈图数据库

简介: 浅谈图数据库

01 什么是图数据库?

图数据库(Graph Database) 是一种专门用于存储处理图数据数据库管理系统

图数据库 的核心概念是 图论 中的图,它由节点(或顶点)组成,节点表示实体,边表示节点之间的关系。

想象一下社交网络,每个人都是一个节点,他们之间的关系(如朋友、家人、同事等)就是边图数据库就是用来存储和查询这些节点和边的关系的。

02 与传统数据库的区别?

与传统数据库相比,图数据库 更强调关系,能够更好地处理复杂的关系网络,它们灵活适应不同类型的数据和变化,它们能够快速查询节点之间的关系,而不仅仅是简单的数据检索,并且它们可以处理大规模的数据集

下面以表格的形式简单列举下:

图数据库 传统关系型数据库
数据模型 图模型:节点和边 表格模型:表和行
关注点 关注实体之间的关系和连接 关注数据的存储和结构
查询方式 图遍历算法,查询节点之间的关系 SQL查询语言,基于表连接查询
数据灵活性 每个节点和边可以具有自己的属性和值 预定义的结构和列限制
扩展性 可以水平扩展以处理大规模的图数据集 垂直扩展或复制来处理大量的表数据

扩展性” 指的是图数据库和传统关系型数据库在处理大规模数据时的能力和灵活性:

  • 水平扩展】:图数据库具有良好的水平扩展能力,意味着可以通过增加更多的机器或节点来扩展数据库的处理能力。当数据量增长时,可以简单地添加更多的服务器或节点来分担负载,并提供更好的性能和容量。这种扩展方式对于处理大规模图数据集非常有效,因为它可以利用并行处理和分布式计算的优势。
  • 垂直扩展或复制】:传统关系型数据库通常采用垂直扩展或复制的方式来处理大量的表数据。垂直扩展意味着增加服务器的处理能力和资源,例如增加更快的处理器、更多的内存等。复制则是通过创建多个数据库副本来处理负载。这种扩展方式在某种程度上可以提高性能和容量,但有一定的限制,并且可能会涉及更高的成本。

03 图数据库产品

3.1 图数据库有哪些的产品?

几个常见的图数据库产品:

产品 开源 用户量 地址
Neo4j 高(广泛使用) https://neo4j.com/
Amazon Neptune 高(AWS 用户) https://aws.amazon.com/neptune/
TigerGraph 中到高(逐渐增长) https://www.tigergraph.com/
JanusGraph 中到高(逐渐增长) https://github.com/JanusGraph/
ArangoDB 中到高(逐渐增长) https://www.arangodb.com/https://github.com/arangodb/arangodb
Nebula Graph 中(快速增长) https://nebula-graph.io/https://github.com/vesoft-inc/nebula-graph

3.2 Nebula Graph

官网描述:悦数图数据库采用存算分离的原生分布式架构,擅长处理千亿点万亿边的超大规模数据集并保持毫秒级查询延时,具有高性能、易扩展、安全稳定、自主可控的特点。自 2022 年 4 月发布以来,被中国移动、五矿期货、长沙银行等多家知名企业应用于金融风控、实时推荐、知识图谱等业务场景。

其中这里特别说明一下,Nebula Graph是由国内的 悦数公司(VESoft) 开发的,于2018年开源,它的优点如下:

  • 可扩展性】:Nebula Graph 采用分布式架构,具备良好的可扩展性,可以通过添加更多的节点来处理大规模的图数据集。它能够满足数据量不断增长的需求。
  • 多模型支持】:Nebula Graph 不仅支持图模型,还支持文档和键值模型。它允许在同一数据库中存储和查询不同类型的数据,为用户提供了更大的灵活性;
  • 数据一致性】 :Nebula Graph 强调数据的一致性,并提供了 ACID 事务特性的支持。它确保在并发和分布式环境下数据的一致性和可靠性。
  • 安全性和权限控制】:Nebula Graph 提供了丰富的安全性功能和权限控制机制。它支持角色和权限管理,可以精细控制对图数据库的访问和操作权限,保护数据的安全性和机密性。
  • 开源社区支持】: Nebula Graph 是一个开源项目,拥有活跃的社区。用户可以从社区获得技术支持、文档、示例代码和贡献方式。社区支持可以帮助用户更好地使用和发展 Nebula Graph。

同时,除了优点,还有一些不足之处:

  • 学习曲线:由于 Nebula Graph 是一个相对较新的图数据库,并且采用了分布式存储和计算架构,对于那些对分布式系统和图数据库概念不太熟悉的用户来说,可能需要额外的学习和理解;
  • 生态系统支持:相对于一些其他图数据库,Nebula Graph 的生态系统支持可能相对较少。这包括第三方工具、可视化和集成等方面的支持。用户可能需要根据自己的需求来构建和定制相关工具和解决方案;
  • 社区资源和文档:作为一个相对较新的图数据库,Nebula Graph 的社区资源和文档可能相对较少,这可能会增加在解决问题、获得支持和获得帮助时的困难程度。

04 小结

本文主要谈了图数据库的一些概念、与传统数据库的区别以及主流的产品,并特别指出了国内开源的Nebula Graph(支持下国产),博主也没有具体深入去用过,如果操作上能再简化点,生态系统完善些应该还是有一定的上升空间的。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
存储 SQL 分布式计算
浅谈图数据库
浅谈图数据库
245 1
|
存储 NoSQL Java
|
存储 分布式计算 NoSQL
聊聊图数据库和图数据库的小知识 Vol.02
在第二期的图数据库小知识中,我们回顾了图数据库的兴起契机,聊了聊【传统数据库通过设计良好的数据结构是不是可以实现图数据库的功能】、【图数据库会出于什么考虑做存储计算分离】等图数据库设计问题…
1293 0
|
存储 NoSQL 数据可视化
聊聊图数据库和图数据库的小知识
图数据库计算存储分离设计及该设计模式的考量原因、图数据库 0 标签的意义等图数据库相关问题
2495 0
|
存储 大数据 Apache
越来越火的图数据库究竟是什么?
如果把传统关系型数据库比作火车,那图数据库就是如今大数据时代的高铁。那究竟什么是图数据库呢?来不及解释了,先上车!~
3535 0
|
新零售 分布式数据库 数据库
图数据库HGraphDB介绍
一、HGraphDB概述图无处不在,社交和电商领域每天都会产生大量的实体连接数据,而描述图的方式往往是使用包括顶点和边以及丰富的属性的属性图来展现。在如今的2018年,社交网络和电商数据往往能够形成非常大的实体图,包括数十亿顶点和百亿条边这样的数据量。
6710 0
|
JSON 关系型数据库 数据库
图数据库:AgensGraph
非常流行的图数据库
3760 0
|
机器学习/深度学习 存储 NoSQL
图数据库浅谈
图数据库分为两大类:native graph和non-native graph native graph: 数据只能存放在一台机器上。不支持分片。如果你的数据量非常大,Neo4j是扛不住的。
1862 0
|
NoSQL 数据库 数据中心