百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践

​作者 | 霖雾,携程数据开发工程师,关注图数据库等领域。​

背景

2017年9月携程金融成立,在金融和风控业务中,有多种场景需要对图关系网络进行分析和实时查询,传统关系型数据库难以保证此类场景下的关联性能,且实现复杂性高,离线关联耗时过长,因此对图数据库的需求日益增加。携程金融从2020年开始引入大规模图存储和图计算技术,基于nebula构建了千亿级节点的图存储和分析平台,并取得了一些实际应用成果。本文主要分享nebula在携程金融的实践,希望能带给大家一些实践启发。

本文主要从以下几个部分进行分析:

图基础介绍图平台建设内部应用案例分析痛点与优化总结规划

一、图基础

首先我们来简单介绍下图相关的概念:

1.1 什么是图

在计算机科学中,图就是一些顶点的集合,这些顶点通过一系列边结对(连接)。比如我们用一个图表示社交网络,每一个人就是一个顶点,互相认识的人之间通过边联系。

在图数据库中,我们使用 (起点,边类型,rank,终点) 表示一条边。起点和终点比较好理解,表示一条边两个顶点的出入方向。边类型则是用于区分异构图的不同边,如我关注了你,我向你转账,关注和转账就是两种不同种类的边。而rank是用来区分同起始点同终点的不同边,如A对B的多次转账记录,起点、终点、边类型是完全相同的 ,因此就需要如时间戳作为rank来区分不同的边。

同时,点边均可具有属性,如:A的手机号、银行卡、身份证号、籍贯等信息均可作为A的点属性存在,A对B转账这条边,也可以具有属性,如转账金额,转账地点等边属性。

百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践插图亿华云

1.2 什么时候用图

(信息收集于开源社区、公开技术博客、文章、视频)

1)金融风控:

诈骗电话的特征提取,如不在三步社交邻居圈内,被大量拒接等特征。实时识别拦截。(银行/网警等)转账实时拦截 (银行/支付宝等)实时欺诈检测,羊毛党的识别(电商)黑产群体识别,借贷记录良好用户关联,为用户提供更高额贷款、增加营收

2)股权穿透

影子集团、集团客户多层交叉持股、股权层层嵌套复杂关系的识别(天眼查/企查查)

3)数据血缘

在数据仓库开发过程中, 会因为数据跨表关联产生大量的中间表,使用图可直接根据关系模型表示出数据加工过程和数据流向,以及在依赖任务问题时快速定位上下游。

4)知识图谱

构建行业知识图谱

5)泛安全

ip关系等黑客攻击场景,计算机进程与线程等安全管理

6)社交推荐

好友推荐,行为相似性,咨询传播路径,可能认识的人,大v粉丝共同关注,共同阅读文章等,商品相似性,实现好友商品或者咨询的精准推荐通过对用户画像、好友关系等,进行用户分群、实现用户群体精准管理

7)代码依赖分析

8)供应链上下游分析

如汽车供应链上下游可涉及上万零件及供应商,分析某些零件成本上涨/供应商单一/库存少等多维度的影响(捷豹)

1.3 谁在研发图,谁在使用图

(信息收集于开源社区、公开技术博客、文章、视频)

目前国内几家大公司都有各自研发的图数据库,主要满足内部应用的需求,大多数都是闭源的,开源的仅有百度的hugegraph。其他比较优秀的开源产品有Google Dgraph, vesoft的nebula 等,其中nebula在国内互联网公司应用非常广泛。结合我们的应用场景,以及外部公开的测试和内部压测,我们最终选择nebula构建金融图平台。

百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践插图1亿华云

二、图平台建设

百亿节点,毫秒级延迟,携程金融基于nebula的大规模图应用实践插图2亿华云

2.1. 图平台建设

我们的图平台早期只有1个3节点的nebula集群,随着图应用场景的不断扩充,需要满足实时检索、离线分析、数据同步与校验等功能,最终演化成上述架构图。

1)离线图:主要用于图构建阶段(建模、图算法分析),通过spark-connector同集团的大数据平台打通,此外我们还将Nebula提供的数10种常用图算法进行工具化包装,方便图分析人员在spark集群提交图算法作业。

2)线上图:经过离线图分析确定最终建模后,会通过spark-connector将数据导入线上图。通过对接qmq消息(集团内部的消息框架) 实时更新,对外提供实时检索服务。

THE END
Copyright © 2024 亿华云