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与数据仓库的维系,同时总结了几乎种在数据仓库种子常用之贮存结构与相应之优化措施。接下来,我们进下一样段来看望编码在蕴藏其中的意义。

相关文章

发表评论

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