OLAP介绍

2022-11-21 20:23:40 浏览数 (1)

OLAP概念

OLAP(On-Line Analytical Processing)即联机分析处理,通过对数据大量分析,得出分析报告,提供决策支持,其侧重数据分析能力,比喻说用户行为分析。

与之对应的是OLTP(on-line transaction processing)即联机事务处理,也就是我们熟知的关系系数据处理,比喻说MySQL、Oracle等,用来记录某类业务发生的行为,其强调的是在线事务处理、小批量数据操作,比喻说银行交易、电商会员注册等。

OLAP/OLATP对比

OLAP 功能型分类

ROLAP: 关系型OLAP

特点:基于原始数据灵活的查询分析,但是其性能差

代表:Hive、Spark、Impala、Presto、Clickhouse、Hologres

MOLAP: 多维型OLAP

特点:基于预聚合数据分析,性能高,灵活性差

代表:Kylin、Druid

HOLAP: 混合型OLAP

混合型OLAP同时具有ROLAP、MOLAP的特点,查询明细数据使用ROLAP,查询聚合数据使用MOLAP。

架构上分类

MPP架构

MPP即大规模并行处理,也就是一种分布式并行处理的方式,将一个计算任务下发给不同的计算节点共同完成计算结果。对于MPP架构有以下几个特点:

1.并行计算(基于内存)

2.shard-nothing,无共享模式,即每个节点有自己CPU、Memory、DISK

批处理

批处理也是一种分布式并行计算框架,也就是我们所熟知的MapReduce、Hive、Spark等,与MPP相比:

1.MPP确定的计算必须要在确定的节点上,而批处理可以在任务节点上

2.MPP中间结果保存在缓存中,而批处理需要落入磁盘,因此其查询延时更高

3.MPP做横向扩展需要数据重分布,而批处理只需要增加计算并发即可,其横向扩展能力更强

MPP on Hadoop架构

由于MPP的计算能力与批处理架构的扩展能力,因此衍生了MPP on Hadoop架构,以impala、presto为代表。

基于此架构,中间结果不写磁盘,极大降低了其查询延时,并且也可以通过横向扩展计算节点提升其计算能力。

OLAP 选择

在当前面对大数据量、低延时、灵活查询的场景下,没有一个OLAP引擎能够完全满足所有场景,需要根据特定的场景做tradeoff.


0 人点赞