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与数据仓库的联系,同时总结了几种在数据仓库种子常用之囤结构以及相应的优化措施。接下来,我们上下一致章节来探望编码在囤其中的意义。

相关文章

发表评论

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