《图数据库(第2版)》——1.2 图领域概览

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

本节书摘来自异步社区出版社《图数据库(第2版)》一书中的第1章,第1.2节,作者:【美】Ian Robinson(伊恩•罗宾逊) , Jim Webber(吉姆•韦伯) , Emil Eifrem(埃米尔•艾弗雷姆),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 图领域概览

近年来,无数用于管理、处理和分析图的项目和产品纷纷涌入市场。技术选择的陡增使我们难以跟进这些工具并摸清它们之间的区别,即便对我们这些一直活跃在这个领域的人来说也是如此。本节的内容对理解新兴的图领域提供了一个“高空俯览”。

从高空俯看,我们可以将图领域划分成以下两部分。

主要用于联机事务图的持久化技术,通常直接实时地被应用程序访问
这类技术被称为图数据库,正是本书主要讨论的内容。它们和“常见的”关系型数据库世界中的联机事务处理(online transactional processing,OLTP)数据库是一样的。

主要用于离线图分析的技术,通常按一系列步骤执行
这类技术被称为图计算引擎。它们可以和其他大数据分析技术看做一类,如数据挖掘和联机分析处理(online analytical processing,OLAP)。

我们可以从另一个视角去划分图领域,去观察各种技术使用的图模型。主流的图模型有3种,分别是属性图、资源描述框架(Resource Description Framework,RDF)三元组和超图。我们将会在附录A中对它们进行详细的说明。市场上常见的大多数图数据库使用的都是属性图模型的变体,因此,在本书接下来的部分我们也将使用这一模型。

1.2.1 图数据库

图数据库管理系统(以下将简称图数据库)是一种在线的数据库管理系统,它支持对图数据模型的增、删、改、查(CRUD)方法。图数据库一般用于事务(OLTP)系统中。相应地,它们也对事务性能进行了优化,在设计时通常考虑了事务完整性和操作可用性。

在研究图数据库技术时,有两个特性需要多加考虑。

底层存储
一些图数据库使用原生图存储,这类存储是优化过的,并且是专门为了存储和管理图而设计的。然而并不是所有的图数据库使用的都是原生图存储,也有一些图数据库将图数据序列化,保存到关系型数据库或面向对象数据库,或是其他通用数据存储中。

处理引擎
一些定义要求图数据库使用免索引邻接,这意味着,关联节点在数据库里是物理意义上的“指向”彼此[2]。这里如果我们看的更宽泛些:站在用户的角度,任何看起来像是图数据库的都可以称为图数据库(比如说,提供了对图数据模型的CRUD操作的数据库)。然而,我们得承认这个事实,免索引邻接带来巨大的性能优势是其他数据库无法比拟的,因此我们使用原生图处理来代表利用了免索引邻接的图数据库。

需要注意的是,原生图存储和原生图处理并不一定比其他方式更好或更差——这不过是典型的工程取舍而已。原生图存储的好处是,它的栈是专门为性能和扩展性设计建造的。但相对的,非原生图存储通常建立在非常成熟的非图后端(如MySQL)之上,运维团队对它们的特性烂熟于心。原生图处理(免索引邻接)虽然在遍历查询时性能优势很大,但代价是一些未使用遍历的查询会比较困难,并且需要占用巨大的内存。
与那些需要额外增加像外键这样的属性或者使用map-reduce这样的额外处理来推测实体间关联的数据库管理系统不同,联系在图数据模型中是“一等公民”。图数据库通过将节点和联系的简单抽象组装为相互关联的结构,使我们能够建造任意复杂的模型,形象地映射我们的问题域。比起那些传统的关系型数据库和其他NoSQL(Not Only SQL)存储,我们所得到的模型更简单,也更具表现力。

根据存储和处理模型不同,图1-3展示了现在市场上的一些图数据库。
image

1.2.2 图计算引擎

图计算引擎技术使我们可以在大数据集上使用全局图算法。图计算引擎旨在识别数据中的集群,或是回答类似于“在一个社交网络中,平均每个人有多少联系?”这样的问题。

因为偏重于全局查询,图计算引擎通常为扫描和批处理大规模信息做过优化,在这个方面,它们和其他批分析技术(如在关系型数据库世界中大家都很熟悉的数据挖掘和OLAP)类似。只有一部分图计算引擎有自己的图存储层,其他的(几乎可以说大部分)则只完全关注于如何处理外部传入的数据,然后返回结果到其他地方存储。

图1-4展示的是一个通用的图计算引擎部署架构。该架构包括一个带有OLTP属性的记录系统(SOR)数据库(如MySQL、Oracle或Neo4j),它给应用程序提供服务,请求并响应应用程序在运行中发送过来的查询。每隔一段时间,一个抽取、转换和加载(ETL)作业就会将记录系统数据库的数据转入图计算引擎,供离线查询和分析。

image

图计算引擎多种多样。最出名的有内存的单机的图计算引擎Cassovary,以及分布式的图计算引擎Pegasus和Giraph。大多数分布式图计算引擎都是基于Google发布的Pregel白皮书,它主要讲述了Google如何使用图计算引擎来计算网页排名。

本书重点关注图数据库

通过前面的介绍,我们对整个图领域有了一个大致的了解。在这之后,本书将主要关注图数据库。我们的目标始终是试图向读者解释清楚图数据库的概念。我们会在适当的时候穿插一些例子来说明这些概念。这些例子都来自于我们使用带标签的属性图模型和Neo4j数据库开发解决方案的过程中获得的经验。读者不必在意我们的例子中使用了什么具体的图模型或图数据库,这些关键概念对于其他的图数据库同样适用。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
1月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
1月前
|
人工智能 自然语言处理 NoSQL
悦数图数据库推出 AI 知识图谱构建器及图语言生成助手
随着人工智能应用在全球范围的普及和风靡,大语言模型技术(Large Language Model,简称 LLM)受到了广泛的关注和应用。而图数据库作为一种处理复杂数据结构的工具,能够为企业构建行业大语言模型提供强大的支持,包括丰富亿万级别的上下文信息,提升模型的应答精度,从而实现企业级的应用效果。同时,Graph+LLM 可以助力快速构建知识图谱,帮助企业更深入地理解和挖掘数据价值。
|
5月前
|
分布式计算 NoSQL 数据可视化
图数据库HugeGraph:HugeGraph-Hubble基于Web的可视化图管理初体验
图数据库HugeGraph:HugeGraph-Hubble基于Web的可视化图管理初体验
101 0
|
8月前
|
存储 人工智能 自然语言处理
悦数图数据库:发布 AI 大模型解决方案,开启「图+ 大模型」应用新范式
随着 AI 人工智能技术的迅猛发展和自然语言处理领域的研究日益深入,如何构建强大的大语言模型对于企业来说愈发重要,而图数据库作为处理复杂数据结构的有力工具,为企业构建行业大语言模型提供了强大的支持。
|
9月前
|
存储 人工智能 自然语言处理
悦数图数据库:图技术加速行业大模型智能化应用落地|WAIC 2023 精彩回顾
7月8日,以“智联世界,生成未来”为主题的 2023 世界人工智能大会(WAIC)在上海顺利闭幕,悦数图数据库最新版本 v3.5.0在大会上首次亮相,并带来了悦数图数据库与 AI 大模型结合的实践成果分享,获得现场观众及媒体的广泛关注。
悦数图数据库:图技术加速行业大模型智能化应用落地|WAIC 2023 精彩回顾
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
悦数图数据库:图技术和 AI 在金融行业的应用及技术前瞻
一起来看看 Graph 和 AI 结合金融领域的案例以及悦数图数据库在做的一些大语言模型及前沿技术工具。
悦数图数据库:图技术和 AI 在金融行业的应用及技术前瞻
|
机器学习/深度学习 存储 分布式计算
如何在图数据库中训练图卷积网络模型
如何在图数据库中训练图卷积网络模型
151 0
如何在图数据库中训练图卷积网络模型
|
存储 人工智能 搜索推荐
生物信息学数据库分类概览
生物信息学数据库分类概览
594 1
|
存储 SQL 数据库
数据库开发概览和设备运行数据库方案设计
  基于数据库的应用平台是最常用的平台,比如大家订票用的网站12306,火车票和订票用户信息都是保存在数据库里。12306第一版本不太好用,也和它的数据库设计和开发不到位有一定关系。   数据库开发有简单的层次,比如面向一个表实现简单的增删改查,这些通过SQL开发技术来实现不麻烦。   数据库开发中级层次涉及到存储过程开发和TSQL开发,存储过程是数据库系统里的一类对象,TSQL是存储过程的开发语言。存储过程在服务器端执行多条命令,比在客户端执行多条命令效率快。   数据库高级开发相关的有内存数据库、复杂硬件平台和非关系数据库,内存数据库支持实时性要求高的环境,复杂硬件平台用于支持数据量
211 0
|
NoSQL Cloud Native 安全