数据仓库、OLAP和数据立方体

数据仓库、OLAP和数据立方体



1. 数据仓库


1.1. 数据仓库定义

定义:面向主题、集成、时变和非易失的有组织的数据集合

将定义解释一下:面向目标群体或特定目标、将不同数据源的数据集成到一起、可按时间区分数据、一般只是进行只读操作的有组织的数据集合。

1.2. 关键术语解释

  • 面向主题:围绕一些重要的主题(如顾客、供应商或产品),很明确要做什么,需要哪些视图。
  • 集成:将多个不同结构的(异构)数据源的数据集成到一起。

集成操作分为 查询驱动 和 更新驱动 :

方法含义
查询驱动:用的时候通过一个集成程序对多个异构数据库进行查询
(note:这儿的查询类似于SQL查询,不过是从多个数据源里查询)
要的时候去拿
查询开销大。
更新驱动:提前将多个数据源的信息集成起来先把需要的集成好了
  • 时变:其中数据都包含时间维度的信息(如2015年的数据、2016年的数据。。。)。
  • 非易失:一般只需要数据的初始化装入 和 数据访问(只读),不涉及事务处理。

  • 数据仓库:数据仓库是一个支持管理决策的数据集合。数据是面向主题的、集成的、不易丢失的并且是时间变量。所有操作环境和外部数据源的快照集合。它并不需要非常精确,因为它必须在特定的时间基础上从操作环境中提取出来。数据仓库只限于单个主题的区域,例如顾客、部门、地点等。

  • 数据集市:数据集市在从数据仓库获取数据时可以依赖于数据仓库,或者当它们从操作系统中获取数据时就不依赖于数据仓库。


  • 联机操作数据库系统(Online Transaction Processing)OLTP:联机事务、数据增删改查CRUD

  • 联机分析处理(Online Analytical Processing)OLAP:不同格式的组织和提供数据(各式各样的读)


  • 事实:数据仓库中的信息单元,也是多维空间中的一个单元,受分析单元的限制。事实存储于一张表中(当使用关系数据库时)或者是多维数据库中的一个单元。
    每个事实包括关于事实(收入、价值、满意记录等)的基本信息,并且与维度相关。

  • 维度:绑定由坐标系定义的空间的坐标系的轴线。(node:属性)
    数据仓库中的坐标系定义了数据单元,其中包含事实。坐标系的一个例子就是带有 x 维度和 y 维度的 Cartesian(笛卡尔)坐标系。
    在数据仓库中,时间总是维度之一。

  • 数据立方体:可以以多维对数据建模和观察。由事实和维定义。

  • 分析空间:数据仓库中一定量的数据,用于进行数据挖掘以发现新信息同时支持管理决策。

  • 切片:一种用来在数据仓库中将一个维度中的分析空间限制为数据子集的技术。

  • 切块:一种用来在数据仓库中将多个维度中的分析空间限制为数据子集的技术。


  • 数据模型:E-R图被广泛的用于关系数据库的设计,数据库模式用E-R图表示。而数据仓库模型有星型、雪花、星座。

  • 星型模式:一种使用关系数据库实现多维分析空间的模式,称为星型模式。
    当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型
    星型模式

  • 雪花模式:不管什么原因,当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。
    当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。

雪花模式

雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。如上图,将地域维表又分解为国家,省份,城市等维表。

  • 星座模式:星型模式的集合,出现多个事实表。
    在这里插入图片描述

2. 数据仓库和数据库的区别

联机操作数据库系统(Online Transaction Processing)OLTP
主要任务:联机事务、数据增删改查
联机分析处理(Online Analytical Processing)OLAP
主要任务:不同格式的组织和提供数据(各式各样的读)

特点OLTPOLAP
特性操作处理(事务处理)分析处理
面向事务分析
DB设计E-R图,面向应用星型/雪花、面向主题
数据最新的历史的、跨时间维度的
访问读、写
操作索引、散列大量扫描
数据规模>GB>TB
访问读、写

3. OLAP

3.1. 基本概念

1) 维
  1. 维(Dimension):人们观察事物的视角,如时间、地理位置、年龄和性别等,是单一角度概念。
  2. 维的层次(Lever of Dimension):表示维度概念基础上进一步的细分,如时间可以细分为年、季度、月三个层次。
  3. 维成员(Member of Dimension):表示维不可再细分的原子取值,如时间维的成员可以是2019年8月20日。
  4. 度量(Measure):表示在这个维成员上的取值。

除了维的基本概念,还有多维分析的分析操作。

2)操作
  1. 下探(Drill down):维度是有层次的,下探表示进入维度的下一层,将汇总数据拆分到下一层所在细节数据信息,如下图从第二季度下探到看4、5、6月的明细数据。
  2. 上钻(Drill up): 下探的反向操作,回到更高汇聚层的汇总数据。
  3. 切片(Slice):切片可以理解成把立体按某一个维度进行切分,就可以看两维数据,如图中按电子产品切分,看到的是时间和地理位置关系的二维数据。
  4. 切块(Dice):相对于切片是按一个点切分,切块就是按一个范围(区间)来做切分。
  5. 旋转(Pivot):维的行列位置交换,换一个视角分析数据。

在这里插入图片描述

3.2. OLAP分类

OLAP按存储器的数据存储格式分为ROLAP、MOLAP和HOLAP。

名称English介绍优点缺点
MOLAPMulti-dimensional OLAP以多维数组(Multi-dimensional Array)存储模型的OLAP,是OLAP发源最初的形态,某些方面也等同于OLAP。
它的特点是数据需要预计算(pre-computaion),然后把预计算之后的结果(cube)存在多维数组里。
cube包含所有维度的聚合结果,所以查询速度非常快。
计算结果数据占用的磁盘空间相对关系型数据库更小
空间和时间开销大。update cube的时间跟计算维度(degree)相关,随着维度增加计算时间大幅增加,此外预计算还会造成数据库占用急剧膨胀。查询灵活度比较低。需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。
ROLAPRelational OLAP基于关系模型存放数据,一般要求事实表(fact table)和维度表(dimensition table)按一定关系设计,它不需要预计算,使用标准SQL就可以根据需要即时查询不同维度数据。扩展性强,适用于维度数量多的模型,MOLAP对于维度多的模型预计算慢,空间占用大。
更适合处理non-aggregate事实,例如文本描述
基于row数据更容易做权限管理
因为是即时计算,查询响应时间一般比预计算的MOLAP长。
HOLAPHybrid OLAPMOLAP和ROLAP类型的混合运用
细节的数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展现
更适合于高效的分析处理。公司使用HOLAP的目的是根据不同场景来利用不同OLAP的特性。

4. 数据立方体

4.1. 维灾难

n 维数据立方体有多少个方体?

有无概念分层方体数目备注
no 2 n 2^n 2n
yes ∏ i = 1 n L i + 1 \prod_{i=1}^n L_i+1 i=1nLi+1 L i L_i Li:与维 i 相关联的层数

概念分层:如时间维度可分为year、mouth、day、hour、minute等层。

n比较小的时候方体数目还不多。但是其数目是随着n的增加而几何增加的,这就是维灾难
数据立方体
在这里插入图片描述

note:图片为转载

4.2. 方体的计算
物化方法特点其他
不物化不预先计算任何 ‘非基本’ 方体查询时候开销大
完全物化预先计算 所有 方体物化开销大
部分物化预先计算 部分 方体一种折中的方式
冰山立方体一个数据立方体
只存放聚集值(count,sum等)大于某个最小支持度阈值的立方体单元
一种折中的方式
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着人们对大型数据系统研究、管理、维护等方面的深刻识认和不断完善,在总结、丰富、集中多行企业信息的经验之后,为数据仓库给出了更为精确的定义,即“数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合”。<br><br>数据仓库并没有严格的数学理论基础,也没有成熟的基本模式,且更偏向于工程,具有强烈的工程性。因此,在技术上人们习惯于从工作过程等方面来分析,并按其关键技术部份分为数据的抽取、存储与管理以及数据的表现等三个基本方面。 <br><br>  ⑴数据的抽取:数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入到数据仓库数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等方面。数据仓库中的数据并不要求与联机事务处理系统保持实时同步,因此数据抽取可以定时进行,但多个抽取操作执行的时间、相互的顺序、成败对数据仓库中信息的有效性则至关重要。 <br><br>  ⑵存储和管理:数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。 <br><br>  ⑶数据的表现:数据表现实际上相当于数据仓库的门面,其性能主要集中在多维分析、数理统计和数据挖掘方面。而多维分析又是数据仓库的重要表现形式,近几年来由于互联网的发展,使得多维分析领域的工具和产品更加注重提供基于Web前端联机分析界面,而不仅仅是在网上发布数据。 <br><br>  提到数据仓库,人们难免会想到仅有一字之差的数据库,那么,数据仓库和我们经常提到的数据库有哪些区别呢?为什么要使用数据仓库呢?<br><br>从数据库到数据仓库 <br>  市场需求是技术发展的源动力。在数据库应用的早期,计算机系统所处理的是从无到有的问题,是传统手工业务自动化的问题。例如银行的储蓄系统、电信的计费系统,它们都属于典型的联机事务处理系统。在当时,一个企业可以简单地通过拥有联机事务处理的计算机系统而获得强大的市场竞争力。记得在80年代末,北京工商银行率先推出了全市个人储蓄通存通兑业务,广大市民便将先前就近存于不同银行的存款一并取出而存入了工商银行。这便是通过联机事务处理系统而获得市场优势的案例。其次,当时单位容量的联机存储介质比现在昂贵得多,相对于市场竞争的压力,将大量的历史业务数据长时间联机保存去用于分析显然是过于奢侈了。因此,联机事务处理系统只涉及当前数据,系统积累下的历史业务数据往往被转储到脱机的环境中。此外,在计算机系统应用的早期,还没有积累大量的历史数据可供统计与分析。从而,联机事务处理成为整个80年代直到90年代初数据库应用的主流。 <br><br>  然而,应用在不断地进步,当联机事务处理系统应用到一定阶段的时候,企业家们便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势;他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,从而做出有利的决策。同样就拿北京各银行的储蓄业务来说,如今各家都拥有了联网的储蓄系统,再要获得市场竞争的优势,就需要在决策上下功夫,例如在业务密集地区增设自助网点、推出有针对性(如:某类职业圈、某年龄段)的储蓄服务计划。这些决策需要对大量的业务数据包括历史业务数据进行分析才能得到,而这种基于业务数据的决策分析,我们把它称之为联机分析处理。如果说传统联机事务处理强调的是更新数据库——向数据库中添加信息,那么联机分析处理就是要从数据库中获取信息、利用信息。因此,著名的数据仓库专家Ralph Kimball写道:“我们花了20多年的时间将数据放入数据库,如今是该将它们拿出来的时候了。” <br><br>  事实上,将大量的业务数据应用于分析和统计原本是一个非常简单和自然的想法。但在实际的操作中,人们却发现要获得有用的信息并非想象的那么容易:第一,所有联机事务处理强调的是数据更新处理性能和系统的可靠性,并不关心数据查询的方便与快捷;联机分析和事务处理对系统的要求不同,同一个数据库在理论上难以做到两全;第二,业务数据往往被存放于分散的异构环境中,不易统一查询访问,而且还有大量的历史数据处于脱机状态,形同虚设;第三,业务数据的模式是针对事务处理系统而设计的,数据的格式和描述方式并不适合非计算机专业人员进行业务上的分析和统计。于是,有人感叹:20年前查询不到数据是因为数据太少了,而今天查询不到数据是因为数据太多了。针对这一问题,人们专门为业务的统计分析建立一个数据中心,它的数据可以从联机的事务处理系统、异构的外部数据源、脱机的历史业务数据中得到;它是一个联机的系统,专门为分析统计和决策支持应用服务,通过它可满足决策支持和联机分析应用所要求的一切。这个数据中心就叫做数据仓库。如果需要给数据仓库一个定义的话,那么可以把它看作一个作为决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库所要研究和解决的问题就是从数据库中获取信息。 <br><br>  那么数据仓库数据库(主要指关系数据库)又是什么关系呢?回想当初, 人们固守封闭式系统是出于对事务处理的偏爱, 人们选择关系数据库是为了方便地获得信息。我们只要翻开 C.J. Date博士的经典之作《An Introduction to Database Systems》便会发现:今天数据仓库所要提供的正是当年关系数据库要所倡导的。然而,“成也萧何,败也萧何”,由于关系数据库系统在联机事务处理应用中获得的巨大成功,使得人们已不知不觉将它划归为事务处理的范畴;过多地关注于事务处理能力的提高,使得关系数据库在面对联机分析应用时又显得“老革命遇到新问题”——今天的数据仓库对关系数据库的联机分析能力提出了更高的要求,采用普通关系型数据库作为数据仓库在功能和性能上都是不够的,它们必须有专门的改进。因此,数据仓库数据库的区别不仅仅是应用的方法和目的上的,同时也涉及产品和配置。 <br><br>  以辩证的眼光来看,数据仓库的兴起实际上是数据管理的一种回归,是螺旋式的上升。今天的数据库就好比当年的层次数据库和网型数据库,它们面向事务处理;今天的数据仓库就好比是当年的关系数据库,它针对联机分析。所不同的是,今天的数据仓库不必再为联机事务处理的特性而奔忙,由于技术的专业化,它可更专心于联机分析领域的发展和探索。 <br><br>  从厂商的角度看,经过长期发展,联机事务处理系统的市场至90年代中期出现饱和迹象,其增长速度明显减慢。这导致各大数据库厂商的传统业务增长面临严峻挑战,寻求新的业务增长点成为他们的当务之急。数据仓库的兴起无疑为数据库产品创造了巨大的市场,它成为20世纪末到21世纪初数据库市场的一个新的增长点。因此,数据仓库这个词儿打一开始便伴随着轰轰烈烈的市场炒作。对于广大用户来说,只有从自身应用需求出发,破除技术和概念的神秘性,奉行“拿来主义”,避虚就实,密切关注技术发展的方向,方可获得满意的产品、解决方案和经济效益。 <br><br>  总之,数据仓库并非是一个仅仅存储数据的简单信息库,因为这实际上与传统数据库没有两样。数据仓库实际上是一个“以大型数据管理信息系统为基础的、附加在这个数据库系统之上的、存储了从企业所有业务数据库中获取的综合数据的、并能利用这些综合数据为用户提供经过处理后的有用信息的应用系统”。如果说传统数据库系统的重点与要求是快速、准确、安全、可靠地将数据存进数据库中的话,那么数据仓库的重点与要求就是能够准确、安全、可靠地从数据库中取出数据,经过加工转换成有规律信息之后,再供管理人员进行分析使用。<br>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值