天天看点

表格存储在互联网风控和金融数据服务上的应用实践

当前,第三方支付、p2p网贷、宝宝类理财、众筹等金融产品层出不穷,随着金融知识的普及,全民参与又进一步促进了互联网的发展。海量交易数据,实时在线访问,业务快速的迭代变化都对传统金融解决方案提出了更高的要求,而互联网金融本身的开放性,低门槛,征信信息的缺乏,又容易发生各类风险问题,这有给传统金融解决方案带来的新的挑战。借助云计算、大数据、搜索引擎等新一代高新技术,给互联网金融带来了新的机会。

新兴的互联网金融数据主要有以下几个特点:

由于参与的人数众多且活跃度较高,日交易单数通常能够达到十万甚至是百万级别,很容易达到一个传统关系型数据库的单表上限。

互联网金融需要不断发现新的机会,扩展新的业务模式,对底层的数据模型灵活性有非常高的要求。

促销活动、新产品发售或者是特殊的节假日都会让访问并发暴增几个量级,每天的访问量也会和时间段有着密切的关系。

互联网产品更加注重用户体验,金融风控需要在极短的时间内做出风险判断。

互联网金融可以从历史交易信息和用户行为日志中对用户进行多维分析,从而进一步降低金融风险。

业务需要7*24小时运行,部分硬件故障不能影响业务运行。

金融数据从来都需要最高的安全等级,必须保证机器宕机等硬件故障不会造成数据丢失,同时数据不会被窃取、泄露。

阿里云表格存储是一款全托管的nosql数据存储服务,支持 海量数据 的存储和 单个毫秒级 的单行平均访问延时, 无缝扩展和弹性资源 都非常适合金融场景,更支持到 表级别和api级别 的授权管理以及 虚拟网络vpc ,全方位保障数据安全。

下面基于表格存储现有的金融客户案例,和大家分享一下表格存储在互联网风控和金融数据服务上的应用实践。

传统金融的风险控制,主要是基于央行的征信数据及银行体系内的生态数据依靠人工审核完成,一方面国内的征信服务并不完善,另外一方面,人工审核的速度也远远适应不了巨大的风控需求。

但是依托与云计算的大数据存储与分析,结合用户的网上消费行为数据、通讯数据、信用卡数据、第三方征信数据等丰富而全面的数据,让系统来完成风险判断,大大提高了风控的效率和准确率。

目前大多数风控系统都是使用内存数据库存储风控数据信息来保证风控系统的实时性,虽然内存数据库有极低的相应延时,但是出现宕机等机器故障,风控数据就会丢失,造成风控系统的不可用,且使用内存数据库也导致风控系统水平扩展较为困难。表格存储在读写性能上与风控数据库没有太明显差别,能够满足风控场景的需要,并且保证了数据的持久化和高可用。

基于表格存储的风控系统架构如下图:

表格存储在互联网风控和金融数据服务上的应用实践

风控事件的处理流程如下:

用户在登录时会根据用户登录的ip、解锁行为等进行登录风控判断,防止用户被盗号或者设备丢失造成进一步损失。表格存储的多版本特性可以只保留用户最近若干次的登录信息,较早的登录信息系统会自动删除,无需系统维护登录信息。

比如风控系统需要最用户最近10次的登录地点进行验证,来判断是否需要用户提供更多的信息来登录。设置用户登录信息最大版本为10,当用户第11次登录时,最早的登录信息会被系统自动删除。风控系统在读取的时候读取该用户的登录信息,指定读取的版本为10,则会读出最近10次的登录信息,大大减小了系统的复杂度。

当用户进行交易或其他行为事件时,系统将用户行为写入表格存储中。

定期使用大数据计算服务(max compute)或者streamsql对用户行为日志结合用户信息库进行分析,得到用户的信用结果,更新该用户在风控数据库中的信用度、可用额度、偏好等征信数据信息。

当需要进行风控的事件产生时,风控引擎会根据触发事件从风控模型库中读取相应的风控模型集合,对从风控数据库中读取该用户的征信数据依次进行计算,来判断此次事件是否准入。

以线上支付为例,当用户在国外某地进行一笔5万块的线上交易,从风控模型库中读取相应的风控模型集合中需要对用户的额度和交易地点进行判断,从风控数据库中拿到的用户征信信息中,用户的额度为10万,但是上次交易发生在1个小时前,且地点为国内,那么额度判断pass,交易地点判断fail,那么此次交易有盗刷或者欺诈嫌疑,系统则判定此次交易失败。

从上述对风控系统的描述中,我们不难发现,进行线上交易时,风控系统的介入时间需要足够短以保证终端的用户体验,那么对读取用户征信数据的延时有着非常高的要求,风控模型库越丰富,交易风险也就会越小。

同时,不断扩展的新业务也会需要新的风控模型,用户的征信信息也会不断发生变化,表格存储schemafree的稀疏表结构免去繁琐的表结构变更操作,保证了上层业务的灵活性。

风控不仅仅在互联网金融上是强需求,在互联网社交上也起着非常重要的作用。

除了风控系统,海量交易数据的收集、清洗、存储、实时访问和分析也对传统的解决方案提出了很大的挑战。让我们来看看表格存储配合众多云产品是如何来面对这些挑战的。

基于表格存储的金融数据服务系统架构如下图:

表格存储在互联网风控和金融数据服务上的应用实践

一般的金融系统中,用户的交易记录或者行为数据会直接上传至应用服务器进行数据校验或数据清洗,但当终端用户规模较大时,为了避免交易记录或行为数据在客户端堆积,需要大量的应用服务器来保证数据处理的实时性。这个时候,可以将用户数据写入消息队列中(消息服务mns),再有应用程序订阅消息队列中的数据,当有新的数据到达,触发应用服务的清晰逻辑。

对于经过数据校验、清洗之后的数据,一方面需要流入到历史交易数据库中,提供给在线业务层进行实时访问,比如历史交易查询,简单的汇总分析,比如某个用户最近一周的交易记录,交易金额趋势等。由于表格存储目前还不支持索引,可以根据业务查询需求建立相应的索引表,数据流入时,根据需要写入多张索引表中。比如根据交易机构的历史查询或者基于交易类别的历史查询。

另外一方面,数据需要流入大数据计算平台中,对用户行为进行分析,比如使用机器学习根据用户的历史交易金额计算出用户的信用分和信用额度等征信信息。

这一层直接对终端用户提供服务,比如用户的历史交易查询、第三方征信信息获取,简单的行为趋势分析计算。

这一层的再线业务查询中,有简单的用户交易流水查询,也有对固定的分析结果的查询,比如用户的月度交易情况,也有部分多维度的查询需求,比如来自某一个交易机构的或者交易区间的交易流水查询。

在表格存储上,可以构建多张索引表来提供多维度的查询信息。比如用户历史流水表的主键为[uid,timestamp], 基于机构交易的数据表主键就可以为[organization_id,timestamp,uid],用来满足对交易机构的交易流水查询。

在上述的数据处理层中,可以很方便的把交易数据通过流计算(stream compute)进行过滤、提取、汇总,写到表格存储的不同的表中。流计算支持对同一批数据进行不同的过滤、提取、汇总以及结果写入到不同的数据表中。这样就满足了海量数据的多维度查询需求。