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

什么是OLAP?

OLAP 代表在线分析处理。它是一个广泛的术语,可以从两个角度来看:技术和商业。但是从高层次上讲,你可以倒着阅读这些词:

处理 : 一些源数据被处理…

分析 : …以生成一些分析报告和洞察…

在线 : …实时进行。

从商业角度看OLAP

近年来,商业人士开始意识到数据的价值。那些盲目做决定的公司,往往无法跟上竞争的步伐。成功公司的数据驱动方法迫使他们收集所有可能远程有助于做出商业决策的数据,并需要及时分析的机制。这就是OLAP数据库管理系统(DBMS)出现的地方。

从商业的角度看,OLAP允许公司持续规划、分析和报告运营活动,从而最大化效率,减少开支,最终夺取市场份额。这可以通过内部系统完成,也可以外包给诸如网络/移动分析服务、客户关系管理(CRM)服务等SaaS提供商。OLAP是许多商业智能(BI)应用程序背后的技术。

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

从技术角度看OLAP

所有数据库管理系统都可以分为两类:OLAP(在线分析处理)和OLTP(在线事务处理)。前者专注于生成基于大量历史数据的报告,但不那么频繁。而后者通常处理持续的交易流,持续修改数据的当前状态。

实际上,OLAP和OLTP并不是类别,它们更像是一个光谱。大多数实际系统通常专注于其中一个,但如果需要相反类型的工作负载,它们也会提供一些解决方案或变通办法。这种情况常常迫使企业运营多个集成的存储系统,这可能不是一个大问题,但拥有更多的系统使维护成本更高。因此,近年来的趋势是HTAP(混合事务/分析处理),当两种类型的工作负载均由单一数据库管理系统良好处理时。

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

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

  • 为了有效地构建分析报告,能够单独读取列至关重要,因此大多数OLAP数据库是列式的,
  • 而将列单独存储会相应地增加对行的操作成本,例如附加或就地修改,比例与列的数量成正比(如果系统试图收集事件的所有细节以备不时之需,则可能非常庞大)。因此,大多数OLTP系统按行存储数据。