1.数据集成
数据集成包括3个重要阶段,一旦数据集成成功,数据和ETL、分析工具和数据仓库环境均可被访问。这3个阶段分别是:数据访问,也就是从数据源中访问和提取数据的能力;数据合并,也就是不同数据源间的业务集成;变化捕捉,即基于企业数据源变化的识别、捕捉和传送。此外,像SAS软件公司这样的产品供应商也已开发出强大的数据集成软件。SAS企业的数据集成服务器包括在集成过程中能够提高数据质量的客户数据集成工具。Oracle的商务智能套件也同样支持数据集成。
数据仓库的主要目的是集成不同系统中的数据。提供数据和元数据集成的集成技术有:
——企业应用集成
——面向服务的架构
——企业信息集成
——数据提取、转换和加载
企业应用集成(Enterprise Application Integration,EAI)是从源系统向数据仓库中推送数据的媒介,具备集成应用的功能。EAI关注系统间功能的共享,而不是数据,使系统变得更为灵活且具有重用性。传统上,EAI解决方案主要关注应用程序接口层的应用重用问题;而现在,由于使用定义和文档良好的粗粒度SOA架构,即业务流程或者功能集成的引入,EAI也得到了进一步的完善。WEB服务就是一种实施SOA架构的专门手段。EAI可以被用于在准实时数据仓库中进行数据查询,或者将决策信息传送至OLTP系统中。EAI的实施手段和工具有很多种。
企业信息集成(Enterprise Information Integration,EII)允许,如关系数据库、Web服务以及多维数据库之类的多个数据源间的实时数据集成。EII是一类从源系统中提取数据以满足信息需求的机制。EII工具使用预定义的元数据以视图的模式将集成后的数据展现给终端用户。XML(Kay,2005)文献指出,XML是EII最为重要的一部分,XML使数据在创建和之后的使用中都被标注,这些标注可以被扩展和修改以适应任何知识领域。
物理数据的集成已经成为在数据仓库和数据集市中建立数据集成视图的惯例做法。XML(Kay,2005)文献指出,随着EII工具的出现,虚拟数据的集成也变得可能。Manglik and Mehra讨论了新数据集成类型的好处和不足,这种类型将传统物理方法扩展到一种全面的企业视角。
2.提取、转换和加载
数据仓库的核心技术流程是:提取、转换和加载(Extraction、Transformation and Load,ETL)。ETL技术已经存在了一段时间了,对数据仓库的流程和使用有帮助。ETL流程是任何以数据为中心项目的集成组件。ETL通常需要占用以数据为中心的项目中70%的时间,这对于任何一个IT管理人员来说都是一种挑战。
ETL流程包括提取(也就是从一个或多个数据库中读取数据);转换(即将提取后的数据由一种数据类型转换为另一种所需的数据类型,以便于存储于数据仓库或者其他简单的数据库中)以及加载(也就是将数据存入数据仓库中)。转换通常发生于规则使用、表格查询或者数据合并中。这3种数据库功能被集成于一类工具中,用于将数据从一个或多个数据库中提取出来并加载入另一个数据库或者数据仓库中。
ETL工具常常在不同的源和目标间进行数据传送,并记录在源和目标间移动时的数据元素(比如元数据)变化,在必要时与其他的应用交换元数据,并监控所有运转的流程和操作(比如调度计划、错误管理、检查日志和统计数据等)。ETL对数据集成和数据仓库同样重要。ETL的目的是向数据仓库中加载集成和清洗后的数据。ETL流程中使用的数据可以来自不同的数据源:大型机应用、ERP应用、CRM工具、平面文件、Excel电子数据表,甚至是消息队列。图2-7描绘了ETL流程。
图2-7 ETL流程将数据迁移到数据仓库中,需要从关联数据源中提取数据。数据源包括从OLTP数据库、电子数据表、个人数据库(如Microsoft Access),以及外部文件中提取的文件。通常,所有的输入文件先被写到一个预先设计的、用于加速加载流程的临时表中。数据仓库包括大量的业务规则,这些规则定义了数据如何使用、概括规则、编码属性的标准化以及计算规则。在数据加载到数据仓库之前,源文件的数据质量必须是准确无误的。良好定义的数据仓库的优点之一就是这些规则能存储在元数据仓库中,并且可以直接用于数据仓库中。这一点与OLTP的做法不同,OLTP中的数据和业务规则是分散于整个系统中的。数据仓库中数据加载的过程既可以在业务规则的开发和维护中,借助于提供图形用户界面(Graphical User Interface,GUI)的数据转换工具来实现,也可以通过诸如PL/SQL、C++、.Net等编程语言,自行编写软件或实用工具来加载数据仓库这种传统方法来实现。这一决定对组织来说通常是艰难的,当组织确定购买数据转换工具或者自行编写数据转换程序时,会受到以下很多因素的影响:
——数据转换工具很贵
——学习数据转换工具费时较长
——在学会使用数据转换工具前,无法估量IT组织做得如何
从长期来看,转换工具应该简化数据仓库的维护,同时使检测和纠错更有效率(也就是将数据中异常部分去除)。OLAP和数据挖掘工具将依赖于数据转换的效果。
(Songini,2004)文献指出,作为ETL使用的成功范本,Motorola公司借助ETL工具从30个不同的采购系统中收集数据并将其传送到其全球SCM数据仓库中,进行公司总支出的分析。
Solomon(2005)将ETL技术划分为4大类:复杂的、可使用的、简单的和基础的。通常,我们认为复杂的ETL技术会使数据仓库项目文档完备且管理精确。
尽管自行开发ETL工具是可行的,但是使用现行的ETL工具更为简单。根据文献(Brown,2004),以下是一些选择ETL工具的重要标准:
多个数据源架构下的数据读写能力
自动捕获和传输元数据
符合开放标准的历史
是否为开发者和用户提供了简单易用的界面
ETL的广泛使用标志着数据管理的贫乏以及相关数据管理策略的缺少。Karacsony(2006)曾提出冗余数据的扩大化和ETL流程的数量之间存在着某种直接的关系。当数据作为一项企业资产被正确管理时,ETL的效果大大地降低,同时冗余数据也会全部消除。这导致了在数据质量改善的同时,维护过程中大量数据的存储以及新开发的高效执行。ETL设计的不合理将会大大增加维护、转型以及更新的成本。因此,正确选择开发和维护ETL过程所使用的技术和工具是非常重要的。
但一定数量的ETL软件包也是有用的。数据库供应商目前提供的ETL软件包与独立的ETL工具相比功能上略有提高。SAS意识到数据质量的重要性,提出了工业界第一个完全集成的解决方案,它将ETL和数据质量两方面因素结合起来,使得数据真正转换为有战略价值的资产。除了SAS外,市场上还有一些其他的ETL软件商,如微软、oracle、IBM、Informatica、Embarcadero和Tibco。
3.数据仓库的开发
数据仓库对于任何组织来说都是一个大工程,它要比一个简单的主机选择和项目实施要复杂得多,它不仅涉及和影响到组织内的许多部门以及输入输出接口,同时还要作为CRM商业战略的一部分。数据仓库所带来的好处可以分成直接利益和间接利益两类,其中直接利益包括以下几方面:
——终端用户可以以多种方式进行广泛的分析。
——实现企业数据的一致性,也就是事实的单一版本。
——更好和更及时的信息,数据仓库允许从高成本的操作系统转向低成本的服务器的信息处理,因此终端用户的信息请求得以快速执行。
——提高系统性能。由于一些操作系统的报表请求被转向DSS,因此数据仓库可以没有生产处理。
——数据访问更为简便。
间接利益来源于终端用户享用直接利益的过程。总的来说,这些利益提高了企业的业务知识,展现了企业的竞争优势,提升了客户的服务及其满意度,促进了决策的制定,并且有助于业务流程的改进,这些即是对提升企业竞争优势最强有力的帮助。考虑到数据仓库可以带来的潜在利益以及一个项目在时间和金钱两方面所需要的大量投资,组织如何构建数据仓库使得成功的机会最大化是非常重要的。除此之外,组织必须显而易见地考虑成本。Kelly(2001)文献中描述了一个考虑管理者(也就是通过改进传统决策支持功能来节约成本)、采集者(通过自动化进行信息采集和传播来节约成本)和使用者(通过使用数据仓库制定决策来节约成本或获利)这三类人利益的投资回报率方法。这些成本包括硬件、软件、网络带宽、内部开发、内部支持、培训、外部咨询等方面。而净现值(Net Present Value,NPV)则以超过数据仓库的预期使用年限来进行计算。这些利益被上述三方瓜分,其中管理者占将近20%,采集者占30%,而使用者则占到50%。Kelly认为随着组织的改变,使用者是否参与到数据仓库开发过程中,将作为衡量系统是否成功的要素。
4.数据仓库开发方法
很多组织都需要建立数据仓库进行决策支持,而它们所采用的方法有两种。第一种方法是数据仓库之父Bill Inmon提出的,他主张由上向下的开发方法,使传统的关系数据库能够适应整个企业范围内数据仓库开发的需要,也就是EDW开发方法。第二种方法是Ralph Kimball提出的,他主张运用维度建模由底向上的开发方法,这也是数据集市的开发方法。
Breslin(2004)文献认为,知道这两种方法的相同和不同之处,有助于我们理解数据仓库的基本概念。下面将具体介绍这两种方法。
Inmon的模型:EDW方法 Inmon的方法强调由上向下进行开发,并使用实体关系图(Entity-RelationshipDiagram,ERD)和螺旋式开发等数据库开发方法和工具。EDW的开发方法并不排斥建立数据集市。EDW是一种理想的开发方法,它提供了一致和全面的企业观。Murtaza(1998)文献提出了开发EDW的框架。
Kimball模型:数据集市方法 Kimball的数据集市策略是一种“大计划、小实施”的方法。数据集市是一类面向主题或者面向部门的数据仓库,它是数据仓库的缩小版,主要关注某个具体部门的应用请求,例如市场或者销售部门。这一模型采取了由数据表入手的维度建模技术。Kimball提倡由底向上的开发方法,以便于在数据仓库建立的同时完成数据集市的建立。
5.数据仓库中的数据表示
不论是何种架构,数据仓库中的数据表示一直都是基于维度建模的理念。维度建模是一个支持大量查询访问的基于检索的系统。数据仓库中数据的存储和表示不仅要适合并且能提高复杂多维查询的处理能力。通常,星形模式和雪花模式是数据仓库中实现维度建模的方法。
星形模式(有时被称做星形关联模式)是最普遍使用和最简单的维度建模。一个星形模式包含一个中心事实表和多个相关的维度表(Adamson,2009)。事实表包含了大量与观测事实和外部链接(例如,外键)相对应的行数据。事实表包含了用来进行决策分析和查询报表的描述属性,外键用来链接维度表。决策分析属性包括性能测量指标、操作指标、聚集度量值(例如,销售数据、客户保留率、毛利润、产品成本、废品率)和其他所有指标,这些指标用来分析企业的业绩。换句话说,事实表主要解决了数据仓库用什么来支持决策分析的问题。
围绕在中心事实表周围(通过外部健相连)的是维度表。维度表包含了中心事实表列数据的分类和聚合信息。维度表包含用以描述事实表数据的属性,并对数据进行分析和总结。维度表与中心事实表的行具有一对多的关系。在查询中,维度可以对事实表中的数据值进行切片和切块,以满足特定的信息需求。星形模式使得只读数据库结构具有如下特点:快速的查询响应时间、简易化和维护简单。图2-8a展示了一个简单的星形模式。星形模式是雪花模式的一种特殊情形。
雪花模式是多维数据库中表的逻辑排到,其实体关系图表现为雪花状。与星形模式相似的是,雪花模式由中心事实表(通常只有一个)表示,中心事实表与复杂维度相连。在雪花形模式中,维度被标准化为多张维度表,而星形模式中的维度被非规范化为单个维度,单个维度由单张表表示。图2-8b展示了一个简单的雪花模式。
6.OLAP与OLTP
OLTP是用于描述交易处理系统的专业术语,这些交易处理系统主要负责获取和存储与日常业务相关的数据,如ERP、CRM、SCM、POS等。OLTP系统处理关键业务需求,使日常业务交易自动进行并产生实时报表和常规分析。但是,OLTP系统不能进行大数据量的特定分析和复杂查询。另一方面,通过对组织数据更高效率的特定分析,OLAP能够满足以上需求。OLAP与OLTP紧密联系;OLAP通过OLTP获取数据,而OLTP使业务交易自动进行,OLAP制定的决策管理着这些业务交易。