Olap理论基础

OLTP和OlAP

数据处理大致可分为两大类:联机事务处理OLTP(On-Line Transaction Processing)和联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统关系型数据库的主要应用,侧重于基本的、日常的事务处理,比如银行系统。OLAP是数据仓库的主要应用,支持复杂的分析操作,侧重于决策支持,并且提供通俗易懂的查询结果。

OLTP重点在于事务处理,比如银行转账,AB两个账户操作要么都成功、要么都失败。OLTP的业务特点是数据量少、并行处理事务多、DML操作频繁、对响应速度要求高。对于OLTP常用的优化操作主要是Cache技术和B-tree索引技术。

OLAP重点是对数据的分析汇总,比如我们每天看的各种报表,是对前一天数据的各种汇总,并且从多个维度去分析。OLAP的业务特点是吞吐量非常高,并且需要多个大表进行聚合操作。对于OLAP常用的优化操作主要是分区技术和并行技术。

OLTP和OLAP对比
OLTP和OLAP对比

OLAP基础

联机分析处理(Online Analytical Processing,OLAP)技术是快速响应多维分析(Multidimensional Analytical,MDA)的一种解决方案。

多维分析

多维分析是一种数据的分析过程,在这个过程中会将数据分为两类:维度(dimensions)和度量/指标(metris/index)。维度是指数据的属性,比如“城市”就是一个维度,用于衡量各指标在各个城市的数据量,维度一般是用来作为约束条件的离散数值。指标是量化数据的衡量标准,比如“交易额”这个指标,用于表示商店实际的交易额。这时候“城市”维度+“交易额”指标就能给出各个城市的交易额分布了。

OLAP分类

常见的OLAP系统可以分为三类:ROLAP(Relational-OLAP,关系型联机分析处理)、MOLAP(Multidimensional-OLAP,多维联机分析模型)和HOLAP(Hybrid-OLAP,混合型联机分析处理)。

ROLAP

ROLAP的核心是关系型数据库,允许用户使用维度模型(见下面)进行数据分析,将维度值存储在维度表中,将度量值/指标存储在实时表中,然后通过关系型数据库使用SQL进行访问。ROLAP的一般使用模式是,根据用户的需求,对不同维度进行分析后,将数据存储到关系型数据库中。

MOLAP

MOLAP是OLAP的经典使用模式,但是使用人数上相较于ROLAP要少很多。MOLAP和ROLAP一样,二者都可以使用维度模型进行数据分析。与ROLAP不同的是,MOLAP不将数据存储在维度表或实时表中,而是对原始数据进行预计算(比如聚合操作),然后将数据存储在OLAP的cube(见下面 )中。

因为MOLAP不采用关系型数据库存储,所以必须采用特殊的存储手段,比如压缩、索引(如位图索引)以及缓存技术,这样使得MOLAP相较于ROLAP查询效率更高。

HOLAP

HOLAP是集成了ROLAP和MOLAP各自优势,即允许用户将数据(比如聚合数据)使用MOLAP进行存储,从而获得更快的查询效率。又允许用户使用ROLAP存储(比如明细数据,原始数据),使用户能够查看更细粒度的数据。

这样,HOLAP可以利用MOLAP存储热数据,使用ROLAP存储历史冷数据。目前业界研发和使用比较流行的就是HOLAP。

Data cube

Data cube(数据立方体)在数据库理论中定义为:RDBMS关系映射的一种抽象。简单说就是通过多个维度确定的一个空间,称为cube。比如x,y,z代表坐标轴中三轴,w代表由(x,y,z)所映射的数据集合,像(x,y,z)这样一个元组,我们就称为一个cube。

下图就是由Category、Time和Product这个三个维度组成的三维空间,三维空间所确定的一个立方体称为一个cube(注意整个立方体称为一个cube)。

cube
cube

数据立方体(Data Cube)只是OLAP多维分析的一个形象的说法,因为立方体只有三维,而多维模型是不限于三维的,之所以称为cube是因为这样我们可以是我们更容易理解cube的概念。

OLAP基本分析操作

OLAP帮助用户从多种角度分析多维数据,主要操作分为五种:上卷(roll-up)、下钻(drill-down)、切片(slice)、切块(dice)和旋转(pivot)。

上卷(Roll-up)

上卷表示沿着某一维度按照一定规则聚合的操作,也就是从细粒度数据向高层聚合。比如把江苏省、上海市、浙江省的数据进行汇总,可以看到江浙沪区的销售量。

image
image

下钻(Drill-down)

下钻和上卷正好相反,用于用户从以聚合的数据中找出它们所有关注的细节数据。也就是从聚合数据中,拆分更细粒度的数据。比如从全年销售量中,拆分出4、5、6月份数据查看。也可以对浙江省进行下钻,看浙江省下各个市的销售量。

image
image

切片(Slice)

切片表示从某个维度选择特定的维值,从OLAP cube中取出一个分片的过程。也就是选择特定的维值进行分析。比如商品中选择电子产品维值,来分析销售量。

image
image

切块(Dice)

切块表示通过选择维度的某些值(或者区间),从OLAP cube中抽取出子cube的过程。也就是分析区间维值或某批特定维值进行分析。比如选取一年中第一季度和第二季度销售数据进行分析。

image
image

旋转(Pivot)

旋转是指允许用户通过旋转OLAP cube,重新选择分析维度,它的表现形式为交换坐标轴的操作。比如将产品维和地域维进行互换。

image
image

从上面的操作来看,可以知道OLAP是基于数据仓库多维模型的基础上实现的面向分析的各类操作集合。OLAP上的操作主要以查询为主,也就是对应数据库中的SELECT操作,但是查询可以很复杂,比如进行多表关联,使用COUNT、SUM、AVG等聚合操作。OLAP正是基于多维模型定义了一些常见面向分析的操作类型,使这些操作显得更加直观。

维度模型

OLAP只是一个系统,接受数据处理数据,那么OLAP系统一般接收什么样的数据?

维度模型的概念出自于数据仓库,是数据仓库中一种数据建模的方法。维度模型主要由事实表和维表这两类表组成。

事实表用于存储度量值(指标),术语“事实”代表了一个度量值。比如交易额事实表中,在各个维度值的交点就可以得到一个度量值。维度值的列表定义了事实表的粒度,同时又确定了度量值的取值范围。事实表的一行对应一个度量值,事实表的所有度量值必须具有相同的粒度。

事实表有可能是半加性质或非加性质的。这个半加性质的含义就是指事实表度量值可以沿着某些子维度向父维度聚合,比如所有城市维度向上推,可以得到全国维度下的交易额。非加型事实表则完全不能相加,比如状态事实表,这种非加性事实表只能用于计数或者求平均值。

事实表中有两类数据, 一类是度量值,另一类就是维度值。所以在实时表中,一般只要有2个或以上的外关键字,外关键字用于连接到维度表的主关键字。如果事实表中的所有关键字都能分别与对应的维表中的关键字正确匹配,就可以说这些表满足引用完整性要求。事实表通过与之关联的维度表进行存取。

事实表
事实表

维度表是事实表不可分割的一部分,维度表用于存储数据属性,维度表一般包含了业务的文字组描述。每个维度表用单一关键字进行定义,主关键字是确保与事实表引用完整性的基础。维度表是进入事实表的入口,丰富的维度属性提供了丰富的分析切割能力。可以理解维度为用户提供的数据仓库的接口。

通过事实表和维度组成的维度模型,从形式上分为:星型模型和雪花模型。上面就是一个星型模型,一个实时表通过维度外键与多个属性表关联。而雪花模型可以看做是星型模型的扩展,表现形式是在维度表中,某个维度属性可能存在更细粒度的属性描述,也就是维度的层级关系。

参考链接

https://en.wikipedia.org/wiki/Online_analytical_processing

https://www.cnblogs.com/hhandbibi/p/7118740.html

https://www.cnblogs.com/andy6/p/6011959.html

https://www.cnblogs.com/mq0036/p/4155832.html

http://webdataanalysis.net/web-data-warehouse/multidimensional-data-model/

http://webdataanalysis.net/web-data-warehouse/data-warehouse-frame/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,757评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,478评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,540评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,593评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,903评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,329评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,659评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,383评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,055评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,337评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,864评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,227评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,820评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,999评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,750评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,365评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,260评论 2 258

推荐阅读更多精彩内容

  • 1、数据仓库、OLAP 与 BI 数据仓库 数据仓库,英文名称 Data Warehouse,简称 DW。《数据仓...
    我还不够强阅读 220评论 0 1
  • OLAP(Online analytical processing),即联机分析处理,主要用于支持企业决策管理分析...
    halflife阅读 197评论 0 0
  • //数据立方体与OLAP - iamlihongwei的专栏 - 博客频道 - CSDN.NEThttp://bl...
    葡萄喃喃呓语阅读 1,774评论 0 1
  • 说到olap就不得不先介绍一下数据仓库,因为olap就是基于数据仓库基础上面向分析的对多维模型进行各类操作的集合。...
    茂盛哥哥阅读 259评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,190评论 0 13