• 数仓-oltp和olap


    基本概念

    • OLTP(on-line transaction processing)→ 联机事务处理
      • 事务处理
      • 对数据增删改
    • OLAP(on-line analytical processing)→ 联机分析处理
      • 分析处理
      • 对数据的查询
    • BI工具(Business Intelligence)
      • BI是Business Intelligence的英文缩写,中文解释为商务智能,是利用数据提高决策质量的技术集合,是从大量的数据中钻取信息与知识的过程
      • OLAP和BI常常在一起出现,OLAP是BI工具的一种底层技术。BI工具通常可以对接OLAP系统,但不限于此,也可以直接与其他数据库、存储系统对接
    • 即席查询(Ad Hoc Queries)
      • Ad hoc是一个拉丁文常用短语,意思是“特设的、特定目的的(地)、临时的、专案的”。即席查询(Ad Hoc Queries)是指用户根据自己的需求动态创建的查询,与预定义查询相反,即席查询对数据模型没有要求,只要能提供动态查询的能力即可;
      • 而OLAP系统,一般要求数据模型是多维数据模型。对于ROLAP系统,通常都能提供即席查询能力,二者之间差别很小,所以经常混用.

    OLAP的核心概念和基本操作

    OLAP的核心概念

    • 维度(Dimension)
      • 维度是描述与业务主题相关的一组属性,单个属性或属性集合可以构成一个维。如时间、地理位置、年龄和性别等都是维度。
    • 维的层次(Level of Dimension)
      • 一个维往往可以具有多个层次,例如时间维度分为年、季度、月和日等层次,地区维可以是国家、地区、省、市等层次。这里的层次表示数据细化程度,对应概念分层。后面介绍的上卷操作就是由低层概念映射到高层概念。概念分层除了可以根据概念的全序和偏序关系确定外,还可以通过对数据进行离散化和分组实现。
    • 维的成员(Member of Dimension)
      • 若维是多层次的,则不同的层次的取值构成一个维成员。部分维层次同样可以构成维成员,例如“某年某季度”、“某季某月”等都可以是时间维的成员
    • 度量(Measure)
      • 表示事实在某一个维成员上的取值。例如开发部门汉族男性有39人,就表示在部门、民族、性别三个维度上,企业人数的事实度量

    OLAP的基本操作

    在这里插入图片描述

    • 钻取(Drill-down)
      • 在维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据,比如通过对2010年第二季度的总销售数据进行钻取来查看2010年第二季度4、5、6每个月的消费数据,如上图;当然也可以钻取浙江省来查看杭州市、宁波市、温州市……这些城市的销售数据
    • 上卷(Roll-up)
      • 钻取的逆操作,即从细粒度数据向高层的聚合,如将江苏省、上海市和浙江省的销售数据进行汇总来查看江浙沪地区的销售数据,如上图
    • 切片(Slice)
      • 选择维中特定的值进行分析,比如只选择电子产品的销售数据,或者2010年第二季度的数据
    • 切块(Dice)
      • 选择维中特定区间的数据或者某批特定值进行分析,比如选择2010年第一季度到2010年第二季度的销售数据,或者是电子产品和日用品的销售数据
    • 旋转(Pivot)
      • 即维的位置的互换,就像是二维表的行列转换,如图中通过旋转实现产品维和地域维的互换

    关系&对比

    • OLTP主要用来记录某类业务事件的发生,如购买行为,当行为产生后,系统会记录是谁在何时何地做了何事,这样的一行(或多行)数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高、稳定性强、确保数据及时更新成功,像公司常见的业务系统如ERP,CRM,OA等系统都属于OLTP。
    • 当数据积累到一定的程度,我们需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就是在做OLAP了。
    • 因为OLTP所产生的业务数据分散在不同的业务系统中,而OLAP往往需要将不同的业务数据集中到一起进行统一综合的分析,这时候就需要根据业务分析需求做对应的数据清洗后存储在数据仓库中,然后由数据仓库来统一提供OLAP分析。所以我们常说OLTP是数据库的应用,OLAP是数据仓库的应用,下面用一张图来简要对比。
      在这里插入图片描述
    • 所以OLAP和OLTP之间的关系可以认为OLAP是依赖于OLTP的,因为OLAP分析的数据都是由OLTP所产生的也可以看作OLAP是OLTP的一种延展,一个让OLTP产生的数据发现价值的过程

    olap的分类

    MOLAP(Multi-dimensional OLAP)

    • MOLAP是一种基于多维数据库索引的 OLAP。
      • Cognos Powerplay, Oracle Database OLAP Option, MicroStrategy, Microsoft Analysis Services, Essbase, TM1, Jedox ,icCube和kylin
    • 设计理念
      • 预先将客户的需求计算好以结果的形式存下来(比如一张表分为10个维度,5个度量,那客户提出的需求会有2的10次方种可能,然后将这么多种可能提前计算好存储下来
      • 好比你提前一天将领导明天会布置的任务先做好,明天领导布置对应任务后你直接告知他已做好
    • 优点
      • 当命中需求后返回非常快(所以MOLAP非常适合常见固定的分析场景),同等资源下支持的数据体量更大,支持的并发更多
    • 缺点
      • 空间和时间开销大。update cube的时间跟计算维度(degree)相关,随着维度增加计算时间大幅增加,此外预计算还会造成数据库占用急剧膨胀。
      • 查询灵活度比较低。需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。

    ROLAP (Relational OLAP)

    • ROLAP 是一种对关系数据库存储的数据进行动态多维分析的 OLAP。
      • Vertica、Amazon Redshift、Google Dremel、Hulu Nesto、Presto、Druid、Impala、Greenplum、HAWQ和Doris
    • 优点
      • 能同时连接明细数据和汇总数据,实时根据用户提出的需求对数据进行计算后返回给用户,所以用户使用相对比较灵活,可以随意选择维度组合来进行实时计算。
    • 缺点
      • 当计算的数据量达到一定级别或并发数达到一定级别的时候,一定会出现性能问题
      • 就好比如果领导一次性给你安排非常多的工作,你一个人是无法马上将所有事情做完答复领导的

    在这里插入图片描述

    HOLAP(混合 OLAP)

    • HOLAP 是 ROLAP 和 MOLAP 的各种集成。

    • 细节的数据以ROLAP的形式存放,更加方便灵活

    • 而高度聚合的数据以MOLAP的形式展现,更适合于高效的分析处理。

    • 公司使用HOLAP的目的是根据不同场景来利用不同OLAP的特性

    • 参考一

    • 参考二

  • 相关阅读:
    用googletest写cpp单测
    Tomcat内存马学习4:结合反序列化注入
    Linux——(第六章)常用指令(一)
    操作系统(2)进程管理(上)进程与线程
    ASP.NET MVC企业级程序设计 (入住退房,删除)
    公众号开发实践:用PHP实现通过接口自定义微信公众号菜单
    VOLTE呼叫流程介绍
    eclipse启动web项目优化
    centos7 网卡聚合bond0模式配置
    抓包整理————ip 协议四[十五]
  • 原文地址:https://blog.csdn.net/qq_46893497/article/details/125504736