DTCC 2019 | 前沿技术应用知多少? 阿里云图数据库GDB带你探索互联数据的奥秘

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
对象存储 OSS,20GB 3个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 阿里图数据库GDB是一种支持属性图模型、用于处理高度连接数据查询与存储的实时、可靠、可扩展的在线数据库服务。本次演讲深入浅出的介绍了图数据库的概念和使用场景,以及如何快速构建基于高度连接的数据集的应用程序。

摘要:在DTCC 2019大会上,阿里云智能数据库产品事业部高级技术专家王炎进行了题目为《探索互联数据的奥秘——图数据库GDB》的演讲,阿里图数据库GDB是一种支持属性图模型、用于处理高度连接数据查询与存储的实时、可靠、可扩展的在线数据库服务。本次演讲深入浅出的介绍了图数据库的概念和使用场景,以及如何快速构建基于高度连接的数据集的应用程序。

_

专家简介:王炎(花名:夜炎),阿里云智能数据库产品事业部高级技术专家。在分布式系统、存储领域以及NoSQL系统研发领域经验丰富。18年加入阿里巴巴集团,现在阿里负责图数据库系统相关研发工作。

直播回放

链接:https://yq.aliyun.com/live/1050

议题PPT下载,戳这里!

https://yq.aliyun.com/download/3555

申请图数据库GDB公测资格

https://page.aliyun.com/form/act124314140/index.htm

本次演讲主要分为三个部分,首先介绍图数据库GDB的简介和场景。之后分享图数据库GDB的特点,最后介绍图数据库GDB的一些使用范例。

一、图数据库GDB的简介和场景

图数据库(Graph Database, 简称GDB)是阿里巴巴自主研发的支持属性图模型,用于处理高度连接数据查询与存储,并且实时可靠的在线图数据库服务。支持TinkerPop Gremlin查询语言,可以帮助用户快速构建基于高度连接的数据集的应用程序。经常有人会问图数据库是不是存储图片的数据库,或者说是不是提供地图服务的数据库,图数据库中的图是数据结构中图的概念,它的关键元素是点、边和属性。图数据库的通俗定义是一个使用图结构进行语义查询的数据库,它使用节点、边和属性来表示和存储数据。该系统的关键概念是图,它直接将存储中的数据项,与数据节点和节点间表示关系的边的集合相关联。

image001

接下来简单介绍一些使用图数据库的场景,比如社交场景就是一个非常典型的业务场景,图数据库可以轻松应对海量高度互连社交数据的实时存储和高效查询,帮助您快速构建复杂的社交网络系统。目前,社交场景有一个被广泛提及的理论——六度理论,通过六度关系,大家可以认识地球上的所有人。因此,在一个典型的社交网络中,常常会存在“谁认识谁,谁上过什么学校,谁常住什么地方,谁喜欢什么餐馆之类的查询”,传统关系型数据库对于超过3度的查询往往会很低效甚至无法支持,但图数据库从基因层面提供了解决方案,轻松应对社交网络的各种复杂存储和查询场景。

比如,使用GBD来支持集团部业务的时候,需要处理淘宝用户和用户之间的亲戚关系,当用户去更新自己长辈的信息后,图数据库可以实时判断是否会形成环,以此来进行相关信息的校验,另外,使用图数据库进行多跳查询的时候,可以很轻松的拉取好友的好友,以及多跳好友,相比于Mysql数据库,GDB能够提供更好的性能。

第二种典型的业务场景是金融欺诈检测场景,在金融领域,图数据库经常用于欺诈检测场景。例如,通过使用贷款、分期消费者的联系人(或者联系人的联系人)信用信息,对用户进行信用评分,如果评分较低,则拒绝贷款或者提升利率;通过申请人的个人信息(包括电话号码、家庭住址),判断申请人信息是否属实。通常,欺诈者是通过“黑市”购买的用户信息然后拼凑出的“个人信息”,并且这些信息会被反复使用,使用图数据库,可以快速的发现申请人提供的个人信息与现有的用户信息的关系。

第三种典型的业务场景是实时推荐场景,图数据库非常适合实时推荐场景。通过将用户的购买行为,位置,好友关系,收藏等数据实时的存储在图数据库中,然后利用图数据库能对高度互连数据提供高效查询的特点,通过各种维度的快速查询实时进行多维度个性化推荐。例如,在某APP中,通过用户位置及以前的购买行为信息,当某用户A到达某商场B,APP可以向用户实时推荐附近的门店及商品等信息。第四种典型的业务场景是知识图谱场景,图数据库可以快速的构建知识图谱。将图谱数据存储在图数据库中,既可以通过外部输入实时更新,也可以对图数据库内部图谱信息进行分析来不断发现并完善图谱数据。比如,基于图数据库,可以快速实现像针对足球明星的知识图谱应用,帮助用户浏览,发现感兴趣的信息。

但目前知识图谱是一种比较新兴的技术,还没有一个比较完善的开源产品供大家来使用。最后一种业务场景是网络/IT运维场景,图数据库非常适合网络/IT运营相关场景,比如,通过将路由器,交换机,防火墙,服务器等各种网络设备和终端及其拓扑信息存储在图数据库中,当某服务器或终端遭受恶意攻击或者受到感染时,可以快速通过图数据库快速分析并找到传播路径,然后进行相关的追踪及处理。

二、图数据库GDB的特点

image003

图数据库GDB和现有的图的系统是有比较大的差异的,第一,GDB是一个云原生的、自运维的数据库服务,也就是说GDB是一个开箱即用的服务,只需要通过公有云申请即可使用,而无需使用一些开源的或者其他的商业版本来托管运维,同时GDB是高可用的,通过一个主备的HA架构,当主节点的出现故障的时候,会自动的切换到备用的计算节点,可以最大程度的保证业务不受中断。同时在存储方面也使用了多份存储和自动备份的方式来让用户的存储数据不会丢失。

第二,GDB是易于使用的,现有的图系统还是更偏向于分析类的系统,使用场景常常是通过Mysql或者是阿里的ODBS准备好数据,批量导入到图系统中进行分析,最后把结果导入到缓存系统中供在线的业务进行查询。这种情况的应用性并不是非常好,但对于图数据库GDB来说,它提供了一个OLTP的事务保证,因此在进行查询的同时,也可以对数据库的内部数据进行一个并发的更新,且完全不会导致数据内部关系的损坏,其次,图数据库GDB具有很好的扩展性,目前存储是自动弹性扩容的,计算能力也可以根据用户的需求来进行调整。

第三,GDB具有更快的查询和更新性能,图数据库GDB拥有毫秒级的查询时间和百万级的遍历能力,GDB中包括计算图的计算层,存储层都是自主研发的,因此能够掌控全链路上面的所有系统,因此可以更好的构建统计信息和代价估算的模块,通过代价的估算可以更好的选择查询策略、并行策略,因此可以使查询和更新性能更快,这也是使用开源的大数据系统很难做到的一点。

第四,GDB完整支持TinkerPop3.x开放标准,这样可以通过开源的生态去获取更好的可迁移性,这也是图数据库GDB和其他数据库不太一样的地方。

接下来对图数据库GDB的部分特性进行详细的介绍,首先是服务高可用,GDB高可用版本采用一主一备的经典高可用架构,主备都采用独立的图数据库节点,计算与存储分离,主备之间通过复制实现数据同步,一旦主库发生故障,将迅速检测并触发主备切换来保证可用性。备库故障对业务无影响,但会快速被检测到并触发备库自愈。未来提供一写多读实例后,所有读写实例将共享底层存储资源,提升扩展性的同时也将带来整体存储成本的进一步降低。也就是说,GDB是通过前端的负载均衡把请求转发到主数据库节点,之后通过后端的管控来监控主实例,如果主实例出现故障,管控会自动切换到备用实力,同时因为使用的是目前主流的共享存储架构,因此所有的数据都不会受到任何的影响,这样的好处是用户无需搭建自己的架构来保证节点的可用性。

image005

其次,GDB提供备份与恢复的功能,默认的策略是通过配置的方式,让整个图系统的数据自动保存到对象存储的OSS中,同时GDB也支持人工操作的方式进行备份,主动的生成数据库的备份并上传到对象存储中,当因为操作不当导致数据损坏,或是因为业务上的决策需要,便可以将数据恢复到任意的指定的时间点上,因为GDB是把一段时间内的所有事务日志全部备份下来,因此GDB可以指定到秒级别的事务恢复。

image007

GDB在自动索引和Schema-Free上也提供了更加便捷的机制,因为希望用户能够去更加方便的使用图系统,所以GDB提供自动索引的功能,自动索引是指图的所有的点边关系,所有点的属性、边的属性都会建立B-Tree类型的索引,这样用户完全不用关心某一个属性是否需要建立索引,或者什么类型的索引。因此在进行前缀查询的时候,或者说需要比较属性之间大小的时候,便可以通过索引来提供最优的查询方式,节省大量DBA的相关工作。对于Schema,目前采用的是Schema-Free的方式,Schema-Free最大的好处是用户无需考虑数据需要符合怎样的数据类型,表需要多少列,也就是说,在图数据库GDB中,表所支持的列是不受限制的,因此,对于业务方面,GDB能够对开发的应用型提供最大的支持。

image009

在监控告警方面,GDB提供了原生的监控和告警的平台,可以通过控制台取到所有的负载信息,包括CPU,IOPS的使用情况等,在数据导入方面,GDB支持从对象存储里面将用户的数据直接导入进来,目前提供的导入形式是在线导入,用户在查询或者是在正常使用的时候,无需暂停现有的业务,可以直接可以导入新的数据,目前,离线导入的方式也正在开发中,离线导入能够提供更好的导入性能,用户在初次配置后,可以把现有数据完整的通过重置实例的方式导入进来,这样能够更快的启动图数据库GDB及相关服务。

image011

最后来讨论一下图数据库GDB和关系型数据库的区别,很多人可能都会疑惑,图数据库GDB和关系型数据库到底有什么不同?直接使用Mysql是不是也可以提供相应的服务?其实对于高度连接的数据模型的话,这两种数据库是有明显差别的,如果查询只有一跳,最多两跳的情况下,图数据库GDB和Mysql是没有太大差别的,甚至Mysql能够提供毫秒级的查询能力,但是当数据关系的深度增加后,Mysql的查询性能便会急剧下降,下降的主要原因是因为进行多跳查询的时候,会进行自身表和自身表的join操作,对于这种递归的join操作,目前Mysql没能提供一个很好的解决方案。对于数据是社交类的用户,在进行三条以上的查询时,Mysql的查询时间很可能已经超过一分钟了,但对于图数据库GDB依然能够提供一个毫秒级的查询时间。因此图数据库GDB可以为高度连接的数据提供一个更好的使用体验。

image013


GDB的内部抽象是一个属性图的抽象模型,也是现在的最主流的图模型,目前也在考虑提供学术领域的RDF模型。在客户端SDK中,图数据库GDB支持多种编程语言的SDK,包括java、python、.net以及rest:api,兼容TinkerPop 3.4.x及以上版本,目前,也紧密跟踪社区的动态,一旦发布4.0版本,将会第一时间进行支持。

三、图数据库GDB的使用范例

image015

首先是社交领域的范例,社交领域主要关注的是人和人之间的关系,比如说谁是谁的好友,谁关注的谁,或者说谁对谁做了评论,这些事务在社交软件里是非常频繁的,有一些操作是比较重度,在Mysql中难以做到的,比如查找排名前三的网络大V,或者是查找 两个用户之间限定查询深度的最短路径,在图数据库GDB中可以提供一个亚秒级别的查询性能,目前最短路径是使用的最为广泛的算法。

image017

其次是推荐场景的范例,推荐场景往往是基于人的,比如获得一个人评价过的所有书,或者是查询也评价过这些书的其他人看过的,但这个人没看过的书的列表,然后对这个人进行推荐,可以看到写出来的查询语句还是比较简单的。

_2019_05_23_8_31_26

最后是人与人关系的范例,这个例子比较直接,比如通过出边的方式去查询一下刘备的义弟到底是谁,或者通过去拉取刘备和曹操所有的下属取交集来谁在曹操和刘备阵营都效力过。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
7天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
1天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
15 6
|
4天前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
17 0
|
6天前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
17 0
|
8天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
18 0
|
11天前
|
存储 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应用的可扩展性和可用性,还降低了基础设施成本。
29 0
|
11天前
|
数据库 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 应用中集成这两种技术,提高开发效率。
25 0
|
11天前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
26 0
|
11天前
|
NoSQL 关系型数据库 MySQL