数据库系统中 OLTP和OLAP
OLTP和OLAP系统表面上看都是数据库系统,但是这两种系统的功能和设计有着非常大的区别。
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
文章评论