百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

阿里集团内最佳实践图数据库GDB及其应用

mhr18 2025-01-23 19:48 19 浏览 0 评论

导读:阿里云图数据库(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万+精准粉丝。


欢迎分享转发,转载请私信。

相关推荐

【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...

Pure Storage推出统一数据管理云平台及新闪存阵列

PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...

对Java学习的10条建议(对java课程的建议)

不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!

官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...

JDK21有没有什么稳定、简单又强势的特性?

佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...

「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了

在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...

Java面试题及答案最全总结(2025版)

大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...

数据库日常运维工作内容(数据库日常运维 工作内容)

#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...

分布式之系统底层原理(上)(底层分布式技术)

作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...

oracle 死锁了怎么办?kill 进程 直接上干货

1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

取消回复欢迎 发表评论: