统一数据交换平台的设计和实现
作者 : 未知

  摘要:目前,数据共享困难已成为银行系统所面临的一个重要问题。本文指出统一数据交换平台能解决在分布式与多应用系统环境下的数据交换问题。文中根据组件化设计原则,以完成系统的总体设计、数据存储和加工设计。并应用NAS存储、使用NFS共享等技术部署对ETL技术进行了研究。
  关键词:统一数据交换 存储 ETL
  中图分类号:TP311.13文献标识码:A文章编号:1006-8937(2009)03-0064-02
  
  在核心业务系统与外围系统之间批量交互数据是银行应用系统中最常见的任务之一,由于通常要受到多方面因素的制约,这是一个十分复杂而且耗费精力的工作。尽管目前银行正在进行综合业务系统大集中的改造,但并非所有银行的应用都会集中到唯一的核心业务系统上,而银行内还存在许多面向管理类的应用系统,这些围绕在核心业务系统的应用系统,我们称之为“外围系统”。
  核心系统与外围系统的数据交换可以分为批量数据交换和实时数据交换两类。实时数据交换是双向的,一般由专门的中间件完成。批量数据交换也可能是双向的,但总体上是从核心系统流向外围系统的批量数据交换方式为主。从这一点来看核心系统是数据生产者,外围系统是数据消费者。外围系统之间也可以有批量数据交换和实时数据交换,因而互相扮演数据生产者和数据消费者的角色。
  本文研究的是如何在中国建设银行总行实现统一的批量数据交换,从而建立统一数据交换平台(Unified Data Interchange Platform,以下简称UDI)。
  
  1应用技术现状与研究
  
  本文研究的重点之一是如何实现海量数据的加工,而且要在规定的时间窗口内完成指定的数据加工处理任务,否则,从业务角度看就是失败的。这一点的提出要求我们研究和应用先进的存储和计算技术,以及使用ETL技术对业务数据进行提取。
  1.1网络存储的研究
  早期的存储系统是计算机系统的一部分,大多以存储设备形式出现。随着网络的发展,数据的存储也逐渐由单机向多机方式和专用机发展,数据的共享与传递也逐渐从依赖主机系统向依赖网络系统发展。在大型企业应用和Internet发布系统中,安装数十台服务器已经很常见。但过于分散的数据资源,会给访问和管理带来困难。因此,数据存储问题备受关注。存储系统大致可以分成三种类型:
  直接依附存储系统(Direct Attached Storage,DAS)又称为以服务器为中心的存储体系。其特征为存储设备是通用服务器的一部分。数据的输入/输出由服务器负责,数据访问与操作系统、文件系统和服务程序紧密相关。当用户数量增加或服务器正在提供服务时,响应会变慢。在网络带宽足够的情况下,服务器本身成为数据输入/输出的瓶颈。
  网络依附存储系统(Network Attached Storage,NAS)这种存储方式多采用专用数据服务器。该服务器不再承担应用服务,称之为“瘦服务器”(Thin Server)。数据服务器通过局域网的接口与应用服务器连接。由于采用局域网上通用数据传输协议,如NFS,CIFS等,所以能够在异构的服务器间共享数据。NAS也是一种集中化数据存储形式,便于维护和管理。
  存储区域网络(Storage Area Network)采用高速数据连接通道―光纤通道(Fiber Channel,FC)连接服务器和存储系统。从结构上看,服务器和数据存储系统相互独立。将设备连接到FC集线器或交换机上,便于扩展系统规模。FC的传输速率和可靠性极高,能够满足当前视/音频业务的需求。在SAN中,所有的存储设备和存储数据均可采用中心化管理,使得整个存储系统具有可伸缩性。并且,可以通过存储设备的集群方式而达到高可用度。
  从软件角度看,NAS是应用与存储分离的系统,应用服务器通过局域网(LAN)访问文件存储系统,通常NAS以标准化访问协议(如NFS)提供服务;在SAN中,文件系统与存储系统完全分离,存储系统实际上成为运行应用程序服务器的设备,二者以高速FC连接。
  1.2ETL技术的研究
  企业的信息系统往往是一个由传统系统、不兼容数据源、数据库与应用所共同构成的复杂数据集合,各个部分之间不能彼此交流,这些数据的来源、格式不一样,导致了数据整合的难度,企业非常希望有一个全面的解决方案来解脱自己的困境,解决数据一致性与集成化问题,从而能够从所有传统环境与平台中采集数据,并利用一个单一解决方案对其进行高效的转换,这种解决方案就是ETL(Extraction,Transformation and Loading)。
  从实际角度,ETL的使用包括数据抽取、数据传输、数据转换与清洗、数据加载、调度监控以及元数据管理等。
  
  2 平台的总体设计
  
  组件由一段执行码组成,通过对相应的控件资源的调用完成设定功能的执行模块。组件通过有序的组合,构成组件执行序列即流程,完成所要实现的功能。本节对UDI平台建设需要实现的功能进行分析,包括技术合规性检查、元数据管理、数据接入服务、数据组织和管理服务、数据提交服务、安全控管、系统监控管理等组件,并在此基础上依据组件设计的思想进行组合,提出统一数据交换平台的总体架构。
  2.1 UDI的功能分析
  2.1.1 技术合规性检查
  按照UDI数据标准和目标系统的要求,针对数据格式所进行的检查,包括数据属性与值域检查、代码表引用检查、中文乱码和半个汉字等检查。
  2.1.2 元数据管理
  简单地说,元数据是“关于数据的数据”。包括业务性元数据,主要指数据的业务定义、计算公式、修改规则等;技术性元数据,主要指数据结构(数据表和字段)的定义和转换规则等;操作性元数据,主要指作业运行日志、数据保留期间、加载频率等。UDI系统重点是实现基于技术性元数据的元数据驱动服务以及对元数据的管理服务。
  2.1.3 数据接入服务
  负责源系统数据向UDI的接入,包括与源系统的连接、源系统数据的获取以及源系统数据向UDI标准数据的转换,特别要考虑系统面对大数据量和有限处理时间条件下的处理能力。UDI平台支持的转换规则如:格式与类型、数据翻译、数据连接、数据合并、数据排序、数据计算、码制转换等。
  2.2 数据组织和管理服务
  数据组织和管理是实现“目标系统通过UDI屏蔽对源系统的数据要求”的关键,UDI对进入其标准数据的源系统数据不做结构上的改变,对这些数据可以重新进行组织,这样可以满足目标系统对数据的多样性需求,并逐步形成UDI的数据标准和接口标准,统一UDI的数据管理流程和作业流程。
  2.3 数据提交服务
  负责由UDI标准数据向目标系统的数据转换和分发管理,包括按目标系统要求所进行的技术性转换以及对待提交数据的管理。
  UDI作为批量数据交换平台基础设施,所以与源系统必须制定规范的数据交换协议标准,综合考虑源系统安全性,性能问题,传输效率等等原因,UDI系统与源系统之间不采用数据库直连标准,如ODBC等连接方式。
  采用FTP协议作为源系统与UDI之间的数据交换协议,那么就得约定与源系统之间的数据准备就绪标准与检查方式,要求UDI平台支持数据就绪标记文件和时间约定方式。
  2.4 安全控管
  UDI总体安全控制分成:系统层安全性(如操作系统)、应用层安全性(如针对数据存储的安全加密措施,针对应用数据在网络传输过程中,采取的应用层加密控制等等)、网络层安全性(如采用防火墙,VPN等网络安全技术)。
  2.5 监控管理
  与管理流程相对应的对整个系统运行环境的管理,包括系统接入管理、转换配置管理、运行配置管理、日常作业管理和系统恢复管理等。
  2.6 数据存储设计
  2.6.1 存储方案的选择
  基于NAS、SAN的存储系统都是完全独立的,不存在与服务器之间紧密的、依赖性的物理硬连接,都可以构造中心化的数据存储系统。二者都可通过冗余的硬件配置和软件支持做到安全可靠的保护数据,都具有良好的扩充能力和数据共享能力,都能实现中心化的数据管理。
  在扩展能力方面,SAN通过多个FC交换机的级联,理论上可连接几十万个设备,要优于NAS。另外,NAS的系统访问能力受限于LAN的速率和服务质量,而SAN采用光纤技术,能提供高达1Gb/s的速率,数据访问速度优于NAS。
  NAS的设计使得网络中的通用服务器可以从繁重的文件存储功能上解放出来。从具体的系统实施来讲,NAS有自己非常明显的优势。
  首先,NAS结构简单,易于实现。只需将NAS文件服务器连接到LAN,进行简单的配置即可实现数据共享。而SAN至少要在每台服务器上安装一块HBA及其驱动程序,当服务器数量较多时,还要添加FC交换机,网络布线和系统配置都较复杂。术语“即插即用”对于SAN来说并不适用,至少还需要一段时间来达到。
  其次,NAS易于实现多个局域网子网段的存储共享。
  综上所述,结合银行实际情况,UDI的数据存储最终选择NAS存储方式。
  2.6.2 存储方案的设计
  UDI系统的数据共享主要分为UDI应用处理器之间的数据共享和ETL主辅节点之间的数据交换两种情形。其中ETL主辅节点的数据交换由ETL工具自身来实现。
  服务所用的数据存储在集群文件系统中的磁盘设备组上。这种设置首先数据是高可用的,也就是说,因为磁盘是多主机的,如果当前主节点的路径出现问题,访问能换到可直接访问这些磁盘的另一节点。其次,因为数据在集群文件系统上,所以可以从任何集群节点上直接查看它,而不必过问此节点与存储设备是否有物理连接。可以像常规设备那样使用全局设备。UDI共享设计方案如图所示。
  
  2.7 数据加工设计
  应对数据源的数据提取可以有两种方案,一种是设定一种类型,比如关系数据库,作为统一的源类型,其他类型首先转换到关系数据库表中,然后再实施提取;另一种方案是直接选用数据提取的中间件产品,比如Ascential Datastage等。
  如将数据装入数据库,再进行提取,文件在服务器上有转换、装载、抽取的环节。来自源系统的数据使用文件形式,数据量很大, UDI初始全量数据约820G,把文件Load到数据库中是需要时间的,同时,数据库通常会用到索引,Enable索引比较慢,因而效率要差一些。而采用中间件产品,如ETL工具,可以直接将接收到源文件进行提取,根据节点个数设置并行处理进程,提取后结果文件直接发送到目标系统,这样不用经过“数据落地”的中间环节,处理效率比较高。
  UDI平台的数据逻辑加工处理最终采用Ascential公司的DataStage ETL工具进行规划设计,UDI平台一部分组件是基于ETL工具的进行开发(ETL工具开发语言 SCRIPT),另外一部分组件需要采用开发语言进行开发,统一规划成AIX下C/C++。管理数据库采用Informix数据库,任务调度和监控通过ODBC与数据库连接。
  统一数据交换平台项目作为建行基础设施的建设,已成功投入运营。当前接入源系统有五个(DCCN、DCCS、CMIS、国际卡、证券等),接入目标系统有四个(BDB、ECIF、OCRM、IPSS等)。平台在功能上满足了建行核心系统与外围系统之间的批量数据交换需要。
  
  参考文献:
  [1] 周敬利,余胜生.网络存储原理与技术[M].北京:清华大学出版社,2005.
  [2] Preston, Curtis. Using SAN and NAS.Sebastopol, CA: O'Reilly and Associates, 2002.