什么是 OLAP?
OLAP 代表联机分析处理。它是一个广泛的术语,可以从两个角度来看:技术和业务。在最高级别,您只需反过来读这些词
处理:一些源数据被处理…
分析:…以生成一些分析报告和见解…
联机:…实时进行。
从商业角度看 OLAP
近年来,商业人士开始认识到数据的价值。那些盲目做出决策的公司往往跟不上竞争对手。成功公司的以数据为中心的做法迫使他们收集所有可能与商业决策有关的数据,并要求他们需要一些机制来及时分析这些数据。这就是 OLAP 数据库管理系统 (DBMS) 的用武之地。
从商业意义上说,OLAP 允许公司持续规划、分析和报告运营活动,从而最大限度地提高效率,降低成本,最终赢得市场份额。这可以通过内部系统或外包给 SaaS 提供商(如 Web/移动分析服务、CRM 服务等)来实现。OLAP 是许多 BI 应用程序(商业智能)背后的技术。
ClickHouse 是一种 OLAP 数据库管理系统,它经常被用作这些 SaaS 解决方案的后台,用于分析特定领域的数据。但是,一些企业仍然不愿将数据与第三方提供商共享,因此内部数据仓库方案也是可行的。
从技术角度看 OLAP
所有数据库管理系统都可以分为两类:OLAP(联机**分析**处理)和 OLTP(联机**事务**处理)。前者侧重于构建报告,每个报告都基于大量历史数据,但执行频率较低。后者通常处理连续的事务流,不断修改数据的当前状态。
实际上,OLAP 和 OLTP 不被视为二元类别,而更像是频谱。大多数真实系统通常侧重于其中之一,但如果需要相反类型的负载,它们也会提供一些解决方案或变通方法。这种情况往往迫使企业运行多个相互集成的存储系统。这可能不是什么大问题,但拥有更多系统会增加维护成本,因此近年来,趋势是朝着 HTAP(**混合事务/分析处理**)发展,在这种情况下,两种类型的负载都可以由单个数据库管理系统很好地处理。
即使 DBMS 最初是纯粹的 OLAP 或纯粹的 OLTP,它也被迫朝 HTAP 方向发展以保持竞争力。ClickHouse 也不例外。最初,它被设计为一个尽可能快的 OLAP 系统,并且仍然没有完整的交易支持,但添加了一些特性,如一致的读/写以及用于更新/删除数据的变异。
OLAP 和 OLTP 系统之间的基本权衡仍然存在
- 为了有效地构建分析报告,能够单独读取列至关重要,因此大多数 OLAP 数据库是列式,
- 而单独存储列会增加对行的操作(如追加或就地修改)的成本,与列数成正比(如果系统尝试收集事件的所有详细信息以防万一,列数可能很大)。因此,大多数 OLTP 系统以按行排列的方式存储数据。