在分享

介绍

数据密集型应用程序使各种规模的组织能够做出更明智的决策,并更快地响应用户需求。做得最好的那些组织可以提供最佳的用户体验并开发最佳的解决方案。

设计稳健的数据驱动组织的关键要素是数据库的数据处理系统。数据库有两种类型的数据处理,它们针对不同的情况进行了优化。这两种类型是联机分析处理 (OLAP) 和联机事务处理 (OLTP)。在本指南中,我们将介绍 OLAP 和 OLTP,讨论它们的区别,并分析每种类型的适用情况。

什么是 OLAP 和 OLTP?

乍一看,您可能会注意到每种数据处理类型的区别。其中一个包含“分析”,另一个包含“事务”,其他部分都相同。事实上,这正是主要区别所在。OLAP 数据库是一种主要用于分析和洞察生成的数据系统。虽然慢速查询不会影响应用程序事务处理,但查询结果的延迟会影响依赖这些智能洞察的数据分析师和其他决策者的准确性。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 的特点可以分解成以下表格

OLTPOLAP
特点处理大量的小事务处理大量数据
查询简单的标准化查询、基本插入、更新、删除涉及许多记录的复杂查询
操作INSERTUPDATEDELETESELECT 用于聚合或报告数据
响应时间毫秒取决于数据量:秒、分钟、小时、天
数据源事务从 OLTP 源聚合
空间需求通常较小,假设有历史数据存档通常较大,存储所有历史数据和当前数据
备份频率需要定期备份以确保可用性和数据完整性频率较低,因为没有进行修改。丢失的数据可以来自 OLTP 数据库

提取、转换、加载

对于大多数用例,很可能存在一个 OLTP 数据库处理事务数据,以及一个 OLAP 数据库充当所有已处理数据的仓库。为了从 OLTP 数据库填充 OLAP 数据库,会进行提取、转换和加载 (ETL) 过程。ETL 专为从非优化分析来源(例如 OLTP 数据库)提取数据到中央仓库而设计。

在当今强大的分析仓库出现之前,不需要进行暂存,数据会从事务数据库中提取出来,并在分析数据库的暂存区域进行清理和优化。使用此数据库的团队然后可以将数据呈现给最终用户或决策者,用于机器学习算法,或构建仪表板。

关于 ETL 过程还有很多要说的,但在此上下文中需要知道的是它能够协调 OLTP 和 OLAP 数据库的成功连接,以用于特定用例。它完善了现代应用程序利用事务数据库和分析数据库以优化其用途的整体图景。

结论

在本文中,我们讨论了两种不同类型的数据库系统处理,OLAP 和 OLTP,以及如何将它们与 ETL 结合使用。我们介绍了它们的主要区别,可以简单地归结为它们优化的用例,即分析或事务。在查询类型、响应时间、备份频率和其他特点方面,每种类型在其专业领域最关键的方面表现更好。

了解 OLAP 和 OLTP 有助于您在设计数据密集型应用程序时做出正确的决定。根据您要对数据执行的操作,其中一种类型将针对该任务进行优化。

关于作者
Alex Emerich

Alex Emerich

Alex 是一位典型的观鸟爱好者,喜欢嘻哈音乐,也喜欢阅读,而且喜欢撰写有关数据库的文章。他现在住在柏林,你可以看到他漫无目的地像利奥波德·布鲁姆一样在城市里闲逛。