OLTP与OLAP的区别分析

在看数据库相关的论文时,经常会看到这两个词:联机事务处理OLTP(Online Transaction Processing)和联机分析处理OLAP(Online Analysis Processing)。为了弄清这两者的联系与区别,去查找了相关的资料,现整理在这篇博客中,以供习惯阅读中文的读者参考。

英文参考链接如下:

OLTP是指通过信息系统、电脑网络及数据库,以在线交易的方式处理一般即时性的作业数据,和更早期传统数据库系统大量批量的作业方式并不相同。OLTP通常被运用于自动化的数据处理工作,如订单输入、金融业务…等反复性的日常性交易活动。

OLAP是一套以多维度方式分析数据,从而弹性地提供积存(Roll-up)、下钻(Drill-down)、和透视分析(pivot)等操作,呈现集成性决策信息的方法,多用于决策支持系统、商务智能或数据仓库。其主要的功能,在于方便大规模数据分析及统计计算,对决策提供参考和支持。

上面两段是维基百科中的解释,显得很不亲民。下面我们用举例子的方式来说明OLTP与OLAP二者的区别:

比如说你建立了一个在线的购物网站,后台数据库存储了用户信息,比如账号、地址、购物等级等等。

  1. 考虑第一种需求。你想去查看某个用户的购买信息,比如id=1的用户购买了多少产品,第一次购买时间是什么时候,购物车里有多少物品,你可能想要更新该用户的一些信息。这就需要你使用诸如SELECT、INSERT、UPDATE、DELETE的SQL语句,那么在这样的场景约束下,我们可以称它是OLTP的。

  2. 考虑第二种需求。你不关心每个用户的数据,你关心的是你的盈利和支出。比如,你想知道你今天的销售总额是多少,销售Top10的产品是哪些。这就涉及到数据的计算和分析处理,那么在这样的场景约束下,我们可以称它是OLAP的。

当然可以换成另外一种比喻方式:OLTP就相当于一个电话簿,或者是词典,你可以通过查找用户名或者单词从而知晓其电话或者单词含义,但是如果你想查到属于某个地区的电话号码有多少就需要扫描整个数据库表项了;OLAP就相当于一个账簿,能够清楚地看到每天的收入和支出,每一个物品交易的数量,但是如果想查找某个特定用户购买了哪些物品,就得扫面整个数据库表项了。

以上是两种比较形象化的描述,但不一定完全准确,只是为了给大家建立一个基本的区分概念。如果想进一步区分,可以参考以上给出的链接,多读一些内容。

归纳起来,可以这样说:OLTP用于处理许多小型的事务(transaction),衡量指标主要是吞吐量;OLAP用于数据分析和计算,衡量指标主要是响应时间。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值