OLAP以及数据仓库——《Designing Data-Intensive Applications》读书笔记4OLAP和数据仓库——《Designing Data-Intensive Applications》读书笔记4

出于第三章节的情比较多,这里我们拆分成稀首读书笔记来记录。上同一段我们聊了权什么数据库是哪实现存储和摸索的,今天立即首我们继承来看看OLTP与OLAP存储引擎的区分与联系。

由第三段的内容比较多,这里我们拆分成稀首读书笔记来记录。上亦然节我们姑且了权什么数据库是安促成存储和查找的,今天随即篇我们延续来探望OLTP与OLAP存储引擎的分别与沟通。

1.OLTP与OLAP

合事务处理过程(On-Line Transaction
Processing)也尽管是咱们一般称之的OLTP
同分析处理过程(On-Line Analysis
Processing)则为名OLAP

每当文中,作者列有了点儿看似处理过程的界别,我们来挨家挨户梳理一下:

  • OLTP的下普通读写于少之数额,处理的笔录数据也于小。而OLAP的利用处理的数据量级通常是OLTP应用的数十,甚至数百倍增。
  • OLTP的运普通直接对应用程序,读写延迟容忍度低。而OLAP的使普通作为里数据解析,作为决策支持,读写延迟的容忍度相对较高。(为此OLAP应用普通是颇数目解析的基础,笔者入职狼厂的单位,也至关重要从OLAP系统Palo的支付工作
  • OLTP的用普通读写的还是流行的数额。而OLAP的动一般处理的还是海量的史数据。

SQL语言它适用于OLTP类型的询问以及OLAP类型查询。但是以二者类型的运用混杂与同一个数据库,会大大升级DBA的运维难度,同时数据库也绝非办法因地制宜的还好来统筹优化不同的动。

OLTP系统便解决的凡应用程序高可用性和亚顺延的读写请求,往往是事情运行的关键所在。DBA也并无愿意受数据分析师在OLTP数据库及运行特殊的剖析查询,因为这些查询普通需要扫描数据集的多数,这会挫伤并发执行工作的性。
所以随着海量数据持续增强,越来越多之店堂选择将OLAP应用运行在一个独的数据库来分析。这个独自的数据库称为数据仓库

1.OLTP与OLAP

手拉手事务处理过程(On-Line Transaction
Processing)也就算是咱们便称之的OLTP
协办分析处理过程(On-Line Analysis
Processing)则给叫做OLAP

每当文中,作者列有了少数近乎处理过程的分别,我们来挨家挨户梳理一下:

  • OLTP的采用一般读写于少之数据,处理的记录数据也于小。而OLAP的运处理的数目量级通常是OLTP应用之数十,甚至数百倍增。
  • OLTP的下一般直接对应用程序,读写延迟容忍度低。而OLAP的应用一般作为里数据解析,作为决策支持,读写延迟的容忍度相对比高。(据此OLAP应用一般是可怜数量解析的木本,笔者入职狼厂的机构,也要从事OLAP系统Palo的开发工作
  • OLTP的采取一般读写的还是新型的数据。而OLAP的利用普通处理的还是海量的历史数据。

SQL语言它适用于OLTP类型的查询及OLAP类型查询。但是将两头类型的使混杂与同一个数据库,会大大提升DBA的运维难度,同时数据库也绝非办法因地制宜的重好来规划优化不同的利用。

OLTP系统便解决之是应用程序高可用性和没有顺延的读写请求,往往是工作运行的关键所在。DBA也并无愿意给数据分析师在OLTP数据库及运行特殊的剖析查询,因为这些查询普通用扫描数据集的多数,这会损害并发执行工作的特性。
所以随着海量数据持续增进,越来越多的店堂选择将OLAP应用运行在一个独自的数据库来分析。这个独自的数据库称为数据仓库

2.数据仓库

数据仓库,是一个独立的数据库,主要担负分析查询数据,而非见面影响OLTP操作。数据仓库中隐含公司于各种OLTP系统的多寡的但念副本。数据从OLTP数据库被取(周期性的展开数量转储或连不断的换代),将领到的数额的构造转为易于分析的组织,然后加载到数据仓库。这样经过叫提取–变换–加载(Extract-Transform-Load)
必威app 1

采用一个独自的数据仓库,而非是查询OLTP数据库直接解析。是以数量仓库可以根据访问的特点优化查询。上同样篇讨论的积存索引结构,通常都适用于OLTP数据库,但非适用于OLAP系统。接下来我们来探望适用于OLAP系统的蕴藏索引结构。

2.数据仓库

数据仓库,是一个单独的数据库,主要负责分析查询数据,而非会见影响OLTP操作。数据仓库中带有公司于各种OLTP系统的数目的光读副本。数据从OLTP数据库中领取(周期性的开展数量转储或持续不断的创新),将领到的数据的结构转为易于分析的构造,然后加载到数据仓库。这样经过叫提取–变换–加载(Extract-Transform-Load)
必威app 2

使一个独门的数据仓库,而非是查询OLTP数据库直接解析。是以数量仓库可以因访问的特点优化查询。上一致首讨论的仓储索引结构,通常还适用于OLTP数据库,但不适用于OLAP系统。接下来我们来探适用于OLAP系统的积存索引结构。

3.面通往列的囤积

当突出的数据仓库中,表底布局通常十分有钱。事实表通常有超过一百排,有时设置为几百列。而通常数据仓库的查询才看同次于4要5列的查询。

大部分之OLTP数据库,存储是给向行的:一行之中的装有值会连续存放。
可,当一个OLAP的存储查询需要少数的列时(每行由100差不多单列成),需要用数据从磁盘加载到外存中,并分析其,并过滤掉那些无切合所用条件的排列。这会招很多请勿必要的查询消耗。

  • 列存储
    面向列存储的琢磨很简单:不要拿所有值从一行存储于共,而是将每个列着之具备值存储在一块。如果每个列都存储于一个独门的文件被,那么查询才待读取和分析查询中采用的那些列,并且相同的列会更加便于压缩存储,这样就算足以削减大气的做事。
    必威app 3

  • 列压缩
    一般而言列被的多寡会油然而生重,这虽大妈适用于压缩策略。可以依据列着的数目,使用不同之削减技术。位图编码是数据仓库中的大得力之抽技术:
    必威app 4

  • 列排序

在列存储着,存储行的顺序并无重大。最简单易行的尽管是以它仍插入的一一排序,因为插入入一个新行只表示多至每个列文件被。但是,选择逻辑顺序,可以带来来几乎碰好处。
(1)
排序之后的列是有序的,更方便稳定查询数据。(如:按照时间排序,查询有时刻段外产生的数目)
(2)
它助长压缩列。如果主排序列没有过多差的价,那么当排序之后,它将生成百上千再次的行。简单的编码压缩后,就得大幅度的下跌存储开销。

专注,对每个列必威app进行单独排序是无意思之,因为我们拿不再明亮列着属哪一行。可以新建一个摸引来指向对应的尽。有序而要求迅速,所以排序列的储存通常都是经过上文提及的SSTable格式在内存之中灵活处理。

3.面往列的囤积

于突出的数据仓库中,表的结构通常十分有钱。事实表通常有超过一百排,有时设置也几百列。而普通数据仓库的查询才看同一不好4要么5列的查询。

多数之OLTP数据库,存储是冲向行的:一行之中的具有值会连续存放。
但是,当一个OLAP的蕴藏查询需要少数的列时(每行由100多只列成),需要拿数据由磁盘加载到外存中,并分析其,并过滤掉那些无符合所需要条件的排。这会招很多不必要之询问消耗。

  • 列存储
    面向列存储的琢磨好粗略:不要将所有值从一行存储在共,而是用每个列着之有值存储在一块。如果每个列都存储在一个独立的文书中,那么查询才需要读取和剖析查询中以的那些列,并且相同的列会更加爱压缩存储,这样就算足以削减大气的办事。
    必威app 5

  • 列压缩
    日常列被之数据会油然而生重,这即大妈适用于压缩策略。可以依据列被之数码,使用不同的减技术。位图编码是数据仓库中之异常使得的滑坡技术:
    必威app 6

  • 列排序

在列存储着,存储行的顺序并无根本。最简易的便是用她以插入的各个排序,因为插入入一个新行只代表增加到每个列文件中。但是,选择逻辑顺序,可以带来来几碰好处。
(1)
排序之后的列是有序的,更有益于稳定查询数据。(如:按照时间排序,查询有时间段内出的数码)
(2)
它有助于压缩列。如果主排序列没有过剩不比之价,那么当排序之后,它将时有发生那么些重的排。简单的编码压缩后,就得极大的低落存储开销。

小心,对每个列进行独立排序是从来不意义之,因为咱们将不再明亮列被属哪一行。可以新建一个搜索引来指向对应之执行。有序而要求迅速,所以排序列的贮存通常还是经过上文提及的SSTable格式在内存之中灵活处理。

4.汇:物化视图

数据仓库另一个常用之优化措施是:物化视图。如前所述,数据仓库查询普通涉及聚合函数,如SQL中之计数、总和、平均值、最小值或极端特别价值。如果相同的汇被许多两样之查询利用,那么每次都指向原有数据进行拍卖是颇荒废之。为什么未缓存查询中经常应用的片段计数或总数为?

以关系型的数据模型中,它便给定义也标准(虚拟)视图:一个申明一样的靶子,其内容是有的查询的结果。虚拟视图只是编辑查询的快捷方式。当您打虚拟视图中读取时,SQL引擎将它进行也视图的根查询,然后处理进行的查询。而物化视图是以实际的查询结果写副磁盘,不欲分外的测算过程。但是当脚数据发生变化时,物化视图需要创新,因为其是一个非规范化的数码复制。(类似于触发器的做事原理)。所以物化视图是休常用于OLTP数据库,而在数据仓库进行ETL时展开创新。
必威app 7

物化视图的补是:一些查询变得异常快以她们曾给事先计算。
可是物化视图的缺点是:询问原始数据的灵活性不足。
例如,没有辙计算哪种销售基金超过100美元的货物之比例。因此,大多数数据仓库尽量保存尽可能多之原数据,并且独自使物化视图作为对某些常用查询的习性提升。

4.集合:物化视图

数据仓库另一个常用之优化措施是:物化视图。如前所述,数据仓库查询普通涉及聚合函数,如SQL中的计数、总和、平均值、最小值或极可怜价值。如果同之集聚被广大不一的询问利用,那么每次都针对旧数据开展处理是那个浪费的。为什么非缓存查询中时时以的有的计数或总数也?

于关系型的数据模型中,它一般为定义为专业(虚拟)视图:一个阐明一样的对象,其情节是有查询的结果。虚拟视图只是编制查询的快捷方式。当您于虚拟视图中读取时,SQL引擎将她进行也视图的脚查询,然后处理进展的查询。而物化视图是用实际的查询结果写副磁盘,不待格外的计算过程。但是当脚数据发生变化时,物化视图需要创新,因为它们是一个非规范化的数额复制。(类似于触发器的行事规律)。所以物化视图是匪常用于OLTP数据库,而于数据仓库进行ETL时进行更新。
必威app 8

物化视图的功利是:好几查询变得死抢为她俩一度深受优先计算。
唯独物化视图的短处是:查询原始数据的油滑不足。
例如,没有办法计算哪种销售成本超100美元的货色的百分比。因此,大多数数据仓库尽量保存尽可能多的本来面目数据,并且就使用物化视图作为对一些常用询问的特性提升。

小结:

梳理了OLAP与数据仓库的联络,同时总结了几种于数据仓库种子常用的囤积结构与相应之优化措施。接下来,我们上下一致段来探望编码在蕴藏其中的义。

小结:

梳理了OLAP与数据仓库的牵连,同时总结了几种植在数据仓库种子常用之蕴藏结构以及相应的优化措施。接下来,我们进去下一样章节来探编码在储存其中的意义。

相关文章