OLAP和OLTP的区别

OLAP:

(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。

OLTP:

(Online analytical processing):指联机分析处理。通过分析数据库中的数据来得出一些结论性的东西。比如给老总们看的报表,用于进行市场开拓的用户行为统计,不同维度的汇总分析结果等等。操作主体一般是运营、销售和市场等团队人员。

单次OLTP处理的数据量比较小,所涉及的表非常有限,一般仅一两张表。而OLAP是为了从大量的数据中找出某种规律性的东西,经常用到count()、sum()和avg()等聚合方法,用于了解现状并为将来的计划/决策提供数据支撑,所以对多张表的数据进行连接汇总非常普遍。

为了表示跟OLTP的数据库(database)在数据量和复杂度上的不同,一般称OLAP的操作对象为数据仓库(data warehouse),简称数仓。数据库仓库中的数据,往往来源于多个数据库,以及相应的业务日志。

2. MySQL等OLTP数据库能处理OLAP业务吗?

MySQL一般作为OLTP数据库使用,也能执行一些OLAP操作,但这不是MySQL擅长的领域。虽然OLTP和OLAP都是通过SQL来执行,但SQL语句只是描述了我想要什么,而并没有说明应该怎么做(不考虑hint等),即确定最优的执行计划。由于OLTP操作比较简单,所涉及的表也少,因此不需要相应的数据库具有强大的执行优化能力,比如说MySQL在查询优化这块就比较弱,但这其实没有给它的大规模普及使用造成多大伤害。

当然,MySQL也在快速进步,尤其是最新的8.0版本,在查询优化模块添加了很多众望所归的功能特性,包括窗口函数,通用表达式和更强大的Join能力等。

而OLAP类操作不一样,没有强大的执行计划产生和优化能力,执行这类操作肯定不会有多高的效率,甚至会寸步难行。当然,如果总数据量较小,SQL也相对简单,那MySQL也是能够应付的。在MySQL高可用实例的从库做些报表类查询也有不少案例。

3. OLAP的查询跟OLTP查询具体有那些不一样?

OLTP查询一般仅涉及单表,点查为主,返回的是记录本身或该记录的多个列。即使是范围查询,基本上也会通过limit来限制返回的记录数。

而OLAP则不同,表中单条记录本身并不是查询所关心的,比较典型的特点包括有聚合类算子、涉及多表Join。这些操作都非常耗计算资源,而且数据仓库相比数据库在数据量上大很多,因此,OLAP类查询经常表现为cpu-bound而不是io-bound。

OLTP和OLAP发展到现在已经比较成熟,业界也有些公认的benchmark来进行性能评估。对于OLTP来说,有sysbench和tpcc测试套件,对于OLAP来说,有tpch和tpcds 2种。

4. 是否有可能将OLAP和OLTP统一起来?

目前有个趋势是将OLTP和OLAP相融合,在同一个系统中同时提供TP和AP 2种服务,即HTAP产品,国内的数据库创业公司PingCAP的TiDB即是其中的佼佼者。

但由于两者服务类型相差甚大,完全融合是很难的,如何解决AP业务对要求更高实时性和稳定性的TP业务带来影响,如何同时提供2种服务且2种服务与业界其他系统相比具备足够竞争力,这些都是很大的挑战。

在目前的HTAP系统中,一般通过存储层的数据多副本来进行针对AP和TP业务的不同方式的优化,使用多个副本来以行存方式更好满足TP业务,通过增加一个副本来以列存方式为AP业务提供服务。

在存储系统上,配置独立的计算/查询系统,分别满足TP和AP不同的要求。比如TP系统很重要的一个特点就是事务的ACID,而AP系统更加关心分布式并行查询能力。

OLAP和OLTP的区别相关推荐

  1. OLAP和OLTP的区别(基础知识) 【转】

    联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则.OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 ( ...

  2. OLAP与OLTP的区别

    一.概念介绍 OLTP概念 OLTP(online transaction processing),联机事务处理过程,也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行 ...

  3. OLAP与OLTP的区别?

    1. OLAP与OLTP的区别? OLTP(Online transaction processing):在线/联机事务处理.典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主 ...

  4. OLAP和OLTP的区别(基础知识)

    联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则.OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 ( ...

  5. 数据库中olap和oltp的区别

    1.OLTP的概述:On-Line Transaction Processing 联机事务处理过程(OLTP),也称为面向交易的处理过程. 2.OLAP的概述:联机分析处理OLAP是一种软件技术,它使 ...

  6. 细说Oracle数据库OLAP和OLTP的区别

    详情查看原文地址:http://www.55linux.com/oracle/DBA/546.html

  7. OLTP 与 OLAP 的意义及区别

    OLTP(on-line transaction processing)翻译为联机事务处理, 或者在线交易处理系统 OLAP(On-Line Analytical Processing)翻译为联机分析 ...

  8. OLAP和OLTP以及HTAP的区别

    数据处理一般可以分成两大类:OLAP和OLTP 那么有没有一种情况,将OLTP和OLAP相融合,在同一个系统中同时提供这两种服务,答案是有的.即HTAP产品. 在这方面,国内的数据库厂商PingCAP ...

  9. 混合列压缩(HCC)在OLAP及OLTP场景中的测试

    作者:李敏,云和恩墨交付工程师. 2019年度 ACOUG活动启动啦!为了感恩和回馈一直支持社区工作的技术爱好者.会员.嘉宾和合作伙伴,2019年度,我们汇集了行业大咖最新的精彩主题跟大家分享,更有惊 ...

最新文章

  1. Oracle隐含参数:_allow_resetlogs_corruption
  2. 初识FPGA CLB之LUT实现逻辑函数
  3. 【国内首家!】阿里云专有云通过商用密码应用安全性评估
  4. IntelliJ IDEA16 热部署,解决每次修改java文件就得重启tomcat的问题
  5. sales status change in ERP
  6. JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...
  7. Php超出高度隐藏,html设置div最小高度,超出的自适应
  8. 眼下很多创业者之所以会创业失败
  9. vue+node全栈移动商城【4】-创建get、send接口,接收数据更新视图
  10. linux中 查看系统属性 与 可执行文件属性 的方法
  11. csv datatable 乱码 导出_C#将DataTable导出到csv文件
  12. 计算机网络技术基础第5版答案,计算机网络基础 (第5版)课后习题及答案.doc
  13. 到底什么叫作数据集成?
  14. 中英文标点符号的读法用法大全
  15. “一阶数字低通滤波器”原理推导(含仿真和代码实现)
  16. Keil MDK终于免费了,并且没有代码大小限制~
  17. 大型企业AD架构规划(三)
  18. 腾讯云服务器是独立IP吗?独立IP有什么好处?
  19. RV1109_RV1126 EVB开发板环境搭建及使用总结
  20. 轻量级Kubernetes之k3s:16:源码编译k3s

热门文章

  1. 操作系统实验一:进程管理
  2. jks bks 等的定义 如何将jks转化为bks的
  3. decode函数的作用
  4. php获取证书编号没有serialNumberHex只有serialNumber处理方法
  5. 安装和卸载 MS SQL Server 2012数据库
  6. MySQL遍历map_遍历Map的四种方法
  7. Tar打包 压缩与解压缩到指定目录的方法
  8. Docker Swarm学习教程【转载】
  9. Android开发应用案例——简易计算器(附完整源码)
  10. VSCode用Run code插件配置python环境(win10)