速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

从 310 到蚂蚁森林,蚂蚁金服在线图计算的创新与实践

  • 2019-11-04
  • 本文字数:4404 字

    阅读完需:约 14 分钟

从310到蚂蚁森林,蚂蚁金服在线图计算的创新与实践

今年 4 月,蚂蚁金服董事长兼 CEO 井贤栋在参与第二届一带一路国际合作高峰论坛时表示,通过九年的实践,蚂蚁金服改善了中小企业的融资渠道并形成了 310 模式,即 3 分钟在线申请、1 秒钟审核放款、0 人工干预。与此相对的是,仅仅在两年前,有相关人士表示,他们出台的 310 模式却是 3 周申请,1 月审核,0 几率获贷。


那么,蚂蚁金服是如何通过不断探索应用金融新技术,为中小企业提供融资便利,其中的 1 秒钟审核放款,又是如何做到的呢?在这里,我们来谈谈其中非常关键的一项核心技术,在线图计算技术。


在线图计算就是将流式计算与图计算结合起来,能做到进行实时的图计算的技术。蚂蚁金服在这个方向上经过多年研发,在关键技术上做出了突破性的创建,并形成了面向金融场景的解决方案。

蚂蚁在线图计算的应用场景

蚂蚁研发在线图计算技术,是因为金融场景需要这样的技术来解决问题。


比如,在金融风控中的实时反套现场景。套现,指的是采用违法或者虚假的手段交换而获取现金利益的行为,一般多用于信用卡和公积金等场景。



花呗是一个消费信贷类产品,用户可以基于花呗的额度消费,并定期还款。花呗反套现是花呗整体风控中非常关键的一个环节,如何实时的、准确的识别套现行为则是花呗反套现的关键。


如图所示,套现的买家通过花呗进行一笔交易的支付,并通过一系列复杂的资金流动,最终通过转账回款进行资金的套现。


通过数据建模,将整体的资金流动抽象成资金关系网络,基于资金关系网络之上进行子图的识别和分析,从而有效的识别套现行为。


通过实时反套现的例子,我们可以得到在线图计算的三个基本需求:


  • 首先,构建金融级的资金网络。基于在线的用户资金行为,实时构建高可靠的金融级资金网络;

  • 其次,基于实时子图的分析决策。基于实时构建的高可靠的金融级资金网络之上,可以基于子图进行实时的分析和计算,并最终提供在线的决策;

  • 最后,是动态的子图网络构建。在子图的分析过程中,需要根据用户的资金网络行为,动态的进行子图的构建和扩展。


再说说大家比较熟悉的蚂蚁森林场景。



蚂蚁森林中有多种形式的好友互动,如支付宝好友之间可以互相收取能量,以及好友、亲人之间可以一起合种一棵树。


在蚂蚁森林中有人与人的关系,以及人与树的关系等。它不仅需要支持实时的关系数据构建,还需要支持高性能低延迟的关系数据查询和一致性的关系数据修改等需求。


通过蚂蚁森林的例子,我们也可以得到在线图计算其他三个需求。


  • 首先,需要支持百万级的并发支持。蚂蚁森林当前有 5 亿+的用户,需要支持百万级的 QPS 的需求并且满足毫秒级的响应支持;

  • 其次,是万亿级关系数据存储的需求。由于蚂蚁森林的数据规模庞大,包括用户关系、种树关系、合种关系等,关系非常多和复杂,因此需要提供万亿级的图存储能力。

  • 最后,是一致性的需求。比如在好友之间进行绿色能力的偷取过程中,由于并发量非常大,需要保证实时更新过程中的强一致性的需求。


通过前面实时反套现和蚂蚁森林的例子,我们对金融级的在线图计算的需求做一下简单的总结。


我们将需求分成两部分,第一部分是功能需求


  • 首先,需要提供海量的图数据存储的能力;

  • 其次,在海量的图数据存储之上提供低延迟 I/O 访问能力;

  • 最后,通过低延迟的 I/O 获取子图关系之后进行流计算和图计算等多种模态的融合计算。


第二部分是稳定性需求,由于金融场景的特性,所以稳定性显得尤为重要。这里主要列举两点:


  • 首先,需要支持金融级的容灾和高可靠性,如三地五中心的故障恢复等。

  • 其次,还需要支持低成本和弹性的扩缩容。

蚂蚁在线图计算整体架构

在介绍完蚂蚁金服在线图计算相关的场景和需求之后,我们来一起了解下蚂蚁金服在线图计算的核心关键技术及过程中的思考。


首先,我们来一起看下蚂蚁在线图计算的整体架构图。



在最上层,蚂蚁在线图计算提供一套统一的图开发平台。基于统一的图开发平台,用户可以基于关系元数据和统一的 DSL 进行作业的开发。目前统一的 DSL 主要通过 SQL 和 Gremlin 融合的方式进行编程开发。同时基于用户的 DSL,会实时的构建分布式的 DAG 进行运行。


构建完成后,分布式的任务会实时的对线上的日志数据和事件数据进行实时的处理。这里主要包含两条链路,一条链路会基于实时处理完成的日志数据和事件行为会写入到高性能的图数据库,并基于数据实时的构建高性能的图缓存,提供快速高效的子图抽取。


另外一条链路则会基于实时处理的数据,来动态的决策是否需要一个图的 Traversal 和计算,并在计算的过程中,从高性能缓存快速的抽取子图进行计算,最后将计算的结果输出提供在线使用。


通过前面的架构图,可以看到,蚂蚁的金融级在线图计算主要有三个技术方向:


  • 首先,是流图融合的计算能力。需要在一套系统中,支持融合的计算能力,能够通过流计算和图计算的融合来实现在线图计算的全链路;

  • 其次,是高压缩比图缓存。通过高压缩来实现图数据可以完整的存在在内存中,从而实现快速、高效的子图抽取;

  • 最后,是金融级的海量图数据库。通过金融级的海量图数据库来实现海量的关系数据存储和金融场景下的高可靠。


下面,我们来分布分布介绍一下这三个方向的核心技术点。

在线图计算之流图融合计算

第一个关键技术是:流图融合计算。


以花呗反套现的场景为例,并不是每一笔交易或回款行为都需要进行套现行为的识别,需要先进行一定的规则的处理。比如,基于实时的统计交易的笔数或者回款的金额,在满足一定的条件后才开始进行子图的迭代计算。最后,基于图的迭代计算的结果,在进行数据链路的处理后再提供给在线使用。因此,一个场景在完整的计算链路中,需要流计算和图计算两种模态的融合计算。


在传统的计算方式中,则会通过流计算和图计算进行组合的方式来实现全链路,比如通过 Flink、GraphX、Neo4j 等多个系统进行串联。 但是通过传统的方案,用户需要学习多套系统,并且需要维护多套系统进行衔接。而且由于多套系统衔接,因此会产生额外的数据存储和延迟。因此,在蚂蚁金服,我们打破计算模态的边界,将流计算和图计算进行融合,提供流图融合的计算系统。用户可以通过一套 API、一套计算系统来实现完成流图融合的链路,由于是一套系统,同时能减少用户的运维成本。



动态 DAG


同样以花呗反套现场景为例,在实现了流图融合的计算能力之后,由于是否进行图计算,以及采用什么样的图计算算法都是由数据进行动态决策,无法预先设定。因此,传统的静态 DAG 无法满足当前的需求,这里,我们通过将数据流和控制流相结合,并提供动态 DAG 的能力,从而实现按需计算,弹性的扩缩容。


在提供了融合计算和动态计算的能力之后,如何让用户进行快速便捷的开发显得尤为重要。


这里我们通过 SQL Plus(Gremlin)的方式进行融合计算的开发,用户可以通过 SQL 来构建整体的 Pipeline 的流程,同时,引入 GraphView 的概念,基于 SQL 可以离线和实时的构建 Graph View。基于 GraphView 之上,可以通过 SQL+Gremlin 实现基于数据驱动的在线图计算能力。



同时,由于 SQL 大部分开发者都比较熟悉,可以减低用户的学习、开发、调试的门槛,易学易用。目前蚂蚁金服也在关注最新的图查询语言国际标准 GQL,未来也会融入于此。


基于以上三个特性,用户可以快速的构建流图的一体化作业。


接着,用户在上线一个算法策略的同时,则需要对策略进行验证,这里用户需要针对流式的数据进行有效的仿真,来判定当前的算法是否有效。


基于当前的在线图计算架构,我们可以通过模型的有效抽象,将历史的图数据和请求进行有效的回放来实现仿真和在线的一体化架构能力。


与此同时,由于仿真的特性,会对历史版本的数据快照进行访问,从而会引起图数据存储的加速膨胀。 由于这里采用流式回放的方式进行仿真,我们可以通过基于驱动的数据 GC 策略,从而避免数据的过量膨胀。 同时,基于多级缓存的策略,从而实现提升图仿真的吞吐能力。


以上就是融合计算方向的四个关键技术,通过以上的四个特性,用户可以高效、方便的进行任务的构建和计算。


接下来,会讨论如何快速的进行子图构建。

在线图计算之高性能图缓存

这里重点介绍一下蚂蚁的高性能图缓存,基于完美 Hash 函数和专业的压缩能力,将数据缓存在内存中进行在线服务,从而实现子图场景下的低延迟和高吞吐。



针对高性能的图缓存,内存的占用显得尤为重要。这里重点看下蚂蚁图缓存和业界系统的压缩比对比图。这里采用的是基于 Twitter 的 User-Follow 的开放数据集。


可以看到,由于图的关联特性,所以业界开源的系统在原始图的基础上,都有一定程度的放大,而业界做得比较好的 TigerGraph 做到了相对于原始大小的 40% 左右的内存使用。而蚂蚁的图缓存可以实现 20% 的原始内存大小。比目前业界最佳,还要节省一半的内存使用。



通过高压缩比,我们将图数据完整的存放在内存中,下面我们可以对比一下子图抽取的 RT 性能。


同样是基于 Twitter 的 UserFollow 的数据,可以看到在 1 度、2 度、3 度的场景下,特别是 1 度的场景,整体的时间延迟仅是 Tiger Graph 的 20% 左右。


通过高性能图缓存,针对子图的高性能查询,才能实现在线的实时链路计算。

在线图计算之金融级图数据库 GeaBase

下面我们来看下,如何实现金融场景下的高可靠和一致性的能力需求,这里重点介绍下蚂蚁的金融级图数据库 GeaBase。


GeaBase 内部通过实现 Mirco Shards 的方式来实现数据分片。并基于 Mirco Shard 的数据分片实现 Cost-Base 的数据迁移和自动的负载均衡。同时,借助于蚂蚁的基础架构体系,实现了三地五中心的城市级容灾策略。




通过对比,我们可以看到,在单机、单副本和机房级故障时,GeaBase 的灾备能力均优于 HBase。与此同时,在城市级容灾的场景下,GeaBase 可以实现数据的恢复和不丢失。



与此同时,GeaBase 还实现了一致性的能力,来满足金融场景的数据强一致性的需求。GeaBase 通过实现 Raft 协议来实现数据的一致性。并且可以让业务根据自身业务需求自由选择,是最终一致性还是强一致性。


蚂蚁的在线图计算目前广泛应用于蚂蚁的多条业务线,支持了风控、社交和营销等 100 多个业务场景。当前在蚂蚁内部有 2000 多台机器的集群规模 7*24 小时运行。


与此同时,蚂蚁逐渐把这些能力输出给外部金融级客户,如常熟农商银行和泰隆银行。比如在常熟农商银行,蚂蚁金服与行方联合共研了蚁燕知识图谱项目,基于蚂蚁研发的在线图计算技术,在大数据量环境下,通过海量关联分析,提前进行担保关系预判,实现担保圈风险的秒级预判和风险提醒,有效管控风险的同时,切实提高了信贷审批效率。蚂蚁金服不仅自己实现了 310,还通过合作输出给客户,为实现普惠金融而努力。


未来,蚂蚁金服会继续打磨在线图计算的技术能力,并向更多的合作伙伴开放,一起将在线图计算推广到更多的场景中去。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)


原文链接


https://mp.weixin.qq.com/s?__biz=MzI0Nzc3MTQyMw==&mid=2247489798&idx=1&sn=cece440a173a90ab3440997f7a0ea716&chksm=e9aba176dedc286026f0f31673138427a2004bead33115fded7f708a7f20aca86a047866a9ce&scene=27#wechat_redirect


2019-11-04 08:001791

评论

发布
暂无评论
发现更多内容

使用Python的requests库爬取网页表情包

何极光

Python 10月月更 爬虫案例

启科量子可视化量子编程——QuComposer

启科量子开发者官方号

量子计算 可视化开发 启科量子

LF AI & Data AICon 2022—AI工程化回顾

星策开源社区

机器学习 微软 AI工程化 人工智能’ AICon

独家!【隐秘而伟大】这群神秘的程序员,干了票大的

博文视点Broadview

深入浅出来谈谈webpack🔥

渔戈

前端 Vue3 10月月更

Vue3组件开发之:父子组件之间的通信方式🔥

渔戈

前端 Vue3 10月月更

从 Traefik 到 APISIX,汽车智能计算平台公司「地平线」在 Ingress Controller 的探索和实践

API7.ai 技术团队

开源 AI 网关 APISIX Ingress Controller

现代化SDLC与架构评审

I

安全架构设计 SSDLC

未来智安2周年 | 行则将至,未来可期

未来智安XDR SEC

闻道Go语言,6月龄必知必会

有态度的马甲

一文带你走进C++【内存泄漏】

C++后台开发

c++ 后端开发 内存泄漏 Linux服务器开发 C++开发

华为云加固企业网站安全堤坝,助您业务稳定流畅

科技之光

代码规范以及commit扫描代码

甜点cc

前端 代码规范 React Native 10月月更

企业如何从0到1搭建BI系统

葡萄城技术团队

BI 仪表盘识别 可视化数据

完整议程 | 2022 XDR网络安全运营新理念峰会

未来智安XDR SEC

网络安全

认识VueCLI和Vite🔥

渔戈

前端 Vue3 10月月更

覆水也可收, 破镜可重圆! EasyRecovery帮你轻松找回丢失数据

淋雨

数据恢复 EasyRecovery

Go | 基本数据类型的相互转换

甜点cc

golang 学习笔记 10月月更

华为云ECS,如何赋能企业开展云上业务?

路过的憨憨

华为

训练大模型的九大深度学习库;谷歌转向文字→视频生成的两大利器|AI系统前沿动态

OneFlow

人工智能 深度学习

「云渲染」渲染农场的架构原理、特点

Finovy Cloud

架构 原理 云渲染 云渲染农场

个人和初创企业想要搭建网站,如何挑选一台便宜合适的云主机?

京东科技开发者

云主机 网站搭建 测评 性能评测

CDC ChangeLog Stream实时流入CLICKHOUSE最佳姿势

水滴

实时数仓 Clickhouse CDC Flink CDC Debezium

华为云焕新数字生活,打造情景化智能产业链条

爱尚科技

华为云

纵享丝滑,华为云CDN加速服务的极致体验

路过的憨憨

华为

启科量子 QuBranch 正式开源

启科量子开发者官方号

量子计算 编程工具 启科量子

华为云同步科技信息端,海量存储性能

爱尚科技

华为云

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

校园大赛 | 数云融合 叩响未来——神州数码集团2022年校园大赛火热开启!

科技热闻

鏖战 48 小时,TiDB Hackathon 都诞生了哪些硬核创意?

PingCAP

TiDB

华为云网站安全解决方案,站在企业安全的最前沿

科技之光

从310到蚂蚁森林,蚂蚁金服在线图计算的创新与实践_文化 & 方法_潘臻轩_InfoQ精选文章