OLAP 和 OLTP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • OLTP与OLAP的介绍
    • OLTP(on-line transaction processing):联机事务处理
    • OLAP(On-Line Analytical Processing):联机分析处理
    • 对比
  • OLAP 联机分析处理
    • 1. 什么是OLAP
    • 2.OLAP的核心概念
    • 3. OLAP和基本操作
      • 1 钻取(Drill-down)
      • 2 上卷(Roll-up)
      • 3 切片(Slice)
      • 4 切块(Dice)
      • 5 旋转(Pivot)
    • 4.OLAP的分类
    • 5. 在OLAP系统中,常使用分区技术、并行技术
      • 分区技术
      • 并行技术
      • 分开设计与优化
    • 在这里插入图片描述 6.常见OLAP引擎对比
    • 7.OLAP vs BI工具


OLTP与OLAP的介绍

数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

  • 通俗来讲的话就是:OLTP主要是面向传统的“增删改查”事务系统,数据大都是以实体对象模型来存储数据,并满足3NF(数据库第三范式),追求高并发场景下的快速响应。
  • 而OLAP是面向决策分析场景,采用维度建模思想构建模型,追求大规模聚合分析查询的性能表现。

在这里插入图片描述

OLTP(on-line transaction processing):联机事务处理

  • OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
  • OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
    在这里插入图片描述

OLAP(On-Line Analytical Processing):联机分析处理

  • OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
  • OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

在这里插入图片描述
在这里插入图片描述

对比

在这里插入图片描述

在这里插入图片描述

OLAP 联机分析处理

1. 什么是OLAP

  • OLAP 是 OnLine Analytical Processing 的缩写,即联机分析处理。
  • OLAP 对业务数据执行多维分析,并提供复杂计算、趋势分析和复杂数据建模的能力
  • OLAP 主要用于支持企业决策管理分析,是许多商务智能(BI)应用程序背后的技术。
  • OLAP 使最终用户可以对多个维度的数据进行即席分析,从而获取他们所需知识,以便更好地制定决策。
  • OLAP 技术已被定义为实现 “ 快速访问共享的多维信息 ” 的能力。

2.OLAP的核心概念

  • 立方体(Cube):由维度构建出来的多维空间,包含了所有要分析的基础数据,所有的聚合数据操作都在立方体上进行。这里所说的立方其实就是多维模型中间的事实表(Fact Table),它会引用所有相关维的维主键作为自身的联合主键,加上度量(Measure)和计算度量(Calculated Measure)就组成了立方的结构。

  • 维度(Dimension): 维度是描述与业务主题相关的一组属性,单个属性或属性集合可以构成一个维。如时间、地理位置、年龄和性别等都是维度。维度可以理解为立方体的一个轴。要注意的是有一个特殊的维度,即度量值维度。

  • 维的层次(Level of Dimension): 一个维往往可以具有多个层次,例如时间维度分为年、季度、月和日等层次,地区维可以是国家、地区、省、市等层次。这里的层次表示数据细化程度,对应概念分层。后面介绍的上卷操作就是由低层概念映射到高层概念。概念分层除了可以根据概念的全序和偏序关系确定外,还可以通过对数据进行离散化和分组实现。

  • 维的成员(Member of Dimension): 构成维度的基本单位,若维是多层次的,则不同的层次的取值构成一个维成员。部分维层次同样可以构成维度成员,例如“某年某季度”、“某季某月”等都可以是时间维的成员。

  • 度量(Measure): 表示事实在某一个维成员上的取值。度量是用于描述事件的数字尺度,例如开发部门汉族男性有39人,就表示在部门、民族、性别三个维度上,企业人数的事实度量。计算度量是通过度量计算得到的。

  • 事实表(Fact Table): 存放度量值的表,同时存放了维表的外键。所有的分析用的数据最终都是来自与事实表。

  • 维表(Dimension table): 一个维度对应一个或者多个维表。一个维度对应一个维表时数据的组织方式就是采用的星型模式,对应多个维表时就是采用雪花模式。雪花模式是对星型模式的规范化。简言之,维表是对维度的描述。

3. OLAP和基本操作

OLAP的操作是查询,也就是数据库的 SELECT 操作为主,但是查询可以很复杂,比如基于关系数据库的查询可以多表关联,可以使用COUNT、SUM、AVG 等聚合函数。OLAP 正是基于多维模型定义了一些常见的面向分析的操作类型是这些操作显得更加直观。

  • OLAP的多维分析操作包括:钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot),下面还是以数据立方体为例来逐一解释下:
    在这里插入图片描述

1 钻取(Drill-down)

在维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,

  • 比如通过对2010年第二季度的总销售数据进行钻取来查看第二季度4、5、6每个月的消费数据,
  • 如下图;当然也可以钻取北京市来查看朝阳区、海淀区、大兴……这些区的销售数据。

在这里插入图片描述

2 上卷(Roll-up)

钻取的逆操作,即从细粒度数据向高层的聚合,

  • 如将北京、上海和深圳的销售数据进行汇总来查看京沪深地区的销售数据,如下图。
    在这里插入图片描述

3 切片(Slice)

选择维中特定的值进行分析,比如只选择书籍产品的销售数据。

在这里插入图片描述

4 切块(Dice)

与切片类似,只是将单个特定值变成多个特定值,比如选择书籍和服装的销售数据。

在这里插入图片描述

5 旋转(Pivot)

即维的位置的互换,就像是二维表的行列转换,如图中通过旋转实现产品维和地域维的互换。

在这里插入图片描述

4.OLAP的分类

按数据存储方式(建模类型)分类,可分为 MOLAP、ROLAP、HOLAP等。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 在OLAP系统中,常使用分区技术、并行技术

分区技术

在OLAP系统中的重要性主要体现在数据库管理上,比如数据库加载,可以通过分区交换的方式实现,备份可以通过备份分区表空间实现,删除数据可以通过分区进行删除,至于分区在性能上的影响,它可以使得一些大表的扫描变得很快(只扫描单个分区)。另外,如果分区结合并行的话,也可以使得整个表的扫描会变得很快。总之,分区主要的功能是管理上的方便性,它并不能绝对保证查询性能的提高,有时候分区会带来性能上的提高,有时候会降低。

并行技术

除了与分区技术结合外,在Oracle 10g中,与RAC结合实现多节点的同时扫描,效果也非常不错,可把一个任务,如select的全表扫描,平均地分派到多个RAC的节点上去。
在OLAP系统中,不需要使用绑定(BIND)变量,因为整个系统的执行量很小,分析时间对于执行时间来说,可以忽略,而且可避免出现错误的执行计划。但是OLAP中可以大量使用位图索引,物化视图,对于大的事务,尽量寻求速度上的优化,没有必要像OLTP要求快速提交,甚至要刻意减慢执行的速度。
绑定变量真正的用途是在OLTP系统中,这个系统通常有这样的特点,用户并发数很大,用户的请求十分密集,并且这些请求的SQL 大多数是可以重复使用的。
对于OLAP系统来说,绝大多数时候数据库上运行着的是报表作业,执行基本上是聚合类的SQL 操作,比如group by,这时候,把优化器模式设置为all_rows是恰当的。 而对于一些分页操作比较多的网站类数据库,设置为first_rows会更好一些。 但有时候对于OLAP 系统,我们又有分页的情况下,我们可以考虑在每条SQL 中用hint。 如:
Select a.* from table a;

分开设计与优化

在设计上要特别注意,如在高可用的OLTP环境中,不要盲目地把OLAP的技术拿过来用。
如分区技术,假设不是大范围地使用分区关键字,而采用其它的字段作为where条件,那么,如果是本地索引,将不得不扫描多个索引,而性能变得更为低下。如果是全局索引,又失去分区的意义。
并行技术也是如此,一般在完成大型任务时才使用,如在实际生活中,翻译一本书,可以先安排多个人,每个人翻译不同的章节,这样可以提高翻译速度。如果只是翻译一页书,也去分配不同的人翻译不同的行,再组合起来,就没必要了,因为在分配工作的时间里,一个人或许早就翻译完了。
位图索引也是一样,如果用在OLTP环境中,很容易造成阻塞与死锁。但是,在OLAP环境中,可能会因为其特有的特性,提高OLAP的查询速度。MV也是基本一样,包括触发器等,在DML频繁的OLTP系统上,很容易成为瓶颈,甚至是Library Cache等待,而在OLAP环境上,则可能会因为使用恰当而提高查询速度。

在这里插入图片描述 6.常见OLAP引擎对比

在这里插入图片描述

7.OLAP vs BI工具

BI是Business Intelligence的英文缩写,中文解释为商务智能,是利用数据提高决策质量的技术集合,是从大量的数据中钻取信息与知识的过程。

OLAP和BI常常在一起出现,OLAP是BI工具的一种底层技术。BI工具通常可以对接OLAP系统,但不限于此,也可以直接与其他数据库、存储系统对接。在维度建模数据仓库中,OLAP/BI工具和数据仓库的关系则是这样

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOLIDWORKS在教育领域的应用

随着科技的飞速发展和数字化浪潮的推进,SOLIDWORKS作为一款强大的三维设计软件,其应用领域已经不仅局限于工程设计和制造行业,还逐渐渗透到教育领域中,成为培养学生实践能力和创新思维的重要工具。本文将探讨SOLIDWORKS在教育领域…

【JavaEE】_Spring MVC项目获取Cookie

目录 1. Cookie与Session基础知识 1.1 Cookie与Session的区别 2. 使用servlet原生方法获取Cookie 2.2 关于λ表达式遍历法的空指针问题 2.3 Cookie的伪造 3. 使用Spring注解获取Cookie 3.1 获取单个Cookie 3.2 获取多个Cookie 1. Cookie与Session基础知识 在本专栏HTT…

CICD流水线 发布公用jar到maven私仓

3.1 发布公用jar到Maven私仓 1.选择流水线 2.新建流水线 3.选择模版 4.选择代码仓库 5. 调整构建命令 6.新增一个新阶段为 ”发送通知“,这里以邮件通知为例,保存之后,运行该流水线,对应jar就会自动发到我们私仓,并之…

中药配方颗粒备案信息数据库<2.5W+备案>

中药配方颗粒备案信息是指中药配方颗粒生产企业向国家药品监督管理局申报备案的相关信息。备案信息包括中药配方颗粒的名称、备案号、备案时间、备案状态、生产企业、生产地址、规格、包装、执行标准、保质期、不良反应检测、备案省局等信息。 通过对中药配方颗粒备案信息的查…

【Linux】正则表达式实验操作实例

正则表达式是一种强大的工具,用于在文本中查找、匹配和替换特定的字符串模式。 实验目的 掌握正则表达式的表达方式掌握grep/egrep命令的用法掌握sed 命令的用法掌握awk命令的用法 正则表达式 实验目的实验内容实验过程创建grep文件来进行如下操作用sed命令完成下列…

春招-实战项目冲刺直播课

春招-实战项目冲刺直播课 CCtalk 丰富多元的综合内容平台-专业的知识分享与在线教育平台https://www.cctalk.com/m/group/91161801

蓝桥杯刷题-13-子矩阵-二维滑动窗口 ಥ_ಥ

给定一个 n m (n 行 m 列)的矩阵。 设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为 a b (a 行 b 列)的子矩阵的价值的和。 答案可能很大,你只需要输出答案对 998244353 取模后的结果。…

Redis 常见面试题

目录 1. Redis是什么?2. Redis优缺点?3. Redis为什么这么快?4. 既然Redis那么快,为什么不用它做主数据库,只用它做缓存?5. Redis的线程模型?6. Redis 采用单线程为什么还这么快?7. R…

Linux——静态库 共享库

1.库文件 1).库文件 库是一组预先编译好的方法的集合; Linux系统存储库的位置一般在/lib 和 /usr/lib (64位系统/usr/lib64) 库的头文件放在/usr/include 2).库的分类 静态库:libxxx.a(命名规则) 共享库:libxxx.so(命名规则) 3).准备文件: //add.c int add(int x,int y) { re…

vue结合Elempent-Plus/UI穿梭框更改宽度以及悬浮文本显示

由于分辨率不同会导致文本内容显示不全,如下所示: 因此需要 1、悬浮到对应行上出现悬浮信息 实现代码如下所示: 这里只演示Vue3版本代码,Vue2版本不再演示 区别就在插槽使用上Vue3使用:#default“”;Vu…

vitepress系列-04-规整sideBar左侧菜单导航

规整左侧菜单导航 新建navConfig.ts 文件用来管理左侧导航菜单: 将于其他的配置分开,避免config.mts太大 在config目录下,新建 sidebarModules文件目录用来左侧导航菜单 按模块进行分类: 在config下新建sidebarConfig.ts文件&…

【随笔】Git 高级篇 -- 整理提交记录(上)cherry-pick(十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

书生·浦语大模型 第二节:Demo实践

书生浦语大模型 第二节:Demo实践 视频链接:Demo实践视频 文档链接:教程文档 一、实践内容: 部署InternLM2-Chat-1.8B模型进行智能对话部署实战营优秀作品 八戒-Chat-1.8B 模型通过 InternLM2-Chat-7B 运行 Lagent 智能体 Demo…

C++分析程序各模块耗时-perf火焰图

C分析程序各模块耗时-perf火焰图 1. 简介2. 安装3. 测试示例4. 从火焰图可以获得的信息5. 生成火焰图常见问题 Reference: Perf Wiki【性能】perf 火焰图分析软件性能瓶颈【火焰图🔥】Linux C/C性能优化分析工具Perf使用教程 perf: Linux profiling with perform…

POLY - Survival Melee Weapons

一个轻便、有趣且灵活的低多边形资源包,非常适合原型设计或添加到低多边形世界中。超过50种近战武器、刀、斧、棍棒、棍棒等。 此套餐非常适合第三人称或自上而下的观看。 除此之外,资产还包括开发生存游戏可能需要的任何细节。 整个包是以多边形风格创建的,可以与其他多边…

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据…

消费增值:革新你的消费观念,让每一分钱都充满无限可能

你是否曾感叹,每次消费都如同流水般逝去,钱就这样无声无息地消失?今天,我要为你揭示一种革新性的消费观念——消费增值。这不仅仅满足你的日常需求,更能让你的每一分钱都如同种子般,在未来开出绚烂的花朵&a…

从细节讲解单轴测径仪系列!

摘要:单轴测径仪是从一个方向对产品外径进行在线检测的设备,应用于各种线缆电缆、橡胶塑料、金属管、纸管、丝等的生产线。 关键词:单轴测径仪,测径仪,在线测径仪 引言 在各种产品的生产线上,外径的测量通过使用测径仪已实现了高精…

聚焦行业技术云隆机械将莅临2024第13届生物发酵展

参展企业介绍 上海云隆机械有限公司本公司主要经营制造:板式杀菌系列、管式杀菌系列、CIP清洗系统、胶体磨系列、分散乳化机系列、容积式转子泵和高压均质机序列设备。承接设计:乳制品、果汁饮料、蜂产品、冰淇淋、调味品、矿泉水、纯净水等食品工程项目…

07 | Swoole 源码分析之 Channel 通道模块

原文首发链接:Swoole 源码分析之 Channel 通道模块 大家好,我是码农先森。 引言 通道,用于协程间通讯,支持多生产者协程和多消费者协程。底层自动实现了协程的切换和调度。 通道与 PHP 的 Array 类似,仅占用内存&am…