结构良好的数据仓库设计.docx
《结构良好的数据仓库设计.docx》由会员分享,可在线阅读,更多相关《结构良好的数据仓库设计.docx(70页珍藏版)》请在三一办公上搜索。
1、结构良好的数据仓库设计3.1 数据的两种组织形式:操作数据和分析数据当同一数据使用不同组织形式的时候,其作用也有所不同。把企业中需要使用的这些数据形式进行分类,一般可以分成两类:操作数据和分析数据。这两种数据都可以存储在DBMS中进行管理。它们的组织形式实际上源于并作用于两种系统:操作型系统和分析型系统。3.1.1 操作型系统和分析型系统的分离传统的企业信息化实现的是用计算机信息处理代替人工信息处理,主要解决的是业务上的数据流问题。随着这类系统的逐渐增多,便针对这些系统产生了数据的多维信息查询需求,于是用于事务处理的数据环境和用于数据分析的数据环境的分离就成为了必然。操作型处理以传统的数据库为
2、中心进行企业的日常业务处理。比如连锁超市每一种商品的进货处理和每一笔销售业务的处理等。分析型处理以数据仓库为中心分析数据背后的关联和规律,为企业的决策提供可靠有效的依据。比如,通过对超市近期数据进行分析可以发现近期畅销的产品,从而为公司的采购部门提供指导信息。又如,对于一个大型的连锁超市,如果能够将各个营业点不同时期的营业情况以非常直观的方式展现给管理人员,则管理人员可以根据这些分析结果决定是否需要撤销营业情况极差的营业点,而在客户流量特别大的超市附近增设营业网点。操作型系统的使用人员通常是企业的具体操作人员,处理的数据通常是企业业务的细节信息,其目标是实现企业的业务运营;而分析型系统的使用人
3、员通常是企业的中高层的管理者,或者是从事数据分析的工程师。分析型系统包含的信息往往是企业的宏观信息而非具体的细节,其目的是为企业的决策者提供支持信息,操作型系统和分析型系统的划分如图3-1所示。图3-1 操作型系统和分析型系统的分离操作型处理和分析型处理的分离,划清了数据处理的分析型环境与操作型环境之间的界限,从而由原来以单一数据库为中心的数据环境发展为以数据库为中心的业务处理系统和以数据仓库为基础的分析系统。企业的生产环境,也由以数据库为中心的环境发展为以数据仓库为中心的环境。操作型系统根据其特点也称联机事务处理(OLTP),存储操作数据,称为数据库。分析型系统也称联机分析处理(OLAP),
4、一般把存储分析数据的数据库称为数据仓库。3.1.2 事务处理和分析处理的对比OLAP系统与OLTP系统从本质上来说是不同的。许多OLTP中的功能需求和OLAP的功能需求都不一致,有的甚至是相反的。表3-1是2种数据处理系统的功能特点比较。表3-1 OLAP与OLTP功能特点对比事务处理(OLTP)分析处理(OLAP)处理个别记录关注一般趋势高生产率(每天数百万事务处理记录)低生产率(每天只有少数操作)系统的操作改变数据系统的操作可以回答问题查询只涉及几条记录查询经常波及整个数据库许多操作更改源数据大多数操作是只读的需要完全实时更新经常批量更新(例如晚上或周末)能很快反应新数据最终反应新数据由表
5、3-1可见,OLAP与OLTP是2类不同的应用,OLTP面对的是操作人员和低层管理人员,OLAP面对的是决策人员和高层管理人员;OLTP是对基本数据的查询、增、删和改操作处理,它以数据库为基础,而OLAP更适合以数据仓库为基础的数据分析处理。OLAP中历史的、导出的及经综合提炼的数据均来自OLTP所依赖的底层数据库。OLAP数据较之OLTP数据要多一步数据多维化或预综合处理,建立不同级别的统计数据,从而满足快速统计分析和查询的要求。除了数据及处理上的不同外,OLAP前端产品的界面风格及数据访问方式也同OLTP有别,OLAP多采用便于非数据处理专业人员理解的方式(如多维报表和统计图形),查询提出
6、及数据输出直观灵活,用户可以方便地进行逐层细化、切块与切片和数据旋转等操作(详见第6章);而OLTP多为操作人员经常用到的固定表格,查询及数据显示也比较固定和规范。例如,在第2章用Reporting Service和Excel 2007为福马特商店创建的多维分析报表实际上就是OLAP系统运行的结果。有了以上事务处理和分析处理的区别和联系,就可以相应地得出操作型数据和分析型数据的关系。3.1.3 操作型数据与分析型数据的对比由上面对业务操作和商务分析2种过程的比较可知,如果把用于OLTP系统的数据直接应用于商务数据分析和决策支持活动就会面临许多困难。主要表现在4个方面。其一是事务处理的数据之间往
7、往需要用复杂的关系来保证快捷性、一致性和实时性,要将其用于分析,则需要创建特殊查询语句,而此项工作只有数据库技术专家才能做好,这很明显不符合进行商务数据分析的用户群的需要;其二是在进行事务处理的系统中进行大量的数据分析,会影响在线事务的处理速度和性能;其三是在事务处理数据库中执行复杂的查询时,会由于速度过慢而影响分析的效率和决策的执行;最后,事务处理数据库中的数据会由于经常改变而影响数据分析的一致性。功能决定其结构。按照表3-1对OLTP和OLAP的功能对比,可以对应地得出其相应数据的区别,如表3-2所示。表3-2 操作型数据与分析型数据的区别操作型数据分析型数据表示业务处理的动态情况表示业务
8、处理的静态情况在存取的瞬间是正确的代表过去的数据可更新,由录入人员或经过专门培训的输入事务而更新不可更新,终端用户的访问权限常常是只读的处理细节问题受到更多关注的是结论性的数据,是综合的,或是提炼的操作需求事先可知,系统可按预计的工作量进行优化操作需求事先不知道,永远不知道下一步用户要做什么有许多事务,每个事务影响数据的一小部分有数目不多的一些查询,每个查询可访问大量数据面向应用,支持日常操作面向分析,支持管理需求用户不必理解数据库,只是输入数据用户需要理解数据库,以从数据中得出有意义的结论由上表可知,操作数据是处于不断变换和更新之中的,属于动态数据。比如通过订单输入程序输入的订单数据就属于操
9、作数据。分析数据是主要用于对经营业务进行分析,因而用的是历史数据,通常都不会随着时间的推移而发生变化,因此属于静态数据。只有在原始信息错误的情况下,分析数据才会有变动。比如某个时间点的销售额是最终数据,是不可逆的,它可以用于分析销售情况,属于分析数据。分析数据通常是从动态数据源迁移到静态数据源的,因而主要来源于操作数据。环境的变化可能为分析带来其他影响因素,因而来自外部的额外信息也可能是分析数据所需要的。下面就在对比这两类数据的基础上,明确数据仓库的特点。3.1.4 数据仓库的特点数据仓库的特点可以从数据仓库的定义来理解。目前数据仓库的定义是不统一的。公认的数据仓库之父W.Hinmon将其定义
10、为:“数据仓库是支持管理决策过程的、面向主题的、集成的、随时间而变的、持久的数据集合。”他指出了数据仓库面向主题、集成、稳定和随时间变化这4个最重要的特征。1面向主题业务系统是以优化事务处理的方式来构造数据结构的,对于某个主题的数据常常分布在不同的业务数据库中。这对于商务分析和决策支持来说是极为不利的,因为这意味着访问某个主题的数据实际上需要去访问多个分布在不同数据库中的数据集合。对于商务分析来说,典型的主题域有客户、产品、交易(销售)和收益等。例如在图3-2中示例了一个以零售业为主的企业情况。该企业在以前的企业信息化中已经构建了消费数据库、客户服务数据库和市场信息数据库。其中,消费数据库记录
11、了客户对不同产品的消费情况,客户服务数据库记录了客户的咨询和投诉情况。这2个数据都是客户主题的相关数据。如果直接使用业务系统进行决策支持,则需要分别访问这2个数据库才能获得客户各个侧面的信息,这样将极大的浪费系统处理的时间和效率,并且数据之间的不一致性和不同步问题,将极大影响决策的可靠性。基于以上的原因,数据仓库将这些数据集中于一个地方,在这种结构中,对应某个主题的全部数据被存放在同一数据表中,这样决策者可以非常方便地在数据仓库中的一个位置检索包含某个主题的所有数据。在图3-2中,有客户和市场两个分析主题,客户主题可以从消费数据库和客户服务数据库中获得客户消费和咨询等全方位的信息;市场主题可以
12、从市场信息数据库分析市场的发展趋势。这种按主题的数据组织方法,极大地方便了数据分析的过程。主题的具体分析过程将在下一节学习。图3-2 数据仓库面向主题的特性2集成的全面而正确的数据是有效地进行分析和决策的首要前提。在某一个主题的统帅下,需要将数据进行提取、净化、转换和装载等集成操作。比如在客户主题中,对于客户名称,业务数据库的设计中有的字段名为user_name,类型为char(10),有的字段名是name,类型是varchar(12),但在进入分析数据库时必须使用同一字段的命名和格式。这在SQL Server 2005中实际上是通过SSIS来完成的,但在数据库设计阶段也需要把数据的集成方案设
13、计出来,而具体的操作则主要体现在对SSIS的操作上。3稳定的业务系统一般只需要当前数据,在数据库中一般也存储短期数据,因此在数据库系统中数据是不稳定的,它记录的是系统中每一个变化的瞬态。但对于决策分析而言,历史数据是相当重要的,许多分析方法必须以大量的历史数据为依托。没有历史数据的详细分析是难以把握企业的发展趋势的,因此,数据仓库对数据在空间和时间的广度上都有了更高的要求。在数据仓库中,数据一旦被写入就不再变化了。数据仓库可以看成是一个虚拟的只读数据库系统。在数据集成性中已经说明了数据仓库在数据存储方面是分批进行的,定期执行提取过程为数据仓库增加记录,但是这些记录一旦加入,就不再从系统中删除。
14、正是由于数据仓库的这个显著特点,使得数据仓库不需要在并发读写控制上投入过多的精力,因为所有的用户只是以只读的方式访问数据仓库。图3-3演示了数据稳定性的一个简单的例子。在1月2日,99号客户的消费金额为200元,当时间推移到3月2日,99号客户的消费金额变成250元,这一信息在业务系统中被更新了。但是在数据仓库中(我们假定数据仓库每天进行一次数据提取),3月2日的数据提取结果是在数据仓库中增加了记录222,原先的记录111并没有发生任何的改变,说明99号客户在3月2日的消费金额为250元。可见,数据仓库实际上是为99号客户的消费行为进行了定期的拍照,并将快照存储起来供后续的分析工作使用。图3-
15、3 数据仓库的数据稳定性示例4随时间变化的由于在数据仓库中数据只增不减,这使得数据仓库中的数据总是拥有时间维度。数据仓库实际上就是记录系统的各个瞬态,并通过将各个瞬态连接起来形成动画,从而在数据分析的时候再现系统运动的全过程。数据提取的周期实际上决定了动画间隔的时间,数据提取的周期短,则动画的速度快,图3-4示意了这种特点。图3-4 数据仓库数据随时间变化的特点数据仓库同数据库相比,还具有其他的特点。如数据仓库中的数据不再像数据库中的数据具有严格规范化的特点,这也是由数据仓库的应用需求决定的。数据仓库为了能够在尽量短的时间内将数据呈现给使用人员,使用所谓的“空间换时间”的技术,牺牲了数据的规范
16、化,增加了数据的冗余度,从而减少系统的响应时间。再如,数据库系统和数据仓库系统在硬件的利用模式上具有很大的区别。在数据库环境下,硬件资源利用率总是保持在一个相对稳定的状态,这是由于不断地有事务需要处理。而在数据仓库环境下,系统的硬件资源常常在高利用率和低利用率之间切换。当系统进行数据分析应用时,硬件资源的利用率很高,而系统空闲(数据分析的工作在每天的某些时段进行,并不像事务处理工作那样一直进行)时,硬件资源的利用率就很低,如图3-5所示。图3-5 数据库系统和数据仓库系统的硬件利用率由于数据库系统和数据仓库系统在硬件利用率上的差异,我们难于在同一台服务器上既进行优化操作型处理,又进行优化分析型
17、处理,因此数据库系统和数据仓库系统在物理上应当由不同的服务器来运行。3.2 数据仓库设计方法论数据仓库是商业智能分析和决策支持应用的最基本环境。正如软件开发中的系统分析和系统设计在整个开发周期中占举足轻重的地位一样,数据仓库的分析与设计在开发相关项目中同样也是十分重要的。业务数据库和数据仓库由于两者功能的不同,设计方法必然会有很大的差异。但尽管如此,它们都是在DBMS中管理的,运用类比思维,设计数据仓库的时候,也可以从比较成熟的数据库设计方法论中找寻灵感。实际上,在SQL Server 2005安装的两个示例数据库中,AdventureWorks就是属于操作型的数据库;而AdventureWo
18、rksDW则是分析型数据库,也就是数据仓库,其主要数据都源于AdventureWorks。微软在给出这个设计得十分精巧的数据仓库时,并没有说明此数据仓库是如何得来的,因此下面在研究数据仓库设计方法的时候,就主要以从AdventureWorks数据库到AdventureWorksDW数据仓库的过程为例来解析设计数据仓库过程中的复杂理论。3.2.1 数据库设计与数据仓库设计1业务数据和分析数据使用方式的不同普通数据库直接用于业务处理,因而需要严格约束表与表之间的关系,使数据在完整性等方面得到有效的保证。在设计这一类型的数据库的时,一般是先通过实体关系模型确定数据库中需要存储数据的表,再通过数据规范
19、化方法(如第1、2、3范式等)改变这些表的结构,确定表的主外键,并以主外键为依据,在表之间建立起一对一或一对多的关系。图3-6即为AdventureWorks业务数据库中购买订单、买入商品运输方法和商品提供商等数据表之间的关系。从图中可以看出,对于购买订单报头这个表(PurchaseOrderHeader)而言,与供货商(Vendor)表、购买订单详情表(PurchaseOrderDetail)及运输方法表(ShipMethod)之间的关系是根据实际业务操作中应该有的关系来确定的,这样的数据库系统结构设计用于业务操作的信息化是很合适的。图3-6 业务数据库中的表间关系示例通过3.1节对事务处理
20、和分析处理的比较可以得知,商务分析需要的数据库与业务数据库有很多地方不同,用于OLAP的数据应该是多维的。图3-7即为从购买地区、购买时间和产品名称等3个视角来分析购买订单时需要的一种数据立方。数据立方又称多维数据集,是使用分析数据的典型方式。图3-7 3个视角分析购买订单时需要的数据立方2理解仓库中的立方体在第2章,我们从整体上掌握了商业智能的整个应用过程,相信在此过程中已经有了对数据立方的感性认识。为了理解数据仓库设计的方法,下面从使用的角度理解数据立方。正像在数学中用X、Y、Z坐标轴表示3个空间创建一个立方体一样,可以以不同的商业视角为维度建立一个商业智能分析用的立方体,这些维的属性是立
21、方体的坐标轴。例如可以从客户的视角去观察商业数据,这时应该建立客户维,而客户维中有客户所在的城市这一属性,因而在立方体中会出现城市坐标轴。同样,时间维中的日期属性可以作为坐标轴,产品维中的产品名称可以作为坐标轴出。这个立方体上的1个点包含3个值:用户所在的城市、特定的产品和特定的日期,图3-7的立方体就是这样建立的。通过不同的坐标轴的灵活组合,可以构成各种各样的数据立方体。使用时间仓库时的数据立方体也不都是三维的,由于商务视角的多样性,大多数情况下数据立方是以三维以上的方式组成的。数据立方中多个维度的值是商务需求中需要观察的目标,这个目标的值一般叫度量值。度量值来源于构成商务观察目标的事实表中
22、。例如在图3-7的立方体中,事实表中有全部产品的销售度量,那么,可以用立方体上的某一个点度量某产品在某一时间和某一城市的销售情况。由于商业数据在数据仓库中的这种多维特性,为分析数据提供了极大的方便。如果保持立方体的某些坐标轴的值不变而改变另外某一个轴,便可以看到度量在不同维上的变化情况。在上面的例子中,如果保持产品的名称和日期为常量,沿客户城市坐标轴移动,便可以得到在所有客户城市某一天某一产品的全部销售值。有这种分析需求的一般是地区经理。同样,可以根据财务经理、产品经理及总经理对商务分析的不同需求来对数据立方体进行不同角度的解析,如图3-8所示。图3-8 不同视角的数据立方分析认识事物一般是从
23、此事物在实践中的应用开始的。以上对业务数据和分析数据使用方式的区别及对数据立方的具体使用方法的解析是认识数据仓库的基础。正是由于其作用的不同,所以设计时数据库和数据仓库的目标也不同。3数据仓库的设计目标根据前面对2种数据处理方式的对比,可以得到设计数据库和数据仓库的目标之间的差异,其结果如图3-9所示。图3-9 数据仓库和数据库目标的差异现在的问题是这种多维分析的需求既然不能用业务数据库的方式满足,那又应该怎样解决。实际上,为了在商务分析时能以多个视角对某个业务事实进行操作,构建分析用的数据仓库时引入了维度概念来表示分析视角,事实概念来表示分析对象,事实的量度来表示对象的分析结果。而这些概念在
24、数据分析阶段(本书的第5章将要论述)会得到直接使用或进行一定的改动。因此,这些对象在数据仓库中的设计如何,将直接影响后续的分析工作,而它们之间的关系则构成了整个数据仓库的架构。3.2.2 数据仓库的架构方式及其比较传统的关系数据库一般采用二维数表的形式来表示数据,一个维是行,另一个维是列,行和列的交叉处就是数据元素。关系数据的基础是关系数据库模型,通过标准的SQL语言来加以实现。数据仓库是多维数据库,它扩展了关系数据库模型,以星形架构为主要结构方式的,并在它的基础上,扩展出理论雪花形架构和数据星座等方式,但不管是哪一种架构,维度表、事实表和事实表中的量度都是必不可少的组成要素。下面解析由这些要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 良好 数据仓库 设计
链接地址:https://www.31ppt.com/p-1674727.html