[go: up one dir, main page]

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

什么是OLAP?

OLAP 是在线分析处理 (Online Analytical Processing) 的缩写。它是一个广泛的术语,可以从技术和商业两个角度来看待。在最高层面上,你可以将这些词反向阅读:

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

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

在线 — …实时进行。

从商业角度看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系统按行存储数据。