ESB在数据仓库建设中的应用
1、企业数据仓库系统建设的需求 目前大多数企业根据自己的业务特点和办公的需要,建立了一大批各自的业务处理系统 和企业办公自动化系统,积累了大量的业务数据。这些业务信息系统为提高企 业的工 作效率,减少重复性的工作起到了积极的作用,为企业的发展做出了巨大贡献。但是这 些系统的数据随着时间和业务的发展而不断膨胀,同时数据分布在不同的系统平台上, 具有多种存储形式。随着市场竞争的加剧,信息对于企业的生存和发展起着愈来愈重要 的作用。管理人员常常希望能够通过对组织中的大量数据进行分析,了解业务的发展 趋势,而传统数据库只保留了当前的业务处理信息,缺乏决策分析所需要的大量历史信 息。 为此,建立基于数据仓库的商务智能系统,为企业的发展决策提供有根有据的事实支持。 数据仓库是指面向主题的、一致的、不同时间的、稳定的数据集合,用于支 持经营管 理中的决策支持过程。数据仓库系统是通过对生产经营过程涉及的销售、库存、生产、 采购等业务财务数据、市场行情、竞争对手等外部数据进行收集、管理、处理、分析, 进而给出综合分析结果的计算机信息处理系统。 2、ETL技术 构建数据仓库的一个关键核心技术是数据集成和迁移。现在,一般是以ETL 以抽取、 转换、加载集成迁移工具实现。ETL作为数据仓库构建的核心和灵魂,它能够按照统 一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过 程,是实施数据仓库的重要步骤。 ETL是在数据迁移过程中进行数据抽取extract>转换trans和加载load的过程。 ETL过程的主要目的就是以最小代价将面向日常业务操作的数据转化为面向数据仓库 存储的决策支持型数据。传统的方法是手动编写SQL语句和相对应的程序来实现数据 抽取转换工作。这种方法对技术人员的专业水平要求很高,又要求对业务方面有足够的 了解。传统方式实现的抽取转换工作在经历了一段时间后会造成SQL语句的数量急剧 增加,系统会逐渐变得难以维护,模块难以复用。因此采用通用成熟的ETL工具来实现 对业务系统中数据的集中,可以提高复用维护的简易性,减少设计抽取转换流程的难 度,使技术人员把精力放在业务上而非实现的细节上。 ETL工具的本质是数据转换器,它提供一种从源到目标系统转换数据的方法。这个功能 传统上由程序员来完成,需要针对每一种数据源编写不同的数据抽取和装载的程序,效 率极其低下。ETL工具提供一种通用的解决方案,它一般用图形化方式来生成用于数据 转换装载的程序代码,即直观高效地生成一个专用的数据转换器,从而减少了 70一 80的工作。 ETL过程可分为三步首先是从数据源底层的业务系统中,将所需要的数据抽取出来; 然后转换为目标数据存储的数据格式;最后将转换后的数据加载到数据仓库中,为了解 决“脏数据”的数据质量问题,还会在数据转换步骤后加入数据清洗功能。ETL包括以下 3个组成部分 1)数据的抽取指从不同的网络、不同的操作平台、不同的数据库和数据格式、不同 的应用中提取数据的过程;数据抽取有完全抽取和增量式抽取。数据仓库中的数据很大 一部份是用来反映历史情况的,抽取功能不只是简单的数据库导向的过程,更多是一个 获取增量数据的过程。 2)数据的转换指数据的转化(数据的合并、汇总、过滤、转换等)、数据的重新格式化 和计算、关键数据的重新构建和数据总结、数据定位等。 3)数据的加载跨网络、跨操作系统平台,将数据按照物理数据模型定义的表结构装 入目标数据库中。 2、3、应用协同SynchroESB实现ETL 3.1 SynchroESB 的 ETL 功能概述 协同SynchroESB是以SOA架构为核心的企业服务总线(ESB),它是一个基于标准的、 面向消息的、高度分布的、具有智能路由的系统整合平台。它在JBI规范的基础上, 实现了数据集成服务,包含了 ETL相关组件,具有普通ETL工具所具有的功能。它又 是一个开放的平台,用户可以编写自己的组件插入至ij SynchroESB总线上,实现特定的 功能。 SynchroESB的数据集成服务主要包括历史数据迁移、数据同步、数据合并、数据仓库 等服务。 历史数据迁移实现历史遗留数据的重用,将历史数据迁移到新的目标数据库中。 数据同步实现分布的数据库中数据的上传、下载,保证分布数据库中的数据的一致性。 数据合并实现不同应用的数据库中的个性化数据到统一结构的数据库中的数据的合 并,包括清洗、转换等操作。 数据仓库实现将分散的数据集中到统一的数据仓库中,并建立统一的数据模型来存储。 SynchroESB的ETL处理主要包括 实现数据源的批量抽取、增量抽取、定时抽取,支持主流数据库、非结构化数据、平面 文件等多种数据源,经过数据抽取后,将各种数据来源的数据在技术层面上实现XML 格式统一; 实现对于分布式的部署系统的数据传输,提供可靠性传输机制,支持数据的压缩、加密 等处理;实现数据的加工,主要包括数据的清洗、转换处理。 实现高效的流程并行调度,并可以批量将数据载入,适合于海量数据的处理。 3.2基于SynchroESB的数据集成框架 基于SynchroESB平台的数据交换系统可以实现集成自下而上、不同节点(县、市、省) 的异构数据(库),汇总到中央数据中心;可以解决机构内部异构数据库的数据不一致和 同步的需求;可以实现横向系统之间的数据交换和共享。用户可以使用平台提供的缺省 适配器组件,将原有的应用系统或者数据库系统连接到整个数据交换平台上来,实现 整个信息系统之间的数据交换与信息共享。 SynchroESB的适配接口层是支持各种不同数据源的动态插件,它能屏蔽各种不同的数 据源的底层技术差异,为数据源提供统一的访问接口,增强了应用和技术协同工作的 能力。SynchroESB缺省提供如下适配器组件。当然,用户可以根据需要开发自己的适 配器组件。下图展现了适配接口层的实际应用。 RDBMS Oracle Sybase DB2、MSSql 数据库适配器封装各种对数据库的操作,提供统一的访问接口和一致的XML表达。它 包含提供不同访问方式的多种适配器,分别提供了读、写、查询,和监视数据库的功能。 文件适配器 文件适配器文件适配器提供一种通用文件访问方式,通过指定相关参数,可以灵活的 读、写各类文件。它可以访问网络文件系统和本地文件系统。 HTTP HTTP适配器把消息传递到运行在一个指定URL上的servlet上,或者通过HTTP协议 接收来自客户端的HTTP请求。 SOAP Soap适配器封装对WebService的访问,用于访问一个指定URL所对应的Web服务 JMS JMS适配器封装各种JMS的实现,通过提供统一接口访问其它JMS的消息中间件。 IF服务 IF服务基于指定的XPath选择标准进行数据的过滤。这个服务在输入事件端口接收 XML数据,进行XPath的选择然后把数据写到正确的输出事件端口。这个服务还具有 数据清理功能,可以清除不符合规范的数据以及空缺值。 JOIN服务 JOIN服务在数据集成的过程中完成数据的合并工作,该