OLAP系统林林总总

大数据需求通常可分为三大类:离线数据统计,实时数据计算,即席查询。

离线数据统计,通常是T+1出数,是最典型的数据仓库解决的问题。计算复杂性最高,所以是时间就不能要求太高,否则对资源的要求将是非常高。比如计算DAU、留存等指标。

实时数据计算,需要实时进行数据ETL过程,实时流计算,来计算出结果,这类计算复杂性不会太高但是对数据处理的吞吐量要求很高,比如典型的计算一个APP的实时在线人数,当天实时新增人数等。

即席查询,是现在OLAP分析越来越普遍的场景。随着现在计算能力的提升、成本的下降,选择合适的数据分析技术,可以实现相对复杂的即席查询。

细分OLAP,有以下几类:

ROLAP:关系型OLAP,基于明细数据进行聚合计算。系统比如:Presto,Impala,GreenPlum,Clickhouse,Elasticsearch,Hive,Spark SQL,Flink SQL,kudu。

先解析Query,生成执行计划,扫描数据,执行关系型算子,在原始数据上做过滤(Where)、聚合(Sum, Avg, Count)、关联(Join),分组(Group By)、排序(Order By)等。

好处是查询灵活、扩展性很好,对查询模式不固定情景支持更好;坏处是数据量大或者复杂计算时,耗费计算资源高,计算效率不稳定,存在潜在的重复计算。

MOLAP:多维OLAP,预聚合模式。系统比如:Kylin,Druid。

根据用户定义的数据维度、度量(也可以叫指标)在数据写入时生成预聚合数据;Query查询到来时,实际上查询的是预聚合的数据而不是原始明细数据。

好处是预结算,查询时效率高,能缓解重复计算但也带来维度爆炸问题。

Hybird OLAP:融合OLAP,结合上述两类。

分场景看下各类数据分析系统。

场景一:简单查询

OLAP系统林林总总_第1张图片

 对查询响应时间要求毫秒级时,ElasticSearch、Druid/Kylin、Clickhouse符合,但是吞吐量依次降低。

场景二:复杂查询

OLAP系统林林总总_第2张图片

秒级查询,即席查询这类场景,可选的方案Presto、Kudu,其他在复杂分析下基本做不到秒级,或者支持不了过于复杂的分析。 

你可能感兴趣的:(大数据,大数据,数据仓库,OLAP)