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

什么是 OLAP?

OLAP 代表联机分析处理(Online Analytical Processing)。这是一个广泛的术语,可以从两个视角来看:技术和业务。但是从高层次来看,你可以反向理解这些词:

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

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

在线 :...实时进行。

从商业角度看 OLAP

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

从商业意义上讲,OLAP 允许公司持续规划、分析和报告操作活动,从而最大化效率、减少开支,并最终征服市场份额。这可以在内部系统中完成,也可以外包给 SaaS 提供商,如网络/移动分析服务、客户关系管理服务等。OLAP 是许多商业智能应用程序(Business Intelligence)的技术基础。

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

从技术角度看 OLAP

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

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

即使一个 DBMS 最初是作为纯 OLAP 或纯 OLTP 启动的,它们也被迫向 HTAP 方向发展,以跟上竞争。ClickHouse 也不例外,最初它被设计为一个 尽可能快速的 OLAP 系统,并且它仍然不具备完整的事务支持,但一些特性如一致的读写和更新/删除数据的变更操作被添加了进来。

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

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