数据库系统中 OLTP和OLAP

2021年02月12日 446点热度 3人点赞 0条评论

数据库系统中 OLTP和OLAP

OLTP和OLAP系统表面上看都是数据库系统,但是这两种系统的功能和设计有着非常大的区别。

OLAP和OLTP

OLTP的基础就是我们通常所说的数据库系统,通常我们会假设OLTP系统会作为OLAP系统对数据进行分析的数据源来使用。

什么是OLTP?

OLTP(Online Transactional Processing) 是一类数据处理过程,通常关注于事务性数据任务的执行。OLTP的一次作业可以简单理解为数据库操作一次前后关联的几个Insert, Update和Delete命令的执行。OLTP系统通常会同时处理大量的作业,这种作业称为事务(transaction)。

OLTP举例:

  • 联网的银行系统
  • 在线图书购买
  • 机票预订
  • 发送短消息
  • 录入订单
  • 电话销售员录入电话寻访信息
  • 呼叫中心员工查看和更新用户信息

OLTP的特点

OLTP的事务通常只会执行有限的查询操作,例如银行转账任务只会包括转账双方账户信息的查询和显示,而不会对关心其他无关账户信息的状态和信息。这种特点其实是相对于OLAP系统的,OLAP系统通常会查询数据库的系统中大量的记录数据。例如银行的分行经理查询所有的客户资料,并做统计。特点如下:

  • 事务中只有少量数据的处理
  • 对数据进行索引
  • 有大量的使用用户
  • 频繁的查询,更新和插入
  • 即时处理

还有一些重要的特点需要提到,OLTP类的应用通常都要求有高可用性严格ACID。这主要是因为,这类系统常常会承担重要数据的处理任务,而且会有大量的用户进行操作。数据处理的性能,正确性,可靠性和一致性对于OLTP来说非常重要。

OLTP数据库系统:

  • Mysql
  • Oracle Database
  • Postgresql
  • MS SQL Server
  • IBM DB2

什么是OLAP?

OLAP系统全称是Online Analytical Processing System. 相对于OLTP系统,OLAP系统的数据库通常是用来存储历史数据,并且处理大型的数据集。用来对数据进行分析,从而从大量数据的分析中获得问题的答案。OLAP应用的主要任务是帮助人们从多种类,多维度的数据入手提取出有用的信息。

很多情况下,我们的BI系统和报表系统就可以看成是一个OLAP。上面的表格对于OLTP以及OLAP的区别已经做了比较详细的分析。未来的趋势,也许将会是OLTP和OLAP的融合。大数据的兴起,对于OLAP应用的要求越来越高。原来的ROLAP系统已经无法实现未来的需求。

在很多领域中,积累的数据量已经非常庞大,再加上未来IOT技术的发展和应用,数据的量会越来越庞大。OLTP和OLAP融合的HTAP

OLAP的特点

  • 通常只是大量的读取,写操作很少
  • 用户数量少,通常是业务经营和决策人员
  • 数据量大,TB-PB级别
  • 用于数据分析,计划,问题求解和决策制定。

OLAP的种类:ROLAP和MOLAP。这两种方式,一个是关系型OLAP,通常是实时的方式查询和得出结果。MOLAP是将数据分成不同的维度和调整,预先形成多维的Cube储存起来,以备查询和分析使用。

OLAP系统举例

  • Hadoop
  • Spark
  • Cognos
  • PowerBI
  • Elasticsearch
  • Redshift
  • Druid

Rocky

专注于IT前沿技术和方法论...

文章评论