你的支付宝花呗额度是多少?一家企业能从银行贷款多少?这些都是由信用情况决定的。俗话说信用是金,如今随着新一代数字技术的创新应用,信用的标准更加完善,“含金量”更加具象,信用可以转化为中小企业的融资能力,也可以转化为中小企业的财富。
凭安征信为中国超过1.5亿的市场主体提供综合信用服务,广泛采集、分析、加工并整理企业的信用信息,形成了深具影响力的系列服务和产品,是央行上海总部备案的企业征信机构以及国家中小企业公共服务示范平台。
图1:凭安征信助力政府和企业进行信用管理
凭安征信对客服务的基础来自于3.4亿+市场主体的信用大数据,涵盖企业背景、实际控制人、对外投资、融资历史、股权结构、法律诉讼等多种维度,共计超过100亿条。凭安将采集的原始数据经过数据加工、清晰、关联之后形成大规模的结构化数据和非结构化数据保存在数据库中。近年来,随着业务和数据量的爆发式增长,业务使用的数据库面临着不少挑战。
凭安征信选择将结构化数据从传统MySQL数据库迁移到了阿里云瑶池旗下的云原生数据库PolarDB,同时使用云数据库MongoDB承接非结构化数据的处理。
- PolarDB基于云原生架构,计算存储分离,软硬件一体化设计,为用户提供具备超高弹性和性能、高可用和高可靠保障、高性价比的数据库服务。
- MongoDB是一款灵活的文档型数据库,云数据库MongoDB版完全兼容MongoDB协议,支持多种部署架构,额外提供多项企业级服务,满足不同业务场景需要。
图2:PolarDB和MongoDB共同支撑凭安征信的全量数据需求
阿里云瑶池旗下的云原生数据库PolarDB和云数据库MongoDB联合的方案帮助我们解决了很多业务难题。PolarDB通过计算存储分离架构,实现了高效扩容和数据读取稳定性,大幅提升了运维效率。MongoDB的非结构化存储增强数据弹性,支持快速更新,满足了我们多样化的需求。
——凭安征信联合创始人兼CTO 徐骥
1. 多样、多变的征信数据难题:PolarDB和MongoDB形成合力
征信数据种类多,且数据特点各不相同。例如,交易时间、交易金额、买卖双方等交易数据通常有固定的结构,这类是关系型数据;而浏览记录、搜索记录等用户行为数据是非关系型数据,更加灵活,如果仍然使用关系型数据库,则会让表的结构十分复杂,且造成大量的空间浪费。
评估一个人或一家企业的信用等级,通常要综合考虑各类数据表现,例如将用户信息(结构化数据)和用户行为(非结构化数据)进行关联,可以进行更加全面的信用风险评估。因此,单一数据库的方案无法支撑凭安征信的业务诉求。
1.1 PolarDB处理结构化数据
传统的关系型数据库可以处理结构化数据,而PolarDB则是新一代更加强大的关系型数据库,并具备100%的MySQL兼容性。凭安征信选择从原本的传统MySQL数据库迁移到PolarDB,不仅能够突破原本的性能瓶颈,而且基本无改造成本,实现对业务无感的不停机迁移。
1.2 MongoDB处理非结构化数据
对于非结构化数据,MongoDB作为一款功能强大的NoSQL数据库,具备绝对的优势。MongoDB支持灵活的数据结构,可以轻松应对各种“千奇百怪”的数据类型。不仅如此,schema-free的特性让数据变更简单而高效。例如,采集诉讼数据时,随着时间推移可能延伸出被告、原告相关的更多数据,对于这种情况,传统的关系型数据库的数据结构改造成本较高,而在MongoDB中,只需要直接插入一条记录即可,还可以通过嵌套文档的方式让数据更加具备可读性。
图3:PolarDB中的结构化数据和MongoDB中的非结构化数据共同支撑决策
2. 轻松应对数据激增:云原生的弹性扩展能力
随着众多企业的蓬勃发展,政策法规、对外服务等指标项都在调整,加之在信息化时代的大背景下,企业信息变更频繁、客户服务调用并发翻倍,凭安征信的技术架构面临着不小的压力。目前,他们每天要处理的数据集大概4TB。
2.1 PolarDB作为主力承担大量业务数据
PolarDB采用计算与存储分离架构,使得数据库服务器的CPU、内存能够快速扩容,只需数分钟即可完成集群配置升降级,满足公共云计算环境下根据业务发展弹性扩展集群的刚性需求。在每年的审计阶段,业务高峰来临,客户新增一个节点仅需1分钟左右,做到了极致的快速弹性。凭安征信看中了PolarDB的存算分离架构,PolarDB的共享存储IOPS是原先同规格传统MySQL的2~5倍,直接、有效地解决了因IO带来的业务访问压力问题。
图4:PolarDB的存算分离架构
2.2 MongoDB有效承担特种兵的角色
MongoDB作为一款非关系型数据库,天然的具有分布式架构的特点,可以通过自动分片将数据分散到多个服务器上,并且根据数据的增长情况自动增加服务器的数量。阿里云MongoDB云原生架构又进一步提升了其垂直变配和水平扩展的灵活性及性能,能够保证高扩展性,方便提高存储容量,一直平稳地支撑着凭安征信的数据不断增长和变化,尤其是帮助凭安征信的头部金融客户保证24h业务在线,成功应对超高的调用量。
图5:阿里云MongoDB的水平和垂直扩展能力
3. 一致性和时效性:不同场景的需求皆可满足
征信数据需要保证足够的严谨性,从而让信用更可信。比如司法中的文书数据涉及到多个用户同时查询,因此需要确保文书数据的完整性和一致性;而征信信息频繁更新,只有保证征信数据的时效性,才能反应借款人/企业的最新信用状况,从而做出更加合理的评估,这就需要非常高效的数据采集方案。
凭安征信汇集了海量、多样、频繁变更数据,这些数据的一致性和时效性越高,则越有价值。
3.1 PolarDB保障高性能全局一致性
针对数据一致性问题,传统数据库通过日志流在主从节点之间同步,PolarDB则进行了升级,利用RDMA(Remote Direct Memory Access,远程直接内存访问)技术实现多个计算节点间数据、信息的直接交互。RO节点通过单边RDMA的方式远程获取RW节点上当前最新的提交时间戳,用于计算当前的事务延迟情况,构建强一致性读视图。PolarDB的高性能全局一致性实现了数据在横向扩容的RO节点上跟RW节点的写入数据同步,数据0延迟。
图6:PolarDB高性能全局一致性保障数据0延迟
此外,PolarDB结合PolarProxy,实现了跨计算节点事务一致性,任何事务内的写前读和写后读均可以分流到只读节点中,这样就保障了凭安征信在处理企业数据的时候,任何时间点读取的数据都是最新的数据。
3.2 MongoDB让数据采集更高效
对于原始数据的采集需求,MongoDB的灵活性极大简化了数据采集的复杂性,从而支持凭安征信更高效地获取最新的征信数据。首先,由于MongoDB的数据格式非常灵活,因此各种各样、频繁变化的数据都可以直接写入。同时,MongoDB还支持运行时动态添加新字段,从而让数据采集随需而变。
图7:MongoDB的schema-free让数据触手可及
目前,凭安征信旗下的“水滴信用”已成功服务超过1000万小微企业。同时,凭安征信还与银行、证券公司、央国企等多个行业的头部客户保持紧密合作,有效促进了信用信息的健康流动和行业透明度。