GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

数据爆炸时代应该如何做云存储?阿里 GDB 图数据库应用最全揭秘

2019 年 7 月 16 日

数据爆炸时代应该如何做云存储?阿里GDB图数据库应用最全揭秘

近年来,各个行业产生的数据量庞大,且呈现爆炸式增长态势,数据爆炸时代的到来对于数据处理、数据存储提出了新的挑战。此外,云原生时代的到来也为当下的数据库格局带来了一些颠覆性的变革,现在越来越多的用户将传统数据库搬到云上。


作为目前国内增速最快云计算服务商的阿里云,要支撑如此快速增长且庞大的云计算背后离不开一个超大规模的存储系统。为应对数据爆炸式增长带来的挑战,阿里拿出了大数据量可靠的存储、高效处理解决方案—— 云原生图数据库 GDB。


目前,图数据库尚处于发展期,在国内图数据库用的还很少,但发展快速,是近几年增长最快的数据库分支。作为“先行者”,阿里图 GDB 图数据库是如何设计的,应该如何应用?在ArchSummit 全球架构师峰会(深圳站)2019现场, InfoQ 采访了阿里云数据库产品事业部高级技术专家王若,听他深度解密阿里 GDB 图数据库的设计、应用以及图数据库服务的产业化实践进程。


以下为 InfoQ 与王若对话全文:


InfoQ:您自何时加入阿里,在存储技术事业部主要负责哪一块业务?


王若:我是 2016 年加入阿里中间件团队,一开始做了 TFS(Taobao Filesystem)的 Owner,随后在 Tair 团队负责做新一代高速存储系统,并将 Tair 在阿里内部高速存储和多模系统的积累产出至公有云上,目前在做图数据库 GDB。


InfoQ:阿里云目前是中国也是全球增速最快的云计算服务商,要支撑如此快速增长而庞大的云计算背后离不开一个超大规模的存储系统,您主导研发下一代大规模高速存储系统,目前进展如何?重点关注的核心(焦点)技术有哪些?


王若:我做的主要是 NoSQL 高速存储系统这块,也就是双 11 大促用来支持洪峰访问的核心系统,特别是大促刚开始的那几分钟。这块面临的挑战很大,首先每年业务都在增长,新业务导致整个服务的体量都在急剧增长,因为阿里的大中台策略不仅仅是在电商领域,集团的所有业务接入到了 Tair 体系中,如优酷、高德、菜鸟等,比如去年的世界杯,高德出行节等。其次,高速存储这几年发展也很快,首先是存储介质的变革,从 DRAM 到 NVM,使得整个存储结构和架构发生了巨大变化;硬件加速诸如 FPGA 和尤其是高速 RDMA 的使用,使得 Shared-Everything 的架构逐步落地,这些实实在在的直接映射到了性能的提高和成本的下降。另外 NoSQL 数据库本身的发展,从前两年兴起的 Multi-Model 多模数据库到 NewSQL 体系的大发展,阿里在每一步上都走的很靠前。

更重要的,随着阿里的云产品战略,全面将集团业务往云上走,将阿里多年来的技术积累输出到云上,进一步打磨和提升云产品,来服务诸多云使用者和亿万的终端用户。这些年来我们也一直在做这些事情,比如我原先负责的 TFS,我们花了两年的时间把数百 P 的数据迁移到了云上的 OSS 存储,使得云上云下系统统一。Tair 团队过去孵化了 memcache 和 redis 产品,将我们大促的服务能力输出到云上。我们现在也将我们多模的图服务,将阿里使用的可靠的在线图数据库 GDB 提供给诸多云用户。


InfoQ : 阿里云原生图数据库 GDB 有什么技术难点,如何进行数据查询优化?数据库引擎的特点?


王若:其实在大数据领域,图计算产品已经很多了,但是做一个在线的图数据库,尤其是在线的高可靠的图数据库要考虑的技术点很多。首先图元素的存储本质上非常稀疏,大多数数据本身都是非结构化的,另外图数据库的查询可能会涉及大量的子图运算,如果没有一个高度优化的存储引擎基本摆不平的,本身在线数据库算力就没这么强,这里面又涵盖方方面面,比如各种索引设计、缓存优化等。再者,在云上售卖的话,为了保证用户场景和图结构的完整性,事务是必须要支持的。同时,GDB 采用阿里云的基础设施,打造了一个 Cloud-Native 的图数据库。因为云上本身这块上已经很完善了,在动态扩缩容、资源隔离、高可用架构和快照备份等都能和云基础设施轻松适配,这个也是一个非常大的优势。


InfoQ:目前,GDB 数据库已经有了很多内部客户,早已在阿里各个业务线产品使用,具体应用情况如何,效果反馈如何,请列举代表性的案例?


王若: 正如这次主题所讲的,最早的时候,图数据库是以架设在分布式 NoSQL 上的多模服务来服务的。内部产品有很多就不一一说了,比如亲情号本身就是使用 TairGraph 来服务的。阿里的内部系统的特点就是规模大,场景复杂,这都有效的锤炼了系统。但是图数据库我们推广了很久后发现,除去大规模、高性能,图的服务场景很不一样。如果你做一个多模数据结构,比如像 Redis 一样结构化一个链表,一个集合,提供的运算大都是确定性的。对于图的结构化而讲,除去业务本身对图元素的二度/三度关系查找,游走,还有一些子图的局部运算,每个都不一样——挖掘数据的隐式关系是很重要的一环。还有就是事务性,TairGraph 为了极端的性能,没有事务,这样复杂场景下,就会有断图,射线的存在。所以还要去巡检和排查数据,说白了还是太在乎“查”的能力。我们正是总结了多模服务和服务阿里集团内部业务的痛点,然后才逐步将图数据库 GDB 做起来,在内部替代了 TairGraph,也推到云上去,让广大云用户也能一起享受到云上云下相同的服务。


InfoQ:我了解到,GDB 数据库可以运用在社交网络、金融欺诈、实时推荐、知识图谱等应用领域,可否具体聊一聊,具体是如何运用的,可以帮助企业解决什么问题?阿里包括 GDB 在内的的数据库产品如何为合作伙伴赋能?未来 GDB 在技术和功能上还将会有哪些迭代和演进?


王若:GDB 专门为高度连接的数据进行优化,特别适合分析多跳数据。在推荐系统里,图数据可以根据画像、关注或者商品本身很容易的找到兴趣相同的用户,然后将一些用户购买的商品推荐给未购买的用户。在金融领域,GDB 可以实时的通过各种零散存储的借款,信用卡,分期账单关联到借账人,实时的计算打分。欺诈检测领域,也可以通过用户提供的伪信息迅速与已经使用的人,和现有人关联起来。图数据库特别适合挖掘各种离散的事件,用户等的关联关系。

也希望我们能将沉淀在阿里内部的产品和场景分享,赋能给广大用户。图数据库还处于发展期,也是所有数据库所有细分领域中发展最快的一个分支,在国内图数据库用的还很少。


InfoQ:图数据库是近几年增长最快的数据库类别,与传统的数据库相比,GDB 数据库有哪些特点和优势?图数据库 GDB 和关系型数据库有什么区别?


王若:相对于现有的关系型数据库,GDB 专门为高度连接的数据集进行优化。在多跳遍历,尤其是递归 JOIN 的场景下,GDB 提供了更为高效的遍历性能。GDB 本身使用 Gremlin 查询语言,在复杂查询时可以提供更为精细的控制力。

现在也有其他的开源图数据库产品,GDB 的本身优势就很大。首先是一个云原生产品,开箱即用,用户无需额外考虑数据库实例的计算存储资源准备、监控告警等等运维事务。并且 GDB 本身具备主备高可用能力,还有数据库文件自动备份等高级特性,为数据的安全性、可用性提供了非常好的保障。

与大数据体系也有图计算产品相区别的是,GDB 主要构建实时在线的 OLTP 类服务,可以在毫秒级时间内完成数据存取、校验等业务逻辑,可以为终端用户提供更好的用户体验。另外 GDB 提供了完整的 ACID 在线事务能力,以及灵活的 IO 能力,实时更新,实时可见。


InfoQ:近年来,各个行业产生的数据量庞大,且呈现爆炸式增长态势,面对日常工作中产生的越来越多的海量数据,很多企业会面临数据处理的压力以及数据存储上的困难,您认为,数据爆炸的时代对存储技术的发展提出了哪些新要求?


王若:是的,随着互联网的高速发展,数据对于用户来说价值越来越大。这本身对于存储和数据库提出了更高的要求,其实本质上就是存和算。海量数据的存储技术经过十多年的发展已经日益成熟,对于企业来讲,随着数据的爆炸式增长,存储的动态扩展性和可靠性的维护是越来越难的。

各行各业产生的数据与数据之间的关联关系,在数据的业务价值挖掘方面,也变得越来越重要。同时,相对以往,各企业追求更为实时的决策能力,以获得更大的商业利益或者规避风险。GDB 作为云原生的一个图数据库,在数据爆炸的时代提供了大数据量可靠的存储,对于数据之间的关联关系提供了原生,高效的处理能力。


InfoQ:云原生时代的到来,也会令数据库市场带来颠覆和变革,您认为,下一代数据中心的存储技术和系统将会面临哪些机遇与挑战。云原生时代的数据库应当是什么样子?未来 3-5 年,数据库将会是怎样的发展趋势?


王若:正如 MySQL、Redis 等开源数据库云服务飞速发展,目前大部分是采用托管模式,伴随着用户的业务发展,对数据库功能、成本、弹性等都有了更高的要求,这也催生了云原生架构数据库,云原生已经对数据库格局产生重大影响,也是未来十年数据库发展的重要方向。

现在越来越多的用户将传统数据库搬到云上,从目前我们来看,未来的数据库应当具备的特性是:

  • 极致弹性:所有计算和存储的资源,无需用户预先配置,云数据服务可自行按业务负载进行扩缩容,真正做到像水和电一样方便,同时对于用户也提供了更为经济的使用成本。

  • 智能运维:数据库系统是一种比较复杂的软件系统,配置参数多种多样,管控系统也很复杂。将来的云原生数据库服务将自动对业务的使用场景进行统计分析,自动设置成最适合业务应用的配置方式,将开发人员从繁重的 DBA 工作中解放出来。并且管控系统也将更加完善,高可用自恢复、甚至是跨可用区的高可用将会成为数据库系统的标准配置。

  • 多模融合:现在 Table、Graph、KV、Document 等各种数据库模型百花齐放,发展迅速,现在 SQL 和 NoSQL/NewSQL 在事务、扩展性等细节特性支持方面还有明显差异。在可预见的将来,各个数据访问模型在各自逐步深化的同时,事务、扩展性等基础机制方面将会逐步相互融合,关系型数据库也将提供更为完善的分布式水平扩展能力、多模型支持能力等,而各类 NoSQL 数据库也将在 ACID 事务、索引、查询优化等方面逐步完善起来。

  • 硬件加速:之前各个私有云厂商,以及定制硬件方式提供一体机服务的数据库系统中,硬件加速使用的较为普遍,但是在云原生的数据库系统中的使用还刚刚开始。将来云原生数据库系统也将在 NVM、GPU、FPGA 等硬件加速方面使用得更为完善,在异构计算加速、软硬件一体化融合方面更进一步,为用户提供更出色的性能和更经济的成本。

GDB 定位于实时在线的 OLTP 图数据库系统,在提供与传统关系型数据库等同的事务、自动索引、高度优化的查询计划和并行执行的同时,也提供了 NoSQL 类数据库中,专门为图模型定制的高效查询能力。在未来,GDB 将在极致弹性、智能运维、多模融合、硬件加速等方面持续优化,深入挖掘数据之间关联关系的奥秘。


嘉宾介绍


王若,阿里巴巴存储技术事业部高级技术专家。花名百润,现就职于阿里巴巴阿里云数据库产品事业部,高速存储组 TAIR 存储引擎负责人,高级技术专家。10 年来一直从事基础平台/中间件与存储技术,在阿里巴巴 NoSQL 组主导开发下一代大规模高速存储系统,并广泛应用于淘宝,天猫,优酷,高德等各大型系统。具有丰富的大型系统稳定性,可靠性设计经验。


2019 年 7 月 16 日 18:132075
用户头像
刘燕 InfoQ记者

发布了 554 篇内容, 共 174.6 次阅读, 收获喜欢 1055 次。

关注

评论

发布
暂无评论
发现更多内容

Go Storage存储包封装

Jack Zheng

go golang storage

跪求!阿里P9手写的这份1530页的Java核心编程技术手册

周老师

Java 编程 程序员 架构 面试

字节抖音iOS客户端实习 123hr面 面经

iOSer

ios 字节跳动 面试 面试经历 抖音

从解决Github TimeOut到经典面试题:从输入URL到浏览器显示页面发生了什么?

秦怀杂货店

GitHub TCP 网络 HTTP DNS

情指勤一体化实战指挥平台开发方案,智慧警务系统搭建

WX13823153201

这个GItHub上的Java项目开源了,2021最全的Java架构面试复习指南

云流

Java 程序员 面试

为了跳槽刷完1000道Java面试真题,没想到老板直接给我升职了

云流

Java 程序员 架构 面试

定义结构体访问结构成员的三种方法

Emotion

C 语言性能优化:循环条件i<=n与i!=0的性能差异

一笑置之

有道技术岗大揭秘!这么幸福的生活,真的是熬夜掉发Top1的职业吗?

有道技术团队

招聘

报名倒计时 | 有道技术沙龙,聊聊明星语音背后的故事

有道技术团队

活动

2021最新分享三面百度提前批(Java开发岗)面经 已拿Offer

比伯

Java 编程 架构 面试 程序人生

python编译器中出现了绿色波浪线,光标放上去出现的提示是什么意思?

Emotion

为什么python中程序的结果会一直输出,需要怎么解决

Emotion

同事临走时,给了我这份多线程and高并发(面试题+思维导图),借此我含泪拿下了阿里offer

Java成神之路

Java 程序员 架构 面试 编程语言

活动 | Apache Pulsar Meetup 欢迎报名

有道技术团队

活动

一周信创舆情观察(3.15~3.21)

统小信uos

Flink 执行引擎:流批一体的融合之路

Apache Flink

flink

被MySQL慢日志查询搞废了?3分钟教你快速定位慢查询问题!

驻云DataFlux

云计算

Adobe国际认证,Photoshop软件“更改图像分辨率”官方教程

Adobe国际认证

透过 3.0 Preview 看 Dubbo 的云原生变革

阿里巴巴云原生

容器 运维 云原生 dubbo 应用服务中间件

入职阿里!全靠刷明白了这份Java面试合集(分布式+Dubbo+线程+Redis+数据库+JVM+并发)

Java成神之路

Java 程序员 架构 面试 编程语言

行业资讯 | Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug

蚂蚁集团移动开发平台 mPaaS

android webview mPaaS 离线包 UC内核

可能是绝唱!阿里资深工程师深度解读Netty底层核心源码

Java架构追梦

Java 源码 架构 面试 Netty

实现跨生态互联,区块链赋能智能家居新体验

旺链科技

区块链应用 智能家居

池化技术有多牛?来,告诉你阿里的Druid为啥如此牛逼

互联网架构师小马

OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力

阿里巴巴云原生

Serverless 容器 云原生 k8s 调度

我在阿里实习做开源

阿里巴巴云原生

阿里巴巴 云原生 dubbo 个人提升 中间件

三年JAVA开发经验,字节四面成功拿下2-2Offer,入职就是30K16薪

Java成神之路

Java 程序员 架构 面试 编程语言

实习就参与“服务过亿用户的项目”,是什么体验?

阿里巴巴云原生

go 开发者 云原生 调度 应用服务中间件

Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题

阿里巴巴云原生

Java go 微服务 云原生 seata

DNSPod与开源应用专场

DNSPod与开源应用专场

数据爆炸时代应该如何做云存储?阿里GDB图数据库应用最全揭秘-InfoQ