图数据库 - 概述

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: # 背景关系型数据库自上世纪80年代以来一直都是数据库领域发展的主力,随着社交、物联网、金融、电商等领域的快速发展,由此产生的数据规模和数据间的关系复杂度呈现指数级的增长,而传统的关系型数据库在处理复杂关系的数据上表现很差,这是因为关系型数据库是通过外键索引来实现多表之间的关系引用的,查询实体之间的关系需要JOIN操作,而JOIN操作通常非常耗时,因此我们需要一种新的数据组织和查询方式,帮助我们

背景

关系型数据库自上世纪80年代以来一直都是数据库领域发展的主力,随着社交、物联网、金融、电商等领域的快速发展,由此产生的数据规模和数据间的关系复杂度呈现指数级的增长,而传统的关系型数据库在处理复杂关系的数据上表现很差,这是因为关系型数据库是通过外键索引来实现多表之间的关系引用的,查询实体之间的关系需要JOIN操作,而JOIN操作通常非常耗时,因此我们需要一种新的数据组织和查询方式,帮助我们高效精准的处理复杂关系数据。

什么是图数据库


图数据库(graph database,GDB)是一个使用图结构进行语义查询的数据库,原始设计动机就是更好地描述实体之间的关系,它使用节点、边和属性来表示和存储数据,它与关系型数据库最大的不同就是免索引邻接。
基本概念:

  1. 节点(顶点) - 图的节点,对应现实世界中的某一类实体,比如人、学校、毕业证书等
  2. 关系(边) - 实体之间的关联关系,带有方向性。比如小明住在北京,是一条人员小明指向城市「北京」的关联关系
  3. 属性 - 用来存储节点或者关系的key/value对(在图中,关系和节点一样,都是一等公民,拥有属性和标签)
  4. 标签 - 能将类似的节点归类的特征,可以理解为面向对象变成中的类名(也算是一种特殊的属性)

图中的每个节点都会维护与它相邻节点的关系,关系和节点一样,是图的一等公民。图数据库执行查询的耗时与整体数据规模无关,与节点中的邻点数相关,这使得图数据库在处理大量复杂关系时也能保持良好的性能。

另外,图的结构决定了其易于扩展的特性,不必在模型设计之初就把所有的细节都考虑到,可以在后续增加新的节点、关系、属性、标签等,且不会破坏已有的查询和功能。

应用场景

从技术角度出发,图数据库的运用是针对解决数据的高度关联带来的随机访问问题;从业务角度出发,图的价值在融合数据、技术、通过数据的关联产生高维认知。
目前图数据在行业内的主要应用场景包括:社交网络、物流管理、商品推荐、诈骗检测、金融风控、知识图谱、IT基础设施运维监控、人工智能、数据隐私及安全、生物科学等

行业发展现状

通过https://db-engines.com/ 上的数据库热度数据观察,目前热度最高的图数据库是neo4j,并且在所有数据库中排名第 19 位,它可以说是目前使用最广、用户最多、商业化最好的图数据库。
另外其他图数据库中热度较高的包括阿里云GDB、JanusGraph、TigerGraph、Dgraph、Giraph、Nebula Graph等

Neo4j

官方网址:https://neo4j.com/
Neo4j提供一整套的图数据解决方案,包括图数据库、依托云的数据库管理、可视化方案、OpenApi.
优势

  1. 在创建节点的时候就已经把关系给建立起来,避免了在复杂查询场景下的处理
  2. 由于底层直接以图的形式存储节点和关系,在查询的时候可以使时间复杂度保持在常数级别。
  3. 基于JVM实现
  4. 提供一套易于理解的查询语言Cypher以及内置的可视化UI
  5. 很好的支持ACID,有事务机制

阿里云GDB

官方网址:https://cn.aliyun.com/product/gdb
图数据库(Graph Database, 简称GDB)是阿里云自主研发、自主可控的图数据库产品,经历阿里巴巴集团内丰富的应用场景打磨,具备行业最佳实践经验。是基于图技术的行业多元异构数据的融合、分析、决策引擎,是知识图谱的最佳底座。
优势

  1. 支持标准图查询语言(Gremlin和Cypher),能够兼容市面主流图查询产品,降低开发门槛
  2. 实时在线,即时处理海量数据,分析洞察数据价值,可通过只读节点水平扩展并发查询性能
  3. 灵活架构,支持Schema free,满足更灵活多变的数据架构调整需求
  4. 自动建立索引,优化查询效率的同时更易维护
  5. GDB通过自动建立索引优化超级顶点的查询性能
  6. 原生支持对接自动机器学习平台,通过AI算法洞察关系数据规律,产生智能决策

图数据库查询语言

目前图数据库领域的主流查询语言主要有两种:Neo4j支持的Cypher Query Language,以及Apache顶级项目TinkerPop支持的Gremlin。

Cypher Query Language

Cypher官网网址

Gremlin

Apache TinkerPop作为Apache的顶级项目之一,是面向在线事务处理(OLTP)图数据库和在线分析处理(OLAP)图系统的一款图计算框架。TinkerPop可以应用于不同图数据库的抽象层,通过提供通用的API和工具,使开发人员可以基于不同图数据库轻松创建图形应用程序,避免应用程序与特定数据库高度依赖。

Gremlin是一由Apache TinkerPop提供支持的图查询语言,License为开源的Apache License Version 2.0。Gremlin和传统SQL有明显区别,是一种函数式、面向数据流的查询语言,使用户可以更为直接地控制和表达图查询的复杂逻辑。Gremlin包含一个宽松的DSL规范描述,以及基于Java/Groovy的开源实现。

每个Gremlin遍历由一系列步骤(可能存在嵌套)组成,每一步都在数据流(data stream)上执行一个原子操作。

具体用法可查询:http://tinkerpop-gremlin.cn/

参考文章

https://github.com/alibaba/graphscope
https://db-engines.com/en/ranking_trend/graph+dbms
https://ata.alibaba-inc.com/articles/189703?spm=ata.23639746.0.0.3e2a2a2cqpdG0G
手把手教你快速入门知识图谱 - Neo4J教程
TinkerPop简述

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
3月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)一
45 5
|
5月前
|
存储 关系型数据库 MySQL
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
深入OceanBase内部机制:高性能分布式(实时HTAP)关系数据库概述
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
MySQL数据库——锁-概述以及全局锁(介绍、语法、特点)
83 0
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库——索引(1)-概述以及B-Tree结构
MySQL数据库——索引(1)-概述以及B-Tree结构
31 0
|
5月前
|
SQL 存储 关系型数据库
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)二
45 0
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
MySQL数据库——多表查询(1)-多表关系(一对多、多对对多、一对一)、多表查询概述(概念、笛卡尔积、分类)
109 0
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
MySQL数据库——约束(概述、约束演示、外键约束、删除/更新行为)
66 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
MySQL数据库——概述-MySQL的安装、启动与停止和客户端连接、关系型数据库(RDBMS)、数据模型
62 0
|
6月前
|
存储 SQL 数据挖掘
数据模型概述与数据库基础
数据模型是描述现实世界数据对象结构的形式化、真实和易理解的表示。分为概念模型(信息模型)和数据模型,前者面向用户,后者关注计算机实现。数据库是结构化、共享、低冗余的数据集合,提供数据独立性。数据库管理系统(DBMS)负责数据的存储、访问和管理,而数据库系统(DBS)包括数据库、DBMS、应用系统、DBA和用户。数据库系统开发涉及需求分析、系统设计(概念设计、逻辑设计、物理设计)、系统实现和运行维护(数据更新、备份、分析等)。
44 0