跳到主要内容
跳到主要内容
编辑此页

什么是 OLAP?

OLAP 代表在线分析处理。这是一个广泛的术语,可以从技术和业务两个角度来看待。在最高层面上,您可以倒过来阅读这些词

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

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

在线 : …实时。

来自业务角度的 OLAP

近年来,商业人士开始意识到数据的价值。盲目做决策的公司往往跟不上竞争的步伐。成功公司的数据驱动方法迫使他们收集所有可能对业务决策有用的数据,并要求他们具备及时分析这些数据的机制。这就是 OLAP 数据库管理系统 (DBMS) 的用武之地。

在商业意义上,OLAP 使公司能够持续计划、分析和报告运营活动,从而最大限度地提高效率、降低费用并最终占领市场份额。这可以在内部系统完成,也可以外包给 SaaS 提供商,如网络/移动分析服务、CRM 服务等。OLAP 是许多 BI 应用(商业智能)背后的技术。

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

来自技术角度的 OLAP

所有数据库管理系统都可以分为两组:OLAP(在线分析处理)和 OLTP(在线事务处理)。前者侧重于构建基于大量历史数据的报告,但频率较低。后者通常处理连续的事务流,不断修改数据的当前状态。

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

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

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

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