数据仓库分析及应用策略.docx
《数据仓库分析及应用策略.docx》由会员分享,可在线阅读,更多相关《数据仓库分析及应用策略.docx(16页珍藏版)》请在冰豆网上搜索。
数据仓库分析及应用策略
资料仓库分析及应用策略
概念
在过去的20年中,商业计算主要是为自动化生产、精简工作任务和高速采集资料而服务。
这些用途准确地来说应该归之于数据处理。
然而在90年代,信息技术将取代数据处理而成为计算的重点。
在今后的10年中,作为全球经济及技术管理者的信息工作者必须重视信息的策略性价值,所面对的问题不是简单地处理资料而是如何使用资料。
传统上,数据库系统仅仅是用来辅助商业数据处理的,许多数据库管理系统的研究工作也是集中于这个方面。
但是,最近数据库系统的研究出现了许多应用,特别是在资料仓库(DataWarehouse)方面。
资料仓库涉及在关系数据库中存储资料和处理这些资料,使资料成为查询和决策支持分析的更加有效的工具。
当前,数据传输和分析进程最流行的说法是商业智能。
换句话说,资料仓库是一种把收集的资料转变成有意义的信息技术。
资料仓库通过使用多步进程来执行,这些进程包括收集资料、过滤资料和存储资料,以便把这些资料用在分析和报告应用程序中。
这种资料可以来源于许多不同的资料源,包括不同的数据库系统,甚至来源于不同的操作系统。
资料分析的主要目标是确认数据结构和趋势,以有助于制作有关企业经营的更好的决策。
创建资料仓库的原因是因为公司更加依赖于从信息系统中收集信息。
因此,为了公司的运转就需要一个信息资料仓库。
客户也希望能够经许可后访问公司的资料。
资料仓库为商业分析家所提供的信息,在过去的业务数据库中是很难得到的。
大多数情况下,公司会将历史资料从业务数据库中转移到备份系统中,这使得用户无法深入分析资料,难于做出有竞争性的决策。
对更好地管理资料,保持资料的一致性,以及从企业的角度分析资料的需求引出了资料仓库的概念。
资料仓库允许企业的各个部门之间共享资料,为企业更快、更好地做出商业决策提供更加准确、完整的信息。
在企业中收集和汇总存储在许多位置和有许多格式的资料是一个不小的任务。
这就是资料市场所在。
资料仓库指企业级标准化和汇总化信息的存储,而资料市场是指这种目标信息的子集。
资料市场只是包含了描述企业某一个特定方面的信息。
例如,资料市场的一个常见用途是存储仅与一个特定商业单位有关的分析信息。
资料仓库的特征
资料仓库就是面向主题的、综合的、不同时间的、稳定的资料集合,用于支持经营管理中的决策制定过程。
也就是说,资料仓库是一个处理过程,该过程从历史的角度组织和存储资料,并能集成地进行资料分析。
简而言之,资料仓库就是一个大的数据库,存储了该公司所有业务资料,例如,在线事务处理(OLTP)系统中获取的综合资料,这些资料可能驻留在许多不同的资料源中。
这些资料源可能是文文件、层次型数据库、网络结构化的数据库、反向列表数据库、关系型数据库(例如SQLServer)或者更常见的由上述系统组成的混合系统。
资料仓库可以辅助决策支持和在线分析进程(OLAP)应用程序。
资料仓库除了具有传统数据库管理系统(DBMS)的共享性、完整性、数据独立性外,还具有下列特征:
*统一性和一致性
*面向主题
*历史性
*只读性
统一性和一致性
资料仓库可以使用一致的命名规定、测度、物理属性和语义来统一来自多种数据源的经营资料。
例如,在许多企业中,应用程序常常以不同的格式使用类似的资料:
日期按照Julian或者Gregorian格式存储,真/假资料可能表示为1/0、ON/OFF、TRUE/FALSE、正/负等。
不同的应用程序可能使用不同的术语来描述同样的资料,例如一个应用程序可能使用“平衡表”来描述银行帐户,另外一个应用程序可能使用“总量表”表示银行的帐户。
在资料仓库中存储的资料需要一种单一的、可以由企业分析人员接受的格式存储,而不考虑各种外部资料源。
这种统一性允许资料来自跨组织和部门,例如企业以前保存的资料、表格中的资料、甚至来自Internet上的资料。
这些资料可以统一在资料仓库中,使企业经营人员更好地分析和理解企业的经营状况。
面向主题
传统的数据库是面向应用设计的,它的资料只是为处理具体应用而组织在一起的。
应用是客观世界既定的,它对于资料内容的划分未必适用于分析所需。
而主题是一个在较高层次将资料归类的标准,每一个主题基本对应一个宏观的领域,基于主题组织的资料被划分为各自独立的领域,每一个领域都有自己的逻辑内涵互不交叉。
因此,在资料进入资料仓库之前,必然要经过加工和集成,将原始数据结构做一个从面向应用到面向主题的大转变。
跨组织的经营资料源保存着企业方方面面的大量资料,例如客户记录、产品信息等等。
而这些资料没有被用于对企业的全面经营状况相关分析。
资料仓库只是组织这些关键的企业信息,以便简化对企业的分析过程。
历史性
存储在OLTP系统中的资料可以正确地表示任何时间的任何值。
OLTP系统经常只是包含当前的资料。
例如,处理定单的应用程序总是显示库存的当前值,而不显示在过去某一时间的库存值。
不同时间的查询一般地会得到不同的查询结果。
然而,存储在资料仓库中的资料,可以准确地表示过去某一时刻的资料,因为这些存储的资料表示了历史信息。
存储在资料仓库中的资料一般表示过了一段比较长的时间的资料,一般是五年到十年。
资料仓库存储了企业一段时间的快照形式。
这些资料一般是不改变的。
与此不同的是,业务数据库通常只保存有用事务资料30-90天。
资料经集成进入资料仓库后是极少或者根本不更新的。
因此,常用的操作是追加操作和历史查询。
只读性
因为存储在资料仓库中的资料表示是某一时刻点的资料,所以在资料仓库中,不允许删除、插入和修改。
当资料移动到资料仓库之后,一般是不改变的,除非存储的资料是不正确的。
一般地,在资料仓库中发生的操作是建立资料仓库时的加载资料和查询资料。
因为资料在加载之后不再修改,所以对资料仓库的设计可以通过使用索引、预先计算的资料和物理的数据库正规化来优化查询的性能。
万一资料仓库中的资料需要修改,那幺可以使用OLAP工具来管理静态的资料仓库资料和动态的资料。
图1示意了资料可以修改的关系型数据库的模型,图2示意了资料为只读的资料仓库模型。
资料仓库策略
在最新发布的关系型数据库管理系统SQLServer7.0中,微软确定了自己的资料仓库策略。
微软的目标是创建一个综合的资料仓库,使得利用SQLServer设计和构建低成本数据库的工作更加容易。
微软提供了一套综合的技术、服务和销售联盟,以简单、自动、集成地创建资料仓库,从而降低系统的成本。
微软的资料仓库策略包括以下部分:
*微软资料仓库框架是一个基于COM的可扩展的接口,用来简化资料仓库的集成和管理。
*微软资料仓库联盟是一个微软领导的联合体,其中都是资料仓库及其应用程序的领导者。
*微软SQLServer产品增强部分包括增强的查询处理、信息传递、资料转换、资料仓库框架接口以及Internet集成。
*OLAP服务用来提供快速有效的多维资料分析。
*微软中心库(Repository)是一个开放的通用的标准结构,用于数据结构和数据元素的共享。
SQLServer7.0提供了大量的新特性,用于资料的存储和交换,并且增加了许多用于数据处理的服务。
这些新特征和新增加的服务如下:
*新的连接算法用来提高复杂查询的速度
*专为VLDB(巨型数据库)优化的存储机制
*大型数据库的优化处理设施
*复制,可以进行大量的资料分布
*并行查询机制
*资料转换服务
*OLAP服务
*PivotTable服务
*英语语言查询
*微软管理控制台、数据库向导和任务簿
资料挖掘和资料中心库
资料仓库体系包括资料仓库(DataWarehouse)、资料挖掘(DataMining)和资料中心库(DataRepository)。
下面详细介绍资料挖掘和资料中心库。
资料挖掘
资料挖掘是从大型数据库或者资料仓库中发现并提取隐藏在其中的信息或者知识的过程。
目的是帮助分析人员寻找资料之间的关联,发现被忽略的要素,而这些信息对于预测趋势和决策行为是十分有用的。
资料挖掘的一般过程如图3所示。
资料挖掘的一般过程包括这些步骤:
(1)预处理资料:
收集和净化来自资料源的信息,并加以存储,一般是将其存放在资料仓库中。
(2)模型搜索:
利用资料挖掘工具在资料中查找模型,这个搜索过程可以由系统自动执行,从底向上搜索原始事实以发现它们之间的某种联系,也可以加入用户交互过程,由分析人员主动发问,从上到下地寻找以验证假定的正确性。
对于一个问题的搜索过程可能用到许多工具。
例如,神经网络、基于规则的系统、基于实例的推理、机器学习、统计方法等。
(3)评价输出结果。
一般地说,资料挖掘的搜索过程需要反复多次,因为当分析人员评价输出结果后,他们可能会形成一些新的问题或要求对某一方面做更精细的查询。
(4)生成最后的结果报告。
(5)解释结果报告。
对结果进行解释,依据此结果采取相应的商业措施,这是一个人工过程。
资料中心库
微软及其资料仓库联盟伙伴开发了一系列的存储扩充工具以提供共同的开发结构。
这种存储鼓励信息的共享—例如数据结构、资料元、数据传输,这些信息均被应用于资料仓库中。
其它的资料元模型也能从开放式设计过程中产生,并且早期的模型还可以得到改进。
共享的内存增加了资料仓库和不同开发商所用工具之间的内部操作能力。
用户可从方便的系统管理、更多可选的兼容产品以及基于内存的先进特性中收益。
新型的内存扩充通过给数据库和数据设计及分析工具销售商提供开放的、通用的结构,从而扩展了设计仓库的市场。
为了提供更成功的资料仓库和资料交易功能,资料元的集成是当前最重要的任务。
当主要的资料转换服务规定可用,并且在线分析进程(OLAP)延伸到内存的开放式信息模型之后,开放的设计检验阶段便开始了。
这些重要的扩展是指将几个信息模型增加到资料中心库内,从而可给开发者提供更多可选的兼容产品和资料仓库系统的先进特性。
微软资料中心库提供了一个通用的位置,可以用来存放对象和对象之间的关系。
通过使用一些软件工具,来描述面向对象的信息,例如:
软件工具使用各类对象组成的信息;对象接口接口;接口由属性、方法和集合组成;集合包含了对其他接口的关系,以及关联对象。
资料中心库的体系结构如图4所示。
资料仓库的支持工具
资料仓库的实现最终由许多支持工具来完成。
在SQLServer7.0中,提供了一些实现资料仓库的支持工具。
这些工具包括OLAP服务、资料转换服务、PivotTable服务、查询服务(英语)等。
下面详细介绍这些服务。
OLAP服务
在资料仓库或者资料市场中的信息由在线分析进程(OLAP)处理。
OLAP可以有效地以由维度和测度组成的立体方式查看资料。
维度是一种描述性分类,例如,维度可能是地理位置,也可能是产品类型。
测度是一种定量数值,例如销售额、库存量或者总费用。
来自于原始数据源的合计存储在每一个立体单元中。
这种组织资料的方法可以轻易地过滤资料、有效地和加速数据的查询。
然而,存在着这种平衡:
虽然OLAP合计是在资料仓库中可以达到的查询性能的关键因素,但是存储这些合计资料的成本是磁盘存储量。
事实上,合计资料量可以轻易地超过原有的资料量。
另外,当维度和合计量提高时,所要求的OLAP资料存储量也大大地提高。
这种对存储量的极大地要求一般称为资料爆炸。
资料仓库和资料市场是存储用于分析资料的场地,OLAP是允许客户应用程序有效地访问这些资料的技术。
OLAP可以为分析资料的用户提供这些好处:
*频繁查询资料的预先计算可以大大加快查询响应的时间。
*多维数据模型使得检索、浏览资料更加简单。
*有助于用户根据许多计算函数创建新的资料视图。
*这种技术增强了安全性管理、客户机/服务器查询管理和资料缓存,允许DBA优化用户需要的系统性能。
OLAP描述的是一种多维资料服务(这里指的维是指人们观察客观世界的角度,例如时间、地域、业务等),这种服务的设计目的是保证分析员、经理和决策者针对特定的问题,通过快速、一致、交互式的实时数据访问和分析,获得有创意的发现。
在SQLServer7中,有三种用于存储资料仓库中维度数据的方法,每一种方法都随其资料存储要求和其资料检索速度而变化。
(1)MOLAP。
多维型OLAP在一个用于压缩索引的永久资料存储中存储维度数据和事实资料。
合计存储用来加快资料访问。
MOLAP查询引擎通常是专有的,并且优化成由MOLAP资料存储使用的存储格式。
MOLAP提供了比ROLAP更快的查询处理速度,并且要求更少的存储空间。
然而,它不能较好地伸缩,并且要求使用单独的数据库来存储。
(2)ROLAP。
关系型OLAP在关系型数据表中存储合计。
ROLAP的关系型数据库的应用允许其利用已有的数据库资源,并且允许ROLAP应用程序很好地伸缩。
然而,ROLAP使用表存储合计一般要求比MOLAP更多的磁盘空间,速度相对比较慢。
(3)HOLAP。
正如其名称所示,混合型OLAP介于MOLAP和ROLAP之间。
像ROLAP一样,HOLAP使主资料存储在源数据库中。
像MOLAP一样,HOLAP把合计存储在一个永久性资料存储的地方,它与主关系数据库分开。
这种混合形成使HOLAP可以提供MOLAP和ROLAP两者的优点。
然而,不像MOLAP和ROLAP,要求HOLAP按照已定义的标准,没有统一的实现形式。
资料转换服务(DTS)
资料转换服务提供了资料转换功能,例如资料引入、引出以及在SQLServer和任何OLEDB、ODBC或者文本格式文件之间转换资料。
利用DTS,通过交互式地或者按照规划自动地(无须人工干预)从多处异构资料源输入资料,这样便有可能在SQLServer上建立资料仓库和资料市场。
最大的问题是保持资料不断更新以与操作系统相适应。
资料的来源特性允许用户输入查询资料的输入时间、地点及其计算方法。
资料的引入引出是通过以相同的格式读写资料,在应用程序之间交换资料的过程。
例如,DTS能够把资料从ASCII文本文件或者ORACLE数据库中引入到SQLServer中。
反之,资料也能够从SQLServer中引出到一个ODBC资料源,或一个MicrosoftExcel窗体中。
一次转换是指在源资料被存储到目的地之前,对其进行的一系列操作。
例如,DTS允许从一个或多个源域中计算新值,或将一个单独的域分成多个域,然后存储进不同的目标列中。
转换特性使得在引入引出中完成复杂资料的验证,清除及功能增强变得非常简单。
定制转换对象可以被创建并集成进第三方产品中。
DTS支持多步封装,其中大量文件能被单独处理,然后最终被集成为一个单一的文件。
在目的地,该文件的记录能被系统分为多个记录,或相反,多个记录也被集合为一个单一的记录。
DTS也与微软的中心库集成在一起,微软资料中心库存储资料元、资料传送包和资料源特性,这包括所有资料的来源。
许多独立的软件经销商支持和共享这个资料元模型。
资料转换服务可以在SQL服务器间移动数据结构、资料、触发器、规则、缺省、约束和用户定义的数据类型。
只有数据结构和数据可以在不同的异构数据源中间传递。
PivotTable服务
PivotTable服务和OLAP一起为用户提供客户端对OLAP资料的存取。
PivotTable服务运行于客户端工作站上,它使得其部门可以利用VisualBasic或其它语言来开发用户程序,这些程序可以利用OLEDB技术,并使用OLAP服务中的OLAP资料或直接取自关系数据库的资料。
当它和OLAP服务一起使用时,PivotTable服务可以自动的将进程和缓冲存储器分配到最合适的位置,并且允许多个客户动态存取同一个立方体。
PivotTable服务也能在本地客户机上存储资料,从而使用户可以在不连接OLAP服务的情况下对资料进行分析。
这个移动式的解决方案允许分析者将资料带回家或在路途中进行分析。
为最终用户提供的OLAP资料分析和描述工具可以利用PivotTable服务进行开发。
微软的ActiveX控件技术及其Office组件正在被创建以产生强大的图形用户接口。
PivotTable服务也提供了开放的接口,独立的软件销售商可以利用它来开发第三方应用产品。
查询服务(英语)
微软的语言查询环境允许设计者将他们的关系数据库转移到语言查询上来。
这给最终用户提供了使用语言提出问题而不是用SQL语言进行查询的能力。
语言查询程序是利用语言查询域编辑器创建的。
其中,提供了数据库的有关信息,从而语言查询可用于处理关于特殊表、域和资料的英语问题。
UniversalDataAccess和OLEDB
UniversalDataAccess是一个平台、应用程序和初始工具,用来定义和发布标准和技术,也是微软公司进行应用程序MicrosoftWindowsDistributedinterNetApplications开发的一个关键工具。
UniversalDataAccess提供了在不同平台上存取不同数据类型资料和信息的高性能。
它构建了一个易于使用的程序接口,从而可以利用开发者已有的技术,有效的使用其它工具和语言。
这主要是通过MicrosoftDataAccessComponents(MDAC)来实现的,这是一种集成的技术,包括ActiveXDataObjects(ADO)、OLEDB和ODBC。
创建客户机/服务器和基于WEB的资料驱动解决方案的开发者会选择最易于使用的工具、应用程序和资料源来创建完整的数据库解决方案。
UniversalDataAccess的策略是保证开放、集成并标准地存取各种资料—从SQL到非SQL甚至到非结构化资料—并有广泛地应用,从传统的客户机/服务器到WEB。
在这种结构中,ActiveXDataObjects(ADO)是高水平的接口,它会被绝大多数应用程序开发商利用,OLEDBProvider是资料存取机或服务支持器,也是这些应用程序将会用到的高度交互的基于部件环境的事务逻辑部件。
资料仓库的实现步骤
一般地,设计和创建资料仓库的步骤是:
*确定用户需求
*设计和创建数据库
*提取和加载资料仓库
确定用户需求
确定终端用户的需要,为资料仓库中存储的资料建立模型。
通过数据模型,可以得到企业完整而清晰的描述信息。
数据模型是面向主题建立的,同时又为多个面向应用的资料源的集成提供了统一的标准。
资料仓库的数据模型一般包括:
企业的各个主题域、主题域之间的联系、描述主题的码和属性组。
深入地分析企业的资料源,记录资料源系统的功能与处理过程。
一般地,设计资料仓库最重要的一步便是要理解商业动作的规律,只有了解资料是如何被处理的,才能分解商业处理过程,从中获取数据元素。
利用现有系统的信息,确定从源资料到资料仓库的数据模型所必须的转化/综合逻辑。
这涉及到应该合并转化多少资料;是综合所有的数据文件还是综合发生变化的操作系统文件;转化/综合过程应该多长时间执行一次等问题。
决定资料转化与更新频率是重要的商业事件。
无论资料仓库的更新是采用事件驱动还是时间驱动,都必须让资料仓库知道当某种事件发生时就需要更新资料。
在资料仓库建立之前,应该写一个详细的方案和实现规划。
这种方案和实现规划包括:
建立商业案例、收集用户需求、确定技术需求。
建立商业案例包括由该方案解决的商业需求、方案的成本和投资的收益。
收集用户需求主要是调查用户建立资料仓库的意图。
用户需求可以确定这些内容:
资料需求(粒度级)、企业经营系统包含的资料、这些资料遵循的商业规则、需要提供给用户的查询、用户需要的标准报告、将要使用的客户应用程序工具。
确定技术要求包括下列内容:
硬件体系结构和框架(例如,链接到资料市场所在的地理位置)、备份和恢复机制、安全性限制、从经营系统到资料仓库加载资料和转换资料的方法。
设计和创建数据库
设计和建立数据库是成功地创建资料仓库的一个关键步骤。
这一步通常由有经验的数据库设计人员使用,因为这一步涉及的资料来自多种资料源并且要把它们合并成一个单独的逻辑模型。
不象OLTP系统那样以高度的正规化形式存储资料,资料仓库中存储的资料以一种非常非正规化的形式存储资料以便提高查询的性能。
资料仓库常常使用星型模式和雪花型模式来存储资料,作为OLAP工具管理的合计基础,以便尽可能快地响应复杂查询。
星型模式是最流行的实现资料仓库的设计结构。
星型模式通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来执行典型的决策支持查询。
一旦创建了事实表,那幺可以使用OLAP工具预先计算常用的访问信息。
星型模式是一种关系型数据库结构,在该模式的中间是事实表,周围是次要的表,资料在事实表中维护,维度数据在维度表中维护。
每一个维度表通过一个关键词直接与事实表关联。
维度是组织资料仓库资料的分类信息,例如时间、地理位置、组织等等。
维度用于父层和子层这类分层结构。
例如,地理位置维度可以包含国家、城市等资料。
因此,在该维度表中,纬度由所有的国家、所有的城市组成。
为了支持这种分层结构,在维度表中需要包括每一个成员与更高层次上纬度的关系。
维度关键词是用于查询中心事实表资料的唯一标识符。
维度关键词就像主键一样,把一个维度表与事实表中的一行链接起来。
这种结构使得很容易构造复杂的查询语句并且支持决策支持系统中向下挖掘式的分析。
事实表包含了描述商业特定事件的资料。
例如银行业务或者产品销售。
事实表还包含了任何资料合计,例如每一个地区每月的销售情况。
一般地,事实表中的资料是不允许修改的,新资料只是简单地增加进去。
维度表包含了用于参考存储在事实表中资料的资料,例如产品描述、客户姓名和地址、供货商信息等。
把特征信息和特定的事件分开,可以通过减少在事实表中扫描的资料量提高查询性能。
维度表不包含与事实表同样多的资料,维度数据可以改变,例如客户的地址或者电话号码改变了。
通过降低需要从磁盘读取资料的资料量,星型模式设计有助于提高查询性能。
查询语句分析比较小的维度表中的资料来获取维度关键词以便在中心的事实表中索引,可以降低扫描的资料行。
星型模式的结构如图5所示。
雪花模式是星型模式的一种扩展形式,在这种模式中,维度表存储了正规化的资料,这种结构通过减少磁盘读的数量而提高查询性能。
维度表分解成与事实表直接关联的主维度表和与主维度表关联的次维度表,次维度表与事实表间接关联。
雪花模式的结构示意图如图6所示。
在转换OLTP数据库模式到星型模式时,涉及的步骤如下:
*确定事实表和维度表
*设计事实表
*设计维度表
*实现数据库设计
(1)确定事实表和维度表。
确认在OLTP系统中现有的表和资料包含了将要用在事实表和维度表中的资料,是非常重要的。
如果确认不正确,那幺资料仓库的性能就比较差,在以后可能需要重新设计。
重新设计一个可能包含了大量资料的资料仓库是一项耗费很大的任务。
确定事实表和维度表的结构和组成的过程比较难,特别是当涉及多个OLTP系统时。
(2)设计事实表
设计事实表的主要目标是最小化表的大小。
事实表是数据库中最大的表,因为它们包含了基本的商业事务的详细信息。
然而,一定要考虑存储和维护这些大表的成本。
例如,大表的处理时间比较长、备份和恢复的时间比较长、执行查询的时间也比较长。
降低事实表大小的最简单方法如下:
降低列的数量、尽可能地降低每一个列的大小、把历史资料归档到单独的事实表等。
(3)设计维度表
设计维度表的主要目标是非正规化参考事实表的资料到一个单独的表。
最常用的维度数据应该直接参考事实表,而不是通