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 场景。