基于大数据平台构建数据仓库的研究与实践
作者:赵毅
来源:《中国金融电脑》 2017年第5期
    恒丰银行通过大数据平台构建数据仓库的项目实践,逐渐建立全行数据综合服务体系, 即报表和查询体系、基于专业引擎的数据计算访问体系、数据分析服务体系、数据挖掘体系,最终形成了数据应用价值到最终用户的合理传导机制。
    恒丰银行原传统数据仓库是建立在IOE(IBM、ORACLE、EMC) 传统架构体系上,已接入数据源系统有30 多个,配套建立监管数据集市、数据分析集市,风险数据集市三个主要数据集市,负责十几个管理应用和监管系统的数据需求,下游建有银行管理类系统如综合经营分析系统(管理驾驶舱)、自定义查询平台等,并为各分行提供数据下发服务。
    随着恒丰银行各类业务快速发展以及与外部机构跨界合作的展开,历史数据越来越多,半结构化数据、非结构数据也越来越多,数据的统一存储和处理面临硬件成本和访问压力等问题,原有的技术架构体系越来越不适应业务发展要求无法满足金融科技环境下银行对大数据的应用创新需求。
    本文根据恒丰银行在大数据平台建设经验上提供解决上述问题的实践案例,案例中在技术架构上大数据技术可以解决已有数据仓库的性能瓶颈问题;在业务层面,大数据平台体系的数据仓库能够利用数据创造更多的业务价值,为银行经营决策者制定方案提供更合理的数据参考。
    一、大数据对银行数据管理的挑战
    在日益激烈的国际、国内行业竞争环境下,商业银行努力优化服务结构、迅速响应市场变化、精细化管理决策,以求在新环境下抓住新机遇。在这一背景下,商业银行逐渐寻求技术突破,通过科技驱动业务变革、提升业务价值,走在行业前列。但应看到,在互联网、大数据技术日新月异的今天,商业银行面临着诸多挑战。
    首先,商业银行面临着全量、多维、更新迭代迅速的数据冲击,对数据的采集、存储、应用、分析、管控、扩容均提出了新的挑战。虽然数据仓库系统在商业银行已发展十余年,但由于单节点处理能力较弱,以Scaleup纵向扩容方法提升硬件能力的方式成本高昂,性能提升有限,已无法满足业务快速发展的需要。
    其次,随着商业银行业务日益多样化、复杂化,业务系统越来越多,数据孤岛效应凸显,数据系统分开建设,数据架构设计中的职责划分不合理,系统之间存在重复加工、统计口径不一致、大量数据冗余的现象,系统之间无法形成协同效应。
    最后,由于商业银行业务场景的变化,业务部门对于实时决策的要求越来越强烈。例如,实时精准营销、实时风险预警,都要求数据仓库有高并发、低延迟、非结构化的数据处理能力。而传统数据仓库由于技术架构上的天然局限难以满足此类场景的数据探索需求。
    二、恒丰银行大数据平台建设实践
    恒丰银行处于业务发展的新阶段,新业务模式的创新对数据信息服务的总体能力提出了新的要求,需要一个低成本可线性扩展的统一数据处理平台,解决企业多个数据应用形成数据孤岛,导致数据资源难以共享、数据标准不一、存在大量冗余数据的问题。但现有的主流数据库技术因为系统架构陈旧已经不能满足业务发展需要,开源大数据技术在商业银行企业级应用场景下还有诸多不完善的地方。
    2015 年,恒丰银行在开源软件、国产大数据平台的基础上,自主设计开发建设企业级大数据应用平台,利用全新的大数据平台技术全面重构了企业数据仓库应用,满足海量结构化与非结构化数据的低成本加工存储、快速统计分析、业务模型探索、实时分析与决策等需求。结合大数据技术服务能力,升级改造原有的渠道、授信管理、审计、客户管理等系统,在客户服务、风险管理、内部管控、流程优化、营销管理等多个业务领域提升恒丰银行的运营效率和市场竞争力。
    1. 数据仓库技术平台选型
    基于银行当前应用数据能力的要求,新一代企业级数据仓库应具备如下技术能力:
    (1)支撑海量数据存储和低延迟联机查询,将企业主要数据汇聚到一个平台上,支持大并发的低延迟联机查询,这也是一般企业应用大数据能力的初步目标。
    (2)支持统计分析应用,包括即席业务统计报表、多维业务数据分析、客户体细分等应用,一般可替代传统数据仓库的主体功能。
    (3)数据探索与业务预测。支持业务分析团队的数据探索和业务建模实验,实现诸如业务趋势预测、客户行为预测等高阶应用。
    (4)决策支持能力。通过应用决策树、规则推理引擎、运筹优化技术,实现客户定价、风险预警等领域特定业务问题的机器自动化流程管理和简单人机交互方式的辅助业务决策支持应用。
    (5)自主学习能力。通过引入深度学习网络、知识图谱、遗传演化等智能技术构建相对复杂的机器智能学习体系,能从海量数据中提炼高价值信息,构建自主训练与反馈、可不断从最新数据中调整演化的智能业务模型体系。
    以Hadoop/Spark 为代表的大规模数据处理技术为超越传统数据库的处理局限性提供了先进的并行计算和资源调度框架。在经过充分评测后恒丰银行最终确定采用Hadoop/Spark 架构作为新一代企业大数据平台的基础设施组件。
    该平台具备高模块化和松耦合架构,针对不同的应用领域通过组件之间的灵活组合与高效协作来提供定制化的大数据平台支撑;此外,平台已全面支持SQL、PL/SQL 标准数据库语言及Oracle、DB2、MySQL、SQLServer 等多种银行传统应用数据库,结合自身数据挖掘与机器学习组件,能够构建起强大的数据分析生态系统。
    2. 大数据平台层次化架构设计
    基于大数据平台构建的新一代数据仓库的整体架构(如图1 所示包括如下层级结构),完成对数据源存储、加工、应用、输出、数据管理等各层面的重构。
    (1)源系统结构化数据:源系统按大数据平台的供数规范要求提供表数据文本和标志文件。
    (2)文件交换区FSA:文件的交换中枢,含源系统结构化数据和半结构化、非结构化数据(主要是外部数据)。
    (3)源数据缓存区ODM:结构化数据接入,在线数据平台的源数据历史层HDM、基础数据模型层的数据来源。
    (4)源数据历史层HDM:源数据缓存区数据接入。银行为什么用db2数据库
    (5)基础数据模型层FDM:源数据按数据仓库模型加工后存储,源数据缓存区数据接入,公共数据模型层CDM 的主要数据来源。仅大数据平台各数据层数据存储和内部流转用。
    (6)公共数据模型层CDM:聚焦客户营销和风险管理的银行信息资产加工和存储,源数据缓存区、基础数据模型层数据接入,数据服务接口的主要数据来源。
    (7)数据服务接口DSI:在线数据平台的对外数据服务接口,源数据历史层、公共数据模型层数据接入,BI 应用集市的唯一数据来源。
    (8)历史数据服务接口:历史数据平台的对外数据服务接口,源数据历史层、公共数据模型层数据接入,各类查询应用的唯一数据来源。
    (9)综合监管集市:试点应用银监标准化EAST所在的综合监管集市,数据服务接口的数据接入,综合监管应用的唯一数据来源。
    (10)数据分析集市:BI 统计分析类应用所在的数据集市,公共数据汇总层ADM 的加工和存储,数据服务接口的数据接入。
    (11)统一调度平台:大数据平台ETL 过程的统一作业调度监控,包括:调度、监控、日志、处理四部分内容。
    3. 原关键数据仓库应用迁移
    新一代数据仓库逻辑架构主要包括在线数据平台与历史数据平台两部分。在线数据平台将对原有数据仓库的体系进行重构,向业务人员提供更多更全的业务数据及更加高效便捷的模型数据。历史数据平台实现对历史数据的永久存储,并能够提供给用户历史数据查询的数据服务接口。
    应用迁移的主要目标是建设在线数据平台、历史数据平台,设计公共数据模型,并实现银监标准化系统(EAST)的数据切换。整体设计思路分为数据移植、在线数据平台、历史数据平台、银监标准化(EAST)四个部分。
    (1)梳理数据移植流程
    ①利用Sqoop 技术连接原数据仓库抽取数据到hdfs文件系统;
    ②将原数据仓库的数据抽取到hdfs 文件系统后,在大数据平台中构建映射在这些数据文件上的外表,其表结构与原数据仓库表结构一致;
    ③在构建外表后,数据平台已可以查询到原数据仓库的数据,为构建数据平台的HDM 层源数据备份,还需将这部分的数据进行还原操作。
    数据移植流程如图2 所示。
    (2)建立在线数据平台
    在线数据平台集中了源数据缓冲层、源数据历史层、基础数据模型层和公共数据模型层。源数据缓冲层作为外部业务系统数据接入层,单日缓存业务系统每日数据,供历史明细层程序处理已存入基础数据平台。源数据历史层是对业务系统源数据进行初步清理后,粗放在数据平台中,保留历史原貌。基础数据模型层保留了原数据仓库部分基础数据模型,以支持公共数据模型及其他应用数据需求,保存模型历史数据。公共数据模型层为数据仓库的主体数据体,是支撑数据汇总、数据分析的多纬度数据集市。
    (3)建立历史数据平台
    历史数据平台是在线数据平台的数据备份,实现每日数据同步。历史数据平台源数据备份结构与在线数据平台一致,保存永久数据。历史数据平台公共数据模型备份结构与在线数据平台一致,永久保存数据。并依托公共数据模型的历史,构建历史数据查询服务模型接口。
    (4)重构银监标准化(EAST)应用
    银监标准化EAST 系统改造内容主要是数据连接改造(JDBC-hadoop)和参数配置调整,不包括系统功能和流程。由于EAST 系统数据结构为Oracle 表,存储过程为Oracle 存储过程,需根据大数据平台的特性对表结构进行重构,支持大数据平台的存储过程格式,并进行数据移植。
    4. 注重公共模型开发
    恒丰银行当前数据仓库存在应用离散、冗余数据加工、资源紧张等问题。所以,公共数据模型的建设需要统一需求管控,建立更大的项目资源池,减少重复开发,规划应用方向;统一计算口径,减少数据冗余和数据复制,减少重复数据加工;同时,能够满足不同应用场景的共性需求,稳妥推进新技术应用。公共数据模型层建设原则如图3 所示。