OLAP学习笔记(二)OLAP的操作与分类和数据仓库介绍

OLAP定义

  • OLAP(Online analytical processing,在线分析处理)是用于快速通过计算完成多维度分析性(MDA)数据查询功能的一种方法,它吸取了导航型数据库(Navigational Database)、分级型数据库( Hierarchical Database)和关系型数据库(Relational Database)的特点,通过累积数据的多维度的视图来为未来的分析提供对操作策略性信息的快速获取方式。
  • OLAP是广义商业智能(Business intelligence,BI)的一部分,其典型应用包括关于销售的商业报告、市场管理、经营报告、业务流程管理(Business Process Management,BPM)、预算和预测、财经报告和其他相同领域。OLAP这一术语是作为传统的数据库术语OLTP(Online transaction processing,在线交易处理)的略微修改而提出的,而后者的查询功能更加简单、数据量更大。
  • OLAP工具使用户能够交互地从多个维度分析多维数据,其基本操作包含上卷(Roll-Up),下钻(Drill-Down),切片(Slicing)和分割(Dicing),后面会分别介绍。

数据仓库(Data Warehouse)

数据仓库首次由Bill Inmon于1945年提出,它具有如下特性:

  1. 面向主题(Subject Oriented):数据仓库围绕一个单独的主题来提供数据,而非整个组织的正在进行的工作。这些主题可以是产品、顾客、供货商、销售商、收入等等。数据仓库不针对正在进行的工作来进行操作,而为了决策的做出而将重点放在建模和数据分析。
  2. 整合性(Integrated):数据仓库根据从不同种类的数据源如关系数据库、扁平结构等整合的数据来进行构建。这一整合性提高了数据分析的效率。
  3. 时间变化性(Time Variant):数据仓库中收集的数据由特定的时间段来识别。数据仓库中的数据从历史的视角来提供信息。
  4. 不易失性(Non-valatile):新数据加入数据仓库的时候已经存在的数据不会被清除。数据仓库是与操作性数据库(Operational Database)区分开的,所以后者的频繁变动不会在数据仓库中反映出来。

数据仓库具有以下三种应用模式:

  1. 信息处理(Information Processing):数据仓库允许对存储的数据进行处理,数据可以通过查询、基本统计分析和通过交叉表、表格、图标和图像来进行报告
  2. 分析处理(Analytical Processing):数据仓库支持对于其存储信息的分析操作。数据可以通过基本的OLAP操作(后文介绍)来进行操作。
  3. 数据挖掘(Data Mining):数据挖掘支持从隐藏模式和关系中发现知识,构建分析模型,进行分类和回归。数据挖掘的结果可以通过图像生成工具展示出来。

对照

数据仓库可以用于存放策略性的数据,用来回答关于过去事件的简单“who?”和“what?”问题。而OLAP使用多维的视窗来对聚集起来的数据集进行快速访问,为未来的分析提供策略性的信息。OLAP操作使得决策者可以通过快速、持续和交互性的方法得到多种可能的信息视图,从而更深刻地洞察数据。

OLAP的特性

OLAP应用可以派生出多种功能,适用于不同领域,其均遵守一下三种特性:

  1. 对数据的多维视图(Multidimensional View of Data):
    极少有商业模型局限在少于三个维度的数据空间中,数据的多维视图为灵活获取数据提供了基础条件。数据库的设计不应对什么维度可以进行什么操作或者这些操作可以多么快速地执行怀有偏见。管理者应该可以从任意维度通过任意层次的聚合来进行操作,而这些操作可以有相同的功能性和便捷度。OLAP软件应该以自然而敏捷的方式支持这些数据视图,使用户不必使用复杂的查询语句就可以获得想要的结果。
  2. 复杂的计算功能(Complex Calculations):
    虽然对某一个层级的聚合是十分重要的,除了简单的数据上卷操作之外还有更多的分析操作,代数方程经常是衡量OLAP性能的一个重要指标。OLAP软件必须提供一个强大而又简洁的计算方法库。为了使开发者效率更高、用户能够更加满意,实施计算方法的方式应该清晰而具有简单的步骤。
  3. 智能化的时间处理(Time Intelligence):
    在几乎任何数据库中,时间都是一个很完整的组成部分。时间是一个很独特的维度,因为它具有序列性,而真正的OLAP系统会清楚时间天然的序列性。

OLAP支持的基本操作

在介绍基本操作之前,先介绍一下OLAP方体(OLAP Cube)的概念:
OLAP Cube通常指多维的数据序列,有时称为超方型(Hypercube),它可以是多维度的概括或者两到三个维度的电子表格。

  • 切片(Slicing)

Slice
切片是指通过在一个方体中的一个维度中选择一个单一的值来得到一个长方形,创建一个具有更少维度的新方体。
图中演示了从所有数据中“切片”提取出2005年和2006年的数据。

  • 切块(Dice)

dice切块是指通过在多个维度中选择特定的数值来产生一个子方体。如图演示,新产生的方体显示了有限数目的产品种类的数据,而时间和地区维度显示的范围和之前一样。

  • 上卷(Roll Up)/下钻(Drill Down)

drill这一对操作使得用户可以从最概括性的数据层次到最详细的数据层次之间转化。如图所示,下钻操作如向右的箭头所示,将“Outdoor-Schutzausrüstung”这一个项数据分离成三个独立的子项“Insektenschutz”、“Sonnenschutz”和“Erste Hilfe”;上卷操作表示相反的过程,即向左箭头所示,将三个独立子项合并成一个概括性的概念。

  • 转轴(Pivot)

pivot转轴操作指在空间中旋转OLAP方体,以期从不同的视图来对数据进行查看。在上图中,转轴操作改变了产品、时间和城市这三个维度的空间分布,这样可以方便查看用户期望获取的数据。

OLAP的分类

传统上将OLAP分为以下三类:

  • 多维在线分析处理(Multidimensional OLAP,MOLAP)
    MOLAP是OLAP的最经典形式,有时就看做OLAP。MOLAP将数据存储在一个优化的多维存储空间中,而不是存储在关系数据库中。
    一些MOLAP工具要求预计算过程,并且存储派生数据,比如通过合并操作(Consolidations)来获得的数据。MOLAP工具将预计算过的数据集称为数据方块(Data Cube),这些数据可以通过快速的查询功能对一系列问题进行反馈,给出对应的答案。然而,数据的更新过程会耗费大量的时间,具体视预计算的复杂程度而定,这有可能产生数据爆炸(Data Explosion)。

其优缺点如下:

优点缺点
有强大的性能:MOLAP方体支持快速地检索数据,可以最佳地支持切片和切块可以操作的数据数目比较有限:因为所有计算在创建方体的时候就已经完成,所以方体本身不能保存大量的数据,因为这一会显著降低MOLAP性能
可以进行复杂的运算:所有的运算在方体刚刚创建的时候就已经预先生成,因此复杂的运算可以快速执行需要更多的投资:由于数据方体(Cube)的操作一般都是专有的,并不会存在于原本的组织中,所有需要更多的人力和资金投资
  • 关系型在线分析处理(Relational OLAP,ROLAP)
    与MOLAP相对,ROLAP直接对关系型数据库进行操作,不要求预计算。基础的数据和维度表作为关系数据库表来存储,并且会创建新表格来存储聚集的信息。ROLAP的工作方式是通过对关系数据库中的数据实施SQL语句的“WHERE”类操作,来实现传统OLAP的切片和切片等功能。ROLAP工具不会对数据进行预计算,反而使用传统关系型数据库的查询语句来实现用户的请求。

其优缺点如下:

优点缺点
可以操作大量的数据:ROLAP技术的数据大小限制与其基础的关系型数据库相同,故它不会限制数据的数目操作的速度可能降低:若数据集过大,通过SQL的查询时间可能会很长
可以影响其继承自关系型数据库的功能:关系型数据库经常伴随一系列的功能,建立在其上的ROLAP技术可以对这些功能进行改进和提升受SQL功能的限制:由于ROLAP技术主要依赖于SQL语句,而后者不会满足一切需求,故ROLAP会受到SQL功能的限制,开发商正在尝试通过提供脱离SQL的复杂功能和支持用户自定义功能来缓和这一缺陷
  • 混合型在线分析处理(Hybrid OLAP,HOLAP)
    在ETL功能的上的额外花费和查询语句的低性能之间的权衡使得大部分的OLAP工具采用了HOLAP方式,这允许模型设计师可以决定哪部分数据存储在MOLAP,哪部分数据存储在ROLAP上。HOLAP模型融合了ROLAP和MOLAP模型的优点,其既可以使用预计算的数据方体,也可以使用源自关系数据库的数据
  • 其他种类
    包括基于网站的OLAP(Web-based OLAP,WOLAP)、桌面OLAP(Desktop OLAP, DOLAP)、实时OLAP(Real-Time OLAP,RTOLAP)、图表OLAP(Graph OLAP,GOLAP)等

参考资料

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值