数据仓库逻辑、物理结构及OLAP分析

来源:互联网 发布:科研民工 知乎 编辑:程序博客网 时间:2024/04/30 17:50
   数据仓库是存储数据的一种组织形式,它从传统数据库中获得原始数据,先按辅助决策的主题要求形成当前基本数据层,再按综合决策的要求形成综合数据层(又可分为轻度综合层和高度综合层)。随着时间的推移,由时间控制机制将当前基本数据层转为历史数据层。可见数据仓库中逻辑结构数据由3层到4层数据组成,它们均由元数据(Meta Data) 组织而成。数据仓库中数据的物理存储形式有多维数据库组织形式(空间超立方体形式)和基于关系数据库组织形式(由关系型事实表和维表组成)。
    数据仓库系统(DWS)由数据仓库、仓库管理和分析工具三部分组成。
    源数据:数据仓库的数据来源于多个数据源,包括企业内部数据、市场调查报告及各种文档之类的外部数据。
    仓库管理: 在确定数据仓库信息需求后,首先进行数据建模,然后确定从源数据到数据仓库的数据抽取、清理和转换过程,最后划分维数及确定数据仓库的物理存储结构。元数据是数据仓库的核心,它用于存储数据模型和定义数据结构、转换规划、仓库结构、控制信息等。
数据仓库: 包括对数据的安全、归档、备份、维护、恢复等工作,这些工作需要利用数据库管理系统(DBMS)的功能。
    分析工具用于完成实际决策问题所需的各种查询检索工具、多维数据的OLAP分析工具、数据挖掘DM工具等,以实现决策支持系统的各种要求。
    数据仓库应用是一个典型的C/S结构。其客户端的工作包括客户交互、格式化查询及结果和报表生成等。服务器端完成各种辅助决策的SQL查询、复杂的计算和各类综合功能等。现在,一种越来越普遍的形式是三层结构,即在客户与服务器之间增加一个多维数据分析服务器。OLAP服务器能加强和规范决策支持的服务工作,集中和简化原客户端和DW服务器的部分工作,降低系统数据传输量,因此工作效率更高。 
  联机分析处理(OLAP)
    联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。
    当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLTP与OLAP之间的比较
    OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
    OLAP的基本多维分析操作有钻取(roll up和drill down)、切片(slice)和切块(dice)、以及旋转(pivot)、drill across、drill through等。
  钻取是改变维的层次,变换分析的粒度。它包括向上钻取(roll up)和向下钻取(drill down)。roll up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drill down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
 切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
 旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
    OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。
    ROLAP 表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了"星型模式"。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为"雪花模式"。
    MOLAP 表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方块(Cube)"的结构,在MOLAP 中对"立方块"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。
    HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。
    还有其他的一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。
    OLAP 工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,……,维n,度量指标),如(地区、时间、产品、销售额)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
    根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。 
  但是不管你使用什么数据库或者给你什么样的工具,建立数据仓库的概念是一样的。你需要设计并创建维表,事实表和元数据表。用的最多的是星型模式。总是要有一个ETL过程,而这总是很困难的。清空和转换过程也必不可少,以保证数据质量。现在有如此多的ETL工具来清空和建立数据仓库,很难跟踪它们。有如此多的软件产品供选择以建立各种不同的商务智能报告-网络分析报告,计划报告,预测报告,交互报告甚至dashboard reports。但是又能如何呢!现在我不再需要这些工具来建立一个动态数据仓库和报告了,就像12年前那样。并且你也不需要!用你所拥有的开始已经足够了