Skip to main content

什么是OLAP?

OLAP 是 Online Analytical Processing 的缩写。这是一个广义的术语,可以从两个角度来看:技术和商业。在最高层次上,你可以把这些词读反过来:

Processing : 源数据被处理…

Analytical : …以生成一些分析报告和见解…

Online : …实时。

从商业角度看 OLAP

近年来,商界开始意识到数据的价值。那些盲目做决策的公司往往无法与竞争对手保持同步。成功公司的数据驱动方法迫使它们收集可能对业务决策有用的所有数据,并迫使它们需要一些机制,可以让它们及时地分析这些数据。这就是 OLAP 数据库管理系统(DBMS)的用武之地。

从商业角度来看,OLAP 允许公司不断地规划、分析和报告运营活动,从而最大化效率、降低开支,最终占领市场份额。这可以在内部系统中完成,也可以外包给 SaaS 提供商,比如 Web/移动分析服务、CRM 服务等。OLAP 是许多 BI 应用程序(商业智能)背后的技术。

ClickHouse 是一个 OLAP 数据库管理系统,经常被用作分析特定领域数据的后端。然而,一些企业仍然不愿意与第三方提供商共享数据,因此内部数据仓库方案也是可行的。

从技术角度看 OLAP

所有数据库管理系统都可以分为两类:OLAP(Online Analytical Processing)和 OLTP(Online Transactional Processing)。前者专注于构建报告,每个报告都基于大量的历史数据,但频率较低。后者通常处理持续的交易流,不断地修改数据的当前状态。

在实践中,OLAP 和 OLTP 并不是二元分类,而更像是一个光谱。大多数真实系统通常专注于其中一种,但如果也需要相反类型的工作负载,它们通常会提供一些解决方案或变通方法。这种情况通常迫使企业操作多个集成的存储系统。这可能并不是一个大问题,但是拥有更多的系统会增加维护成本,因此近年来的趋势是朝着 HTAP(混合事务/分析处理)的方向发展,即单个数据库管理系统可以很好地处理两种工作负载。

即使 DBMS 最初是纯 OLAP 或纯 OLTP,它也被迫朝着 HTAP 的方向发展,以保持竞争力。ClickHouse 也不例外。最初,它被设计为尽可能快的 OLAP 系统,它仍然没有完整的事务支持,但一些功能,比如一致的读/写和用于更新/删除数据的变异,已经被添加。

OLAP 和 OLTP 系统之间的基本权衡仍然存在:

  • 要有效地构建分析报告,关键是能够单独读取列,因此大多数 OLAP 数据库是列式的
  • 虽然将列分开存储会增加对行的操作成本,比如追加或原地修改,这些成本与列的数量成比例(如果系统试图收集事件的所有细节,这可能会很大)。因此,大多数 OLTP 系统按行排列数据。