阿里数据中台底层技术,阿里集团内最佳实践图数据库GDB及其应用
阿里数据中台底层技术,阿里集团内最佳实践图数据库GDB及其应用2. 产品优势GDB最早起源于Tair Key-Value模型,演进为针对集团高并发查询和写入场景Tair Multi-Model,随着上云的趋势,孵化出Tair GDB图数据库,主要针对高度关联的复杂场景。1. 阿里自主研发产品图数据库 Graph Database(简称GDB),是阿里巴巴自主研发的,支持Property Graph图模型,用于处理高度连接数据查询与存储的、实时、可靠的在线图数据库服务。产品主页:https://www.aliyun.com/product/gdb
导读:阿里云图数据库(Graph Database,简称GDB)是阿里云自主研发、支持Property Graph图模型,用于处理高度连接数据查询与存储的、实时、可靠的在线图数据库服务。GDB是国内唯一进入ForRESTer Wave评测报告的图数据库产品,是阿里巴巴集团内最佳实践的图数据库。GDB图数据库参考火山模型执行器以及NUMA的Morsel并行执行算子,构建GDB并行执行器,在阿里多个明星应用如钉钉以及盒马鲜生的推荐和查询场景中,显著提升了性能。当前GDB上线至今已有100 应用场景,在阿里集团内外部有广泛应用,涵盖多个行业。
今天的介绍包括下面四方面:
- 产品简介
- 产品能力
- 图执行器
- 应用场景
01
图数据库GDB-产品简介
1. 阿里自主研发产品
图数据库 Graph Database(简称GDB),是阿里巴巴自主研发的,支持Property Graph图模型,用于处理高度连接数据查询与存储的、实时、可靠的在线图数据库服务。
产品主页:https://www.aliyun.com/product/gdb
GDB最早起源于Tair Key-Value模型,演进为针对集团高并发查询和写入场景Tair Multi-Model,随着上云的趋势,孵化出Tair GDB图数据库,主要针对高度关联的复杂场景。
2. 产品优势
GDB是国内唯一进入Forrester Wave评测报告的图数据库产品。它是阿里巴巴集团内最佳实践的图数据库:历经阿里巴巴盒马鲜生、天猫超市、钉钉、高德、菜鸟、饿了么等30 明星应用的不断打磨,上云后已有100 内外部最佳实践。
①兼容主流图查询语言:支持属性图-兼容Gremlin和Cypher主流查询语言,能够兼容市面主流图查询产品,降低开发门槛。
②高性能、低成本:
- 相比自建neo4j,成本节省40%。
- 大规模数据量查询性能优于Neo4j、Neptune等。
- 即将支持扩充只读节点,进—步提升读性能。
③高可用:实例高可用、节点故障自动切换,保障业务连续性,提供99.95%的SLA保障。
④易用易运维:
- 支持ACID事务;自动索引、Schema-Free。
- 内置常用图算法。
- 支持Go、Java、Python等客户端。
- 提供多种数据导入功能。
- 提供备份恢复、自动升级、监控告警、故障切换等运维功能,大幅降低运维成本。
3. 输出方式
GDB包括公共云、专有云(银行、科研机构)以及可被集成版本(评测场景)等多种形态。下表为各个形态的底座、存储和产品能力及卖点的介绍。
--
02
图数据库GDB-产品能力
1. 图服务便捷接入
图数据库GDB兼容多种查询语言,方便用户平滑迁移,另一方面可从多种数据源和数据通道实现数据导入。
①查询语言
- 兼容Gremlin及Cypher两大主流图查询语言方便用户平滑迁移至阿里云图数据库GDB。
- 支持开源TinkerPop 3.3.3(及以上)版本Driver。
- 官方提供Java Python Go .Net REST兼容性保证。
- 支持Gremlin Console。
②数据导入
- 多种数据源neo4j MySQL odps…。
- 多种数据通道OSS DataWorks。
2. 图实例管理&免运维
在上云后,GDB实行图实例管理,且若GDB在阿里云使用,可免运维成本。
(1)周期性备份,一键恢复
数据进行周期性备份,当数据发生损坏或者丢失,可一键恢复。
(2)24小时监控,自定义告警
实例可被24小时监控,可进行自定义告警和配置,如CPU满、数据异常—数据不可访问,可配置电话告警。
(3)一键变配,弹性扩容
依据客户访问量增加和减少,可实现一键变配,存储量可以进行弹性扩容。
(4)图可视化
提供原生的可视化服务,可基于该可视化产品进行测试。
3. 产品形态
(1)基础实例
基础实例也即单节点实例,具有如下特点:
- 低成本
- 对高可用无需求
(2)高可用实例
高可用实例为主备的架构,具备如下特点:
- 秒级故障切换
- 自动备库恢复
(3)只读实例集群
如果客户有高QPS需求,可使用只读实例集群,具有如下特点:
- 查询水平扩展
- 读写分离
--
03
图执行器
1. 整体架构
(1)多样接入
在接入层,兼容Gremlin和Cypher两大业界主流语法,同时涵盖多语言sdk 以及权限管理,鉴权管理和账号管理。
(2)自研解析器
相较原生解析器,速度大幅提升。
(3)查询优化器
包含基于规则的优化器(RBO)与基于代价的优化器(CBO)。
(4)图执行器
图执行器可进行混合负载以及并行执行。
(5)图存储引擎
图存储引擎为原生图存储,包括自动索引和ACID事务。
(6)高效导入,服务管控
2. 数据库执行器
在数据库系统发展的历史中,SQL语句的查询优化器优化一直是数据库SQL引擎行业关注的重点,但是在执行计算的过程中,还有同等重要的查询调度器与计划执行器对优化器生成的执行计划进行执行。
关系型数据库发展早期,受制于计算机IO能力的约束,计算在查询整体的耗时并不明显,这个时候调度器和执行器的作用被弱化,一个查询的好坏更主要取决于优化器对执行计划的选择好坏。
随着计算机硬件的发展,IO能力增强,调度器和执行器也逐渐彰显了它们的重要地位。
3. 火山模型执行器
①火山模型是数据库界成熟的解释计算模型,该计算模型特点:
- 关系代数算子抽象为迭代器,包含next
- next每次调用产生一行数据Tuple
- 根节点反复调用next获取完整结果
- MySQL、SqlServer、Oracle
②优点
- 算子解耦,扩展方便
- 资源消耗低(尤其内存)
③缺点
- 虚函数开销大
- 不利于CPU cache
④优化方案
- 批处理,SIMD
- 减少虚函数调用次数
- 提升cache命中率
- 多行处理,SIMD并行提供可能(向量化)
4. Morsel-Driven Parallelism
随着数据量的增大、单核的能力无法满足,基于小数据块的方案,将执行流分成多个算子。CPU不会因为频繁跳跃上下文,导致命中率低。
NUMA:多核CPU高效利用,更快速读取内存并行执行调度方案——系统使用固定数量的线程池,各个查询的执行过程中的数据,切分为细粒度的单元(morsel),然后结合对其进行处理的operator pipeline,封装为task,交给线程池去执行。
5. GDB并行执行器
(1)GDB并行执行器简介
参考火山模型以及NUMA的Morsel并行执行算子。GDB主要是采用了火山模型的执行器,每次返回数据采用批处理的格式。一个Traversal针对一批数据。
整个执行器分为,任务识别和拆分的模块、资源管理模块等,支持混合负载(包括并行拆分的长任务以及短任务的迭代执行)、并行识别、拆分任务。与存储交互的部分包括索引和数据迭代、结果异步序列化等。
算子部分可以进行Morsel并行化的场景,可将一个算子切分成多个Morsel流,该Morsel流可在多个CPU运行,当遇到汇聚算子,可将其汇聚起来统一返回,因此为串行和并行混合处理。
混合负载,包含短任务直接运行,以及长任务拆分后线程池运行。在执行过程中,采用多级异常处理,Gather节点异常优先返回,子任务异常,先返回父任务,再分批终止释放。
(2)并行执行器案例
①钉钉好友推荐
a.场景
- 二度关联好友推荐
如新用户进来,查找哪些是好友。
- 批量相邻点处理
子公司里面,几千员工,可以进行Group by处理。应用前面的Morsel流进行处理。
b.业务价值
图数据库GDB作为底层基础设施为钉钉提供了百亿量级的关系存储和查询能力,管理人与人、人与企业、企业与企业之间的关联关系,为钉钉的同企识别、用户亲密度计算、高管预测和同事关系预测等功能提供了图数据库的核心能力。
②盒马鲜生
a.场景:盒马鲜生在线推荐
- 关联辅菜推荐
- 菜谱多条路径查询
盒马业务的dsl请求rt从210ms降低到100ms以内,优化前flatMap耗时140ms,dsl总耗时210ms,在优化后flatMap耗时33ms,dsl总耗时为82ms。
6. 其他数据库产品执行器
(1)Oracle 10g
基于Oracle7,进行并行优化。有多个Oracle数据执行节点,每个节点有全量数据,存储share-disk。采用PSC机制、各执行点共享计划树,PX把负载打散到各个节点。不同的执行算子执行在不同的节点上面。单机串行和多机并行执行可以合并起来。执行完,通过汇聚算子统一返回。
(2)PolarDB-X并行执行器
阿里的PolarDB-X 基于火山模型,存储层有多个MySQL节点,上面的汇聚算子可以将执行计划树并行发送给MySQL数据库。
- 简单语句下推存储层MySQL执行
- Volcano执行器,Gather
- DataChunk 批量拉取
(3)Nebula Graph Query Engine
Nebula作为一个开源的图查询引擎,具有如下特点:
①存储计算分离
②火山执行引擎
③Optimizer Plan Cache
④执行计划优化 过滤下推
⑤Scheduler Executor
⑥每个 Executor 会经历 create-open-execute-close 四个阶段
⑦Nebula 并行实现
- Query engine 调度
- 并行job发送给存储引擎
--
04
应用场景
GDB上线至今已有100 应用场景,在阿里集团内部有30 以上的明星应用,包括社交/推荐、风控、知识图谱、关联关系管理;在外部用户中,涵盖互联网、电商、游戏、金融、教育、政务、制药等行业。
今天的分享就到这里,谢谢大家。
分享嘉宾:豆超 阿里巴巴 技术专家
编辑整理:王帅 金山云
出品平台:DataFunTalk
01/分享嘉宾
豆超|阿里巴巴技术专家
西安电子科技大学硕士毕业,曾在腾讯从事TFS存储的研发,现在主要负责图数据库GDB的研发工作。
02/报名看直播 免费领PPT
03/关于我们
DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100 线下和100 线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章700 ,百万 阅读,14万 精准粉丝。
欢迎分享转发,转载请私信。