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