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)
图片 1

行使一个单身的数据仓库,而非是查询OLTP数据库直接解析。是以数量仓库可以根据走访的特性优化查询。上同样首讨论的积存索引结构,通常都适用于OLTP数据库,但切莫适用于OLAP系统。接下来我们来看望适用于OLAP系统的存储索引结构。

2.数据仓库

数据仓库,是一个单独的数据库,主要负责分析查询数据,而未会见影响OLTP操作。数据仓库中寓公司当各种OLTP系统的数据的才读副本。数据从OLTP数据库被提取(周期性的进展多少转储或连不断的创新),将领到的数码的布局转为易于分析的结构,然后加载到数据仓库。这样经过叫提取–变换–加载(Extract-Transform-Load)
图片 2

行使一个单独的数据仓库,而休是查询OLTP数据库直接解析。是因数量仓库可以根据走访的特点优化查询。上等同篇讨论的存储索引结构,通常都适用于OLTP数据库,但无适用于OLAP系统。接下来我们来看看适用于OLAP系统的积存索引结构。

3.面通往列的囤积

以典型的数据仓库中,表底布局通常十分富裕。事实表通常有超过一百排列,有时设置为几百排。而一般数据仓库的查询才看同涂鸦4要么5排列的查询。

多数底OLTP数据库,存储是面对向行的:一行之中的拥有值会连续存放。
可是,当一个OLAP的囤查询需要少数底列时(每行由100大多单列成),需要用数据由磁盘加载到内存中,并分析其,并过滤掉那些休符合所待条件的排列。这会招很多非必要之询问消耗。

  • 列存储
    面向列存储的合计好简短:不要将所有值从一行存储于合,而是以每个列被的具有值存储于共。如果每个列都存储在一个独立的文本被,那么查询才待读取和剖析查询中使的那些列,并且相同的列会更加便于压缩存储,这样便可以减大气之做事。
    图片 3

  • 列压缩
    一般列被的数目会冒出又,这虽大大适用于压缩策略。可以根据列被之多少,使用不同之抽技术。位图编码是数据仓库中的非常实用之回落技术:
    图片 4

  • 列排序

于排列存储着,存储行的顺序并无根本。最简单易行的哪怕是以它仍插入的一一排序,因为插入入一个新行只象征增加到每个列文件中。但是,选择逻辑顺序,可以带动来几乎接触好处。
(1)
排序之后的列是有序的,更利于稳定查询数据。(如:按照时间排序,查询有时刻段外发的多寡)
(2)
它促进压缩列。如果主排序列没有众差的价,那么当排序之后,它将时有发生不少再次的队。简单的编码压缩后,就足以大幅度的降落存储开销。

留神,对每个列进行独立排序是从未有过意义的,因为我们拿不再明亮列着属哪一行。可以新建一个追寻引来指向对应之行。有序而要求高速,所以排序列的蕴藏通常都是经过上文提及的SSTable格式在内存之中灵活处理。

3.面通向列的积存

在突出的数据仓库中,表的构造通常十分有钱。事实表通常有超过一百排,有时设置也几百排。而平常数据仓库的查询才看同一不成4或5排列的查询。

绝大多数底OLTP数据库,存储是当向行的:一行之中的有所值会连续存放。
然而,当一个OLAP的积存查询需要少数之列时(每行由100多个列成),需要以数据从磁盘加载到外存中,并分析其,并过滤掉那些未抱所急需条件的排。这会招致不少不必要之询问消耗。

  • 列存储
    面向列存储的构思很简单:不要拿所有值从一行存储于一块,而是用每个列被的有值存储于共同。如果每个列都存储在一个单身的文本中,那么查询才待读取和分析查询中使的那些列,并且相同的列会更加便于压缩存储,这样便可以减少大气的办事。
    图片 5

  • 列压缩
    一般列被的数目会起又,这就是大大适用于压缩策略。可以因列被之多少,使用不同之抽技术。位图编码是数据仓库中的深有效之回落技术:
    图片 6

  • 列排序

当列存储着,存储行的相继并无根本。最简单易行的哪怕是以它以插入的一一排序,因为插入入一个新行只表示增加到每个列文件中。但是,选择逻辑顺序,可以带动来几触及好处。
(1)
排序之后的列是有序的,更有益稳定查询数据。(如:按照时间排序,查询有时间段内发出的数据)
(2)
它助长压缩列。如果主排序列没有过多差的价值,那么当排序之后,它用发生很多再的队。简单的编码压缩后,就足以极大的暴跌存储开销。

留神,对每个列进行单独排序是尚未意思之,因为咱们以不再明亮列被属于哪一行。可以新建一个摸索引来指向对应的实行。有序而要求高速,所以排序列的储存通常还是透过上文提及的SSTable格式在内存之中灵活处理。

4.聚:物化视图

数据仓库另一个常用的优化措施是:物化视图。如前所述,数据仓库查询普通涉及聚合函数,如SQL中之计数、总和、平均值、最小值或太可怜价值。如果一致之成团被众异的询问利用,那么每次都对准原数据进行拍卖是非常荒废之。为什么未缓存查询中时常应用的片段计数或总数也?

每当关系型的数据模型中,它通常为定义也正式(虚拟)视图:一个说明一样的对象,其内容是有些查询的结果。虚拟视图只是编查询的快捷方式。当您从虚拟视图中读取时,SQL引擎将她进行也视图的最底层查询,然后处理进行的询问。而物化视图是以实际的查询结果写副磁盘,不需额外的算计过程。但是当脚数据发生变化时,物化视图需要创新,因为它是一个非规范化的多少复制。(类似于触发器的劳作规律)。所以物化视图是勿常用于OLTP数据库,而于数据仓库进行ETL时开展翻新。
图片 7

物化视图的功利是:好几查询变得十分抢为他们既深受优先计算。
不过物化视图的弱项是:询问原始数据的灵活性不足。
例如,没有艺术计算哪种销售成本超过100美元的货品的比例。因此,大多数数据仓库尽量保留尽可能多的原本数据,并且仅以物化视图作为对一些常用查询的性能提升。

4.集结:物化视图

数据仓库另一个常用之优化措施是:物化视图。如前所述,数据仓库查询普通涉及聚合函数,如SQL中的计数、总和、平均值、最小值或极充分价值。如果同样的集合被众多差之询问利用,那么每次都针对旧数据进行处理是格外荒废之。为什么不缓存查询中常使用的片段计数或总数为?

以关系型的数据模型中,它通常为定义为规范(虚拟)视图:一个表明一样的对象,其情节是部分查询的结果。虚拟视图只是编制查询的快捷方式。当你打虚拟视图中读取时,SQL引擎将它进行也视图的底色查询,然后处理进展的查询。而物化视图是拿实际的询问结果写副磁盘,不需要分外的计算过程。但是当脚数据发生变化时,物化视图需要更新,因为它们是一个非规范化的数额复制。(类似于触发器的干活原理)。所以物化视图是未常用于OLTP数据库,而在数据仓库进行ETL时展开创新。
图片 8

物化视图的益处是:某些查询变得要命急匆匆以他们早已被先行计算。
不过物化视图的弱点是:查询原始数据的油滑不足。
例如,没有艺术计算哪种销售基金超过100美元的货品之比例。因此,大多数数据仓库尽量保存尽可能多的初数据,并且就以物化视图作为对一些常用查询的性能提升。

小结:

梳理了OLAP与数据仓库的联系,同时总结了几乎栽在数据仓库种子常用之囤结构以及相应的优化措施。接下来,我们登下一致章节来看看编码在储存其中的意思。

小结:

梳理了OLAP与数据仓库的关联,同时总结了几乎种在数据仓库种子常用之囤结构以及相应的优化措施。接下来,我们进入下一样节来看望编码在存储其中的意思。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注