什么是 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 系统按行存储数据。