• OLAP介绍


    OLAP概念

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

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

    OLAP/OLATP对比

    082585f734a8e6d18f97931e316c1e1b.png

    OLAP 功能型分类

    ROLAP: 关系型OLAP

    a7e1795e7b50a8819331673d70c33cb2.png

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

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

    MOLAP: 多维型OLAP

    3b2d76dce5ab2a6a1c409b48af44e0ef.png

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

    代表:Kylin、Druid

    HOLAP: 混合型OLAP

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

    架构上分类

    MPP架构

    536a91dba8a6ea972e5f40095a67f7eb.png

    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为代表。

    ebdb3cf53feeb79158ed28f8fb731552.png

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

    OLAP 选择

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

    a13b67e4b9e11b15cd0f7738f0fb038c.png


    26e8f0dedafcef46f093dcaef6db31d9.png

  • 相关阅读:
    VMware CentOS7 Docker入门
    谣言检测(RDEA)《Rumor Detection on Social Media with Event Augmentations》
    【arduino】I/O端口操作
    代理服务器配置
    Elasticsearch基础篇(四):Elasticsearch的基础介绍与索引设置
    iOS CGRect CGPoint NSRange等结构体的NSLog打印输出
    gofly框架接口入参验证使用介绍
    编写基于maven的IDEA插件,实现根据现有代码生成流程图 pom
    字节码进阶之JVM Attach API详解
    【Linux】基本指令
  • 原文地址:https://blog.csdn.net/u013516966/article/details/127063863