专栏名称: 狗厂
目录
相关文章推荐
51好读  ›  专栏  ›  狗厂

数据库从0到0.1 (二): OLTP VS OLAP VS HTAP

狗厂  · 掘金  ·  · 2018-05-30 02:46

正文

数据库从0到0.1 (二): OLTP VS OLAP VS HTAP


作者: 康凯森

日期: 2018-05-27

分类: 数据库


OLTP是Online Transaction Processing的简称;OLAP是OnLine Analytical Processing的简称;HTAP是Hybrid Transactional/Analytical Processing的简称。Transaction是指形成一个逻辑单元,不可分割的一组读,写操作;Online一般指查询延迟在秒级或毫秒级,可以实现交互式查询。

OLTP的查询一般只会访问少量的记录,且大多时候都会利用索引。在线的面向终端用户直接使用的Web应用:金融,博客,评论,电商等系统的查询都是OLTP查询,比如最常见的基于主键的CRUD操作。

OLAP的查询一般需要Scan大量数据,大多时候只访问部分列,聚合的需求(Sum,Count,Max,Min等)会多于明细的需求(查询原始的明细数据)。 OLAP的典型查询一般像:现在各种应用在年末会发布的大数据分析和统计应用,比如2017豆瓣读书报告,2017豆瓣读书榜单,网易云音乐2017听歌报告; OLAP在企业中的一个重要应用就是BI分析,比如2017年最畅销的手机品牌Top5;哪类人群最喜欢小米或华为手机等等。

《Designing-Data-Intensive-Applications》一书指出的OLTP和OLAP的主要区别如下:

OLAP vs OLTP

在CMU-CS 15-415的课程中对OLAP和OLTP这样介绍:

OLTP

OLAP

在《An Overview of Data Warehousing and OLAP Technology》论文中对OLAP和OLTP这样介绍:

OLTP的特点:

  • 专门用来做日常的,基本的操作
  • 任务由短的,原子的,隔离的事务组成
  • 处理的数据量在G级别
  • 重视一致性和可恢复性
  • 事务的吞吐量是关键性能指标
  • 最小化并发冲突

OLAP的特点:

  • 专门用来做决策支持
  • 历史的,总结的,统一的数据比具体的,独立的数据更重要
  • 侧重于查询
  • 查询吞吐量和相应时间是关键性能指标

通过前面对OLTP和OLAP特点的介绍,大家对OLTP和OLAP应该有了感性的认识。

最开始的时候,数据量比较小,所以数据库可以用来同时做OLTP和OLAP查询的,比如Mysql,如果数据比较小的话,Mysql的OLAP查询性能也是可以满足需求的。但是随着数据量越来越大,大概在1990年代,业界开始用单独的数据库来满足OLAP需求,并把这种专门满足OLAP需求的数据库称之为数据仓库(Data Warehousing)。这样做的原因是为了保证在线OLTP业务的稳定性,不让复杂的OLAP查询线上业务的稳定性和性能。

Data Warehousing是所有决策支持技术的集合,目标是让行政管理人员,分析人员做出更好,更快的决策;Data Warehousing是主题相关的,完整的,时间变化的,稳定的数据集合,被用来作为组织制定决策的主要依据。Data Warehousing一般是公司各个OLTP系统数据的只读Copy, 数据一般会从各个OLTP数据库中抽取(Extract)出来,进行数据清理,并转换(Transform)为对OLAP更友好的数据格式,最终导入(Load)进Data Warehousing中。 这就是所谓的Extract–Transform–Load (ETL)过程,下图是个示例。 目前业界使用最广泛的Data Warehousing应该都是基于Hive构建的。







请到「今天看啥」查看全文