• 快捷搜索
  • 全站搜索

农行反洗钱系统探路Hadoop应用

2014-04-02 10:56:40作者:中国农业银行软件开发中心 闰焕德 韩叶茂 曹震编辑:金融咨询网
从Hadoop在农行反洗钱系统中应用的经验来看,Hadoopp在银行数据分析应用中,有广泛的适用场景,在数据加载、表关联、时间拉链、各项统计指标计算加工、数据存储等方面都有明显的技术优势。

大数据时代已经来临,数据深刻影响着银行的未来发展,谁拥有数据谁就获得了话语权。基于大数据的分析应用创新,已成为各商业银行竞争的焦点。本文以农行反洗钱系统数据处理为应用场景,研究了Hadoop技术在大数据分析系统建设中的应用。作为分析型应用的典型系统,反洗钱系统的数据处理基本囊括了大数据分析应用的主要功能,包括数据加载、数据压缩、数据指标加工、规则计算、统计分析等数据处理。通过这些典型数据处理场景的实践应用,研究掌握Hadoop关键技术,充分发挥Hadoop的技术优势和成本优势,从而为解决大数据处理问题打下基础。

一、反洗钱系统遭遇挑战

  洗钱是一种金融活动,金融机构开展反洗钱是一项法律义务。根据风险控制和监管要求,目前我行反洗钱工作内容包括以下三项:大额交易和可疑交易报告,客户风险等级分类,客户身份识别和客户身份资料及交易记录保存。

  为了落实反洗钱相关的监管要求,加强风险防范,在技术实现上的具体任务主要有以下内容。一是采集全量完整交易信息,采集全行所有金融性交易,形成完整的资金链条,包括准确完整的交易对手信息。二是构建以客户为中心的统一视图,实现以客户为中心的交易、账户、客户信息整体视图。三是实现大额交易和可疑预警的自动识别提取。四是可疑预警的人工判断及数据报送、存档、管理等相应的功能。五是历史数据保存。

  由于数据量大,处理逻辑复杂,原来基于某关系型数据库的反洗钱系统面临储多问题,比如基于运行效率和资源方面的考虑,实际仅处理了较大金额的交易,存在部分数据遗失的风险;另外批量处理时间过长,业务高峰季,影响联机交易正常开放的现象时有发生等等。

二、反洗钱系统概述

  1.功能需求。系统主要功能是批量数据处理和分析筛选,包括基础数据准备、客户信息处理、账户信息处理、交易信息采集以及大额规则、可疑规则等。其中基础数据准备主要有数据加载、清洗、转换、增全量合并、LZO压缩等处理过程;客户信息处理主要是关联合并客户相关表,形成客户数据模型(宽表);账户信息处理是按照各类账户主档、产品主档、合约主档等账户相关信息,形成不同业务账户数据模型;交易信息采集主要是从核心系统的传票表、日志表入手,采集交易相关数据,形成包括交易对手在内的完整交易信息,同时对个别交易,还需通过外围系统交易流水补充交易对手信息。相关外围系统主要有超级网银、大小额支付、票据交换、外汇结算、西联汇款、网内往来等。随后关联账户模型、客户模型,形成以客户为中心的完整交易视图。最后进行大额规则处理和可疑规则处理,将满足相应规则的交易、账户及客户生成大额报告和可疑预警。可疑交易分析需要累积较长时段的全量交易进行分析。

  2.逻辑架构。基于Hadoop的反洗钱系统在逻辑上主要包括数据基础层、数据处理层、规则处理层、数据应用层(如图1所示)。数据存储采用HDFS,数据的处理、规则计算采用MapReduce和Hive结合的方式,调度采用Oozie实现。

  3.物理架构。物理架构如图2所示,数据采集经由数据交换平台和接口机,数据的存储与处理采用Hadoop集群,调度控制服务器上部署Oozie,Hadoop集群采用多台X86的服务器组成。

攫取数据价值-决胜未来格局-图1.jpg

攫取数据价值-决胜未来格局-图2.jpg

三、关键技术及系统实现

  1.MapReduce实现表关联技术。表关联是数据分析应用的典型场景。MapReducee实现数据库表关联主要有两种方式:Reduce端连接和Map端连接。

  Reduc端连接:是MapReducee join中最简单的实现,能执行所有join类型,也没有对数据集大小的限制,并且能做多数据集之间的join。本项目中,在客户信息处理、账户信息处理等部分场景中,采用了reduce端关联方式。

  Map端表关联:Map端连接是一种特殊的join,用于一个大数据和许多小数据集关联的情况。使用分布式缓存加载小数据集,在Map setup阶段加载进入内存,Map中对每条读入的大数据集记录,在内存中查找与之关联的小数据记录。这种模式能够消除reduce阶段的shuffle。

  使用Map端连接,只能有一个大数据集,其他要join的数据集有严格的大小限制。除了该大数据集作为map输入外,其他数据在map任务的setup阶段都要装载到内存,会受到jvm堆大小的限制。本项目在账户主档与汇率表、科目表等关联时,采用了Map端关联技术。

  2.LZO压缩技术。Hadoop原生是支持gzip和bzip2压缩的,这两种压缩虽然压缩比率比lzo大,但在做map reduce解压缩时,无法进行分片,所以通常不会用gzip或者bzjp2。LZO压缩是基于block分块的,能够允许数据被分解成chunk,从而并行被Hadoop处理。编码解码库本地化,压缩解压速度最快,具有可接受的压缩比,这些特点使LZO成为Hadoop上的一种很好的压缩格式。在本项目使用LZO压缩,对数据输入和数据输出压缩,减少磁盘I/O数据量,提高程序执行效率,同时对Map和Reduce中间数据进行压缩,减少mapReduce时Shuffle数据量,提高执行效率。

  3.RCFiIe存储模式。RCFile(Record Columnar File)存储遵循“先水平划分,再垂直划分”的设计理念,结合了行存储和列存储的优点:首先,RCfile保证同一行的数据位于同一节点,因此元组重构的开销很低;其次,像列存储一样,RC File能够利用列维度的数据压缩,并且能跳过不必要的列读取。基于Hadoop的反洗钱项目,数据量大的表均采用了RCFile存储机制,显著降低了数据处理中连接操作的数据读取量。

  4.Hive自定义函数。Hive是一个基于Hadoop的开源数据仓库工具,采用HQL(类SQL)语言存储和处理HDFS中的海量结构化数据。当HQL内置函数不能满足要求时,可以编写UDF(用户自定义函数),完成某些复杂逻辑的处理。本项目除了使用hive基本功能外,还编写了UDF,用于日期处理、数据控制、传票拆分等,大大简化了程序编写,降低了开发成本,提升了处理性能。

  5.工作流调度。Oozie是一种高效的开源调度软件,在本项目中使用Oozie工作流引擎完成所有数据处理流程的调度。它运行在。Java servlet容器Tomcat中,使用MySQL数据库来存储工作流定义、当前运行的工作流实例等内容。

 1 2 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章