|
BI运作所依靠的信息系统是一个由传统系统、不兼容数据源、数据库与应用所共同构成的复杂数据集合,各个部分之间不能彼此交流。从这个层面看,目前运行的应用系统是企业在花费了很大精力和财力构建的、不可替代的系统,尤其是系统的数据。而新建的BI系统目的就是要通过数据分析来辅助自己决策,恰恰这些数据的来源、格式不一样,导致了系统实施、数据整合的难度。此时,企业非常希望有一个全面的解决方案来解脱自己的困境,解决数据一致性与集成化问题,从而能够从所有传统环境与平台中采集数据,并利用一个单一解决方案对其进行高效的转换。这个解决方案就是ETL(extraction,transformation
and loading)。
通常情况下,企业的数据源分布在各个子系统和节点中,利用ETL将各地方业务系统上的数据,通过自动化FTP或手动控制传到UNIX或NT服务器上进行数据获取、转化处理,然后存储到数据仓库。因为现有业务数据源多,保证数据的一致性,真正理解数据的业务含义,跨越多平台、多系统整合数据,并最大可能地提高数据的质量,迎合业务需求不断变化的特性,这是ETL技术的关键所在。可以肯定的是,ETL贯穿整个BI解决方案的全过程,完成整个系统的数据处理与调度。
数据获取
数据获取主要是针对各个业务系统及不同网点的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,并进一步通过这些数据源获取希望的数据。
确定如何获取或查询源数据并非易事,因为它往往存储在多个地方,可能是一个RDMS、一个文本文件、一个Excel文件、一个DBF文件或其他类型文件。例如:在移动的经营分析系统中,数据抽取的数据源是BOSS系统、OA系统等,而为了保证生产系统稳定地运行,ETL所抽取的数据就变成了对数据文件的处理。
数据传输
数据传输是通过网络负责把远程的数据文件传输到本地目录下。在实施中,它的步骤包括:初始化参数表,如间隔时间、远程数据文件的存放位置、本地数据文件传路径,并连接到远程主机上;取远程数据文件列表,将其取至本地;根据远程数据文件列表,生成取数据文件的脚本,运行此脚本;完成取数据操作后,生成取回数据的列表,根据此列表生产删除远程数据文件的脚本,运行此脚本;将取回的数据文件移到指定文件夹中,并继续监控。
数据转换
数据转换主要是针对数据仓库建立的模型,通过一系列的转换来实现将数据从业务模型到分析模型,通过内建的库函数、自定义脚本或其他的扩展方式,实现了各种复杂的转换,并且支持调试环境,清楚地监控数据转换的状态。数据转换是真正将源数据变为目标数据的关键环节,它包括数据格式转换、数据类型转换、数据汇总计算、数据拼接等等。但这些工作可以在不同的过程中处理视具体情况而定,比如,可以在数据获取时转换,也可以在数据加载时转换。
数据存储入库
数据存储主要是将经过转换的数据加载到数据仓库里面,即入库,操作者可以通过数据文件直接装载或直连数据库的方式来进行数据装载,充分地体现其高效性。
统一调度
统一调度是ETL中较为重要的功能。它不但可以将源数据加载到数据仓库中,而且还可以更新数据集市。更重要的是,它还可以更新OLAP
Server和挖掘模型数据。它在整个BI方案中扮演着总指挥、总调度的角色。其过程如下图所示。

ETL统一调度的过程
监控
数据监控主要是指监控ETL的整个过程。通过扫描ETL各模块、日志中的关键值,如记录时间等信息与当前的状态作比较,如果超过某一个值,则认为该模块运行可能出现问题,应告警。
下一代 ETL=ETL+ 打包应用集成 + 实时处理
ETL
大多数 ETL 工具能自动生成 SQL
语句,来从关系型数据库中获取数据。但是现在的实时分析和企业应用系统的批量实时处理成为主流,这也就逼迫 ETL
工具的提供商来扩展他们产品的功能,以适应市场需求的变化。
打包应用集成
下一代的 ETL 工具在应用层上使用打包接口工具,从打包的企业应用系统中获取数据和商业逻辑。随着 ERP 、 SCM 和
CRM 等应用程序的发展,对商业逻辑的理解需要对底层相关数据的存储有所了解。然而直接访问底层的 DBMS 数据库可能会导致一些问题的发生,而生成的传统 SQL
又过于简单。这样通过一种特别的方法来获取应用系统的商业逻辑就十分必要了,所以下一代的 ETL 就为此而诞生了。
下一代 ETL 工具同应用程序的交互来确保所有有用的商业数据都被获取。这些工具是基于应用层的,这就意味着它们除了采用传统的
SQL
语句之外,还同数据字典和企业知识库紧密相连,这样能加深对数据的理解。应用程序接口同应用程序字典和当前的逻辑源数据相关联,这些接口也针对不同的应用系统产生不同的代码,因为每个不同的系统它们所采用的标准和用户接口都是不同的。如
SAP 采用 ABAP 语言,称为 RFC 协议;而 ORACLE 的 eBusiness 商业套件则是基于数据字典来工作的,并有弹性域这样的概念;
PeopleSoft 则能够横向切入直接获取有效的数据;J.D.Edwards 则必须将数据和浮点数据转换成特有的应用系统格式。
另外,下一代 ETL 不仅提供了大量可直接使用的接口和传输工具,还可以做许多预数据集成的工作,方便企业的快速实施,例如可以内置
SAP-Siebel 的集成等。
实时处理
下一代 ETL 工具可以实时的进行数据的传输。它们将具有以下这些功能:
· 实时消息处理服务:实时处理从任何应用系统收到的消息。这个功能是实时消息处理系统的核心功能。
· 实时数据流:能够以图形的方式显示实时数据的流动情况。一个实时数据流逻辑上包括给 ERP
或者其他企业系统提出需要获取数据的请求,以及给数据产生者以回复。实时数据流的整个过程需要通过 XML
的消息表单来实现,这些消息由网络客户端,如电子商务应用系统产生,并且需要以 XML 消息的方式给予回复。
· 管理能力:跨整个企业的实时处理需要基于网络的全生命周期管理,包括配置、开始运行、停止和状态监控等。
· 多层次的复杂的数据转换: ETL 工具必须能够很容易的将多级文件,如: XML 或 EDI
文件转换成相关的格式,而且能不通过开发直接对这些多级结构进行操作。将这些多级数据转换为简单的数据格式,对于开发者来说往往是高度复杂且十分繁重的工作,而且在手工编程过程中很容易破坏数据的完整性。下一代的
ETL 工具将通过嵌套式关系数据模型( NRDM )来实现这样的功能。
· 批量且实时的数据流工具:这个能力将确保批量实时的数据处理规范统一。
· 双向的实时接口:实时元数据集成需要大量的工具和应用程序。
包括:
· ERP、CRM和SCM系统的实时数据接口(如SAP的IDocs和Oracle的Triggers)
· 基于J2EE、JCA、JMS和HTTP等的企业服务器
· 支持SOAP、WSDL和UDDI等的Web服务
· 基于HTTP的BI工具
· 为主流的EAI/MOM工具留有接口
|