OPPO:建设全局图数据库平台

公司简介

OPPO 是国内领先的智能终端制造商,业务遍及 50 多个国家和地区,拥有 40 多万个销售网点及 2500 个服务中心。

「小布助手」是 OPPO 智能手机和 IoT 设备上内置的 AI 助手,包含语音、建议、指令、识屏和扫一扫等功能模块。

业务挑战

随着知识图谱等业务数据的不断增长,使用现有数据库已经比较吃力,导入时间也无法满足业务的要求,因此寻找性能更好的开源属性图数据库,以实现业务上碰到的知识图谱、关联推荐、数据血缘等问题已经成为了当前迫切要做的事情。

解决方案

应用场景1:知识图谱

通过构建多领域知识图谱,对问题进行解析并链接图谱中的实体,利用图谱中实体关联关系生成问题的答案。

在使用图谱之前,小布助手只支持基于文档的问答 (DBQA),DBQA 利用的是非结构化的文本,适合回答 Why、How 等解释性、论述性问题,而对于事实性问题回答准确率和覆盖率不高。

在使用图谱后,小布助手支持基于知识库的问答 (KBQA),在 What、When 等事实性问题的准确率和覆盖率大幅度提升。

例如:xxx 的老婆是?xxx 奥特曼的体重是多少?北京的面积是多少?

除了事实性问答,小布助手还可以利用图谱的推理能力实现一些复杂问答。

例如:OPPO 发布的第一款手机是什么?xxx 和 xxx 是什么关系?出生在 xx 的双子座明星有哪些?

由于知识图谱存在规模庞大的半结构化数据,而且数据之间存在很多的关联关系,使用关系型数据库是无法满足存储和查询要求的,而 NebulaGraph 的图数据库恰恰能够解决大规模图谱存储和多跳查询的挑战。

OPPO智能问答助手-知识图谱示意图

应用场景2:内容推荐

在一些推荐场景中,需要理解视频、音频或文本的内容,给其打上和内容相关的标签。例如在短视频推荐中,理解视频的内容有利于对用户进行精准推荐。

通过对于影视类视频,将演员、导演、影视节目、扮演角色等构造成一个影视娱乐图谱,当有新的影视类短视频发布时,可以通过视频中人脸识别出演员、标题或字幕中识别出影视角色,利用图谱快速推理出对应的影视作品,给视频打上内容标签,从而提升推荐效果。

视频播放的背后是内容标签关联图谱

 

应用场景3:数据血缘

根据业务、数据表和任务构建图谱,通过路径检索,即可查出上下游表以及业务信息。使用关系型数据库处理多层级的关联查询非常麻烦,不仅开发工作量大,而且查询性能极慢使用图数据库后,不仅大大减少了开发工作量,而且能够快速的查出表的上下游关系,便于直观观察数据的血缘关系

应用场景4:服务拓扑结构

服务资源管理中,业务资源会分为多个层级,每个层级下面有对应的服务器、服务和管理人员,如果使用关系数据库来处理,当需要展示多级资源的时候,查询会很麻烦,性能会很差。而用图数据库将资源、管理人员、服务器、业务层级之间的关系进行展示的时候,一条查询语句就能搞定,不仅直观而且查询速度还很快

服务拓扑架构示意图

技术选型

市面上图数据库厂商的测试情况:

  • 导入:NebulaGraph > HugeGraph > JanusGraph > ArangoDB > OrientDB

  • 查询:NebulaGraph > HugeGraph > JanusGraph > ArangoDB > OrientDB

使用 JanusGraph 遇到的问题:

  • 导入很慢(千万点、导入时间需 10h+)

  • FULL GC 和 OOM 问题

JanusGraph 和 Nebula Graph 测试情况:

  • 查询:NebulaGraph 是 JanusGraph 的 4-7 倍。随着并发量的增大,性能差距会进一步拉大,而且 JanusGraph 在从 20 个线程开始,三度邻居查询会有 error。而 NebulaGraph 没有任何 error。

  • 导入:NebulaGraph 全量导入 10 亿节点 100 亿边只需要 10h,满足要求,目前正在调研 SST 导入,可以大幅提升导入速度。

  • 二度查询压测:对 NebulaGraph 使用 120 个线程进行二度邻居查询压测,最终 QPS 在 6000+,相比单机有一些提升。成功率接近 5 个 9,而且响应时间比较稳定,平均 18.81ms,p95 38ms,p99 也才115.6ms,符合需求。

综上,NebulaGraph 导入性能、响应时间、以及稳定性均符合需求,支持数据切分,使用的企业也多,中文文档覆盖全面,社区活跃,是开源图数据库的理想选择。

使用效果

1、图数据库性能大幅度提升:NebulaGraph 能够支持 10 亿节点 100 亿边的大规模图谱,全量导入时间也不超过 10h,二度查询平均响应时间不超过 50ms,QPS 能够达到 5000+。

2、帮助平台提升整体业务效率:引入图数据库后不仅提升了智能问答在事实性 / 推理型问题上的准确率、实现更加精准的推荐效果,而且也为内部数据管理提供更直观、有效的手段,帮助整体平台提升业务效率。

用户证言

“切换到 NebulaGraph 之后,导入性能提升了一个数量级!查询性能以及并发能力都有 3-6 倍的提升。
在实践的过程中遇到的问题,也得到了 NebulaGraph 社区非常多的帮助,十分感谢社区的支持!”

—— OPPO · 工程师 彭齐荣

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4169309/blog/5581066