实战丨基于Hadoop平台建立货币信贷大数据数仓的实践
欢迎金融科技工作者积极投稿!
各抒己见!
投稿邮箱:
newmedia@fcmag.com.cn
——金融电子化
货币信贷大数据监测分析系统是人民银行成都分行自主开发的业务系统。通过5年多的运行,有效助力了业务创新和精准履职,得到了业务部门的高度评价。2018年,鉴于货币政策传导和监测面临的新形势,业务部门迫切希望系统向大数据方向拓展,以适应采集和分析巨量颗粒化数据的需要。为此,经广泛研究金融机构大数据实施案例并进行选型测试,成都分行引进了国内某知名厂商的Hadoop大数据基础平台(以下简称Hadoop平台)作为数据仓库,与MySQL组合形成混合型数据处理后端,并与应用系统完成适配。目前,金融精准扶贫台账、小微企业存量贷款台账等陆续采集到数据仓库中,结合历年积累的其他数据,初步形成了货币信贷大数据数仓(以下简称货信数仓),为建设安全可靠、性能优良、处理高效、拓展便捷的大数据平台作了有益的探索。
货币信贷大数据数仓架构及特点
为充分发挥关系型数据库和大数据平台各自的优势,分流冷热数据,并实现系统数据后端的平滑过渡,缩短开发周期,货信数仓由MySQL和Hadoop平台组合而成。MySQL存储和处理小量的敏态数据,实现系统中业务流程和逻辑设计,并应对大多数的实时交互需求。而Hadoop平台则存储和挖掘巨量的稳态数据,实现系统中海量数据的统计、关联分析等需求。两者数据通过ETL交互。
图 货币信贷大数据数仓架构
1.实现大数据批量入库
数据的批量入库,可以利用Hadoop平台提供的相关组件通过两种途径完成。对少于10万条的数据集,直接利用JDBC/ODBC驱动,组装SQL的MERGEINTO、INSERT、UPDATE、DELETE等语句,实现对数据的CRUD操作。由于数仓实现了分布式事务的ACID特性,因此在并行操作时,依然能保证数据的一致性和完整性。对于大于10万条的数据集,如使用SQL逐条或批量插入,不仅入库效率不高,而且有可能形成数据阻塞。可取的方法是将已清洗好的数据封装成文本文件,然后利用定制开发的HttpFS文件传输工具,将文本文件从Windows客户端传输到HDFS上,然后再通过新建文本表,将数据导入数仓中。此外,通过工作流引擎设置导数任务,还可实现定时定向按序导入数据。或者通过ETL可视化工具,实现从DB2、MySQL等关系型数据库或CSV、TXT、XML、JSON、JDBC等数据源中实时交换或迁移数据,从而达到数据整合的目的。
2.实现高效数据挖掘
Hadoop平台不仅有高扩展的分布式存储为“存”数之仓,更有高效处理引擎为“挖”数之器。利用Hadoop平台的Search、Inceptor、Slipsstream等组件构成的大数据挖掘和分析工具链,货信数仓支持建立多级索引和高并发低延迟的查询和汇总。利用Spark高速计算引擎和扩展SparkSQL,通过Search与Inceptor结合实现了秒级搜索。利用Slipstream提供的实时计算引擎,可用熟悉的SQL进行流处理和批处理,从而简化操作,提高了大数据分析效率。利用数据集市工具,按照业务部门的需求实时抽取、组合和挖掘数据,形成多维度数据子集,供特定业务领域分析决策使用。
3.实现与主流BI工具的结合
货信数仓实现了与主流BI工具的结合,特别设计了专门的统计设计器和统计处理引擎与之对接,实现了更为丰富的图形图表展示。同时,BI工具应用于数据集市,不仅大幅提高了BI处理效能,而且切实解决了业务痛点,贴合了可视化图表展示的潮流,使数仓迅速得到多渠道和大范围的使用。
4.实现与应用系统平滑对接
货信数仓既可通过客户端程序或BI工具独立输出生产力,更重要的是作为货币信贷大数据监测分析系统的标配数据后端,持续存储和挖掘数据,为系统提供源源不断的动能。由于系统开发在前且已运行多时,应用架构也趋于稳定,因此新数据后端应尽可能地实现平滑对接,不能因适配而对系统进行大改,以避免延误项目交付进度或导致业务持续性中断。货信数仓对此有较好的解决方案。一方面得益于系统基于模块化设计,模板之间高度解耦。另一方面货信数仓全面支持标准SQL,并提供JDBC/ODBC访问接口。因此,系统只对数据持久层模块进行扩展,并新开发HttpFS文件传输工具,即快速完成与货信数仓的平滑对接和全面适配,实现了敏捷开发和对需求的及时响应。
货币信贷大数据数仓性能测试
目前货币信贷大数据数仓由8个节点(1个NameNode和7个DataNode)组成,实际测试结果如下。
100万条记录表与100万条记录表等值关联,使用ORC表,1分钟完成;
100万条记录扫描可在2秒内完成;
单节点每小时可处理约500G数据;
数据完全装载入分布式内存列式存储,100万条记录可在2秒内返回包含聚合操作的查询结果。
此结果表明货信数仓性能较好,能够满足现阶段货币信贷部门采集颗粒化台账数据和对数据进行深入分析和应用的需要。同时实测表明,增加处理节点可以有效提升数仓性能,而且节点的数量与性能成加速型正相关。
货币信贷大数据数仓使用效果
自2018年3月货币信贷大数据数仓建立以来,已采集金融精准扶贫台账、小微企业存量贷款台账等约9000万条,生成各类统计表232张,BI分析查询5000余次。向其他数据集市输出107次,累计输出数据约3000万条。该数仓与货币信贷大数据监测分析系统高度融合,适应了货币信贷政策的传导和执行的要求,对金融机构流动性状况、货币政策工具运用效果、信贷资金投向及变化趋势、信贷政策落实情况、货币市场运行情况等,能及时跟踪、监测、分析、预警、引导和管理,其业务助推作用和社会效益日益彰显。特别是在金融精准扶贫、重点项目、支农支小、农村“两权”融资试点、定向降准效果监测等领域,发挥着越来越重要的作用。
货币信贷大数据数仓建设体会
1.全面的SQL支持对数仓建设至关重要
本次引入的国产Hadoop平台,实现了对SQL 2003标准的支持,兼容MySQL、DB2等SQL方言,实现了完整的ACID和CRUD功能,不仅可以大幅降低传统关系型数据库用户的学习成本和学习周期,能够快速形成生产力,而且能够切实减少货币信贷大数据监测分析系统等既有系统改造工作量,前端代码几乎不用改动,只需开发一个大数据后端与之对接即可。由于数仓提供了JDBC/ODBC驱动,符合主流的数据访问模式,因此不仅可支持几乎所有的BI工具,而且如无特别需求,完全可复用传统数据库应用代码来构建大数据系统。
2.良好的性能是建立高效数仓的基础
由于使用了高速内存计算引擎Spark,并在其上作了进一步优化,数仓的批处理速度是原生Hadoop的10~100倍,是大规模并行集群MPP的5~10倍。而基于Hadoop的高扩展性,还可通过增加节点数量进一步提高数仓的处理能力,以保证数仓的性能始终与业务发展相适应。甚至提前保有一定余量,做好应对更大规模数据处理的需要。
3.安全是数仓应用的压舱石
大数据时代的到来,使信息安全的形势变得更加严峻。一是大数据导致数据价值陡升,防失泄密的责任更加重大;二是面对大数据,传统的安全管理手段需要大幅升级甚至推倒重构;三是在大数据的各个环节,还没有进行足够的信息化应用创新;四是重应用轻安全的倾向未彻底扭转过来,对大数据带来的风险认识不够深入。针对以上问题,在建设货信数仓之初,即同步开始建立数仓安全管理制度和安全技术规范,并在系统开发、产品遴选和数仓运维中予以落实。在此强调的是,自Hadoop诞生以来,国内外厂商推出了众多的发行版,针对不同领域的需求增加或强化了许多功能。比较而言,贷信数仓选择的Hadoop平台,具有产品化程度高、界面友好、技术实力强、服务高效迅捷、组件丰富实用等优点,符合人民银行的信息安全标准,不仅有效避免开源Hadoop存在的部署不便、配置复杂、调优困难、组件版本冲突等问题,而且有效提升应用系统代码的复用性和整体安全性,以利快速形成生产力。通过两年的高负荷满任务运行,货信数仓表现优良,证明基于Hadoop平台建立货币信贷大数据数仓的选择在技术上是可行的,在效果上是成功的。
(点击查看精彩内容)
关于仿冒我刊收费的声明
我刊自创刊以来,从未向投稿人收取过任何费用。任何以刊发文章为名向投稿人收取费用的行为,均属于对投稿人的欺诈行为。
我刊官网地址为 www.fcmag.com.cn。
我刊投稿邮箱为 fcmag@fcmag.com.cn。
对于仿冒我刊网站、网页的违法行为,我社将追究其侵权责任,以维护我社和投稿人的合法权益。仿冒网站、网页举报电话:010-88232443