图数据库介绍及应用场景| 学习笔记

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习图数据库介绍及应用场景。

开发者学堂课程【阿里云图数据库 GDB 入门与应用 :图数据库介绍及应用场景】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/623/detail/9443


图数据库介绍及应用场景

 

目录

一、 什么是数据库?

二、 自建图数据库的挑战

三、 应用场景

 

一、什么是数据库?

1.典型的图结构由点,边和点边对应属性构成,圈数据库则是针对能这种结构的独有特点而专门设计的一种数据库,非常适合高度互连数据集的存储和查询。

左边示例中描述的是一个极度简化的社交关系图,圆圈代表顶点( Vertex/node),有方向的线条代表边(Edge),顶点或者边都可以有属性(Property)。

image.png

有三个点,表示三个人物。ID 为1的表示一个年龄为18岁的名字叫 Alice 的人,这些点表示人,上面的属性表示人的属性人与人之间的联系通过边来表示,比如 Alice 和 Bob 之间的关系是认识,边上面还有属性,比如 ID 为100的边上的属性就是2001/10/03,说明是从这一天认识,这个图是明显的结构,由点,边和相关属性构成,而图数据库就是专门为图设计的一种结构,比较适合高度互连数据集的存储和查询。

2.阿里云图数据库

图数据库( Graph Database,简称GDB)是一种支持属性图模型,用于处理高度连接数据查询与存储的实时可靠的在线数据库,支持 TinkerPop Gremlin 查询语言,可以帮助用户快速构建基于高度连接的数据集的应用程序。

image.png

产品的 GDB 分为三层,最底层是引擎层,上面是 database 计算层,在上面支持查询语言 API 的 class 端,用户在 GDB 上面可以构建自己的程序。

纵向是运维的功能,包括产品的高可用,性能管理,备份/恢复,自动扩展,只读副本,安全加密,计费。

3.图数据库 vs 关系数据库

在传统的关键性数据库和图数据库上有明显的区别。

image.png

用户 Userld-xxx 发起“查询自己2度好友中名字叫 james 的人”这样个查询请求,以传统关系数据库的做法,你可能会写出如下查询语句:

select" from t as t3 where t3.uid in(

select friend uid from t as t2 where t2. uid in(

select friend _uid from t as t1 where t1.uid='Userld-xxx

and t3.name='James'

图数据库中查询2度好友:

g. V(Userld-

xxx').repeat(both(). simplePath () times().dedup().has('name

'James')

常用的场景如上,t 表表示用户信息,用户字段 friend uid 表示朋友的 uid,可以看到查询2度好友,有两次的自连操作,需要条件过滤。

图数据库:

g是把所有数据拿出来,找到 User Id-xxx 的点,然后从这个点出发游走,2跳,去重,对属性进行过滤。这只是一个2度查询,可以看到区别。

通过一些性能上的分析可以看到,高度连接的数据查询复杂,效率低下,SQL 语句也复杂。图数据解决了这些复杂的需求,在二度查询平均耗时上,关系型数据库是图数据库的十倍,在三度查询平均耗时上,关系型数据库是图数据库的二十倍。

image.png

在关系型数据库中,高度连接的数据查询复杂且效率低下,而图数据库从基因层面提供了高效解决方案。

面对高度联系的应用场景,选择图数据库。

 

二、自建图数据库的挑战

1. 运维复杂

构建生命周期管理、监控等一系列服务,整体成本很高。

2. 缺乏企业级支持

对于产品的数据集成、产品优化、数据管理,产品Bug等没有完整的支持体系。

3. 可靠性差

需要自己构建高可用系统、自建搭

建监控服务等,成本很高。

4. 价格贵

Neo4j Enterprise Base $189,188 (3 instance)

需要将近十九万美元的成本。

 

三、应用场景

1. 社交网络

在例子讲解,传统数据库对超过三度的查询非常低效,不支持,但图数据库相对容易。

image.png

2. 欺诈检测

通过分析贷款,分期付款的联系人相关信息,进行信用平分。

image.png

3. 搜索引擎

将用户的购买行为,位置关系收藏,实时存储在图数据中,利用图数据库对于高度连接的数据查询高效特点,对用户进行个性化评价。

image.png

4. 其他应用场景

知识图谱、网络/T运营、生命科学等其他领域。

5.社交网络场景:

从用户 A 出发搜索用户 B,甚至搜索跟用户 A 有关系的用户 B,进行一层过滤。前面的案例,关系型数据库表达会非常困难。

A. B 两个用户是如何连接的?

查询最短路径,和短路径之间的阶段

用户推荐

一般有两个实现:

1.两度的人面找, path 多的第一,边最多,可能有很强的关系。

2.如果某个 feature 有很强的识别性,那么直接 featuar 找出相同的用户。

实时推荐场景:

image.png

某 APP,当用户 A 来到商场 B 的时候,如何进行推荐?

根据用户当前的行为、位置等进行实时推荐,最大化数据的商业价值

1.根据朋友,朋友的朋友购买行为进行实时推荐

2.从用户出发,遍历所有朋友、朋友的朋友

3.计算发生“购买”关系最多的商铺,进行推荐

4.“购买”的关系可以替代为“Like”、“打分”等

5.优化:对朋友之间的关系进行亲密度”计算,从而增加“更亲密”朋友的权重

6.实时推荐类似的场景还有

7.用在线进入某个商铺之后,如何进行推荐

金融欺诈场景:

用户A在申贷款额度,或名申请信用支付时:

根据通信录联系人计算个人信用参考值。如果联系中有信用较差的用户,则考虑提高利率或省贷款

从消费者出发,检索贷款分期等金融信息,然后根据金融企业所注册用户的信用信息进行分析,根据消费者通信录联系人,计算个人信用的参考值,或联系人有信用较差的用户,会考虑是否有欺诈行为存在自己。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
27天前
|
安全 关系型数据库 MySQL
MySQL数据库高效秘籍:10个小技巧,让你轻松应对各种场景!
【8月更文挑战第25天】本文介绍了十个提升MySQL数据库效率与安全性的实用技巧。涵盖查询性能分析、索引优化、慢查询日志利用、图形化工具如MySQL Workbench的应用、性能分析工具、主从复制实现、备份与恢复策略、数据库迁移方法及安全性保障等多个方面。通过具体的示例代码展示每个技巧的实际操作方式,帮助读者深入理解并有效运用MySQL数据库。
56 0
|
17天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
7天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
9天前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
17 7
|
27天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
1月前
|
SQL Java 关系型数据库
应用DriverManager类创建sqlserver数据库连接实例 JSP中使用数据库
该博客文章介绍了在JSP中使用JDBC连接SQL Server数据库的方法,包括加载数据库驱动、建立数据库连接的过程,并提供了一个使用DriverManager类创建数据库连接的Java示例代码。
|
21天前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
45 0
|
21天前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
38 0
|
21天前
|
NoSQL 关系型数据库 MySQL
|
21天前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
33 0