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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
对象存储 OSS,20GB 3个月
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 阿里图数据库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
目录
相关文章
|
28天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
49 3
|
1月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
52 3
|
1月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
108 61
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
98 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
22天前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
27天前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
29天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
44 3
|
29天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
52 2
|
1月前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。