Logo
Section 1 / 2

OLTP 和 OLAP 数据库

了解什么是OLTP和OLAP数据库。

导入

OLTP 和 OLAP 数据库

了解什么是OLTP和OLAP数据库。

在数据领域,OLAP 和 OLTP 已经成为越来越常见的术语。本节课中,我们将拆解这些术语,尝试理解它们的含义。

OLAP 数据库

OLAP 代表在线分析处理(Online Analytical Processing)。

想象我们有一大批包含多种属性的数据,需要快速进行分析。同时,产品经理或数据科学家等用户也需要从数据中获取洞察。

这类数据的一个典型例子是用户在应用程序或网站上的交互行为。产品经理可以根据这些数据决定哪些功能有助于业务发展。

通常情况下,OLAP 数据库非常适合此类场景。这类数据库能够对海量数据实现快速查询。

OLTP 数据库

与之相对的是 OLTP 数据库。

OLTP 代表在线事务处理(Online Transactional Processing)。

举个例子,考虑一个存储用户余额的支付系统。每当用户转账或收款时,余额必须保持一致更新。在这样的事务型应用场景中,OLTP 数据库非常合适。

MySQL 因其对事务的强大支持,被广泛用作 OLTP 数据库。而 Apache Druid 则是一个流行的 OLAP 数据库。

在本章中,我们将介绍 Apache Druid 并探讨其架构。

Apache Druid

什么是 Apache Druid?我们可以从其官方文档中快速了解:

Apache Druid 是一个实时分析数据库,专为在大规模数据集上进行快速切片与切块分析(“OLAP” 查询)而设计。它通常用于那些对实时数据摄入、快速查询性能和高可用性要求较高的场景。

让我们逐一解析:

  • 实时分析:在当今系统中,及时从数据中获取洞察对驱动业务至关重要。随着全球互联网的普及,这类数据量巨大。然而,仍存在一些场景要求洞察必须尽可能快地获得,即实时获取。Druid 能够高效地从大量数据中快速提取洞察。

  • 切片与切块:假设有一个包含数百万行、数十列的数据集。每一列属于两种类型之一:维度或指标。维度类似于数据的属性,例如国家、城市、日期、某种 ID 等;而指标则是可以进行聚合的数值,例如消费金额、点击次数等。所谓“切片与切块”,指的是我们可以任意选择一组维度,期望基于这些维度对指标进行聚合计算。这类似于在 MySQL 中执行 group_by 查询,但 Druid 在面对大量列的情况下依然能高效完成这一操作。

简而言之,Apache Druid 是一种 OLAP 数据库,能够在海量数据上快速生成洞察,即使需要随机对大量维度执行 group_by 查询也毫不费力。

核心要点

  • OLTP 和 OLAP 数据库适用于特定场景,不建议互相替代使用。

  • Apache Druid 能够高效支持大规模数据的 OLAP 场景。

案例研究 1:Apache Spark

Apache Druid 的高层架构