数据分析之OLTP vs OLAP

news2025/6/9 2:25:58

数据处理系统主要有两种基本方法:一种注重数据操作(增删查改),另一种注重商业智能数据分析。

这两种系统是:

  • 联机事务处理(OLTP)

  • 联机分析处理(OLAP)

Power BI专为与OLAP系统兼容而构建,并未针对 OLTP 系统进行优化。

Image

OLTP:联机事务处理

Image

OLTP(Online Transaction Processing)是一种实时处理数据的方式,主要用于支持日常的业务操作,比如如 ATM 提款、电子商务订单、在线银行活动、短信和账户更新等各种日常操作等。它的特点是事务性,即每次操作都是一个独立的事务,需要保证数据的准确性、完整性和一致性。

特点:

  • 实时性:数据处理是实时的,用户操作后立即得到反馈。

  • 事务性:每个操作都是一个事务,需要保证数据的完整性和一致性。

  • 高频操作:通常涉及大量的、频繁的读写操作。

举例:

想象一下你在超市买东西,当你在收银台结账时,收银员扫描商品条形码,系统会实时更新库存数量,同时记录你的购买信息,生成订单。这个过程就是OLTP。每次扫描商品和更新库存都是一个独立的事务,必须保证准确无误。如果库存数量没有正确更新,或者订单信息记录错误,就会影响后续的业务操作。

OLTP工具:

  • 常见的OLTP关系型数据库:Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL等

  • 常见的OLTP分布式数据库:OceanBase、Cassandra、TiDB、Amazon Aurora等

Image

OLAP:联机分析处理

Image

OLAP(Online Analytical Processing)是一种多维数据分析方式,主要用于从大量数据中进行数据挖掘提取有价值的信息,帮助决策者进行数据分析和决策。它的特点是擅长以极高的速度(以毫秒为单位)对大量数据进行多维度分析,可以对数据进行各种复杂的查询和统计。

特点:

  • 多维度分析:可以从多个角度(如时间、地点、商品类别等)对数据进行分析。

  • 复杂查询:支持复杂的查询和统计,比如求和、平均值、最大值等。

  • 决策支持:帮助决策者从大量数据中提取有价值的信息,支持决策。

通常,OLAP 系统从 OLTP 系统存储的存储库中处理和检索数据。许多企业依赖 OLAP 进行财务分析、预测、预算编制、报告、市场营销和销售优化以及决策。

举例:

假设你是超市的老板,你想了解过去一年哪些商品的销售额最高,或者不同季节的销售趋势如何。这时候,你需要对销售数据进行分析。你可以从多个维度来查看数据,比如按商品类别、按月份、按地区等。这种分析过程就是OLAP。通过OLAP,你可以发现哪些商品在哪个季节卖得最好,从而调整库存和促销策略。

OLAP工具:

  • 常用的OLAP商业智能分析工具:如Power BI、Tableau、SAP BW/HANA、Excel等。

  • 常用的OLAP数据库管理系统工具:如Microsoft SQL Server Analysis Services(SSAS)、Oracle OLAP、ClickHouse、Druid等。

    Image

    OLTP VS OLAP

    Image

    如我们所见,OLTP 是操作性的,而 OLAP 是信息性的。通过下面表格,大家可以一目了然看出OLTP和OLAP的异同:

    特征

    OLTP

    OLAP

    处理

    处理大量小事务

    处理大量复杂查询的数据

    查询类型

    简单标准化查询

    复杂查询

    操作

    基于 INSERT、UPDATE、DELETE 命令

    基于 SELECT 命令以聚合数据进行报告

    响应时间

    毫秒

    根据处理的数据量,可能为秒、分钟或小时

    设计

    行业特定,如零售、制造或银行

    主题特定,如销售、库存或市场营销

    来源

    事务

    来自事务的聚合数据

    目的

    实时控制和运行基本业务操作

    规划、解决问题、支持决策、发现隐藏的洞察

    数据更新

    用户发起的短小快速更新

    数据通过计划的长时间批处理作业定期刷新

    空间需求

    如果历史数据被归档,通常较小

    由于聚合大量数据集,通常较大

    备份和恢复

    需要定期备份以确保业务连续性并满足法律和治理要求

    丢失的数据可以根据需要从 OLTP 数据库重新加载,以替代常规备份

    生产力

    提高最终用户的生产力

    提高业务经理、数据分析师和高管的生产力

    数据视图

    列出日常业务事务

    企业数据的多维视图

    数据库设计

    为效率而规范化的数据库

    为分析而非规范化的数据库

今天的分享结束,感谢大家的持续订阅和关注。

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

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

相关文章

dvwa5——File Upload

LOW 在dvwa里建一个testd2.php文件,写入一句话木马,密码password antsword连接 直接上传testd2.php文件,上传成功 MEDIUM 查看源码,发现这一关只能提交jpg和png格式的文件 把testd2.php的后缀改成jpg,上传时用bp抓包…

【优选算法】C++滑动窗口

1、长度最小的子数组 思路&#xff1a; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 滑动窗口// 1.left0,right0// 2.进窗口( nums[right])// 3.判断// 出窗口// (4.更新结果)// 总和大于等于 target 的长度最小的 子数组…

关于GitHub action云编译openwrt

特别声明:此教程仅你有成功离线编译的经验后,使用下列教程更佳 不建议没有任何成功经验的人进行云编译 1、准备工作 使用GitHub云编译模板 GitHub - jxjxcw/build_openwrt: 利用Actions在线云编译openwrt固件,适合官方源码,lede,lienol和immortalwrt源码,支持X86,电…

sql入门语句-案例

Sql入门 数据库、数据表、数据的关系介绍 数据库 用于存储和管理数据的仓库 一个库中可以包含多个数据表 数据表 数据库最重要的组成部分之一 它由纵向的列和横向的行组成(类似excel表格) 可以指定列名、数据类型、约束等 一个表中可以存储多条数据 数据 想要永久化存储…

A Survey on the Memory Mechanism of Large Language Model based Agents

目录 摘要Abstract1. LLM-Based Agent的Memory1.1 基础概念1.2 用于解释Memory的例子1.3 智能体记忆的定义1.3.1 狭义定义(肯定不用这个定义)1.3.2 广义定义 1.4 记忆协助下智能体与环境的交互过程1.4.1 记忆写入1.4.2 记忆管理1.4.3 记忆读取1.4.4 总过程 2. 如何实现智能体记…

华为OD机试 - 猴子吃桃 - 二分查找(Java 2025 B卷 200分)

public class Test14 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String[] s = sc.nextLine().split(" ");int[] arr = new int[s.length-1];int count = Integer.parseInt(s[s

【设计模式-5】设计模式的总结

说明&#xff1a;介绍完所有的设计模式&#xff0c;本文做一下总结 设计模式介绍 博主写的设计模式博客如下&#xff1a; 【设计模式-1】UML和设计原则 【设计模式-2.1】创建型——单例模式 【设计模式-2.2】创建型——简单工厂和工厂模式 【设计模式-2.3】创建型——原型…

【无人机】无人机UAV、穿越机FPV的概念介绍,机型与工具,证书与规定

【无人机】无人机UAV、穿越机FPV的概念介绍&#xff0c;机型与工具&#xff0c;证书与规定 文章目录 1、无人机的定义、概念、技术栈1.1 无人机的概念1.2 无人机技术&#xff08;飞控&#xff0c;动力&#xff0c;通信&#xff09; 2、无人机机型2.1 DJI无人机 &#xff08;航拍…

链表好题-多种实现

143. 重排链表 - 力扣&#xff08;LeetCode&#xff09; 这道题非常经典&#xff0c;很多大厂都作为面试题。 方法一&#xff1a;寻找中点翻转链表合并链表 class Solution { public:void reorderList(ListNode* head) {if (head nullptr) {return;}ListNode* mid middleNo…

oracle数据恢复—oracle数据库执行truncate命令后的怎么恢复数据?

oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下&#xff0c;oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况&#xff0c;例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致…

OneNet + openssl + MTLL

1.OneNet 使用的教程 1.在网络上搜索onenet&#xff0c;注册并且登录账号。 2.产品服务-----物联网服务平台立即体验 3.在底下找到立即体验进去 4.产品开发------创建产品 5.关键是选择MQTT&#xff0c;其他的内容自己填写 6.这里产品以及开发完成&#xff0c;接下来就是添加设…

分享两个日常办公软件:uTools、PixPin

1. uTools 网址&#xff1a;https://u.tools/ 这是一个高效智能的在线工具平台。 特点&#xff1a; 专为提升用户的工作效率跟生活便利性设计。 优点&#xff1a; 1&#xff1a;由国内团队开发。 2&#xff1a;通过插件化的方式为用户提供多样化的功能支持。 3&#xf…

Golang基础学习

​​​​​​​​​​ 初见golang语法 go项目路径 cd $GOPATH //ls可以看到有bin,pkg,src三个文件 cd src/ mkdir GolangStudy cd GolangStudy mkdir firstGolanggo程序执行: go run hello.go//如果想分两步执行: go build hello.go ./hello导入包的方式 import "f…

Spark 之 DataFrame 开发

foreachPartition val data = spark.sparkContext.parallelize(1 to 100)// 使用 foreachPartition 批量处理分区 data.foreachPartition {partitionIterator =

嵌入式学习笔记 - freeRTOS xTaskResumeAll( )函数解析

第一部分 移除挂起等待列表中的任务 while( listLIST_IS_EMPTY( &xPendingReadyList ) pdFALSE )//循环寻找直到为空&#xff0c;把全部任务扫描一遍 { pxTCB ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingR…

机器学习KNN算法全解析:从原理到实战

大家好&#xff01;今天我们来聊聊机器学习中的"懒人算法"——KNN&#xff08;K-Nearest Neighbors&#xff0c;K近邻&#xff09;算法。这个算法就像个"墙头草"&#xff0c;它不学习模型参数&#xff0c;而是直接根据邻居的"投票"来做决策&…

【QT】自定义QWidget标题栏,可拖拽(拖拽时窗体变为normal大小),可最小/大化、关闭(图文详情)

目录 0.背景 1.详细实现 思路简介 .h文件 .cpp文件 0.背景 Qt Linux&#xff1b;项目遇到问题&#xff0c;解决后特此记录 项目需要&#xff0c;个性化的标题栏&#xff08;是个widget&#xff09;&#xff0c;在传统的三个按钮&#xff08;最大化、最小化、关闭&#xf…

FPGA定点和浮点数学运算-实例对比

在创建 RTL 示例时&#xff0c;经常使用 VHDL 2008 附带的 VHDL 包。它提供了出色的功能&#xff0c;可以高效地处理定点数&#xff0c;当然&#xff0c;它们也是可综合的。该包的一些优点包括&#xff1a; 有符号和无符号&#xff08;后缀和后缀&#xff09;定点向量。轻松将定…

Linux编程:2、进程基础知识

一、进程基本概念 1、进程与程序的区别 程序&#xff1a;静态的可执行文件&#xff08;如电脑中的vs2022安装程序&#xff09;。进程&#xff1a;程序的动态执行过程&#xff08;如启动后的vs2022实例&#xff09;&#xff0c;是操作系统分配资源的单位&#xff08;如 CPU 时…

Cursor Rules 使用

前言 最近在使用 Cursor 进行编程辅助时&#xff0c;发现 AI 生成的代码风格和当前的代码风格大相径庭。而且有时它会输出很奇怪的代码&#xff0c;总是不符合预期。 遂引出本篇&#xff0c;介绍一下 Rules &#xff0c;它就可以做一些规范约束之类的事情。 什么是 Cursor R…