【记录】OLAP和OLTP

news2024/11/30 6:51:08

下面为提炼的重点内容,全部内容参考:OLAP和OLTP

OLAP和OLTP的不同设计要求

对于OLTP系统和OLAP系统有哪些不同的要求?要说清楚这个,首先需要分析一下这两个系统的关键特征。

对于OLTP系统来说,最重要的事情是:

  1. 使得大量的人能够同时执行数据库事务操作,QPS至关重要。
  2. 上面涉及到的事务操作应该非常简单,且一次请求只运行涉及一条或几条记录操作。
  3. OLTP系统必须确保整个交易链(涉及多个交易)被正确记录。 在OLTP系统中,我们将花费大量的时间来确保数据在我们的系统中是一致的。例如,我们不能接受这样的事实:客户已经把钱付给了银行,但订单却没有创建。付款要么与订单创建一起失败,要么与订单创建一起成功。
  4. 要求日常业务能得到闪电般的响应速度。

对于OLAP系统,有五个关键特征:

  1. 以商业分析为重点的多维数据模型。 这个模型应该足够大,以包含所有的历史数据,并且应该足够宽,以包含所有经常使用的字段。
  2. 以商业分析为重点的指标字段。 OLAP提供大多数指标应该来自于业务团队或Bl团队本身,而不是来自于交易记录的需要。例如,在OLTP系统中,我们可能不需要记录每个客户的第一次交易时间,但在OLAP系统中,这将是非常有用和重要的。
  3. 在所有情况下为所有用户提供一致的数据和计算。 OLAP系统从许多数据源获取数据,并专注于使同一查询的结果在所有情况下对所有用户一致。然而,OLTP不太关心不同条件下的查询一致性,而是更关心结果的准确性。例如,不同的人可以在不同的OLTP系统中查询"共有多少个菜品",而很可能他们每个人都会得到不同的结果。但是OLAP系统应该能够告诉他们每个人完全相同的答案,这个答案可能是复杂点的,类似于"在点菜系统中有20个,在财务系统中有13个",或者简单点,类似于"13个"。但是无论怎么查,他们都应该得到一样的答案。
  4. 更细化的权限管理。 OLAP系统比OLTP系统更关注权限管理。OLTP系统更倾向于使用功能级别的权限控制,也就是说,用户要么能使用这个功能,要么不能使用。然而在OLAP系统中,我们常常需要在数据表的行级和列级的基础上控制访问。
  5. 大数据量下的高速分析。 用户一般会在OLAP系统做复杂的查询,但这并不意味着用户会更有耐心。也许他们可以比那些OLTP系统的客户等得更久一点,但查询的复杂性和数据量也明显更高。不管是通过预聚合还是通过大规模的并行处理,OLAP系统应该始终保证用户能够尽快获得结果。

因此 ,在产品设计方面,OLTP支持的产品最终是交易处理系统,并且需要更多的考虑如何确保流畅的用户体验,以及如何吸引用户尽可能长时间的留在产品上。产品经理主要从功能层面考虑一致性问题,希望确保所有功能总能提供一致的服务。

然而,OLAP支持的产品需要更多地考虑如何控制访问,如何设计与其他实时系统的数据交互,如何在有一些突发事情需要处理时引导和提醒用户。这是因为OLAP支持的产品是分析处理系统,是被用来支持及时的,复杂的决策。

但这并不意味着OLTP系统设计完全不用花时间在访问控制或数据模型设计上。OLAP系统设计完全不花时间在用户体验和功能上,只是时间的分配比重不同。实际上,对于OLAP产品,如仪表盘和实时监控器,数据产品经理们也花了大量的时间来考虑如何使数据被用户更好地理解——因为OLTP产品更具有不可替代性,用户放弃一个设计不好的OLAP产品甚至比放弃一个OLTP产品来的更快。

OLAP的可视化

我知道这一切听起来很合理,但是仍然很难想象。

试试看将OLAP的数据表进行可视化,这样我们就可以更直观的理解OLAP数据模型中发生的事情。

请添加图片描述
OLAP立方体从各种上游中获取数据,而且很可能是实时系统。我们把它们整合起来,重新组织成一种完全不同的数据格式,我们把这种格式称为"OLAP"格式。

你可以看到,在关系数据库中,基本上是OLTP系统中的数据库,所有的东西都被隔离并且存储在不同的表中,这样,当你在事务性的基础上写进或者读出单行记录时,你可以达到最高的效率。

在游标,我们可以看到OLAP数据模型。当然,现实生活中的OLAP立方体要比这个复杂得多,但原理都是相同的。立方体的长度、高度和宽度是三个业务维度。这三个业务维度也可以根据不同的值进行分析下钻,或者根据其自身的层次结构进行汇总。

例如,如果你想检查第一季度通过航空运输从非洲发出的包裹数量。OLAP数据模型中你可以简单地检查左上角的那个小立方体。但在关系型数据库中,这将是异常噩梦。你至少需要连接三个表。当我们的分析越复杂,OLAP立方体就越有优势。就像如果问题是"与第二季度相比,从澳大利亚通过航空路线发出的包裹的增长情况如何?",基于OLTP表的设计将非常麻烦,但在立方体中就容易多了,这就是OLAP数据模型的魔力。

小结:什么时候使用OLAP

读者可能已经注意到,我们已经提到了OLAP系统比OLTP系统更适合的几个领域,但我们在这里重新总结一下。

如果你正在解决的问题涉及到以下任意一个方面,你可能需要一个OLAP解决方案。

1.如果你的应用程序包含相当敏感的数据和信息。 如果你的应用程序包含敏感的数据,并且计划分局不同的用户工作和不同的场景暴露给他们。

2.如果你的应用与历史数据高度相关, 并试图根据OLTP系统中不存在的指标来建立用户的洞察力。

3.如果与允许用户在当下实现事情或自动化交易过程相比,你的应用程序更关心的是帮助人们在未来做出复杂的决策。

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

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

相关文章

LIS系统字典模块功能

字典管理模块: 系统参数功能简介:集中设置系统使用过程中所需的参数值,一般由开发或实施人员进行设置。 标本管理功能简介:标本管理是对检验业务中涉及的检验标本类型进行初始化设置, …

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关?

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关? 在微服务架构中,服务之间的通信变得非常频繁和复杂。为了简化服务之间的通信和管理,很多企业都采用了 API 网关的架构模式。API 网关可以帮助我们统一处理服务的入口、路由…

【简单实用框架】【AddressablesMgr】【可移植】

☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…

提升您的 MQTT 云服务:深入探索 BYOC

引言 您是否希望将物联网基础设施提升到更高的水平?为了应对业务的不断扩展,您需要一个强大且安全的消息平台来支持它。 MQTT 协议凭借其轻量级、发布/订阅模型和可靠性,已经成为构建物联网平台的首选方案。但是,随着业务的增长…

​力扣解法汇总1110. 删点成林

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

Linux安装Redis数据库,实现远程连接

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 转发自cpolar内网穿透的文章:公网远程连接…

L-shape 方法

L-shape 方法是求解两阶段随机规划的一种常用方法,基本思想是利用切平面将第二阶段的反馈函数线性化,在构造切平面条件时有点类似 bender’s 方法。 注:这个图形中黑实线 Q ( x ) \mathcal{Q}(x) Q(x) 就是下面模型中的 L ( x ) \mathscr{L…

剑指 Offer 04. 二维数组中的查找解题思路

文章目录 标题解题思路优化 标题 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整…

ARM-伪操作

目录 协处理器指令 伪操作 安装交叉编译工具 Makefile 进入命令:vi ASM-ARM.s 宏定义 make之后查看ASM-ARM.dis反汇编文件 预编译指令 申请一个字的空间 .word 申请多个字节空间 嵌套编程 方式一:汇编跳转到C 方式二:C跳转到汇编 方式三&…

2023/5/30面试小结

一、本应会但并不会的题 1.用js写一个栈 class Stack {constructor() {this.items [];}// 添加元素到栈顶push(element) {this.items.push(element);}// 移除栈顶元素并返回pop() {return this.items.pop();}// 返回栈顶元素peak() {return this.items[this.items.length - …

HashMap有哪些线程安全的处理方式(面试题)

HashMap有哪些线程安全的处理方式&#xff08;面试题&#xff09; 概念1. synchronizedMap(Map<K,V> m)2. ConcurrentHashMapConcurrentHashMap Jdk1.7 vs Jdk1.8 概念 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作&#xff0c;并允许使用 null 值和 null…

数字孪生3D可视化技术在数字化水利行业中的应用

城市供水数字孪生系统是一种基于web3d开发和数字孪生技术构建的智能运维系统&#xff0c;它可以将实际设备与虚拟模型相结合&#xff0c;实现对城市供水系统的实时监测、预测和优化。 智慧供水系统是智慧水务建设的新目标与新高度&#xff0c;能够实现城市内部原水供水以及污水…

ASEMI单向可控硅BT169D参数,BT169D规格,BT169D大小

编辑-Z 单向可控硅BT169D参数&#xff1a; 型号&#xff1a;BT169D 断态重复峰值电压VDRM&#xff1a;600V 平均通电电流IT(AV)&#xff1a;0.6A R.M.S通电电流IT(RMS)&#xff1a;0.8A 通态浪涌电流ITSM&#xff1a;10A 平均栅极功耗PG(AV)&#xff1a;0.1W 峰值门功率…

Curl【实例 01】curl下载使用及cmd实例脚本分享(通过请求下载文件)

Curl 官方下载地址 可下载不同平台不同版本的安装包。 这里写目录标题 1.是什么1.1 curl1.2 bat和cmd 2.常用命令2.1 发送GET请求并显示响应头信息2.2 显示详细的请求和响应信息2.3 限制重定向次数2.4 带Json数据的Post请求发送2.5 带文件的Post请求发送2.6 使用代理服务器发送…

付费订阅故事难讲,腾讯音乐如何“过河”?

作者 | 艺馨 豆乳拿铁 排版 | Cathy 监制 | Yoda 出品 | 不二研究 腾讯音乐如何“过河”&#xff1f; 近日&#xff0c;腾讯音乐娱乐集团&#xff08;下称“腾讯音乐”&#xff0c;01698.HK&#xff09;公布了2022全年及2023年一季度财报。 腾讯音乐是一家提供在线音乐及…

使用 LangChain 和 Elasticsearch 的隐私优先 AI 搜索

作者&#xff1a;Dave Erickson 在过去的几个周末里&#xff0c;我一直在 “即时工程” 的迷人世界中度过&#xff0c;并了解像 Elasticsearch 这样的矢量数据库如何通过充当长期记忆和语义知识存储来增强像 ChatGPT 这样的大型语言模型 (LLM)。 然而&#xff0c;让我和许多其他…

波奇学STL:String入门和迭代器

目录 ​编辑 Constructor/Destructor/Operator Constructor:构造函数 Iterator:迭代器 begin()/end():迭代器像指针一样访问问函数 个人对迭代器的理解 rbegin()/rend():迭代器反向移动 除了用迭代器访问元素外string类还可以[]下标 Capacity:容量&#xff1f; s.siz…

Hystrix入门使用 服务熔断 服务降级 服务雪崩

一、概念 hystrix停止更新&#xff0c;理念优秀。 分布式系统面临的问题: 对于复杂的分布式体系&#xff0c;有数十个依赖&#xff0c;依赖不可避免的错误。 服务会出现雪崩&#xff0c;高可用受到破坏。 Hystrix就是用于解决分布式系统延迟和容错的开源库。 保证在一个依赖出…

Python五彩气球

文章目录 前言Turtle基础1.1 Turtle画板1.2 Turtle画笔1.3 Turtle画图1.4 Turtle填色1.5 Turtle写字 五彩气球气球类漂浮函数气球函数六一祝福 尾声 前言 六一要来啦&#xff0c;快来领取博主精心准备的五彩气球吧&#xff01; Turtle基础 小海龟(Turtle)是Python中画图的一…

SpringBatch历史数据的清理方案及实现

SpringBatch历史数据的清理方案及实现 需求背景 SpringBatch的程序已经运行了将近一年&#xff0c;数据量已经达到了一定的数据量级别。 对SpringBatch历史数据的清理也被提上日程。 但是SpringBatch的代码中似乎没有找到清理历史数据的代码&#xff0c;在官方文档中也没有…