原文链接:https://ververica.cn/developers/olap-engine-performance-optimization-and-application-cases/
摘要:本文由阿里巴巴技术专家贺小令(晓令)分享,主要介绍 Apache Flink 新场景 OLAP 引擎,内容分为以下四部分:
- 背景介绍
- Flink OLAP 引擎
- 案例介绍
- 未来计划
背景介绍
OLAP 及其分类
OLAP 是一种让用户可以用从不同视角方便快捷的分析数据的计算方法。主流的 OLAP 可以分为3类:多维 OLAP ( Multi-dimensional OLAP )、关系型 OLAP ( Relational OLAP ) 和混合 OLAP ( Hybrid OLAP ) 三大类。
(1)多维 OLAP ( MOLAP )
- 传统的 OLAP 分析方式
- 数据存储在多维数据集中
(2)关系型 OLAP ( ROLAP )
- 以关系数据库为核心,以关系型结构进行多维数据的表示
- 通过 SQL 的 where 条件以呈现传统 OLAP 的切片、切块功能
(3)混合 OLAP ( HOLAP )
- 将 MOLAP 和 ROLPA 的优势结合起来,以获得更快的性能
以下将详细介绍每种分类的具体特征。
■ 多维 OLAP ( MOLAP )
MOLAP 的典型代表是 Kylin 和 Druid。
MOLAP 处理流程
首先,对原始数据做数据预处理;然后,将预处理后的数据存至数据仓库,用户的请求通过 OLAP server 即可查询数据仓库中的数据。
MOLAP 的优点和缺点
MOLAP 的优点和缺点都来自于其数据预处理 ( pre-processing ) 环节。数据预处理,将原始数据按照指定的计算规则预先做聚合计算,这样避免了查询过程中出现大量的临时计算,提升了查询性能,同时也为很多复杂的计算提供了支持。
但是这样的预聚合处理,需要预先定义维度,会限制后期数据查询的灵活性;如果查询工作涉及新的指标,需要重新增加预处理流程,损失了灵活度,存储成本也很高;同时,这种方式不支持明细数据的查询。
因此,MOLAP 适用于对性能要求非常高的场景。
■ 关系型 OLAP ( ROLAP )
ROLAP 的典型代表是 Presto 和 Impala。