简介
数据密集型应用程序使各种规模的组织能够做出更明智的决策,并更快地响应用户需求。做得最好的组织,将创造出最佳的用户体验并开发出最佳解决方案。
设计一个强大的数据驱动型组织的关键组成部分是数据库的数据处理系统。有两种数据处理类型,它们针对不同的情况进行了优化。这两种类型是在线分析处理(OLAP)和在线事务处理(OLTP)。在本指南中,我们将介绍 OLAP 和 OLTP,讨论它们的区别,并分析它们各自适用的情况。
查看 Prisma Data Platform,可在单一位置管理所有应用程序数据。
什么是 OLAP 和 OLTP?
乍一看,您可能会注意到每种数据处理类型之间的差异。其中一种包含“分析”,另一种包含“事务”,除此之外都相同。这实际上就是主要区别所在。OLAP 数据库是一种主要用于分析和生成洞察的数据库系统。而 OLTP 数据库将需要后续部分中讨论的性能特性,OLAP 数据库通常设计用于摄取和处理大型数据集。其关键操作是执行复杂且长时间运行的查询,并为业务决策生成报告、图表和洞察。
什么是 OLAP?
成功实施 OLAP 数据库最重要的特征是其对复杂查询的响应时间。虽然慢查询不会影响应用程序的事务处理,但查询结果的延迟可能会影响依赖这些智能洞察的数据分析师和其他决策者的准确性。
OLAP 数据库传统上实现为数据仓库,存储大量的当前和历史数据。由于数据在仓库存在期间可能会改变其结构,因此 OLAP 数据库通常具有多维模式。在计算中,这种数据抽象的多维数组被称为 OLAP 立方体。
OLAP 数据库的处理时间传统上较慢,因为对大型数据集的查询是读密集型的且复杂。OLAP 数据库上不会进行当前数据修改,因此数据备份需求不频繁。
什么是 OLTP?
OLTP 是一种数据库系统,主要设计用于实现快速、近乎实时的数据库任务。通常,OLTP 数据库与多客户端可能同时访问数据且需要快速响应时间的应用程序一起使用。OLTP 数据库针对可靠性和处理速度进行了优化。例如,OLTP 数据库通常会处理密码重置、应用内购买等操作。OLTP 数据库更适合进行这些插入、更新和删除操作,而不是像 OLAP 那样存储海量数据集。
与 OLAP 不同,OLTP 查询通常只持续几毫秒,因为它们复杂度较低,需要快速处理,并且通常只涉及相对少量的数据记录。运行在 OLTP 数据库系统上的应用程序通常对组织至关重要,任何影响事务处理的停机时间都会损害声誉。
由于停机时间的重要性,OLTP 数据库还需要更积极的备份策略以维持高可用性。OLTP 系统由于其性质会不断修改数据。为确保在发生中断时的数据完整性,OLTP 系统需要频繁地进行备份快照或并发备份。
何时使用 OLAP 与 OLTP 处理?
在实践中,选择 OLAP 还是 OLTP 是一个简单的决定。如果您正在处理需要分析的大量数据,OLAP 将是更高效的处理系统。如果您正在实时处理许多小型事务并需要快速处理,那么 OLTP 最适合。
大多数组织将同时使用这两种类型。将 OLTP 数据库用于填充 OLAP 数据库也是常见的做法。这种实践很好地展示了数据库工作负载隔离。OLTP 数据库可以继续快速进行更改、处理新数据和更新现有数据。然后,OLAP 数据仓库被隔离,供分析和商业智能团队对整个数据集运行复杂的查询。
除了数据仓库,组织还可以选择启动其数据库实例的只读副本,或将生产数据库的转储加载到实例中,以获得 OLAP 处理的优势。然后,他们可以从这些实例运行查询,以隔离其长时间运行的复杂查询。
总的来说,OLAP 和 OLTP 的特性可以归纳为下表
OLTP | OLAP | |
---|---|---|
特性 | 处理大量小事务 | 处理大量数据 |
查询 | 简单的标准化查询、基本的插入、更新、删除 | 涉及大量记录的复杂查询 |
操作 | INSERT , UPDATE , DELETE | SELECT 用于聚合或报告数据 |
响应时间 | 毫秒 | 取决于数据量:秒、分钟、小时、天 |
数据源 | 事务 | 从 OLTP 源聚合 |
空间需求 | 通常较小,假设有历史数据存档 | 通常较大,因为存储所有历史和当前数据 |
备份频率 | 需要定期备份以确保可用性和数据完整性 | 不那么频繁,因为没有进行修改。丢失的数据可以从 OLTP 数据库中恢复 |
提取、转换、加载
对于大多数用例来说,很可能存在一个处理事务数据的 OLTP 数据库,以及一个作为所有已事务处理数据的仓库的 OLAP 数据库。为了从 OLTP 数据库填充 OLAP 数据库,会发生一个提取、转换和加载(ETL)过程。ETL 专门用于从非分析优化来源(即 OLTP 数据库)提取数据到中央仓库。
在当今强大的分析型数据仓库(无需暂存)出现之前,数据会从事务数据库中提取出来,并在暂存区进行清洗和优化,以供分析数据库使用。使用该数据库的团队随后可以将数据呈现给最终用户或决策者,用于机器学习算法或构建仪表板。
关于 ETL 过程还有很多可以阐述,但在此上下文中重要的是了解它能够协调 OLTP 和 OLAP 数据库成功结合以实现特定用例。它完善了现代应用程序利用事务和分析数据库以实现其优化目的的完整图景。
总结
在本文中,我们讨论了两种不同类型的数据库系统处理方式,OLAP 和 OLTP,以及它们如何与 ETL 结合使用。我们涵盖了它们的主要区别,这些区别可以简单归结为它们的优化用例:分析或事务。当谈到查询类型、响应时间、备份频率和其他特性时,每种类型在其专业领域最关键的方面表现更佳。
理解 OLAP 和 OLTP 能让您在设计数据密集型应用程序时做出正确决策。根据您希望如何处理数据,其中一种类型将针对该任务进行优化。
查看 Prisma Data Platform,可在单一位置管理所有应用程序数据。