
公司简介
360数科(原名:360金融)是国内互联网安全公司 360集团孵化的一家数据驱动、AI 赋能的第三方金融科技平台,致力于成为连接用户与金融合作伙伴的科技平台,2018 年 12 月 14 日登陆美国纳斯达克股票交易所。
公司核心业务是个人和小微企业贷款,由于审核到放款都是在互联网上进行的,所以对反欺诈的要求非常高。接入 NebulaGraph 主要是为了解决之前使用的数据库性能不足、业务限制较多的问题。
业务挑战
原有的数据库性能遇到瓶颈:原有数据库只能支持分批或单次查询的方式,结果返回速度慢,造成线上审核等待时间也较长,影响用户体验
非分布式系统使用有很大限制:业务扩展成本高,在处理大规模数据集时系统占用很高且容易出错,难以支撑金融业务场景下复杂的搜索场景
团伙欺诈频发对业务提出更高挑战:金融欺诈逐渐呈现出团体化的特征,传统关系型数据查询很难发现,业务希望通过图探索、多度查询来锁定这种欺诈社区
解决方案
将原有的数据库产品全面切换为 NebulaGraph 的分布式图数据库版本后,360数科通过导入关联数据集来处理金融欺诈问题——具体应用在包括群体关系分析、风险节点预警、风险社区发现、客户关系网查询、多层关系统计等多个场景。
网络欺诈案件逐渐呈现团伙化、聚集化作案的趋势,使用图数据库系统对关联特征(如:共用设备以及 WiFi 使用情况)进行分析就可以快速、有效地发现这些欺诈团体。

NebulaGraph x 360 数科 社区发现图
图上展示的就是一个真实的风险社区,可以看到这个社区中间带一个 WiFi 标志,说明这些用户是通过相同的 WiFi 关联出来的。而通过顶点的属性状态,就可以判断在 360 借钱 App 上获得授信以及已有借款的用户的分布情况,通过这种分布可以很好地发现团伙作案。
基于大数据分析不断优化反欺诈模型,只要发现某个申请用户极其符合模型特征,系统就会自动开始预警并提示风险点,帮助业务人员做出判断,避免不必要的损失。

这是 360数科生产环境的一个图,可以看到大数据模型已经帮我们做了分类——图上不同颜色的点分别表示不同的意义,比如红色的是风险点,黄色的是疑似风险,灰色的就是普通用户。
针对一些高危疑似用户,可以通过 NebulaGraph 的图探索功能来实时搜索他的用户关系网。通过风险关联度的分析,特别是跟一些风险节点的关联以及一、二层关系网的情况,可以很快判断出疑似用户的风险特征。
技术选型
AgensGraph:单磁盘容量易出现瓶颈,吞吐量不够
AgensGraph 是基于关系型数据库改造的图数据库功能,但因为不是分布式,一个节点要存所有数据,造成单磁盘的容量无法满足需求,还导致了高吞吐情况下查询耗时变长的问题,这就直接影响到业务审批的流程。假设用户在线上申请一笔贷款,平台承诺的时间是几分钟内返回结果,但因为后台会跑很多流程,如果单次查询耗时太长,用户体验就会变差。
最后一点就是难以支撑更复杂的场景。因为只有核心的属性上图,所以当我们希望在图上做更多探索、查询更多关系的时候是查不出来的,AgensGraph 跟 HBase 没有做到无缝连接,需要做二次查询。因为在使用 AgensGraph 过程中遇到了上面这些问题,我们开始启动 AgensGraph 替代方案的探索。
JanusGraph:数据导入速度慢,超级节点查询困难
JanusGraph 的数据存储基于 HBase,导入速度慢且对格式有严格限制,一旦出现超时、异常的情况就要从头来。默认逐条查询,而且查询过滤的条件无法下推到存储层去做,所有关联的数据需要全部返回到服务端,然后在内存里面一条条过滤,不仅浪费时间而且大量占用磁盘 I/O(Input / Output,即输入 / 输出比)。
实际业务场景中,还会出现一些超级节点问题。比如,当查询一些 WiFi 和硬件设备信息时,单顶点关联的数据量可能是百万量级的,如果碰到这种超级节点,很可能就直接把集群查挂了。这个问题虽然做了很多优化,也加了各种限制,但都无法解决。
使用效果
数据查询速度明显提升:使用 NebulaGraph 后解决了大数据量导入性能问题,查询性能相比较原来的数据库有近 20 倍的提升,确保贷款征信查询速度和用户体验。
系统消耗大幅度下降:NebulaGraph支持原生分布式系统,仅用 6 台机器就达到了原有数据库 26 台集群的功效,不仅节省大笔部署费用,而且系统稳定性还更好。
-
业务反欺诈能力显著提升:NebulaGraph 发现需要预警的风险节点大概 94 万个,发现疑似欺诈社区 91 万个,通过加强反欺诈限制措施,挽回很大的经济损失。
性能对比
Janus Graph:

NebulaGraph:

Janus Graph:

NebulaGraph:

*以上数据截取自2020年12月用户后台使用的监测工具;网络和磁盘 I / O(Input / Output)是常用的性能衡量指标,占用越高,说明响应时间越长、性能越差
用户原声
“ 我们之前的图查询一直受到超级节点的困扰,有了 max_edge_returned_per_vertex 这个参数,数据在最底层存储层直接做了过滤,NebulaGraph 真不愧是图数据行业的老司机!”
—— 360 数科开发工程师 周鹏
NebulaGraph: 安全可靠,高性能、易扩展
NebulaGraph 致力于打造 国内领先的分布式图系统解决方案,目前已被应用在金融证券、公共服务、运营商、互联网、制造业等多个行业,如有业务需求欢迎联系 inquiry@vesoft.com
推荐阅读
想要来交流图数据库技术吗?关注公众号后发送“加群”,NebulaGraph 迷人小姐姐拉你进群~

🙋♂️ 喜欢本文的话,来个分享、👍 赞、在看
谢谢!

