热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

美团图数据库平台建设及业务实践

本文为#nLivevol.001|美团图数据库平台建设及业务实践#主题演讲的文字稿,可前往B站观看本次视频大家好,我是来自美团的赵登昌,今天我给大家分享下美团图数据库平台的建设以及




本文为 #nLive vol.001|美团图数据库平台建设及业务实践# 主题演讲的文字稿,可前往 B站 观看本次视频


美团图数据库平台建设及业务实践

大家好,我是来自美团的赵登昌,今天我给大家分享下美团图数据库平台的建设以及业务实践。

美团图数据库平台建设及业务实践

这是本次报告的提纲,主要包括以下六方面内容。


背景介绍

美团图数据库平台建设及业务实践

首先介绍下美团在图数据方面的业务需求。

美团图数据库平台建设及业务实践

美团内部有比较多的图数据存储以及多跳查询需求,总体来说有以下 4 个方面:

第一个方面是知识图谱方向,美团内部有美食图谱、商品图谱、旅游图谱在内的近 10 个领域知识图谱,数据量级大概在千亿级别。在迭代、挖掘数据的过程中,需要一种组件对这些图谱数据进行统一管理。

第二个方面是安全风控。业务部门有内容风控的需求,希望在商户、用户、评论中通过多跳查询来识别虚假评价;在支付时进行金融风控验证,实时多跳查询风险点。

第三个方面是链路分析,比如说:数据血缘管理,公司数据平台上有很多 ETL Job,Job 和 Job 之间存在强弱依赖关系,这些强弱依赖关系形成了一张图,在进行 ETL Job 的优化或者故障处理时,需要对这个图进行分析。类似的需求还有代码分析、服务治理等。

第四个方面是组织架构管理,包括:公司组织架构的管理,实线汇报链、虚线汇报链、虚拟组织的管理,以及商家连锁门店的管理。比如,需要管理一个商家在不同区域都有哪些门店,能够进行多层关系查找或者逆向关系搜索。

总体来说,我们需要一种组件来管理千亿级别的图数据,解决图数据存储以及多跳查询问题。

美团图数据库平台建设及业务实践

传统的关系型数据库、NoSQL 数据库可以用来存储图数据,但是不能很好处理图上多跳查询这一高频操作。Neo4j 公司在社交场景做了 MySQL 和 Neo4j 的多跳查询性能对比,具体测试场景是,在一个 100 万人、每个人大概有 50 个朋友的社交网络里找最大深度为 5 的朋友的朋友。从测试结果看,查询深度增大到 5 时, MySQL 已经查不出结果了,但 Neo4j 依然能在秒级返回数据。实验结果表明多跳查询中图数据库优势明显。


图数据库选型

美团图数据库平台建设及业务实践

下面介绍我们的图数据库选型工作。

美团图数据库平台建设及业务实践

我们主要有以下 5 个图数据库选型要求


  • A. 项目开源,暂时不考虑需要付费的图数据库;
  • B. 分布式的架构设计,具备良好的可扩展性;
  • C. 毫秒级的多跳查询延迟;
  • D. 支持千亿量级点边存储;
  • E. 具备批量从数仓导入数据的能力。

我们分析了 DB-Engine 上排名 Top30 的图数据库,剔除不开源的项目后,把剩下的图数据库分成三类。


  • 第一类包括 Neo4j、ArangoDB、Virtuoso、TigerGraph、RedisGraph。此类图数据库只有单机版本开源可用,性能比较优秀,但是不能应对分布式场景中数据的规模增长,即不满足选型要求 B、D;
  • 第二类包括 JanusGraph、HugeGraph。此类图数据库在现有存储系统之上新增了通用的图语义解释层,图语义层提供了图遍历的能力,但是受到存储层或者架构限制,不支持完整的计算下推,多跳遍历的性能较差,很难满足 OLTP 场景下对低延时的要求,即不满足选型要求 C;
  • 第三类包括 Dgraph、Nebula Graph。此类图数据库根据图数据的特点对数据存储模型、点边分布、执行引擎进行了全新设计,对图的多跳遍历进行了深度优化,基本满足我们对图数据库的选型要求

美团图数据库平台建设及业务实践

之后我们在一个公开社交数据集上(大约 200 亿点边)对 Nebula Graph 、Dgraph 、HugeGraph 进行了深度性能测评。主要从三个方面进行评测:


  • 批量数据的导入
  • 实时写入性能测试
  • 数据多跳查询性能测试

测试详情见 Nebula 论坛:主流开源分布式图数据库Benchmark

推荐阅读
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 我从GoogleFirebase服务中看过视频并阅读了Cloudfirestore的文档,但我无法想象实时数据库.我想到了这个Web应用程序,我希望从不同类别的产品中存储我的提供程 ... [详细]
  • 前两天有位朋友邀请我回答个问题,为什么MongoDB(索引)使用B-树而Mysql使用B+树?我觉得这个问题非常好,从实际应用的角度来学习数据结构,没有比这更好的方法了。因为 ... [详细]
  • Hadoop的分布式架构改进与应用
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
author-avatar
侬田写e
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有