第3章联机分析处理(OLAP)引例:为什么需要联机分析在市场经济的激烈竞争中,信息对于企业的生存和发展起着至关重要的作用。企业对信息的需求是多方面的,为了避免企业中各部门或各用户间的冲突和简化用户的数据视图,一种称作“抽取程序”的方法被广泛地应用。比如,市场部人员通常只关心企业的销售、市场策划方面的信息,而不注重企业的研发、生产等其他环节。因此,将销售、市场策划方面的信息抽取出来单独建立部门级的数据库很有必要,这样可以提高数据的访问效率。在部门级数据的基础上可能还要被继续执行抽取程序,以建立个人级的数据库。比如,专门负责制作公司财务报表的数据人员,常常需要从财务部门的数据库系统中抽取数据。又如,部门经理可能经常抽取常用的数据到本地,有针对性的建立个人级数据库就显得尤为重要。随着数据的逐层抽取,很可能最终导致系统内的数据间形成了错综复杂的网状结构,如图所示,人们形象地称为“蜘蛛网”。一个大型的公司每天进行上万次的数据抽取很普遍。这种演变不是人为制造的,而是自然演变的结果。企业的规模越大,“蜘蛛网”问题就越严重。抽取程序个人级数据库企业级数据库抽取程序抽取程序抽取程序抽取程序个人级数据库个人级数据库个人级数据库抽取程序抽取程序部门级数据库个人级数据库个人级数据库个人级数据库个人级数据库抽取程序抽取程序抽取程序抽取程序抽取程序个人级数据库个人级数据库部门级数据库部门级数据库部门级数据库部门级数据库部门级数据库部门级数据库图1.1企业中存在的“蜘蛛网”现象网上的任意两个节点的数据可能归根结底是从一个原始库中抽取出来的,但其数据没有统一的时间基准,因而错综复杂的抽取与访问将产生很多问题,主要有以下几个方面。数据分析的结果缺乏可靠性展示了某企业的市场部和计划部对项目I是否具有市场前景的分析过程和结果。市场部认为“项目I的市场前景很好”,而计划部却得到截然相反的结果----“项目I没有市场前景”。作为企业的最终决策者,将如何根据这样的结论进行决策呢?为什么分析同一个企业数据库中的数据,却得到截然相反的结论呢?首先,两部门可能抽取数据的内容不同。比如,市场部抽取的是项目I在大客户中的应用情况,而计划部抽取的是项目I在普通客户中的应用情况。外部市场信息A外部市场信息B外部市场信息C外部信息的不同企业级数据库市场部计划部抽取数据的内容不同星期日晚星期三下午抽取数据的时间不同分析程序1分析程序2分析程序和分析内容不同分析结果1:项目I市场前景很好分析结果2:项目I没有市场前景图1.2两个分析结果的差异其次,可能两部门抽取数据的时间不同。如市场部在星期日晚上提取分析所需的数据,而计划部在星期三下午就抽取了数据。有任何理由相信对某一天抽取的数据样本进行分析与对另一天抽取的数据样本进行的分析可能相同吗?当然不能!企业内的数据总是在变的。再次,引用外部信息的不同。分析项目的发展趋势常常需要引入企业外部的信息,比如报刊信息、国家的政策等。市场部门引用的外部信息来源可能与计划部门不同,而外部信息自然是仁者见仁,智者见智,这也可能是导致最终分析结果不同的原因。最后,分析程序的差异。市场部门使用的分析程序可能与计划部门不同,分析的内容和指标也可能不同。教学目标掌握联机分析处理的基本概念掌握多维分析方法。教学要求知识要点能力要求相关知识点数据立方的基本概念掌握数据立方的基本概念(1)数据立方OLAP的基本概念掌握OLAP的基本概念(1)维(2)多维数据集(3)多维数据集的度量多维分析掌握多维分析的基本操作(1)切片、切块(2)旋转(3)钻探本章内容数据立方OLAP的基本概念OLAP与多维分析OLAP的分类数据立方数据立方是从数据仓库中提取的全部或部分表构成的多维数据集合。多维数据模型理解数据立方不同的商业视角为维度建立一个商业数据分析用的立方体,这些维的属性是立方体的坐标轴。大多数情况下,数据立方是以三维以上的方式组成的理解数据立方数据立方中多个维度的值是商务需求中需要观察的目标,这个目标的值一般叫度量值。度量值来源于构成商务观察目标的事实表中。例如事实表中有全部产品的销售度量,那么,可以用立方体上的某一个点度量某产品在某一时间和某一城市的销售情况。理解数据立方如果保持立方体的某些坐标轴的值不变而改变另外某一个轴,便可以看到度量在不同维上的变化情况。设计方法:自下而上的方法观看视频:数据仓库与olap设计方法:自上而下的方法直接建cube,即可以直接创建多维数据集,创建维度和量度,这个过程在OLAP过程中都能完成,如果前端展示有新的需求或与设计不一致的需求,则可以直接修改多维数据集中的数据模型,而数据仓库可以自动的依据cube生成。OLAP概念OLAP是一种通过多维结构访问来自商业的数据源并对数据进行聚合和组织的整理过程。OLAP的基本概念OLAP的发展背景联机事务处理(OLTP,On-lineTransactionProcessing)应用积累了大量数据如何从这些海量业务数据中提取对企业决策分析有用的信息成为企业决策管理人员所面临的重要难题。数据仓库技术的发展以支持决策管理分析为主要目的应用迅速崛起联机分析处理的概念最早由关系数据库之父E.F.Codd于1993年提出的OLTP与OLAP的比较OLTPOLAP用户操作人员,低层管理人员决策人员,高级管理人员功能日常操作处理分析决策DB设计面向应用面向主题数据当前的、最新的、细节的、二维的、分立的历史的、聚集的、多维的、集成的、统一的存取读/写数十条记录读上百万条记录工作单位简单的事务复杂的查询用户数上千个上百个DB大小100MB~1GB100GB~1TB联机分析处理是数据仓库系统的一种应用联机分析处理直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型例如对销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是一个维度。一旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态的在各个角度之间切换或者进行多角度综合分析,具有极大的分析灵活性。OLAP的基本概念在线分析处理或连机分析处理(OLAP,On-lineAnalyticalProcessing)是共享多维信息、针对特定问题的联机数据访问和分析的快速软件技术。使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互的存取,从而获得对数据更深入了解的一类软件技术。OLAP与数据挖掘之间的关系OLAP分析的过程是一个演绎推理的过程,就是从一般性的前提出发,通过推导即“演绎”,得出具体陈述或个别结论的过程。数据挖掘是一个归纳的过程,是指从个别性的前提出发,通过感官的观察和经验的推理,得出一个具有或然性的一般结论的过程.它们两者之间具有一定的互补性。演绎与归纳是互补的而不是对立的关系:演绎推理告诉我们,当一个前提确定时我们如何能够有效地从中引出何种结论;而归纳推理则告诉我们,在给定的经验性证据基础上,怎样的结论才是可能的。尽管归纳推理所给予的只是一种或然性的结论,但并不意味着这种推理是无价值的。事实上,假如没有在感官观察和经验概括基础上形成一般性结论的归纳推理过程,科学将成为不可能。OLAP的基本分析操作——切片定义:在多维数组的某一维上选定一维成员的动作称为切片,即在多维数组(维l,维2,…,维n,变量)中选一维,如维i,并取其一维成员(设为“维成员Vi”),所得的多维数组的子集(维1,…,维成员Vi,…维n,变量)称为在维i上的一个切片。OLAP的基本分析操作——切片地区产品时间销售额地区产品销售额(地区,产品,销售量)切片切片OLAP的基本分析操作——切块定义:在多维数组的某一维上选定某一区间的维成员的动作称为切块,即限制多维数组的某一维的取值区间如多维数组中(地区、产品、时间,销售量)OLAP的基本分析操作——旋转旋转即改变一个报告或页面显示的维方向。例如:旋转可能包含交换行和列或是把某一个行维移到列维中去OLAP的基本分析操作——旋转OLAP的基本分析操作——钻取钻取是改变维的层次,变换分析的粒度。它包括上卷(rollup)和下钻(drilldown)。上卷是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;下钻则相反,它从汇总数据深入到细节数据进行观察或增加新维。例如销售数据,可以按月聚集(上卷)销售数据。反过来,给定时间为划分成月份的数据表示,可能希望将月销售总和分解(下钻)成日销售总和,当然,这要求基本销售数据的时间粒度是按天的。钻取总结OLAP作为数据仓库的一种应用工具。OLAP的操作必须依赖存在于数据仓库与OLAP之间的数据集市。由于OLAP需要对数据集市进行多维度的观察分析,因此数据集市可以采用立方体、超立方体的多维结构。根据多维结构存储模式的不同,可将OLAP分成基于多维数据库的MOLAP和基于关系数据库的ROLAP两大类型。