互联网行业利用分布式计算和分布式文件系统较好地解决了海量数据的存储与计算难题,该实践为金融业解决目前棘手的数据存储与处理问题,提供了“他山之石”,不妨借鉴。
近来,大数据这一IT行业的热门话题,在金融行业也引发了越来越多的关注。在数据爆发式增长的今天,银行每天都在生成、获取海量数据。首先,传统的交易系统每天产生数亿笔客户交易、形成了TB级的结构化数据;其次,业务处理过程中银行采集了大量用于集中作业、集中授权、集中监控的影像、视频等非结构化数据;再次,银行网站每天点击量达到几千万次,隐含着大量客户需求或产品改进信息;最后,各类媒体、社交网络中涉及银行的信息既有客户需求,也有客户投诉,这些都可以作为银行改进产品或服务的依据。
上述数据或基于法规遵从的存储需求,或基于市场营销、产品设计的分析需求,或基于风险与安全控制的行为审计需求,都需要银行对其进行存储和计算,其中一部分数据还需要及时计算。不难发现,银行业目前的数据特征以及数据处理要求,基本符合大数据特征。可以说,随着信息技术的发展,银行业已经进入大数据时代。
一、分布式数据存储与处理技术
当前,IT厂商推出的大数据平台或产品以及各种开源大数据解决方案基本都采用分布式架构,以增强计算与存储资源的横向扩展能力。通过对Google、Yahoo、Amazon、Facebook等互联网公司的研究,不难发现在其数据存储与处理架构采用了分布式计算和分布式文件系统。互联网行业正是利用分布式计算和分布式文件系统较好地解决了海量数据的存储与计算难题。互联网行业的实践为金融业解决目前棘手的数据存储与处理问题,提供了“他山之石”,不妨借鉴。
1.分布式计算——易获得的横向扩展能力
分布式计算,即把一个需要非常大计算能力才能解决的问题分成若干部分,然后把这些部分分配给许多计算节点处理,再把计算结果综合起来得到最终的结果。这种计算模式,改变了原有的数据库模式,即将所有的数据集中起来,企图通过不断纵向扩展计算机性能来实现高性能的大数据处理。其灵活可扩展的架构,使得计算性能的横向扩展更易实现。
2.分布式文件系统——性能与成本兼顾
分布式文件系统,多部署于低廉的硬件上(x86及本地磁盘)。在分布式文件系统中,数据文件被分割成一个或多个数据块,存储在一组数据节点上,并通过多副本的机制有效保障了数据的可用性和完整性。同时,分布式文件系统还提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。一些分布式文件系统还可以实现以流的形式访问文件系统中的数据。在集群中,我们可以通过横向扩展集群,来提高其性能与吞吐量。分布式文件系统在高性能磁盘系统高效高成本和磁带系统低效率低成本之间,找到了大数据存储的解决方案。
二、多种数据处理平台相结合
传统的以事务为中心的数据库架构设计,受纵向扩展能力和高成本限制,已无法满足越来越多的大数据量数据分析需求。鉴于此,数据存储与处理技术也随之由“一种架构支持所有应用”向“多种架构支持多类应用”转变。
1.大数据时代的数据处理与存储架构
在大数据时代,为了更好地挖掘不同类型数据的价值,同时更有效地使用各类数据处理平台,大数据存储和管理方案,应采用多种处理平台相结合的模式,以实现高效率、低成本存储管理大数据的目标。
从数据处理维度看,对于业务处理层(ODS层),鉴于其对事务完整性和高实时性的要求,可采用传统的高性能关系型数据库(OLTP型数据库)作为处理平台。而对于数据消费层(ADS层),则可以采用大数据技术,使用分布式数据库(MPP)和Hadoop技术作为分析型数据库(OLAP型数据库)处理平台。未来,业务处理层各应用系统将主动发布各类业务处理数据,而各类主题的数据消费系统则按自身功能定位和数据需求对这些数据进行获取、加工、转换及处理。
2.数据消费层MPP or Hadoop
当前,主流的大数据分布式数据处理与存储方式有两种:分布式数据库和Hadoop分布式系统。两种解决方案的对比分析见表1。
MPP分布式数据库较Hadoop分布式系统,在复杂逻辑的结构化数据处理上具有一定的优势,且可基于SQL开发,对于有较丰富SQL经验的银行系统开发者开发与运维更容易。当然,业界MPP分布式数据库产品价格也要高于Hadoop这个源于开源社区的产品。
这是否意味着MPP分布式数据库就是大数据处理的最佳解决方案呢?我们不妨从银行系统数据的价值密度和数据特征来考虑这个问题。对于银行系统数据,我们基本可以达成这样一个共识:银行系统数据中,结构化数据价值密度通常高于非结构化或半结构化数据,而在银行数据中非结构化数据占用了大量的存储资源。这是因为银行系统中结构化数据以账务数据为主,而非结构化数据则主要集中在凭证影像等数据。当然结构化数据中也包括部分日志信息等价值密度不高的数据。
正如前文提到的,数据存储与处理技术在由“一种架构支持所有应用”向“多种架构支持多类应用”转变。同样对于数据消费层数据处理技术,也应根据数据价值密度及数据特征等采用与之相匹配的架构来支持不同应用。对于数据消费层数据中那些价值密度高的交易及账务数据可采用MPP分布式数据库构建数据处理平台;对于那些价值密度不高的结构化数据和非(半)结构化数据则可以采用Hadoop分布式系统作为处理平台。