OLTP和OLAP对比

1. OLTP / OLAP

根据业务处理不同把数据库分为两类:联机事务处理系统(OLTP)、联机分析处理系统(OLAP)。

2. OLTP

OLTP(Online Transaction Processing System),联机事务处理系统。
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,比如像 ERP、OA、CRM 等等,这些业务系统主要是管理企业的基本业务流程,对数据的处理方式主要是以增、删、改为主,也有查询,但查询的SQL的结构相对比较简单。通常此类系统中的数据都是以实体对象模型来存储数据,并满足3NF(数据库第三范式)。

OLTP的特点
  • 实时性要求高。
  • 数据量不是很大(TB以下)。
  • 并发性要求高并且严格地要求事务的完整性和安全性。

3. OLAP

OLAP(Online Analytical Processing System),联机分析处理系统。
OLAP侧重决策支持,并且提供直观易懂的查询结果。典型的应用就是复杂的动态的报表系统。

OLAP的特点
  • 实时性要求不是很高,很多应用顶多是每天更新一下数据。
  • 数据量大,因为0LAP支持的是动态查询,所以用户也许要通过将很多数据的统计后才能得到想要知道的信息,一般都是TB起。

4. OLTP和OLAP的关系

  1. 在底层数据处理层面,OLTP以SQL增删改处理为主,只对数据库做较少的读写操作;OLAP以复杂的SQL查询操作为主,处理的时间会很长。
  2. 数据来源层面,OLTP 的数据来源就是它们前端的应用,就是B/S架构或者C/S架构的 B Browser 浏览器或者 C Client,就理解为用户在各种系统上录入数据就可以了。
  3. OLTP数据处理的时间相对较短,增、删、改操作,侧重于对用户操作的快速响应,就像在页面上点击一个提交案例、下一步操作等等;但是OLAP数据处理的时间可能就会很长,比如一个大查询可能查询的数据量非常长,相对增删改时间周期会拉的更长一些,取决于OLAP数据结构的规范性以及返回数据量的大小。
  4. OLTP系统在底层数据库的设计上通常采用3NF设计方式,避免数据冗余,很适合频繁的增删改操作;OLAP系统主要是面向分析型应用准备的,因此在底层数据库即数据仓库的设计上通常会采用反三范式的方式,比如Kimball 的维度建模方式,刻意的保留数据冗余,很适合分析查询操作。当然,在OLAP系统底层数据仓库的架构中也有采用3NF建模的,主要目的是为了统一业务数据标准,但真正面向分析服务的时候还是会在3NF的基础上再构建一套反三范式的Kimball星型模型或者雪花型模型的数据架构。

这两类系统在数据库的设计上是如此不同,甚至有些地方的设计貌似是相悖的。比如0LTP系统强调数据库的内存效率,强调内存各种指标的命中率,强凋绑定变量,强调并发操作;0LAP系统则强调数据分析,强调SQL执行时长,强调磁盘IO,强调分区等。

因为这些区别,在数据库设计的阶段,弄清楚数据库类型是至关重要的,只有在这个前提之下,才能够讨论数据库的具体设计,否则设计必然是盲目的,或者说设计出来的数据库可能造成瘫痪,系统资源严重被使用,系统过负荷运行,或者造成严重的等待事件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值