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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 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
相关文章
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
200 64
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
141 6
|
5天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
1月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
80 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
69 2
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
56 2
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗