30分钟概览OLAP——起源,概念及现状

30分钟概览OLAP——起源,概念及现状本文主要面对 OLAP 入门同学 读者可以对 OLAP 起源 核心概念和当前发展趋势有一定理解 OLAP 起源 OLAP Onlineanalyt 即联机分析处理 主要用于支持企业决策管理分析 这个概念最初源于 1962 年 KennethIvers 发表的名为 AProgramming APL 的著作 它第一次提出了处理操作和多维变量的的数学表达式

本文主要面对OLAP入门同学,读者可以对OLAP起源、核心概念和当前发展趋势有一定理解。

OLAP起源

OLAP(Online analytical processing),即联机分析处理,主要用于支持企业决策管理分析。数据库概念最初源于1962年Kenneth Iverson发表的名为“A Programming Language” (APL)的著作,它第一次提出了处理操作和多维变量的的数学表达式,后来APL语言由IBM实现。

随后数据库之父Edgar F. Codd提出了著名的关系数据模型理论《A Relational Model of Data for Large Shared Data Banks 》,为后面数据库发展奠定基础。

第一款OLAP产品Express于1975年问世,随着被Oracle收购后繁荣发展了30余年,最后由继任者Oracle 9i替代。这么多年过去,基本的OLAP理念和数据模型仍然未变。

OLAP这个名词是数据库之父Edgar F. Codd于1993年在文章《Providing OLAP (On-Line Analytical Processing) to User-Analysts: An IT Mandate》提出,他总结了OLAP产品的12个原则,随后OLAP产品相继问世并逐渐形成今天的格局。

OLAP核心概念

基本概念
1) 维
  • 维(Dimension):人们观察事物的视角,如时间、地理位置、年龄和性别等,是单一角度概念。
  • 维的层次(Lever of Dimension):表示维度概念基础上进一步的细分,如时间可以细分为年、季度、月三个层次。
  • 维成员(Member of Dimension):表示维不可再细分的原子取值,如时间维的成员可以是2019年1月10日。
  • 度量(Measure):表示在这个维成员上的取值。

除了维的基本概念,还有多维分析的分析操作。

2)操作
  • 下探(Drill down):维度是有层次的,下探表示进入维度的下一层,将汇总数据拆分到下一层所在细节数据信息,如下图从第二季度下探到看4、5、6月的明细数据。
  • 上钻(Drill up): 下探的反向操作,回到更高汇聚层的汇总数据。
  • 切片(Slice):切片可以理解成把立体按某一个维度进行切分,就可以看两维数据,如图中按电子产品切分,看到的是时间和地理位置关系的二维数据。
  • 切块(Dice):相对于切片是按一个点切分,切块就是按一个范围(区间)来做切分。
  • 旋转(Pivot):维的行列位置交换,换一个视角分析数据。
    在这里插入图片描述

在这里插入图片描述

OLAP分类

OLAP按存储器的数据存储格式分为ROLAP、MOLAP和HOLAP。

  • MOLAP(Multi-dimensional OLAP)
    以多维数组(Multi-dimensional Array)存储模型的OLAP,是OLAP发源最初的形态,某些方面也等同于OLAP。它的特点是数据需要预计算(pre-computaion),然后把预计算之后的结果(cube)存在多维数组里。
    • 优点:
      • cube包含所有维度的聚合结果,所以查询速度非常快。
      • 计算结果数据占用的磁盘空间相对关系型数据库更小
    • 缺点:
      • 空间和时间开销大。update cube的时间跟计算维度(degree)相关,随着维度增加计算时间大幅增加,此外预计算还会造成数据库占用急剧膨胀。
      • 查询灵活度比较低。需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。
  • ROLAP(Relational OLAP)
    基于关系模型存放数据,一般要求事实表(fact table)和维度表(dimensition table)按一定关系设计,它不需要预计算,使用标准SQL就可以根据需要即时查询不同维度数据。
    • 优点
      • 扩展性强,适用于维度数量多的模型,MOLAP对于维度多的模型预计算慢,空间占用大。
      • 更适合处理non-aggregate事实,例如文本描述
      • 基于row数据更容易做权限管理
    • 缺点
      • 因为是即时计算,查询响应时间一般比预计算的MOLAP长。
  • HOLAP
  • 业界还没有一致的定义,它是MOLAP和ROLAP类型的混合运用,细节的数据以ROLAP的形式存放,更加方便灵活,而高度聚合的数据以MOLAP的形式展现,更适合于高效的分析处理。公司使用HOLAP的目的是根据不同场景来利用不同OLAP的特性。
OLAP业界产品
  • MOLAP 产品有 Cognos Powerplay, Oracle Database OLAP Option, MicroStrategy, Microsoft Analysis Services, Essbase, TM1, Jedox ,icCube和kylin等。
  • ROLAP产品有Vertica、Amazon Redshift、Google Dremel、Hulu Nesto、Presto、Druid、Impala、Greenplum、HAWQ和Doris等。

当前OLAP的发展状态

在国内,不论传统公司还是互联网公司,都开始利用OLAP技术分析挖掘大数据的价值,国内除BAT等大厂会自研OLAP产品外,其他中小互联网公司普遍拥抱开源,会使用Kylin、Presto、impala、Druid和Greenplum等开源技术来实现OLAP分析查询业务。

参考来源
延伸阅读

关于OLAP的详细来龙去脉:A survey on OLAP

(完)

关注公众号我们可以更方便沟通交流:水木之椿

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220030.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:24
下一篇 2026年3月17日 下午9:24


相关推荐

  • Midjourney 取消会员订阅教程,MJ 连续包月订阅计划取消图文教学

    Midjourney 取消会员订阅教程,MJ 连续包月订阅计划取消图文教学

    2026年3月15日
    1
  • Java工程师-招聘要求

    Java工程师-招聘要求工作职责: 1、负责后台系统的研发,及时解决项目涉及到的技术问题。 2、参与系统需求分析与设计,负责完成核心代码编写,接口规范制定3、参与后台服务性能效率优化岗位要求: 1、计算机相关专业毕业,有大数据高并发的处理经验,精通spring框架,阅读过spring源码,熟悉其事务机制 2、熟练应用Linux操作系统,熟悉GIT等版本管理软件3、掌握网站访问速度的各种优化方案,并提出优化方案更佳4、掌握…

    2022年7月8日
    29
  • 全民养虾,图了个啥?

    全民养虾,图了个啥?

    2026年3月13日
    2
  • quartz定时任务使用_netty定时调度

    quartz定时任务使用_netty定时调度定时任务调度工具之Quartz(一)一、Quartz介绍OpenSymphony提供的强大的开源任务调度框架;官网:http://www.quartz-scheduler.org/纯Java实

    2022年8月6日
    4
  • 所有帖子的 分类 总结

    所有帖子的 分类 总结一,数据库的数据库从入门到精通01:https://blog.csdn.net/u012932876/article/details/116212832数据库从入门到精通02:https://blog.csdn.net/u012932876/article/details/117715317数据库从入门到精通03:https://blog.csdn.net/u012932876/article/details/117359992Oracle数据库的操作:https://blog.csdn.net/u

    2022年6月6日
    32
  • COM口(DB9) 连 RJ45 线序

    COM口(DB9) 连 RJ45 线序设备 1 标准 100M 以太网线一根 线序为 568B 2 串口 DB9 到 RJ45 的转接头是目前常用的转接头 广泛用于路由器 交换机网络设备的串口管理 高 端服务器串口到 Console 服务器的连接 需要的备件 DB9 转 RJ45 转换器 1 个 如下图所示 一头买来时连接到 RJ45 口 另一头为 COM 口母头 9 针 线序如

    2026年3月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号