使用MPP数据库解决农行海量数据复杂运算处理

回眸只為那壹抹淺笑 提交于 2019-11-27 19:13:40

农业银行以国产数据库GBase 8a为基础的国内最大的金融大数据平台采用混搭融合架构、双活数据仓库、超大规模数据库集群这些先进技术全部应用其中。56是生产环境,现在实现了56环境的双活!5.2PB数据量、236个节点、每天6000多个复杂的分析任务。

项目背景

随着互联网+时代的到来,金融大数据呈指数增长。结构化数据增长基本可控,它随着业务的增长是一个线性关系;而对非结构化数据,尤其语音、图像,优酷上的视频,增长巨大。现在精准营销、风险控制、运营等对大数据的应用提出更高的要求。随着大数据时代到来,处理大数据的技术手段和成本的下降都提供了对大数据的可能,在技术上它也是成长最快的一部分。

中国农业银行数据仓库项目最初是基于Sybase IQ建设的,主要应用于统计报表。随着数据量的不断增大、接入的系统越来越多,Sybase IQ由于性能的限制,已经很难在指定的时间窗口中完成统计,也无法继续接入其它的业务系统数据,无法满足银行内部数据分析和监管机构的监管数据要求。系统架构的障碍影响了客户从宝贵的数据资源中挖掘价值,寻找新的、更先进的产品成为客户不得不考虑的问题。

着眼未来,为更好地利用大数据领域新兴技术构造大数据平台,应对市场变幻、带动业务模式创新,寻求新的技术方向已成为必然选择。同时近年来信息安全问题越来越受中国政府和企业的关注,关键领域信息系统的国产化逐步开展。基于信息安全、技术革新等多方面考虑,坚定地走国产化替代道路,在基础架构和核心领域选用国产软件,是农行在技术选型方面重点考虑的因素之一。为此,农行加大了国产化替代的研究力度,对国产MPP数据库产品进行了深入研究和选型,最终选择国产MPP架构数据库——GBase 8a MPP Cluster,通过实际应用进行研究、分析,在架构设计、资源管理、功能实现等诸多方面对GBase 8a MPP Cluster数据库进行了改进与完善,最终形成一个适用于金融业PB级大数据计算的数据库产品,基本满足我行数据统计分析和应用需求。

需求分析

客户的需求是寻找能够支持 PB 级以上数据、超过 4000 亿行的数据库表、可以支撑每天处理 4000 个以上的 复杂作业处理能力的并行数据库产品,并且能够具有不断的线性可扩展能力,较高比例的数据压缩,能够基 于 x86 和 Linux 开放平台搭建从而降低成本,产品厂商需要具有强大的本地支持团队,能够为宠户提供及时 的、全方位的服务。

技术架构

在项目的实施过程中,结台我行多年对各种数据库的使用、研究与测试比对,从实际需求出发,我行对GBase 8a MPP Cluster数据库进行重新设计和数据库进行重新设计和优化改造,形成能够支撑我行PB级数据处理的大数据计算环境方案。

图片描述

解决方案

整个解决方案由56节点的GBase 8a MPP Cluster数据库系统和8台ETL服务器组成,硬件采用华为的RH2288 PC服务器,每个数据库节点服务器配置为:2x10核CPU,3Tx12硬盘7200转速,内存256GB。系统具备PB级裸数据存储能力,在项目测试验证中,每天运行60000个以上的数据加工作业和交互式数据查询任务,处理52个源系统1287张源表共1.4TB的接口数据,月底处理3.6TB数据最大表记录数达到2000亿条。数据处理任务包括大量负责的时间拉链和统计汇总聚合运算处理。实践证明我行研发形成的PB级大数据计簋环境能够满足金融业的要求,具备向其他领域推广的可行性。

系统采用GBase 8a MPP Cluster建设,共300个节点,其中主库共112个节点,采叏双集群组成双活主库,其中每个安全组有2个节点。同组的两个节点,放在不同的机架上,以保证全方位的高可用性。系统还部署16台加载机实现集群的数据分収加载;主库+集市的裸数据量超过5.2PB,单集群库内裸数据量超过1.5PB,共30K多张表,最大表10K亿行;库内复杂作业15K多个,涉及SQL语句10W多个;日终加工时间为8小时,T+1时间的双活集群间同步2小时10分钟完成,月终加工时间为10-12小时,日终处理数据文件2.5TB,月终处理4.2TB;财会历史区主库为16+4节点,零售数据集市为28+4节点,资产负债数据集市为12+2节点,PDM集市(个人客户数据集市)为28+4节点,数据挖掘环境为2套28+4节点,广东分行信用。预警分析系统为8+2节点。目前系统每个节点数据在入库后都通过压缩然后存储,每个节点的数据量都超过10TB。系统已经运行的SQL主要是多表关联insert,多表关联delete和多表关联 update。所有的任务,都是通过ETL后台调度来完成,并収在20~30左右。数据加工后支撑了信用卡分析、贷记卡分析、电子银行分析和资金转移计价等应用的数据需求。目前系统接入的农行核心系统总数为71个,通过建设数据集市全面支撑全行包括监管报表、个人金融板块、征信、反洗钱等应用在内的分析需求。

技术亮点

在项目的研究与实践过程中.农行对国产MPP架构数据库产品进行了优化和完善,保留其自身的列存储、粗粒度索引、智能压缩以及扁平架构等技术特点,实现了多项关键技术的创新性突破。在架构设计、资源调度、执行效率等方面研究、设计和改善了上百个技术问题,使国产数据库产品基本达到商业化应用水平。对国产MPP产品改进、优化方面的创新如下。

集群架构

针对集群架构的改进,包括两个方面:对每个节点的功能模块分组与会话建立与执行的机制。

(1) 功能分组型MPP架构。基于对目前市场上主从MPP架构和非主从MPP架构的研究和实践,我行提出建立功能分组型MPP架构的改进方案:将GCluster、GNode、GCWare三大模块分别部署在不同的节点(如图2所示),形成三种功能分组集群。三种功能分组集群可分别扩展,彻底打破集一方面成为瓶颈而限制整个系统的性能和并发接入能力,提升了系统的效率及稳定性。

(2)异步SQL会话建立与执行机制。由于GBase架构中GCluster向GNode发送命令时使用多线程加同步API方式,在构架和性能设计方面存在严重不足,造成SQL并发受限。针对这个问题,项目组提出建立异步SQL会话与执行机制。通过异步方式执行SQL将不占用太多的网络SOCKET,同时GBase无需启用太多线程,节约了连接数,扩充了通道容量和集群规模。从而提高了并发访问数量,较好地解决了SQL并发数较大时,系统资源消耗严重,
执行性能下降等问题。

资源管控

资源管控方面主要包括对外部客户访问的机制和内部资源调度两方面的优化。

(1)并发访问调度机制的优化改进。 在混合负载和并发环境中,MPP数据库集群执行LOAD、DDL、DML以及SELECT并发时,依赖于GCluster的并发机制。而GCluster的并发控制分为两个层面:外部并发控制和内部并发控制。我行创新性地提出将GCluster中外部事务的并发控制,调整为通过两个服务来管理,即分布式锁服务和分布式优先级服务。对内部并发控制通过另外一些特定的机制来实现,通过对访问调度机制的优化改进,扩展了并发度,提高了系统的整体性能和可用性。

(2)全方位资源管理技术。一般MPP数据库系统对资源的管理通常采用分层次,在不同层次进行不同的限制和动态调控的机制。项目在对GBase 8a MPP Cluster最终优化设计中考虑采用三级管理技术实现对资源的有效管理:在连接层,控制进入集群的连接数量,以求达到系统按照资源最佳模式运行任务;在会话层,将所有用户分为系统管理员、DBA及User三种角色,实现优先级管理;在执行层,根据用户优先级获取系统管理员设定的资源控制策略,
并按照策略执行任务。通过三级管理技术有效实现了全方位资源管理。

执行效率

执行效率的优化主要从算法和并行提交机制两个角度进行优化。

(1)按照算子归类的算法优化。MPP数据库在分布式查询优化中的重点是对SQL进行解析和优化,尽量把解析后的SQL以最优的方式分布到各个节点,由各个节点执行,从而避免表数据在节点间频繁移动。根据MPP数据库SOL解析的特点,项目对算法的优花思路主要区分两类集群算子,包括分布式JOIN和聚合运算,针对不同的集群算子采用差异化的优化策略,减少大量数据在节点间移动,提高了SQL执行效率。

(2)并行提交机制。GBase 8a MPP Cluster采用主副本机制实现SQL的事务完整性,之前采用两次Commit达到保证SQL事务完整性的目标。在本项目中,基于测试中的一些问题分析,将原有两次Commit机制变为并行提交,提升了性能。

数据交互

数据交互的技术创新包括:GBase 8a MPP Cluster同种数据库之间的数据交互和MISP集群与Hadoop集群之间的交互。

(1) 同种数据库之间高效数据传输。GBase 8a MPP Cluster同种数据库之间的数据交互,需重点解决数据仓库与数据集市大量数据同步时,时间窗口资源紧张的问题。在本项目中采用数据厍之间DB_Link连接方式,并充分发挥GBase 8a MPP Cluster数据均衡分布和并行优势,在集群间直接进行数据传输,无需中间落地,提高了传输效率,方便数据同步。

(2) 基于Hadoop实现数据备份。基于GBase 8a MPP Cluster集群与Hadoop集群中的数据都是分片存储,项目组利用GBase 8a MPP Cluster计算节点和Hadoop DataNode间直接通信。通过在每个GBase节点上安装Hadoop客户端和备份恢复程序,使用Hadoop读写工具对各个节点的数据库二进制存储文件并行进行备份和恢复,充分发挥Hadoop高读写吞吐量的优势,解决了海量数据的据备份与恢复难题。

价值体现

海量数据处理

为用户提供了性价比高的并行海量复杂数据处理平台,帮助宠户形成 PB 级以上的业务 数据单一视图,为宠户提供及时高效的数据分析结果;

高性能

系统架构高可扩展,性能随着节点数的增加而提升,保证宠户接入更全面的业务数据,满足市 场营销、内部管理、内外监管的分析需求;

高压缩比

为用户提供海量数据存储、管理能力,进一步降低宠户数据仓库建设的成本,并进一步提升 系统性能。

总结

农行率先响应政府信息国产化的号召,以强烈的使命感不惧风险,敢承压力,认真规划,谨慎实施,从MPP数据库行业整体了解,综合考虑,选定国产MPP数据库为初始产品,选择华为PC服务器和SuSE Linux ll SP2作为配套。在厂商的配台下,通过大数据量、多场景、高负载、多并发的检验,发现问题、分析问题、细究原理、改造设计、开发修正、测试验证,不断提升改进国产软件。最终通过双方的共同努力,国产MPP数据库集群产品在PB级数据处理方面填补了国内空白。同时为国内金融业乃至其他行业,提供了低成本选择。既可迫使国外MPP数据库厂商降低价格,又可让因为价格原因对大数据计算环境望而止步的企业敢于尝试,有助于扩大国内大数据计算环境应用的范围,推动国内大数据领域发展的步伐。

案例人物

图片描述

中国农业银行软件开发中心专家 赵维平

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!