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

什么是 OLAP?

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

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

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

在线 : …实时。

从商业角度看 OLAP

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

从商业的角度来看,OLAP 允许公司持续计划、分析和报告运营活动,从而实现最大化效率、减少开支,并最终征服市场份额。这可以在内部系统中完成,或者外包给像网络/移动分析服务、CRM 服务等 SaaS 提供商。OLAP 是许多商业智能应用程序 (Business Intelligence) 背后的技术。

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

从技术角度看 OLAP

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

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

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

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

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