简介
数据密集型应用程序使各种规模的组织能够做出更明智的决策,并更快地响应用户需求。 那些做到这一点的组织,能够提供最佳的用户体验并开发最佳的解决方案。
设计强大的数据驱动型组织的关键组成部分是数据库的数据处理系统。 有两种类型的数据处理针对不同的情况进行了优化。 这两种类型是在线分析处理 (OLAP) 和在线事务处理 (OLTP)。 在本指南中,我们将介绍 OLAP 和 OLTP,讨论它们之间的差异,并分析每种类型适用的情况。
查看 Prisma 数据平台,在一个地方管理您的所有应用程序数据。
什么是 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 vs 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 数据平台,在一个地方管理您的所有应用程序数据。