摘 要 随着信息与决策支持系统的发展,越来越多的大企业选择利用数据仓库来帮助自己进行决策分析。本文简单介绍了数据仓库的概念,提出了一种数据仓库项目的实施方,阐述了从项目初期规划到中期建设实施以及后期回顾总结的过程,给数据仓库项目的实施提供指导。
关键词 数据仓库 实施 方法
1引言
1.1建立数据仓库的理由
数据仓库(Data Warehouse,简称DW)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。首先,数据仓库用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库;其次,数据仓库是对多个异构的数据源集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
研究发现,领导的需求度、信息技术基础设施、分析型的应用需要以及竞争的激烈程度这四项因素是影响企业实施数据仓库进度的关键因素。企业规模越大、历史数据越多,实施数据仓库的迫切性就越高;
中国的电信市场竞争日趋激烈,竞争方式已由最初的价格战演变到现在的服务战,企业需要以客户为中心,进行统一的客户关系管理,对客户、产品、业务等进行统一的分析决策。而目前的业务支撑系统难以满足日益增长的分析决策的要求。
数据仓库是中国电信业务拓展的强有力的工具,数据仓库将来源于不同业务系统的数据集成在一起并转化为有用的信息,创建一个综合的企业信息提供平台。借助数据仓库,企业可以方便快捷地了解客户、业务状况、销售渠道等信息,进行及时有效的决策,从而降低经营成本、提高客户满意度、增加经营利润、扩大市场份额。
1.2成功实施的关键点
国内外有很多企业实施了数据仓库,但失败的比例比较高。绝大多数数据仓库项目失败的原因并非在于数据仓库技术本身,而是项目管理和数据仓库项目特有的关键点没有处理妥当导致的,例如IT部门和业务部门互相不配合、忽视了数据质量、没有做好用户培训等。
建立一个成功的数据仓库是一个相当复杂的过程,除了对企业的业务需求和数据仓库目的有一个清晰的认识外,还需要采取下列步骤确保数据仓库项目成功:
1)选择恰当的人负责数据仓库项目。
2)进行彻底的需求和数据分析。
3)确保业务部门与IT部门一致地为项目成功进行努力。
4)选择可以提供数据仓库完整解决方案的可靠和有能力的集成商。
5)进行应用推广,确保系统被真正使用。
以上列出了一些成功实施数据仓库项目的关键点,但这仅仅是一部分。数据仓库是一个复杂的项目,它与单位的许多部门交叉,要求额外的计划,交流和管理,最好汲取其它方面的经验并遵循一个合理的、经验证的方。在下面的章节中,本文提出了一个数据仓库实施方,用以指导数据仓库项目实施的具体过程。
2数据仓库实施方
项目实施方是指导整个项目实施的详细的框架,它能有条理地组织项目实施各个阶段的项目活动,描述工作步骤、任务和每一阶段项目的里程碑。如图一所示,数据仓库项目整个实施过程中的工作和活动大致可以分为四个部分:任务和环境的评估、需求和数据分析、构造数据仓库、回顾总结再发展。
图一 数据仓库实施方法
2.1任务和环境的评估
数据仓库是建立在原有运行系统之上的,因此要结合用户的现状,来明确数据仓库的目标任务。通过对业务需求、成本、风险等情况的评估,决定建立数据仓库这个任务是否可行,所建立的数据仓库是不是用户所期望的,有没有不可逾越的障碍。最好在这一步能确定将来评估数据仓库系统成功与否的基本原则。图二给出了任务和环境评估环节的各个工作步骤。
图二 任务和环境的评估
1系统定位
一个数据仓库系统应明显区别于业务处理系统,因为业务系统的要求往往是快速响应和界面简单等。而数据仓库与业务系统并不是平行的关系,它应该是基于所有业务系统之上的,对业务信息进行采集、分析、整理和发布等,应该是一个稳定的、带有时间参数的数据集合。
2明确业务需求
业务需求就是业务部门的真实需要,具体说就是能帮助业务部门解决实际问题的数据内容和形式。明确了用户的需求,开发者的工作将会事半功倍。
3评估目前DSS系统
如果已有的决策支持系统不能解决业务部门的问题,须要探究一下原因,是源数据的质量太差、应用推广力度不够还是培训不到位等。了解目前存在的问题,做到有的放矢,更有利于项目的开展。
4明确项目目标和范围
明确项目目标是项目实施的前提条件。在制定战略目标的同时,还要制定阶段性目标,为项目实施的每一个阶段指明方向,也避免初期目标过高达不到而影响项目团队的士气。
5制定项目计划
基于系统需求分析、成本估计、进度估计和可用资源等情况来制订实施计划,将范围局限在能够实施的范围之内。
6成本效益分析
首先,明确数据仓库项目的所有花费,包括购买软硬件、运维费用、培训花销等;其次,明确建成数据仓库项目后带来的效益。最后,计算ROI(投资回报率)并指出得到回报的大概时间。
7风险评估
由于数据仓库自身的一些特征:涉及面广、数据状况复杂、数据处理过程繁杂、需求经常变化等因素,所以数据仓库实施存在许多风险。风险评估阶段需要列出项目面临的所有风险项并画出一个风险评估的矩阵。
8撰写评估报告
完成上述步骤后,撰写评估报告,描述业务需求并给出一个或多个决策支持解决方案,包括成本效益分析和风险评估的关键内容。
2.2需求和数据分析
数据仓库是为支持决策服务的,故首先要看决策者和数据分析人员的需求,即现在最重要的工作目标是什么、现在是怎样获得决策支持信息的、和竞争对手比差距是什么等。此外,在了解这些业务需求时,对数据源加以分析,如每一个数据源的物理存储状况、运行平台、数据质量如何等。图三描述了需求和数据分析阶段的工作。
图三 需求和数据分析
1定义技术架构相关需求
首先对目前已有的平台进行评估,然后根据了解的情况选择合适的新的硬件、软件、工具等,也就是我们常说的工具的评测与选型。最后结合系统规划和企业的实际确定系统的整体解决方案,包括采用的技术平台、网络,是否采用商业套件等。
2定义非技术的相关需求
顾名思义,非技术需求是那些和技术无关的需求。非技术需求可能有下述几种:考核评估的原则、参与各方的角色和职责、项目的范围、数据安全性、SLA等级、元数据管理、数据质量管理流程等。
3定义业务需求
首先进行需求调研工作。在需求调查阶段,项目组理解、收集和确认客户的主要业务需求,交付件为一个需求调研报告。这些需求也将用于数据仓库设计和项目的其它阶段。而且,这个阶段完成企业级的主题数据模型和数据仓库主题的选取。
然后根据调研的结果进行需求确认和需求定义。主要任务就是同数据仓库的各类用户进行深层次的交流,对比规划的需求满足现有业务需求的程度,通过对比,修正并确认用户对数据仓库的需求,包括报表的需求、分析模式的需求等等,并将整理后的需求文档化。
4分析内、外部数据源
内部数据分析就是通过对企业的各业务支撑系统以及系统内的数据进行调查、研究和分析,全面了解企业的数据分布和质量状况,结合需求分析,确定数据仓库的数据来源。数据调研是接口设计和数据仓库设计的基础。数据调研的主要内容包括各个系统的集中程度、系统间的数据交互、数据差异性、数据缺失等内容。通过数据现状分析了解企业当前数据资源状况,分析数据整合的可行性和适用范围。
数据仓库项目用到的外部数据源主要包括调查数据(用户调查,竞争对手调查),公布数据(各行业发展情况,人口统计等)。
5分析数据差异
数据差异分析是在数据探索的基础上,进一步深入地分析各源系统内部的数据组织以及系统间的相互关联情况等。源系统之间存在一定的数据关联,同样也存在数据的不一致、冗余等问题,而这些问题都会对于数据仓库的ETL造成一定的影响,因此,在数据差异分析过程中应着重关注这些内容。
6分析源系统的数据质量
人们常用“进去的是垃圾,出来的也是垃圾”这句话来概括源系统的数据质量对数据仓库的影响。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,如果进入到数据仓库平台的源数据质量有问题,那么数据仓库提供的分析结果肯定不会正确。因此,项目前期一定要通过数据调研等方式了解源系统的数据质量,并向业务人员了解他们对DW系统数据质量的期望值。
7定义数据清理方案
在了解到源系统的数据质量情况之后,可以根据实际情况定义数据清理方案,保证数据源头的准确性。数据清理的工作一般由源系统的维护人员完成,定义方案的过程中可以和他们多进行沟通。
2.3构造数据仓库
构造数据仓库是从模型设计到开发、测试部署的全部过程。其中模型设计又分为概念数据模型设计、逻辑数据模型设计和物理数据模型设计。图四表达了构造数据仓库的整个过程。
图四 构造数据仓库
1概念数据模型设计
进行概念模型设计所要完成的工作是界定系统边界和确定主要的主题域及内容。
2逻辑数据模型设计
在这一步里进行的工作主要有:分析主题域,确定当前要装载的主题;确定粒度层次划分;确定数据分割策略;关系模式定义;记录系统定义等。
3物理数据模型设计
这一步所做的工作是确定数据的存储结构,确定索引策略,确定数据存放位置,确定存储分配等。
4快速构造一个原型
数据仓库系统的原始需求不明确,且不断变化与增加,开发者最初不能确切了解到用户的明确而详细的需求,用户所能提供的无非是需求的大的方向以及部分需求,更不能较准确地预见到以后的需求。数据分析员有一种想法,即“给我看一下我说我想要的东西,然后我才能告诉你我真正想要什么”,换句话说,分析员在发现模式下工作。因此,采用原型法来进行数据仓库的开发是比较合适的,因为原型法的思想是从构建系统的简单的基本框架着手,不断丰富与完善整个系统。
5开发
开发是指根据分析和设计的结果进行具体的编码工作,包括接口开发、ETL开发和应用开发。
6测试、部署
对软件产品的检验就是各种测试,测试是发现软件中错误和缺陷的主要手段。除了功能测试外,由于数据仓库需要管理海量数据,其性能问题也不可忽视。
在部署阶段,数据仓库展示给业务用户并开始进行使用应用的训练,并进行用户培训等工作。主要包括试运行、用户培训、试点应用和应用推广等阶段。
7运行维护
在项目实施过程中,运行维护工作一般由项目组完成,在基础平台建立并投入使用以后,可以逐步由系统运维部门统一运行维护或者组建新的组织专职进行系统的运行维护。
2.4回顾、总结再发展
数据仓库的建立要采用有序地反复的方式,即迭代的方式:在建立数据仓库的过程中,不可避免地会出现新主题的增加,新数据的抽取等要求,尤其是现在市场变化这么快,一两年后的要求也许和现在就有很大的差异,所以说数据仓库系统开发是一个经过不断循环、反馈而使系统不断增长与完善的过程,成功的标志在于是否建立了一个良性的迭代过程,是否持续地使用。
一般来说,系统完成一期后,需要进行自评估,进行系统的回顾,评估数据仓库系统目前的状况(包括模型、容量、功能、应用情况等等),为系统调整或扩容及时提出参考意见。在自评估的基础上结合新的业务需求,就可以制定第二轮项目实施的计划了。
下图给出了数据仓库的迭代过程的清晰描述:
图五 数据仓库建设的迭代过程
3结束语
数据仓库在业界已经受到越来越多的关注。然而,涉及范围广、开发周期长、需求不确定性和设计方法等因素决定了数据仓库项目实施过程十分复杂,许多项目因此失败。因此,需要有专门的数据仓库实施方来指导数据仓库的建设。本文提出了一种数据仓库项目实施方,包括任务评估、需求分析、实施建设和回顾总结四大部分,并对每一部分进行了细化,指出了实施过程中的关键内容。本文提出的实施方重点关注数据仓库项目实施过程的工作步骤及任务分解,对于项目实施过程中的管理工作(如数据管理、流程管理等)着墨较少,这些工作同样是数据仓库项目建设过程需要重点把握的内容,欢迎各位同仁继续深入探讨。
参考文献
1数据仓库(原书第三版)/(美)伊蒙(Inmon,W.H.)著;王志海等译.-北京:机械工业出版社,2003.3 ,书名原文:Building the Data Warehouse
2Business Intelligence Roadmap: The Complete Project Lifecycle for Decision-Support Applications,By Larissa T. Moss, Shaku Atre,Publisher:Addison Wesley,Pub Data:February 28,2003
3Kimball, R., Reeves, L., Ross, M. and Thornthwaite, W., The Data Warehouse Lifecycle Toolkit : Practical Techniques for Building Dimensional Data Warehouses, John Wiley & Sons, Inc., 1998.