当前位置: 首页 > news >正文

OLTP数据库OLAP数据仓库

OLTP数据库就是我们常说的事务性数据库,像MySQL,Oracle等事务性数据库就属于OLTP数据库,主要的场景是需要实时处理数据,对数据的增删改查多,并且对延迟性要求高。

OLAP数据库:数据分析统计数据库,我们说的离线数仓就是属于OLAP数据库,OLAP数据库处理的数据量大,主要是面向决策分析,高吞吐量,有延迟。

功能数据库(OLTP)数据仓库(OLAP)
数据范围当前状态数据存储完整,反应历史变化的数据
数据变化支持频繁的增删改查可增加,查询,无更新,删除操作
应用场景面向业务交易流程面向分析,侧重决策分析
处理数据量小批次,频繁,高并发,低延迟大批量,非频繁,高吞吐,有延迟
设计理论三范式,避免数据冗余反范式,适当数据冗余
建模方式ER实体关系建模范式建模+维度建模

一,数据范围的区别

OLTP数据库主要存储业务结果状态(如订单状态,用户余额)。像用户页面浏览,用户浏览了哪个页面,在哪个页面上停留多久...... 这些无业务强相关的数据OLTP数据库不会存储,OLTP数据库存储的一个状态,比如说用户浏览,它可能只记录了用户在线,用户退出,记录用户下线。

OLTP的存储的数据范围不利于我们做数据分析。站在数据分析的角度而言,用户的浏览路径,用户的页面浏览时长等等,这些数据为我们决策分析提供数据支持,所以我们的OLAP数据仓库存储完整的,能够反映历史变化的数据。

二,数据变化形式

OLTP数据库是业务数据库系统,用户会频繁的跟OLTP数据库交互,用户会进行正常的业务行为,业务行为就包含了数据的增删改查,所以数据库需要频繁的处理数据的增删改查。

OLAP数据仓库主要是追加和批量写入,不允许对历史明细数据进行物理删除或者直接更新,对于历史数据,通常采用缓慢变化维度(SCD)策略,如新增一个字段或者新增一个数据行来处理变化,不直接进行物理删除或直接覆盖。

三,应用场景

OLTP数据库,这个其实上面已经有提过,OLTP是一个业务数据库,它主要的场景就是面向业务过程中业务行为。假设是电商项目,那么用户的下单,加购,支付等业务行为就是一个交易流程,这些记录我们需要记录。

OLAP数据仓库,主要用于数据分析,决策分析。OLAP数据仓库为了支持数据的分析,上述存储完整,历史变化的数据就是为了给数据仓库做数据分析,为公司的决策层,业务层等提供数据支持。

四,处理的数据量

OLTP数据库中需要处理用户的业务数据,像下单的话,需要记录用户,商品,金额,时间等字段,这些数据存储在OLTP数据库中。所以OLTP的数据库处理的数据量小,但是频繁,并且是高并发式的,对于我们的延迟也有要求。

OLAP数据仓库中处理的数据, 各个OLTP数据库的数据 + 用户行为日志 的数据,所以对于OLAP数据仓库,数据是大批量的,非频繁的,高吞吐,并且允许一定的延迟。传统离线数仓(Hive/Spark批处理)延迟通常在小时级或天级;而实时数仓则另当别论。

五,设计理论和建模方式

OLTP数据库,这是事务型数据库,遵循高范式(通常是3NF)数据建模理论,使用ER实体关系模型来进行实现。我们还是以下单为例:

一个下单行为的数据分布在不同的表中,这种结构有效避免了数据的冗余,对于单表的数据维护和一致性有显著提升,得益于索引,OLTP的普通业务查询效率很高。

OLAP数据仓库,数据的高范式虽然可以减低数据的冗余度,但是对于多表关联的效率降低了,并且同一个业务过程中的存在多个中心点,下单可以关联商品表,用户表,但是商品表和用户表也可以再关联。所以,对于OLAP数据仓库场景,通常使用的是维度建模(星型/雪花/星座模型),只存在事实表和维度表。用空间换取时间,提高多表关联查询效率。

星型模型:一个事实表对应多个维度表,在OLAP数据仓库中,虽然数据存在冗余,但是大大提高的数据的关联效率。维度表存储客观的数据,基本稳定不变的数据,作为数据分析的角度。事实表存储业务过程中的客观事件。

星座模型:多个星型模型组合而成,多个事实表对应一张维度表。多个事实表共享一张维度表(一致性维度),这样可以实现跨主题(如销售+库存)的联合分析。

雪花模型:一个事实表关联一个维度表,维度表在关联维度表(跟高范式建模理论比较类似)。在大数据场景中,为了极致的查询性能,星型模型使用更普遍;雪花模型在传统的BI或对存储空间极度敏感的场景下仍有应用。

但是也不是绝对的,这还是需要根据数据仓库分层设置中每一层的作用来使用。像ODS层(贴源层),作为数据仓库的数据源,需要保持跟采集过来的数据一致,所以ODS层采用的也是ER模型。

OLTP数据库关注事务一致性(ACID),OLAP数据仓库关注查询响应(吞吐量)

http://www.jsqmd.com/news/1115622/

相关文章:

  • 专业解析:如何通过m4s-converter实现B站缓存视频的格式转换与永久保存
  • KMR221与PIC18F86J10的高精度电压检测系统设计
  • 免费大模型镜像真相:成本、合规与本地部署替代方案
  • AI编码时代核心难题:解密本地正常、线上必崩的隐性代码陷阱
  • 2026年西安改灯避坑:靠谱改灯要点与常见陷阱解析
  • STM32与TB9051FTG实现静音直流电机控制方案
  • MCreator 2026.1 Forge 1.20.1 踩坑:Gradle 同步失败与环境配置全解
  • 2026农户必看:海力冠生物刺激素最佳施用间隔指南
  • ICM-42688-P与STM32F429在机器人控制中的高效融合
  • AD74413R与PIC18F87J50高精度工业信号处理方案
  • 动物森友会存档修改终极指南:5分钟打造你的梦幻岛屿
  • 直流有刷电机驱动方案选型与优化实战
  • 嵌入式系统高精度电压管理方案设计与实现
  • 2026年6月选型观察:排盘时间校准误差怎么解决?2026年6月八字软件测评重点看真太阳时
  • 如何用VisualCppRedist AIO解决Windows DLL缺失问题:新手友好指南
  • 湖南评副高必须发论文吗?
  • Navicat Mac版无限试用终极指南:三种简单方法免费使用Navicat Premium
  • Python爬虫经典案例第55篇:在线文档平台爬取——Notion数据采集实战
  • STM32嵌入式条码识别系统设计与优化
  • AD74413R与PIC18F86J10在工业控制中的ADC/DAC集成方案
  • 一套可持续执行的做计划方法 适配日常多任务办公场景
  • 终极NHSE动物森友会存档编辑器完整指南:从入门到精通
  • Windows Cleaner:终极免费系统清理工具,快速解决C盘爆红问题
  • 如何用Python写一个简单的Web应用?
  • 4-20mA电流环与STM32L4的工业级电流检测方案
  • 家居建材门店存量运营技术方案:获客成本从200元降至5元的老客激活+转介绍闭环落地思路
  • 金融小样本情绪分类实战:从5条样本到交易室落地
  • AI代码审查的“最后一公里”难题(生产环境误报率压降至0.3%的工程化方案)
  • 互联网大厂Java面试实录:严肃面试官VS搞笑水货程序员谢飞机(电商场景技术点详解)
  • LV3296与PIC32MX664F064L的嵌入式条码扫描方案