什么是 OLAP?
OLAP 代表在线分析处理。它是一个广泛的术语,可以从两个角度来看待:技术和商业。但是从高层次来看,你可以将这些词反向阅读:
处理 : 一些源数据正在被处理...
分析 : ...以生成一些分析报告和洞察...
在线 : ...实时处理。
从商业角度看 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 系统将数据按行排列存储。