OLTP(on-line transaction processing)翻译为联机事务处理。

OLAP(On-Line Analytical Processing)翻译为联机分析处理。

从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询。

OLTP与OLAP的区别

OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高、稳定性强、确保数据及时更新成功,像公司常见的业务系统如ERP,CRM,OA等系统都属于OLTP。

当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就是在做OLAP了。

因为OLTP所产生的业务数据分散在不同的业务系统中,而OLAP往往需要将不同的业务数据集中到一起进行统一综合的分析,这时候就需要根据业务分析需求做对应的数据清洗后存储在数据仓库中,然后由数据仓库来统一提供OLAP分析。所以我们常说OLTP是数据库的应用,OLAP是数据仓库的应用,下面用一张图来简要对比。

所以OLAP和OLTP之间的关系可以认为OLAP是依赖于OLTP的,因为OLAP分析的数据都是由OLTP所产生的,也可以看作OLAP是OLTP的一种延展,一个让OLTP产生的数据发现价值的过程。

这里我们在多介绍一下OLAP

OLAP分析的分类:ROLAP与MOLAP

OLAP分析分为关系型联机分析处理(ROLAP)、多维联机分析处理(MOLAP)两种,他们的设计理念以及解决场景不一样,各有优劣。

以ROLAP为代表的有传统关系型数据库、MPP分布式数据库以及基于Hadoop的Spark/Impala,特点是能同时连接明细数据和汇总数据,实时根据用户提出的需求对数据进行计算后返回给用户,所以用户使用相对比较灵活,可以随意选择维度组合来进行实时计算。

正因为采用的实时计算技术,所以ROLAP的缺点也比较明显——当计算的数据量达到一定级别或并发数达到一定级别的时候,一定会出现性能问题(就好比如果领导一次性给你安排非常多的工作,你一个人是无法马上将所有事情做完答复领导的)。

以传统关系型数据库为代表的如Teradata、Oracle等,由于传统架构可扩展性较差,所以对硬件的要求非常高,当计算的数据量达到千万,亿级别时,数据库的计算就会出现延时,使得用户不能及时得到响应,更别提高并发了。

MPP分布式数据库(GreenPlum/GBase/Vertica)则解决了一部分可扩展性问题,对硬件设备的要求也稍稍下降了(还是有一定的硬件要求),在支持的数据体量(GB,TB级别)上有了很大的提升。当集群有几百、上千节点时,会出现性能瓶颈(增加再多节点,性能提升也不会很明显),扩容成本同样不菲。

基于Hadoop的Spark/Impala,则对部署硬件的要求很低(常见服务器即可,只是其主要依靠内存计算来缩短响应时间,所以对内存要求较高),在节点扩容上成本上相对较低,但当计算量达到一定级别或并发达到一定级别后,无法秒级响应,且容易出现内存溢出等问题。

以MOLAP分析为代表的有Cognos,SSAS,Kylin等,设计理念是预先将客户的需求计算好以结果的形式存下来(比如一张表分为10个维度,5个度量,那客户提出的需求会有2的10次方种可能,然后将这么多种可能提前计算好存储下来),当客户提出需求后,找到对应结果返回即可(好比你提前一天将领导明天会布置的任务先做好,明天领导布置对应任务后你直接告知他已做好),特点是当命中需求后返回非常快(所以MOLAP非常适合常见固定的分析场景),同等资源下支持的数据体量更大,支持的并发更多,不足则是当表的维度越多,越复杂,其所需的磁盘存储空间则越大,构建cube也需要一定的时间。

Cognos和SSAS是早期比较传统的产品,Cognos限制了Cube的大小(即限制了表的复杂度大小),而SSAS的cube则受限于单机的容量,即需要专用的服务器来进行存储。

Apache Kylin则是目前技术较为先进的一款成熟产品,也是第一个由中国人贡献给Apache社区的顶级开源项目,它基于hadoop框架,Cube以分片的形式存储在不同节点上,Cube大小不受服务器配置限制,所以具备很好的可扩展性和对服务器要求很低,在扩容成本上就非常低廉。另外为了控制整体Cube的大小,Kylin给客户提供了建模的能力,即用户可以根据自身需要,对模型种的维度以及维度组合进行预先的构建,把一些不需要的维度和组合筛选掉,从而达到降低维度的目的,减少磁盘空间的占用。

Kylin的企业版产品,即Kyligence的产品,除了在性能、功能上做了很多优化之外,稳定性上也做了很大提升,还提供了智能建模功能,在满足用户需求的前提下,很大程度上减小了磁盘空间的浪费。

综上而言,从可扩展性上看:Kylin=Impala/Spark>MPP数据库>传统数据库;从对硬件要求上看,传统数据库>MPP数据库>Impala/Spark>=Kylin;从响应效率上来看,不同的数据量、并发数,响应效率差别不一,但可以确定的是,要计算的数据量越大,并发的用户数越多,同等资源情况下预计算的响应效率会越发明显。

参考:

https://www.zhihu.com/question/24110442/answer/851671343

OLTP与OLAP是什么?相关推荐

  1. OLTP与OLAP是什么?OLTP与OLAP的主要区别是什么?

    OLTP与OLAP是什么?OLTP与OLAP的主要区别是什么? 目录 OLTP与OLAP是什么?OLTP与OLAP的主要区别是什么? OLTP是什么? OLTP是什么? OLTP与OLAP的主要区别是 ...

  2. 阿里云数据库产品HybridDB简介——OLAP数据库,支持行列混合存储,为用户提供基于开源 OLTP、OLAP、BigData 生态的一站式解决方案...

    12 月 9 日,阿里云宣布数据库产品 HybridDB 正式商业化. HybridDB(ApsaraDB HybridDB)是一款在线 MPP 大规模并行处理数据仓库的服务.它基于 Pivotal ...

  3. 【DBMS 数据库管理系统】OLTP 联机事务处理 与 OLAP 联机分析处理 ( 数据仓库 与 OLAP | OLAP 联机分析处理 | OLTP 与 OLAP 区别 )

    文章目录 一.数据仓库 和 联机分析处理 技术 简介 二.OLAP 联机分析处理 引入 三.OLAP 联机分析处理 概念 四.OLAP 联机分析处理 特点 五.OLAP 与 OLTP 区别 一.数据仓 ...

  4. ORACLE 表类型 OLTP和OLAP

    表类型 1.表的功能:存储.管理数据的基本单元(二维表:有行和列组成) 2.表的类型:1)堆表:heap table :数据存储时,行是无序的,对它的访问采用全表扫描.2)分区表 表>2G3)索 ...

  5. 分布式数据库TiDB是如何结合OLTP和OLAP的?

    TiDB是一款开源.云原生.MySQL兼容的分布式数据库,可以处理混合事务和分析处理(HTAP)工作负载.它是"NEWSQL"关系数据库的一员,被设计为方便大规模部署.也许有人想知 ...

  6. OLTP和OLAP是什么

    OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高.稳定性强.确 ...

  7. 数据密集型系统设计:索引及存储(B树、LSM树、OLTP及OLAP)

    1.数据索引结构 一个数据库在最基础的层次上需要完成两件事情:当你把数据交给数据库时,它应当把数据存储起来:而后当你向数据库要数据时,它应当把数据返回给你.世界上最简单的数据库可以用两个Bash函数实 ...

  8. OLTP和OLAP的区别?

    写在前面 本文隶属于专栏<100个问题搞定大数据理论体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定大数据理 ...

  9. OLTP与OLAP理解

    OLTP:On_line Transaction Processing  联机事务处理  OLAP:On_line Analytical Processing   联机分析处理 OLTP 顾名思义,以 ...

最新文章

  1. python从安装开始加粉_清华教授用了12小时讲完的Python,整整400集,拿走不谢!...
  2. 为什么程序员纷纷反对微软收购GitHub?
  3. 13_展示商品的详情
  4. fltk和glog在mac下的安装与编译
  5. 完美世界国际版不用外挂多开的方法
  6. 前端需要学习c语言吗,我应该在学习C语言之前学习HTML或CSS吗?
  7. linux win10虚拟内存,Win10虚拟内存设置多少合适?这样设置就最好!
  8. 10^5以下素数筛法——素数表法
  9. php林大飞,和大飞签约
  10. 矩阵的转置与矩阵的逆
  11. 【Android开发经验】Android移动UI设计经验总结
  12. Java--设计模式
  13. 一维卷积Conv1D
  14. Python养发之路 - 安装篇
  15. linux kernel --- checksum相关ip_summed和feature字段解释
  16. 我的 Mac 终端配置(Mac OSX + iTerm2 + Zsh + Oh-My-Zsh)
  17. java魔界战记魔女_魔界战记风格RPG《魔女传说》最新公开!
  18. echarts异步加载数据
  19. 信号与系统2023第三次作业辅导视频:差分方程求解
  20. 考虑灾害响应的应急设施预定位选址

热门文章

  1. 美的苏宁“超级带货趴”来袭,养成带货达人,大牌净味冰箱带回家
  2. 矢量网络分析仪测试射频线线损的注意事项
  3. HTML5 网页设计基础
  4. 计算机中的字体从哪里来,电脑里的汉字是怎么造出来的
  5. 薛定谔 | 诱导契合对接(结合位点柔性)
  6. 【水】【SCOI】 精简题解
  7. Android Zebra斑马打印机 打印面单不清楚 解决方法
  8. ASEMI代理AD8606ACBZ-REEL7原装ADI车规级AD8606ACBZ-REEL7
  9. 织梦联动枚举字段添加一级分类如果超过132个自动变成二级解决方法
  10. python生成器能用while吗_Python:在while循环中使用生成器