什么是OLTP和OLAP.他们之间有什么区别?

Ama*_*noy 263 database olap database-design oltp database-schema

其实他们的意思是什么?我找到的关于他们的所有文章都没有给我一个想法,或者我的知识太不足以理解它.

有人会给我一些资源,我可以从头学到这些资源.

Nag*_*j S 327

在这里,您将找到更好的解决方案OLTP与OLAP

  • OLTP(在线事务处理)涉及特定系统的操作.OLTP的特点是大量短的在线事务(INSERT,UPDATE,DELETE).OLTP系统的主要重点是非常快速的查询处理,维护多访问环境中的数据完整性以及通过每秒事务数量来衡量的有效性.在OLTP数据库中有详细和当前数据,用于存储事务数据库的模式是实体模型(通常为3NF).它涉及查询访问单个记录,例如更新公司数据库中的电子邮件.

  • OLAP(在线分析处理)处理历史数据或档案数据.OLAP的特点是交易量相对较低.查询通常非常复杂并涉及聚合.对于OLAP系统,响应时间是有效性度量.OLAP应用程序被数据挖掘技术广泛使用.在OLAP数据库中,存在聚合的历史数据,存储在多维模式中(通常是星型模式).有时查询需要访问管理记录中的大量数据,例如去年贵公司的利润.

  • 非常清楚的信息.感谢您的分享,这有助于我清除疑虑. (6认同)
  • OL是指“ONLINE”,意思是实时完成数据处理,而不是批量处理。 (2认同)

nha*_*nha 206

答案非常简短:

不同的数据库有不同的用途 我不是数据库专家.经验法则:

  • 如果您正在进行分析(例如聚合历史数据),请使用OLAP
  • 如果您正在进行交易(例如在电子商务购物车上添加/删除订单),请使用OLTP

简短回答:

让我们考虑两个示例场景:

场景1:

您正在建立一个在线商店/网站,您希望能够:

  • 存储用户数据,密码,以前的交易......
  • 存储实际产品及其相关价格

您希望能够为特定用户查找数据,更改其名称...基本上对用户数据执行INSERT,UPDATE,DELETE操作.与产品等相同

您希望能够进行交易,可能涉及购买产品的用户(这是一种关系).那么OLTP可能是个不错的选择.

场景2:

你有一个在线商店/网站,你想要计算像

  • "所有用户的总支出"
  • "什么是最畅销的产品"

这属于分析/商业智能领域,因此OLAP可能更适合.

如果你认为"知道如何/什么/多少会很好"......,这涉及一种或多种的所有"对象"(例如,所有用户和大多数产品都知道总花费)然后OLAP可能更适合.

更长的回答:

当然事情并非如此简单.这就是为什么我们必须把小标签,如OLTPOLAP摆在首位.最后应对每个数据库进行独立评估.

那么OLAP和OLTP之间的根本区别是什么呢?

数据库必须在某处存储数据.存储数据的方式很大程度上反映了所述数据库的可能用途,这不足为奇.数据通常存储在硬盘驱动器上.让我们把硬盘看作一张非常宽的纸张,我们可以在这里读写东西.有两种方法可以组织我们的读写操作,以便它们可以高效快速地完成.

一种方法是制作一本有点像电话簿的书.在本书的每一页上,我们都存储有关特定用户的信息.现在这很好,我们可以很容易地找到特定用户的信息!只需跳转到页面!我们甚至可以在开头有一个特殊页面,告诉我们如果需要,用户是哪个页面.但另一方面,如果我们想要找到所有用户花了多少钱,那么我们就必须阅读每一页,即.整本书!那将是一个基于行的书籍/数据库(OLTP).开头的可选页面将是索引.

另一种使用大纸张的方法是制作会计账簿.我不是会计师,但让我们想象一下,我们会有一个"支出","购买"页面...这很好,因为现在我们可以很快地查询诸如"给我总收入"之类的东西(只需阅读"购买" "页面).我们还可以要求更多涉及的内容,例如"给我销售的十大产品",并且仍然具有可接受的性能.但现在考虑为特定用户找到支出是多么痛苦.您必须浏览每个人的支出的整个列表并过滤该特定用户的那些,然后对它们求和.这基本上相当于"再读全书".那将是一个基于列的数据库(OLAP).

由此得出:

  • OLTP 数据库旨在用于进行许多小型交易,通常用作"单一事实来源".

  • OLAP 另一方面,数据库更适合于分析,数据挖掘,更少的查询,但它们通常更大(它们在更多数据上运行).

它当然比它更复杂,这是一个20 000英尺的数据库差异的概述,但它让我不会迷失在缩略语的海洋中.

说到首字母缩略词:

  • OLTP =在线交易处理
  • OLAP =在线分析处理

为了进一步阅读,这里有一些相关的链接,这些链接激发了我的答案:

  • 使用不同级别的解释,可访问语言和具体示例的好方法.在stackoverflow中回答问题的人的模型. (35认同)
  • "如果有疑问,我只使用SQL." - SQL是一种语言,但这并没有回答这个问题.有各种各样的数据管理系统,它们知道如何解释SQL并将其转换为处理引擎盖下的各种数据源.即使在spark数据帧上也可以进行sql查询.这就像说"当有疑问时,我只是使用HTML".好吧,这是简短的答案,但它很愚蠢 (3认同)
  • 真棒,真棒的答案!迄今为止我发现的最好的一个!给这个人一枚奖牌! (2认同)

小智 23

区别很简单.

OLTP(在线事务处理).

OLTP是一类促进和管理面向事务的应用程序的信息系统.OLTP还用于指系统立即响应用户请求的处理.联机事务处理应用程序在数据库管理中具有高吞吐量和插入或更新密集型.OLTP系统的一些示例包括订单输入,零售销售和金融交易系统.

OLAP(在线分析处理)

OLAP是更广泛的商业智能类别的一部分,它还包括关系数据库,报告编写和数据挖掘.OLAP的典型应用包括销售,营销,管理报告,业务流程管理(BPM),预算和预测,财务报告和类似领域的业务报告.

查看更多详细信息OLTP和OLAP


小智 6

OLTP-:oltp代表在线交易处理,用于管理当前的日常数据信息.OLAP-:用于在线分析处理的olap代表,用于维护数据的过去历史,主要用于数据分析,也可称为仓库.