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