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
目录
相关文章
|
7天前
|
存储 人工智能 数据管理
|
2天前
|
SQL 存储 运维
从建模到运维:联犀如何完美融入时序数据库 TDengine 实现物联网数据流畅管理
本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品。文章从一个具体的业务场景出发,分析了企业在面对海量时序数据时的挑战,并提出了利用 TDengine 高效处理和存储数据的方法,帮助企业解决在数据采集、存储、分析等方面的痛点。通过这篇文章,作者不仅展示了自己对数据处理技术的理解,还进一步阐释了时序数据库在行业中的潜力与应用价值,为读者提供了很多实际的操作思路和技术选型的参考。
16 1
|
7天前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
10天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
39 5
|
21天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
8天前
|
人工智能 Cloud Native 关系型数据库
双位数增长,阿里云连续五年领跑关系型数据库
阿里云蝉联中国关系型数据库整体市场份额第一,在公有云业务双位数增长的驱动下,阿里云同时在公有云关系型数据库市场取得了38%的市场份额,连续五年位居首位。
|
11天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
38 3
|
11天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
38 3
|
11天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
52 2