yongjianluo 2016-03-14
数据立方体,他是一种用于OLAP以及OLAP操作(如上卷、下钻、切片和切块)的多维数据模型。数据立方体存储多为聚集信息。每个单元存放一个聚集值,对应于多维空间的一个数据点。每个属性都可能存在概念分层,允许在多个抽象层进行数据分析。
在最低抽象层创建的立方体称为基本方体。基本方体应当对应于感兴趣的个体实体,如sales或customer。换言之,最低层应当是对于分析可用的或有用的。最高抽象的立方体称为顶点方体。对不同层创建的数据立方体称为方体,因此数据立方体可以看做方体的格。每个较高抽象将进一步减小结果数据的规模。当回答OLAP查询或数据挖掘查询时,应当使用给定任务相关的最小可用方体。
OLTP:联机事务物理系统,主要任务是执行联机事务和查询处理。
OLAP:联机分析处理,在数据分析和决策方面为用户或“知识工人”提供服务。这种系统可以用不同的格式组织和提供数据,以便满足不同用户的形形色色的需求。
OLTP和OLAP的主要区别概述如下:
二、OLAP系统建设
三、了解数据仓库
1、数据仓库介绍
从结构的角度看,有三种数据仓库模型:企业仓库、数据集市和虚拟仓库。
企业仓库:企业仓库搜集了关于主题的所有信息,跨越整个企业。他提供企业范围内的数据集成,通常来自于一个或多个操作数据库系统或外部信息提供者,并且是多功能的。通常,它包含细节数据和汇总数据,其规模由数兆兆字节,到数百兆兆字节,数千兆兆字节,甚至更多。企业数据仓库可以在传统的大型机、超级计算机服务器或并行结构平台上实现。它需要广泛的商务建模,可能需要多年建设和设计。
数据集市:数据集市包含企业范围数据的一个子集,对于待定的用户群是有用的。其范围现定于选定的主题。例如:销售数据集市可能限定其主题为顾客、商品和销售。包括在数据集市中的数据通常是汇总的。
虚拟仓库:虚拟仓库是操作数据库上视图的集合。为了有效的处理查询,只有一些可能的汇总视图被物化。虚拟仓库容易建立,但需要操作数据库服务器还有余力。
2、数据仓库建设
数据仓库开发是自顶向下,还是自顶向上?
自顶向下开发企业仓库是一种系统的解决方案,并能最大限度的减少集成问题。然而,它费用高,开发周期长,并且缺乏灵活性,因为整个组织就共同数据模型达成一致是比较困难的。
自底向上通过设计、开发、配置独立的数据集市的方法,提供了灵活性、低花费,并能快速回报投资。然而,将分散的数据集市集成,形成一个一致的企业数据仓库时,可能导致问题。
对于开发数据仓库系统,一种推荐的方法是以递增、进化的方式实现数据仓库。首先,在一个合理短期的时间内,定义一个更高层次的企业数据模型,在不同的主题和可能的应用之间,提供企业范围的、一致的、集成的数据视图。这个高层模型将大大减少今后的集成问题,尽管在企业数据仓库和部门数据集市的开发中,它还需要进一步提炼。其次,基于上述相同的企业数据模型,可以并行的实现独立的数据集市和企业数据仓库。再次,可以通过中心服务器集成不同的数据集市,构造分布数据集市。最后,构造一个多层数据仓库。这里,企业仓库是所有仓库数据的唯一管理者,仓库数据分布在一些依赖的数据集市中。
3、数据提取、变换和装入
数据仓库系统使用后端工具和实用程序来加载和刷新他的数据。这些工具和实用程序包含以下功能:
数据仓库通常还提供一组数据仓库管理工具。数据清理和数据变换是提高数据质量,从而提高其后的数据挖掘结果质量的重要步骤。
4、元数据库
元数据是关于数据的数据。在数据仓库中,元数据是定义仓库对象的数据。元数据在数据仓库体系结构的底层。对于给定的数据仓库的数据名和定义,创建元数据。其他元数据包括对提取数据添加的时间标签、提取数据的源、被数据清理或集成处理添加的缺失字段等。
元数据库应当包括以下内容:
数据仓库包含不同的汇总层,元数据是其中一种类型。其他类型包括当前的细节数据、老的细节数据、稍加汇总的数据和高度汇总的数据。
四、数据仓库模型:数据立方体与OLAP
数据仓库和OLAP工具基于多维数据模型。这种模型将数据看做数据立方体形式。主要包括:数据立方体对n维数据建模,各种多维模型--星型模型、雪花模型和事实星座。还有分层和度量,以及上卷和下钻。
1、什么是数据立方体
数据立方体允许以多维对数据建模和观察。它由维和事实定义。一般而言,维是一个单位想要记录的透视或实体。通常,多维数据模型围绕诸如销售这样的中心主题组织。主题用事实表表示。事实是数值度量的。事实表包括事实的名称或度量,以及每个相关维表的码。存放最低层次汇总的方体称作基本方体。
2、多维数据模型
最流行的数据仓库的数据模型是多维数据模型。这种模型可以是星形模型、雪花模式或事实星座模型。
3、维:概念分层的作用
概念分层定义一个映射序列,将底层概念集映射到较高层、更一般的概念。例如time:hour-->week-->month-->year。 通过概念分层允许用户根据他们的特殊需要裁减预定义的分层。也可以通过给定维或属性离散化或分组来定义概念分层,产生集合分组分层。可以在值的组合之间定义全序或偏序。
概念分层可以由系统用户、领域专家、知识工程师人工的提供,或根据数据分布的统计分析自动的产生。
4、度量的分类和计算
数据立方体空间的多维点可以用维--值对的集合来定义。数据立方体度量是一个数值函数,该函数可以对数据立方体空间的每个点求值。通过给定点的各维--值对聚集数据,计算该点的度量值。
度量根据其所用的聚集函数可以分成三类:分布的、代数的和整体的。
5、典型的OLAP操作
在多维数据模型中,数据组织在多维空间,每维包含由概念分层定义的多个抽象层。这种组织为用户从不同角度观察数据提供了灵活性。有一些OLAP数据立方体操作用来物化这些不同视图,允许交互查询和分析手头数据。因此OLAP为交互数据分析提供了友好的环境。
6、查询多维数据库的星网查询模型
多维数据库查询可以基于星网模型。星网模型由从中心点发出的射线组成,其中每一条射线代表一个维的概念分层。概念分层上的每个“抽象级”称为一个足迹,代表诸如上卷、下钻等OLAP操作可用的粒度。
例如:一个星网由四条射线组成,分别代表维location、customer、item和time的概念分层。每条线由一些足迹组成,代表该维的抽象级。例如,time线有4个足迹:day、month、quarter、year。一个概念分层可以涉及单个属性,或若干属性。为了考察商品销售,用户可以沿着time维上卷,由month到quarter,或沿着location维下钻,由country到city。
通过用较高层抽象值替换低层抽象值,概念分层可以用于泛化数据。通过用低层抽象值替换高层抽象值,概念分层也可以特殊化数据。
7、多维数据挖掘
多维数据挖掘把数据挖掘与OLAP集成在一起,在多维数据库中发现知识。在数据挖掘的许多不同范例和结构中,由于以下原因,多维数据挖掘特别重要:
8、数据立方体的有效计算
多维数据分析的核心是有效的计算许多维集合上的聚集。用SQL的术语,这些聚集称为分组(group-by)。每个分组可以用一个方体表示,而分组的集合形成定义数据立方体的方体的格。
①compute cube操作与维灾难
立方体计算的一种方法是扩充SQL,使之包含compute cube操作。compute cube操作在操作指定的维的所有子集上计算聚集。这可能需要很大的存储空间,特别是对于很大量的维。例如:有一个数据立方体,包含city、item、year,那数据立方体计算的方体或分组总数为2的3次方=8个。基本方体是最低泛化的方体。顶点方体是最高泛化的方体。从顶点方体开始,沿方体的格向下探查,这等价于在数据立方体中下钻。从基本方体向上探查,则类似于上卷。
不包含分组的sql查询是0维操作。包含一个分组的sql查询是一维操作。在n维上的一个立方体操作等价于一组分组语句,每个对应于n个维的一个子集。对于不同的查询,OLAP可能需要访问不同的方体。因此,提前计算所有的或者至少一部分方体。预计算带来快速响应时间,并避免一些冗余计算。然而,预计算的挑战是:如果数据立方体中所有方体都预先计算,所需存储空间可能爆炸,特别是当立方体包含许多维时。当许多维都有相关联的概念分层、具有多层时,存储需要更多。这就是维灾难。
②部分物化:方体的选择计算
方体或者子立方体的部分物化应考虑三个因素:确定要物化的方体子集或子立方体;在查询处理时利用物化的方体或子立方体;在装入和刷新时,有效的更新物化的方体或子立方体。 物化方体或子立方体的选择需要考虑工作负荷下的查询,以及他们的频率和他们的访问开销。此外,也要考虑工作负荷的特点、增量更新的开销和整个存储需求量,选择还必须考虑物理数据库设计的情况。
还有一种常用的策略是物化一个外壳方体。这涉及预计算数据立方体的只有少量维的方体。在维的其他组合上的查询可以临时计算。
③OLAP常用索引:位图索引和连接索引
位图索引:在OLAP产品中很流行,因为它允许在数据立方体中快速搜索。位图索引是record_ID(RID)列表的一种替代表示。在给定属性的位图索引中,属性域中的每个值v,有一个不同的位向量Bv。如果给定的属性域包含n个值,则位图索引中每项需要n个位。如果数据表给定行上该属性值为v,则在位图索引的对应行,表示该值的位为1,该行的其他位均为0.
连接索引:方法的流行源于他在关系数据库查询处理方面的应用。传统的索引将给定列上的值映射到具有该值的行的列表上。与之相反,连接索引登记来自关系数据库的两个关系的可连接行。例如:如果两个关系R(RID,A)和S(B,SID)在属性A和B上连接,则连接索引记录包含(RID,SID)对,其中RID和SID分别为来自关系R和S的记录标示符。因此,连接索引记录能够识别可连接的元组,而不必执行开销很大的连接操作。对于维护来自可连接的关系的外码和与之匹配的主码的联系,连接索引特别有用。
④OLAP查询的有效处理
物化立方体和构造OLAP索引结构的目的是加快数据立方体查询处理的速度。给定物化的视图,查询处理应该安如下步骤进行:
通过原生JS,点击事件,鼠标按下、鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示。<input type="text" class="xNum" value="&