什么是 OLAP?
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 系统,并且它仍然没有完全成熟的事务支持,但一些功能,如一致的读/写和用于更新/删除数据的 mutations 必须添加。
OLAP 和 OLTP 系统之间的基本权衡仍然存在
- 为了高效地构建分析报告,能够分别读取列至关重要,因此大多数 OLAP 数据库都是列式的,
- 虽然单独存储列会增加对行的操作成本,例如追加或就地修改,成本与列数成正比(如果系统试图收集事件的所有细节以防万一,列数可能会很大)。因此,大多数 OLTP 系统按行排列存储数据。