OLTP与OLAP

1.OLTP与OLAP的基本概念与主要区别

1.1 OLTP是什么

OLTP的全称是On-line Transaction Processing,中文名称是联机事务处理。其特点是会有高并发且数据量级不大的查询,是主要用于管理事务(transaction-oriented)的系统。此类系统专注于short on-line-tansactions 如INSERT, UPDATE, DELETE操作。通常存在此类系统中的数据都是以实体对象模型来存储数据,并满足3NF(数据库第三范式)。

1.2 OLAP是什么

OLAP的全称是 On-line Analytical Processing,中文名称是联机分析处理。其特点是查询频率较OLTP系统更低,但通常会涉及到非常复杂的聚合计算。 OLAP系统以维度模型来存储历史数据,其主要存储描述性的数据并且在结构上都是同质的。

1.3 OLAP与OLTP的主要联系和区别

 既然OLTP中存放了大量的细节数据,为什么不直接在OLTP上进行分析处理呢?

由于OLTP主要是为了操作数据而设计(操作系统),用于处理已知的任务和负载:常见的优化在于主码索引和散列,检索特定的记录。去优化某一些特定的查询语句。

而OLAP则是为了分析数据而设计(数据仓库),其查询的方式往往是复杂且未知的,通常会涉及大量数据在汇总后的计算,这种需要基于多维视图的数据操作在OLTP上执行的时候性能将是非常差的,并且是也是极其危险的。

但是OLAP系统数据来源与各种OLTP数据库。因为OLTP系统存储的数据往往是异质的,所以OLAP系统需要把各种来源于OLTP的异质数据通过转换(ETL)做到同质并且合并。

如下是OLTP与OLAP的区别:

OLTP与OLAP_第1张图片
OLTP和OLAP的主要区别总结

2.1 OLAP分类:ROLAP,MOLAP,HOLAP 根据存储数据方式不同划分

(1)ROLAP  RelationalOLAP  关系OLAP—数据存储在RDMS中

这是一种通过在RDMS后端服务和客户前端之间建立中间层的OLAP实现方式。通过RDMS来存储和管理数据仓库数据,而通过OLAP中间件来实现多维数据上的操作映射为标准关系操作。其优点在于可以利用RMDS中本身固有的一些功能,例如: 本质上来讲 “slicing and dicing”的操作等同于在SQL语句中添加“WHERE”子句。

(2)MOLAP MultidimensionalOLAP 多维OLAP—数据存储在multidimensional cube中

这些服务器通过基于数据的多维存储引擎,支持数据的多维视图。能够将多维视图直接映射到数据立方体数组结构。其数据都存在多维数据立方体(multidimensional cube)中,以专有的格式存储。使用数据立方体的优点是能够对预计算的汇总数据进行快速索引,尤其是对"slicing and dicing"有着非常优秀的支持。

(3)HOLAP  HybridOLAP  混合型OLAP    尚无明确定义-根据不同场景变化

 HOLAP结合了ROLAP和MOALP技术,从而继承了ROLAP的伸缩性强和MOLAP快速计算的优点。例如HOLAP利用多维数据集技术来提高性能,而当需要详细数据时,HOALP可以从多维数据“钻取”到底层的RDMS中去获取数据。

2.2 OLAP的基本操作

在多维数据模型中,数据组织在多维空间,每维包含由概念分层定义的多个抽象层。这种组织为用户从不同角度观察数据提供了灵活性。

上卷:roll-up  drill-up

通过一个维的概念分层向上攀升或者通过维归约在数据立方体上进行聚集。比如城市统计数据维度到省级统计数据维度。

下钻:drill-down 

 下钻是上卷的逆操作,由不太详细的数据到更详细的数据。下钻可以通过沿维的概念分层向下或引入附加的维来实现。

切片和切块:slice and dice

切片(slice)1是在给定的立方体的一个维上进行选择,从而定义一个子立方体。切块(dice)操作通过两个或多个维上进行选择,定义一个子立方体。

转轴:pivot 

是一种目视操作,就像是一个二维表的行列转换,两个维度的互换。

钻过:drill-across 

其执行会涉及多个事实表的查询

钻透:drill-through

下钻透过多维数据立方直达RDMS表。

2.3 OLAP的12准则

 OLAP的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则:

准则1: OLAP模型必须提供多维概念视图  Multidimensional conceptual view OLAP

在分析中,企业天然就是一个多维模型,例如,利润可以按区域,产品,时间,或方案(如实际,预算或预测)等多种维度进行查看。多维数据模型能让用户更直接和方便的操作数据,包括“slicing and dicing”

准则2: 透明性 Transparency 

当OLAP以用户习惯的方式提供电子表格或图形显示时,这对用户应该是透明的。OLAP应该是开发系统架构的一部分,这个架构能按用户的需要嵌入到任何地方,而不会对主机工具的功能产生副作用。用户不应该接触到提供给OLAP工具的数据源,这些数据可能是同构的或是异构的。

准则3:存取能力 Accessibility 

OLAP工具应该有能力利用自有的逻辑结构访问并接入不同结构就(heterogeneous)的数据源,并且进行必要的转换以提供给用户一个连贯的展示。让OLAP的用户不需要关心物理数据的来源。

准则4:稳定的报表能力 Consistent reporting performance

OLAP工具的性能不应该因维度增加而受到明显的影响

准则5:客户/服务器体系结构 Client/server architecture

OLAP工具的服务器端应该足够的智能让多客户的以最小的代价连接。OLAP服务应该有能力映射和持久化不同数据库的数据。

准则6:维的等同性准则 Generic dimensionality

每个数据维度应该具有等同的结构和操作能力,不应该有所区别。

准则7:动态稀疏矩阵处理 Dynamic sparse matrix handling

OLAP服务器的物理结构应能处理最优稀疏矩阵

准则8:  多用户支持能力 Multi-user support

OLAP应提供并发获取和更新访问,同时保证数据服务完整性和安全性的能力

准则9:非受限的跨维操作  Unrestricted cross-dimensional operations 

计算设备必需允许跨数据维度的计算和数据操作,不能限制任何数据单元间的关系。

准则10直观的数据操纵  Intuitive data manipulation

合并路径中固有的数据操作,例如向下钻取或缩小,应通过对分析模型单元的直接操作来完成,而不需要使用菜单或跨用户界面多次来回操作。

准则11:灵活的报表生成 Flexible reporting    

报表设备应该能以用户需要的任何方式展现信息

准则12:不受限的维与聚集层级 Unlimited dimensions and aggregation levels

数据维度数量应该是无限的,用户在每个通用维度上定义的聚集聚合层次应该是无限的。

你可能感兴趣的:(OLTP与OLAP)