1、何谓数据仓库?何谓数据仓库? 一种面向分析的环境;一种面向分析的环境; 一种把相关的各种数据转换成有商业价值的信息一种把相关的各种数据转换成有商业价值的信息的技术。的技术。1、从数据库到数据仓库、从数据库到数据仓库 数据库系统能够很好的用于事务处理,但它对分数据库系统能够很好的用于事务处理,但它对分析处理的支持一直不能令人满意。特别是当以业务处析处理的支持一直不能令人满意。特别是当以业务处理为主的联机事务处理(理为主的联机事务处理(OLTP) 应用和以分析处理应用和以分析处理为主的为主的DSS应用共存于一个数据库系统时,就会产生应用共存于一个数据库系统时,就会产生许多问题。许多问题。 例如,事
2、务处理应用一般需要的是当前数据,例如,事务处理应用一般需要的是当前数据,主要考虑较短的响应时间;而分析处理应用需要是历主要考虑较短的响应时间;而分析处理应用需要是历史的、综合的、集成的数据,它的分析处理过程可能史的、综合的、集成的数据,它的分析处理过程可能持续几个小时,从而消耗大量的系统资源。持续几个小时,从而消耗大量的系统资源。 人们逐渐认识到直接用事务处理人们逐渐认识到直接用事务处理环境环境来支持来支持DSS是是行不通的。要提高分析和决策的有效性,分析型处理及行不通的。要提高分析和决策的有效性,分析型处理及其数据必须与操作型处理及其数据分离。必须其数据必须与操作型处理及其数据分离。必须把分
3、析型把分析型数据从事务处理环境中提取出来,按照数据从事务处理环境中提取出来,按照DSS处理的需要处理的需要进行重新组织,建立单独的分析处理环境进行重新组织,建立单独的分析处理环境。 数据仓库技术正是为了构建这种新的分析处理环境数据仓库技术正是为了构建这种新的分析处理环境而出现的一种数据存储和组织技术。而出现的一种数据存储和组织技术。操作型数据操作型数据分析型数据分析型数据细节的细节的综合的,或提炼的综合的,或提炼的在存取瞬间是准确的在存取瞬间是准确的代表过去的数据代表过去的数据可更新可更新不更新不更新操作需求事先可知道操作需求事先可知道操作需求事先不知道操作需求事先不知道生命周期符合生命周期符
4、合SDLC完全不同的生命周期完全不同的生命周期对性能要求高对性能要求高对性能要求宽松对性能要求宽松一个时刻操作一个单元一个时刻操作一个单元一个时刻操作一个集合一个时刻操作一个集合事物驱动事物驱动分析驱动分析驱动面向应用面向应用面向分析面向分析一次操作数据量小一次操作数据量小一次操作数据量大一次操作数据量大支持日常操作支持日常操作支持管理需求支持管理需求数据仓库与决策支持系统(数据仓库与决策支持系统(DSS) 用户在进行决策制定时需要得到企业各方面的信用户在进行决策制定时需要得到企业各方面的信息,因此用户一般首先根据各个业务部门数据库中的息,因此用户一般首先根据各个业务部门数据库中的数据,创建数
5、据仓库,存储各种历史信息和汇总信息。数据,创建数据仓库,存储各种历史信息和汇总信息。 对数据仓库的进一步应用由功能强大的分析工具对数据仓库的进一步应用由功能强大的分析工具来实现。现在主要有三类分析工具可用于决策支持。来实现。现在主要有三类分析工具可用于决策支持。 第一类能够支持涉及分组和聚集查询,并能够对第一类能够支持涉及分组和聚集查询,并能够对各种复杂的布尔条件、统计函数和时间序列分析提供各种复杂的布尔条件、统计函数和时间序列分析提供支持的系统。主要由上述查询组成的应用称为联机分支持的系统。主要由上述查询组成的应用称为联机分析处理,即析处理,即OLAP。在支持。在支持OLAP查询的系统中,数
6、据查询的系统中,数据最好看成是一个多维数组。最好看成是一个多维数组。 第二类系统仍为支持传统第二类系统仍为支持传统SQL查询的查询的DBMS,但为,但为了有效地执行了有效地执行OLAP查询而进行了特殊的设计。这些系查询而进行了特殊的设计。这些系统可以看作是为决策支持应用进行了优化的关系数据库统可以看作是为决策支持应用进行了优化的关系数据库系统。许多关系数据库厂商对他们的产品进行了扩展,系统。许多关系数据库厂商对他们的产品进行了扩展,并且随着时间的推移,专门的并且随着时间的推移,专门的OLAP系统和支持决策支系统和支持决策支持的关系数据库系统之间的差别将逐渐取消。持的关系数据库系统之间的差别将逐
7、渐取消。 第三类的分析工具可用于在大量的数据集合中,找第三类的分析工具可用于在大量的数据集合中,找到有意义的数据趋势或者模式,而不是上面提到的复杂到有意义的数据趋势或者模式,而不是上面提到的复杂数据查询。在数据分析过程中,尽管分析者能够判定得数据查询。在数据分析过程中,尽管分析者能够判定得到的数据模式是否有意义,但是生成查询来得到有意义到的数据模式是否有意义,但是生成查询来得到有意义的模式还是很困难的。例如,分析者查看信用卡使用记的模式还是很困难的。例如,分析者查看信用卡使用记录,希望从中找出不正常的信用卡使用行为,以表明是录,希望从中找出不正常的信用卡使用行为,以表明是被滥用的丢失的信用卡;
8、商人希望通过查看客户记录找被滥用的丢失的信用卡;商人希望通过查看客户记录找出潜在的客户来提高收益。许多应用涉及的数据量很大,出潜在的客户来提高收益。许多应用涉及的数据量很大,很难用人工分析或者传统的统计分析方法进行分析,很难用人工分析或者传统的统计分析方法进行分析,数数据挖掘据挖掘的目的就是对这种大量数据的分析提供支持。的目的就是对这种大量数据的分析提供支持。2、数据仓库的定义及特征、数据仓库的定义及特征 数据仓库理论的创始人数据仓库理论的创始人W.H.Inmon在其在其Building the Data Warehouse一书中,给出了数据仓库的四个一书中,给出了数据仓库的四个基本特征:基本
9、特征:面向主题,数据是集成的,数据是不可更新面向主题,数据是集成的,数据是不可更新的,数据是随时间不断变化的的,数据是随时间不断变化的。采购子系统采购子系统: 订单(订单号,供应商号,商品号,类别,单价。数订单(订单号,供应商号,商品号,类别,单价。数量,总金额,日期,量,总金额,日期, ) 供应商(供应商号,供应商名,地址,电话,供应商(供应商号,供应商名,地址,电话,)销售子系统:销售子系统: 客户(客户号,姓名,地址,电话,客户(客户号,姓名,地址,电话, ) 销售(客户号,商品号,数量,单价,日期,销售(客户号,商品号,数量,单价,日期, )库存子系统:库存子系统: 进库单(编号,商品
10、号,数量,单价,日期,进库单(编号,商品号,数量,单价,日期, ) 出库单(编号,商品号,数量,单价,日期,出库单(编号,商品号,数量,单价,日期, ) 库存(商品号,库存(商品号, 库房号,类别,单价,库存数量,库房号,类别,单价,库存数量,总金额,日期,总金额,日期, ) 商品固有信息:商品号,类别,单价,颜色,商品固有信息:商品号,类别,单价,颜色, 商品采购信息:商品号,类别,供应商号,供应商品采购信息:商品号,类别,供应商号,供应日期,单价,数量,日期,单价,数量, 商品销售信息:商品号,客户号,数量,单价,商品销售信息:商品号,客户号,数量,单价,销售日期,销售日期, 商品库存信息
11、:商品号,商品库存信息:商品号, 库房号,库存数量,日库房号,库存数量,日期,期, )商品主题域:商品主题域:采购子系统采购子系统销售子系统销售子系统库存子系统库存子系统3、数据仓库中的数据组织、数据仓库中的数据组织 数据仓库中的数据分为四个级别:早期细节级,当数据仓库中的数据分为四个级别:早期细节级,当前细节级,轻度综合级,高度综合级。前细节级,轻度综合级,高度综合级。19851998年年销售明细表销售明细表19982003年年销售明细表销售明细表19982003年年每月销售表每月销售表19982003年年每季度销售表每季度销售表 DW中还有一类重要的数据:元数据(中还有一类重要的数据:元数
12、据(metedata)。)。元数据是元数据是“关于数据的数据关于数据的数据”(RDBMS中的数据字典中的数据字典就是一种元数据)。就是一种元数据)。 数据仓库中的元数据描述了数据的结构、内容、索数据仓库中的元数据描述了数据的结构、内容、索引、码、数据转换规则、粒度定义等。引、码、数据转换规则、粒度定义等。4、数据仓库系统结构、数据仓库系统结构RDBMS数据文件数据文件其他其他 综合数据综合数据 当前数据当前数据 历史数据历史数据 元数据元数据 抽取、转换、装载抽取、转换、装载数据仓库数据仓库OLAP工具工具 DM工具工具 查询工具查询工具分析工具分析工具二、数据仓库设计二、数据仓库设计 数据仓
13、库的设计分为如下三个阶段:数据仓库的设计分为如下三个阶段: 数据仓库建模数据仓库建模 分析主题域分析主题域 确定粒度层次确定粒度层次 确定数据分割策略确定数据分割策略 构建数据仓库构建数据仓库 数据的存储结构与存储策略数据的存储结构与存储策略 DSS应用编程应用编程 三、操作数据存储(三、操作数据存储(ODS ) 在许多情况下,在许多情况下,DB-DW的两层体系结构并不适合的两层体系结构并不适合企业的数据处理要求。因为,虽然可以粗略地把数据处企业的数据处理要求。因为,虽然可以粗略地把数据处理分成操作型和分析型,但这两种处理处理并不是泾渭理分成操作型和分析型,但这两种处理处理并不是泾渭分明的。分
14、明的。 ODS(Operational Data Store)作为一个中间层次,)作为一个中间层次,一方面,它包含企业全局一致的、细节的、当前的或接一方面,它包含企业全局一致的、细节的、当前的或接近当前的数据,另一方面,它又是一个面向主题、集成近当前的数据,另一方面,它又是一个面向主题、集成的数据环境,适合完成日常决策的分析处理。的数据环境,适合完成日常决策的分析处理。四、数据仓库的实现四、数据仓库的实现 数据仓库的工具主要有:数据预处理工具,数据数据仓库的工具主要有:数据预处理工具,数据分析(分析( OLAP )工具,数据挖掘工具,)工具,数据挖掘工具,OLAP服务器。服务器。 数据仓库和数
15、据仓库和OLAP工具基于工具基于多维数据模型多维数据模型(在数据(在数据仓库中,通常以多维方式来存储数据。仓库中,通常以多维方式来存储数据。 )。)。基本概念基本概念 维维:人们观察数据的特定角度。:人们观察数据的特定角度。 维的层次维的层次:人们观察数据的特定角度可能存在细节:人们观察数据的特定角度可能存在细节程度不同的多个描述方面,我们称其为维的层次。程度不同的多个描述方面,我们称其为维的层次。多维分析的基本动作多维分析的基本动作 上卷上卷:汇总数据汇总数据 下钻:明细数据下钻:明细数据 切片,旋转,切片,旋转,。lSales volume as a function of product
16、, month, and regionProductRegionMonthDimensions: Product, Location, TimeHierarchical summarization pathsIndustry Region YearCategory Country QuarterProduct City Month Week Office DayTotal annual salesof TV in U.S.A.DateProductCountrysumsum TVVCRPC1Qtr2Qtr3Qtr4QtrU.S.ACanadaMexicosum 产品销售 情况某年某月产品销售情
17、况选定两个维:产品维和地区维选定两个维:产品维和地区维时间维时间维数据切片数据切片产品维产品维地区维地区维产品维产品维地区维地区维基于基于RDBMS的数据仓库实现的数据仓库实现 关系数据库将多维数据库中的多维结构分为两类:关系数据库将多维数据库中的多维结构分为两类:一类是事实表,用来存储事实的度量值以及各个维的码一类是事实表,用来存储事实的度量值以及各个维的码值;另一类是维表。值;另一类是维表。 数据仓库的设计模型有数据仓库的设计模型有:星型模式,雪花模式,混星型模式,雪花模式,混合模式合模式 数据仓库的设计也可以理解为面向数据仓库的设计也可以理解为面向OLAP的数据库的数据库设计。设计。 在
18、星型模式中,主要数据存储在事实表中,没有在星型模式中,主要数据存储在事实表中,没有冗余,并符合冗余,并符合3NF或或BCNF。 维值信息存储在维表中。维表一般不需要规范化。维值信息存储在维表中。维表一般不需要规范化。主要原因是维表是静态的,是否会产生因更新而导致主要原因是维表是静态的,是否会产生因更新而导致异常也就不重要了。异常也就不重要了。ProductsPid pname category priceLocationsLocid city state countryPid timeid locid salesTimeid date month quarter year holiday_fl
19、agTimesSales定单号定单号销售员号销售员号客户号客户号产品号产品号日期标识日期标识地区名称地区名称数量数量总价总价定单号定单号定货日期定货日期客户号客户号客户名称客户名称客户地址客户地址销售员号销售员号姓名姓名城市城市产品号产品号产品名称产品名称单价单价日期标识日期标识日日月月年年地区名称地区名称省省事实表事实表星型模式星型模式定单号定单号销售员号销售员号客户号客户号产品号产品号日期标识日期标识地区名称地区名称数量数量总价总价定单号定单号定货日期定货日期客户号客户号客户名称客户名称客户地址客户地址销售员号销售员号姓名姓名城市城市产品号产品号产品名称产品名称单价单价日期标识日期标识日日
20、月月年年地区名称地区名称省省事实表事实表雪花模式雪花模式产品号产品号公司代码公司代码公司代码公司代码公司名称公司名称地址地址五、五、SQL Server 2000 数据仓库工具数据仓库工具数据转换服务数据转换服务(DTS) 用于向数据仓库中加载数据用于向数据仓库中加载数据数据复制数据复制 用于分布式数据仓库分布和加载数据用于分布式数据仓库分布和加载数据OLE DB 提供应用程序与数据源的接口提供应用程序与数据源的接口APIAnalysis Service 用于采集和分析数据仓库中的数据用于采集和分析数据仓库中的数据English Query 提供使用英语语言查询数据仓库提供使用英语语言查询数据
21、仓库Meta Data Service 浏览数据仓库中的元数据浏览数据仓库中的元数据PivotTable服务服务 用于定制操作多维数据的客户端接口用于定制操作多维数据的客户端接口 在数据仓库或者数据市场中的信息可以由联机在数据仓库或者数据市场中的信息可以由联机分析分析(OLAP)处理,处理,OLAP可以有效地以由维度和度可以有效地以由维度和度量组成的立方体方式查看数据。然而,存在着这种量组成的立方体方式查看数据。然而,存在着这种问题:虽然问题:虽然OLAP合计是在数据仓库中可以达到的查合计是在数据仓库中可以达到的查询性能的关键因素,但是存储这些合计数据的成本询性能的关键因素,但是存储这些合计数
22、据的成本是磁盘存储量。事实上,合计数据量可以轻易地超是磁盘存储量。事实上,合计数据量可以轻易地超过原有的数据量。另外,当维度和合计量提高时,过原有的数据量。另外,当维度和合计量提高时,所要求的所要求的OLAP数据存储量也大大地提高。这种对存数据存储量也大大地提高。这种对存储量的极大要求一般称为储量的极大要求一般称为数据爆炸数据爆炸。 OLAP描述的描述的是一种多维数据服务,这种服务的设计目的是保证是一种多维数据服务,这种服务的设计目的是保证分析员、经理和决策者针对特定的问题,通过快速、分析员、经理和决策者针对特定的问题,通过快速、一致、交互式的实时数据访问和分析,获得有创意一致、交互式的实时数
23、据访问和分析,获得有创意的发现。的发现。 在在SQL Server 2000中,有中,有3种用于存储数据仓库种用于存储数据仓库中维度数据的方法,每一种方法都随其数据存储要求中维度数据的方法,每一种方法都随其数据存储要求和其数据检索速度而变化。和其数据检索速度而变化。 (l) MOLAP:多维型:多维型OLAP在一个用于压缩索引在一个用于压缩索引的永久数据存储中存储维度数据和事实数据。合计存的永久数据存储中存储维度数据和事实数据。合计存储用来加快数据访问。储用来加快数据访问。MOLAP查询引擎是专有的,查询引擎是专有的,并且优化成由并且优化成由MOLAP数据存储使用的存储格式。数据存储使用的存储
24、格式。MOLAP提供了比提供了比ROLAP更快的查询处理速度,并且更快的查询处理速度,并且要求更少的存储空间。然而,它不能较好地伸缩,并要求更少的存储空间。然而,它不能较好地伸缩,并且要求使用单独的数据库来存储。且要求使用单独的数据库来存储。 (2) ROLAP:关系型:关系型OLAP在关系型数据表中存在关系型数据表中存储合计。储合计。ROLAP针对关系型数据库的应用允许其利针对关系型数据库的应用允许其利用已有的数据库资源,并且允许用已有的数据库资源,并且允许R OLAP应用程序很应用程序很好地伸缩。然而,好地伸缩。然而,ROLAP使用表存储合计则要求比使用表存储合计则要求比MOLAP更多的磁盘空间,速度相对比较慢。更多的磁盘空间,速度相对比较慢。 (3) HOLAP:正如其名称所示,混合型:正如其名称所示,混合型HOLAP介于介于MOLAP和和ROLAP之间。像之间。像ROLAP一样,一样,HOLAP将主数据存储在源数据库中。像将主数据存储在源数据库中。像MOLAP一样,一样,HOLAP把合计存储在一个永久性数据存储的地方,把合计存储在一个永久性数据存储的地方,它与主关系数据库分开。这种混合形式使它与主关系数据库分开。这种混合形式使HOLAP可可以具备以具备MOLAP和和ROLAP两者的优点。两者的优点。