跳到主要内容
跳到主要内容

什么是OLAP?

OLAP 代表联机分析处理(Online Analytical Processing)。这是一个广泛的术语,可以从技术和商业两个方面进行理解。在最高层次,你可以反向阅读这些词:

处理 一些源数据被处理…

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

在线 …实时进行。

从商业角度看OLAP

近年来,商业人士开始意识到数据的价值。盲目做决定的公司往往无法跟上竞争对手的步伐。成功公司的数据驱动方法迫使它们收集所有可能对商业决策有用的数据,并对其施加了对及时分析这些数据机制的需求。这就是OLAP数据库管理系统(DBMS)发挥作用的地方。

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

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

从技术角度看OLAP

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

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

即使一个DBMS最初作为纯OLAP或纯OLTP开始,它也被迫朝HTAP方向发展以跟上竞争。ClickHouse也不例外。最初,它被设计为一个 尽可能快速的OLAP系统,但仍然没有全面的事务支持,但已经添加了一些功能,如一致的读/写和更新/删除数据的变更。

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

  • 要有效构建分析报告,能够单独读取列是至关重要的,因此大多数OLAP数据库是 列式 的,
  • 而单独存储列则会增加对行的操作成本,如追加或就地修改,成比例地与列数(如果系统试图收集所有事件细节以防万一,这个数字可能会很大)相关。因此,大多数OLTP系统按行存储数据。