当前位置:   article > 正文

OLTP与OLAP的关系是什么?_oltp与olap的区别与联系

oltp与olap的区别与联系

OLTP(on-line transaction processing)翻译为联机事务处理, OLAP(On-Line Analytical Processing)翻译为联机分析处理,从字面上来看OLTP是做事务处理,OLAP是做分析处理。从对数据库操作来看,OLTP主要是对数据的增删改,OLAP是对数据的查询。

再从应用上来看看OLTP与OLAP的区别。

OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高、稳定性强、确保数据及时更新成功,像公司常见的业务系统如ERP,CRM,OA等系统都属于OLTP。

当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就是在做OLAP了。

因为OLTP所产生的业务数据分散在不同的业务系统中,而OLAP往往需要将不同的业务数据集中到一起进行统一综合的分析,这时候就需要根据业务分析需求做对应的数据清洗后存储在数据仓库中,然后由数据仓库来统一提供OLAP分析。所以我们常说OLTP是数据库的应用,OLAP是数据仓库的应用,下面用一张图来简要对比。

https://pic1.zhimg.com/80/v2-e7a716b0a66831d791e4aa976a1ff891_720w.jpg?source=1940ef5c

所以OLAP和OLTP之间的关系可以认为OLAP是依赖于OLTP的,因为OLAP分析的数据都是由OLTP所产生的,也可以看作OLAP是OLTP的一种延展,一个让OLTP产生的数据发现价值的过程。

这里我们在多介绍一下OLAP

OLAP分析的分类:ROLAP与MOLAP

OLAP分析分为关系型联机分析处理(ROLAP)、多维联机分析处理(MOLAP)两种,他们的设计理念以及解决场景不一样,各有优劣。

以ROLAP为代表的有传统关系型数据库、MPP分布式数据库以及基于Hadoop的Spark/Impala,特点是能同时连接明细数据和汇总数据,实时根据用户提出的需求对数据进行计算后返回给用户,所以用户使用相对比较灵活,可以随意选择维度组合来进行实时计算。

正因为采用的实时计算技术,所以ROLAP的缺点也比较明显——当计算的数据量达到一定级别或并发数达到一定级别的时候,一定会出现性能问题(就好比如果领导一次性给你安排非常多的工作,你一个人是无法马上将所有事情做完答复领导的)。

以传统关系型数据库为代表的如Teradata、Oracle等,由于传统架构可扩展性较差,所以对硬件的要求非常高,当计算的数据量达到千万,亿级别时,数据库的计算就会出现延时,使得用户不能及时得到响应,更别提高并发了。

MPP分布式数据库(GreenPlum/GBase/Vertica)则解决了一部分可扩展性问题,对硬件设备的要求也稍稍下降了(还是有一定的硬件要求),在支持的数据体量(GB,TB级别)上有了很大的提升。当集群有几百、上千节点时,会出现性能瓶颈(增加再多节点,性能提升也不会很明显),扩容成本同样不菲。

基于Hadoop的Spark/Impala,则对部署硬件的要求很低(常见服务器即可,只是其主要依靠内存计算来缩短响应时间,所以对内存要求较高),在节点扩容上成本上相对较低,但当计算量达到一定级别或并发达到一定级别后,无法秒级响应,且容易出现内存溢出等问题。

以MOLAP分析为代表的有Cognos,SSAS,Kylin等,设计理念是预先将客户的需求计算好以结果的形式存下来(比如一张表分为10个维度,5个度量,那客户提出的需求会有2的10次方种可能,然后将这么多种可能提前计算好存储下来),当客户提出需求后,找到对应结果返回即可(好比你提前一天将领导明天会布置的任务先做好,明天领导布置对应任务后你直接告知他已做好),特点是当命中需求后返回非常快(所以MOLAP非常适合常见固定的分析场景),同等资源下支持的数据体量更大,支持的并发更多,不足则是当表的维度越多,越复杂,其所需的磁盘存储空间则越大,构建cube也需要一定的时间。

Cognos和SSAS是早期比较传统的产品,Cognos限制了Cube的大小(即限制了表的复杂度大小),而SSAS的cube则受限于单机的容量,即需要专用的服务器来进行存储。

Apache Kylin则是目前技术较为先进的一款成熟产品,也是第一个由中国人贡献给Apache社区的顶级开源项目,它基于hadoop框架,Cube以分片的形式存储在不同节点上,Cube大小不受服务器配置限制,所以具备很好的可扩展性和对服务器要求很低,在扩容成本上就非常低廉。另外为了控制整体Cube的大小,Kylin给客户提供了建模的能力,即用户可以根据自身需要,对模型种的维度以及维度组合进行预先的构建,把一些不需要的维度和组合筛选掉,从而达到降低维度的目的,减少磁盘空间的占用。

Kylin的企业版产品,即Kyligence的产品,除了在性能、功能上做了很多优化之外,稳定性上也做了很大提升,还提供了智能建模功能,在满足用户需求的前提下,很大程度上减小了磁盘空间的浪费。

综上而言,从可扩展性上看:Kylin=Impala/Spark>MPP数据库>传统数据库;从对硬件要求上看,传统数据库>MPP数据库>Impala/Spark>=Kylin;从响应效率上来看,不同的数据量、并发数,响应效率差别不一,但可以确定的是,要计算的数据量越大,并发的用户数越多,同等资源情况下预计算的响应效率会越发明显。

https://pic1.zhimg.com/80/v2-47557053cff252c3b1088205d0738d0e_720w.jpg?source=1940ef5c

https://pic1.zhimg.com/80/v2-bfc09c89f9c8713a8e57c0ab9489ead2_720w.jpg?source=1940ef5c

面试可能会遇到的一个题目。抓住定义的区别,关键不同和例子即可。**OLTP的定义 :OLTP是一个在线交易处理系统。**OLTP系统的主要是记录事务时的当前更新,插入和删除。 OLTP查询更简单,更短,因此需要更少的处理时间,也需要更少的空间。OLTP数据库经常更新。OLTP中的数据处理可能会在中间失败,这可能会影响数据完整性。因此,它必须特别注意数据完整性。OLTP数据库具有规范化表(3NF)。**OLTP系统的最佳示例是ATM,在该ATM中,我们通过做空交易来修改帐户状态。**OLTP系统成为OLAP的数据源。**OLAP的定义: OLAP是一个在线分析处理系统。**OLAP数据库存储OLTP输入的历史数据。它允许用户查看多维数据的不同摘要。使用OLAP,您可以从大型数据库中提取信息并进行分析以供决策。 OLAP还允许用户执行复杂的查询以提取多维数据。在OLTP中,即使数据处理在中间失败,也不会损害数据完整性,因为用户使用OLAP系统从大型数据库中检索数据进行分析。只需用户可以再次触发查询并提取数据进行分析。OLAP执行的任务很长,需要花费更多的时间进行处理,并且需要很大的空间。与OLTP相比,OLAP中的事务较少。甚至OLAP数据库中的表也可能不规范。OLAP的一些应用示例:查看财务报告,预算,营销管理,销售报告等。

https://pic4.zhimg.com/80/v2-b9019ed1809bd0371d550ba9f4dfc44f_720w.jpg?source=1940ef5c

**Difference Between OLTP and OLAP (with Comparison Chart) - Tech Differences**techdifferences.com

https://pic1.zhimg.com/v2-95befdb8dba3bbb671f02b8292eff0d8_ipico.jpg

https://pic4.zhimg.com/80/v2-133fde6ca0f346819bf60df88bafb558_720w.jpg?source=1940ef5c

**关键区别:**首先,在线分析处理(OLAP)是一类软件工具,可分析存储在数据库中的数据,而在线事务处理(OLTP)支持3层体系结构中面向事务的应用程序。其次,OLAP为所有类型的业务分析需求(包括计划,预算,预测和分析)创建了一个平台,而OLTP对管理组织的日常事务很有用。再者,OLAP的特点是数据量大,而OLTP的特点是大量的短时间在线交易。最后,在OLAP中,数据仓库是唯一创建的,因此它可以集成不同的数据源以构建统一的数据库,而OLTP使用传统的DBMS。


更新:

https://pic3.zhimg.com/80/v2-6f1cee757f509214e0038cffa71c02a7_720w.jpg?source=1940ef5c

https://pic1.zhimg.com/80/v2-1e0a87940430ca3adae75ae37837d2b0_720w.jpg?source=1940ef5c

https://pic1.zhimg.com/80/v2-50ff17126a40d3421b787a284872c189_720w.jpg?source=1940ef5c

**OLTP vs OLAP: What's the Difference?**www.guru99.com

https://pic2.zhimg.com/v2-db4cc587095bf3da0be20325fa124ca1_180x120.jpg

Example of OLAPAny Datawarehouse system is an OLAP system. Uses of OLAP are as follows

  • A company might compare their mobile phone sales in September with sales in October, then compare those results with another location that may be stored in a sperate database.
  • Amazon analyzes purchases by its customers to come up with a personalized homepage with products which likely interest to their customer.

Example of OLTP systemAn example of an OLTP system is the ATM center. Assume that a couple has a joint account with a bank. One day both simultaneously reach different ATM centers at precisely the same time and want to withdraw the total amount present in their bank account.However, the person that completes the authentication process first will be able to get money. In this case, the OLTP system makes sure that the withdrawn amount will be never more than the amount present in the bank. The key to note here is that OLTP systems are optimized for **transactional superiority instead of data analysis.**Other examples of OLTP system are:

  • Online banking
  • Online airline ticket booking
  • Sending a text message
  • Order entry
  • Add a book to shopping cart

Benefits of using OLAP services

  • OLAP creates a single platform for all types of business analytical needs which includes planning, budgeting, forecasting, and analysis.
  • The main benefit of OLAP is the consistency of information and calculations.
  • Easily apply security restrictions on users and objects to comply with regulations and protect sensitive data.

Benefits of OLTP method

  • It administers daily transactions of an organization.
  • OLTP widens the customer base of an organization by simplifying individual processes.

Drawbacks of OLAP service

  • Implementation and maintenance are dependent on IT professionals because the traditional OLAP tools require a complicated modeling procedure.
  • OLAP tools need cooperation between people of various departments to be effective which might always be not possible.

Drawbacks of OLTP method

  • If the OLTP system faces hardware failures, then online transactions get severely affected.
  • OLTP systems allow multiple users to access and change the same data at the same time which many times created an unprecedented situations.

OLAP示例 任何Datawarehouse系统都是OLAP系统。OLAP的用途如下 公司可能会将9月的手机销售与10月的销售进行比较,然后将这些结果与可能存储在正确数据库中的另一个位置进行比较。 亚马逊分析其客户的购买情况,以提供个性化的主页,其中包含其客户可能感兴趣的产品。**OLTP系统示例 OLTP系统的一个示例是ATM中心。假设一对夫妇在银行有一个联名账户。一天,两者都同时在精确的同一时间到达不同的ATM中心,并希望提取其银行帐户中的总金额。 但是,首先完成身份验证过程的人将能够取钱。在这种情况下,OLTP系统确保提款金额永远不会超过银行中存在的金额。这里要注意的关键是OLTP系统针对处理的交易进行了优化,而不是数据分析。**OLTP系统的其他示例是: 网上银行业务 网上机票预订 发送短信 订单输入 将书添加到购物车使用OLAP服务的优点OLAP为所有类型的业务分析需求(包括计划,预算,预测和分析)创建一个平台。OLAP的主要好处是信息和计算的一致性。 轻松对用户和对象施加安全限制,以符合法规并保护敏感数据。OLAP服务的缺点实施和维护依赖于IT专业人员,因为传统的OLAP工具需要复杂的建模过程。 OLAP工具需要各个部门人员之间的合作才能有,过程相对繁琐复杂。OLTP方法的优点它管理组织的日常交易。 OLTP通过简化单个流程来扩大组织的客户基础。OLTP方法的缺点如果OLTP系统面临硬件故障,那么在线交易将受到严重影响。 OLTP系统允许多个用户同时访问和更改同一数据时,会造成混乱。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/962785
推荐阅读
  

闽ICP备14008679号