OLAP:实现高效BI分析的必备技术

 每个做大数据的同学,都应该听过OLAP或者实践过。

什么是OLAP多维分析,它究竟有啥作用,如今都有哪些流行的技术解决方案来实现?今天我们详细聊一聊。

文中部分内容参考了朱凯老师的《ClickHouse原理解析》,感兴趣的朋友可以买来读一读。

01

BI系统的演进

在聊OLAP之前,我们先把时间拉长,聊聊BI系统。

(1)传统BI系统

上个世纪,IT技术迅猛发展,主要特征就是线下工作的线上化。各种各样的IT系统(比如ERP、CRM等)在各个行业落地实施。相应的,我们把这类系统称之为联机事务处理(OLTP)系统。

4c56ca9f183a9ca398954c36aac6e062.jpeg

但是在企业的运行过程中,不只是有流程审批这些工作,还有很多报表统计、分析决策相关的诉求。但是早期的IT系统的数据各自独立,互相割裂,给分析带来了极大的困难。

为了解决这一问题,人们提出了数据仓库的概念,把数据集中在一起,打通隔阂,并通过分层的方式处理数据(关于数据仓库,可以回顾《数据仓库基础知识》,数据仓库的核心思路维度建模,参考文章《维度建模》。文章都有着详细的讲解,这里不展开了)。

逐步的,在数仓基础上提供数据分析的系统慢慢发展起来。直到90年代,BI系统的概念提出来,专门指代这类分析系统。相对于OLTP系统,这类BI系统被称为联机分析(OLAP)系统。

155de7c4f260a759d57ed0bee6e5e310.jpeg

传统BI系统解决了很多问题,但是存在的瓶颈也是很多的。比如数据的分析效率底下、研发迭代缓慢等,都对应用效果产生了负面影响。

(2)现代BI系统

最近几年,SaaS模式的兴起,为BI系统带来了新的发展机遇。例如我们熟知的GA、神策分析、友盟分析等,采取的服务模式都是SaaS化。很多中小型公司的BI系统不再依赖于数仓的搭建。

而现代BI系统背后的OLAP技术也在不断发展。

02


什么是OLAP

下面我们详细聊聊OLAP。

OLAP即联机分析,又可以称为多维分析,是关系型数据库之父Edgar Frank于1993年提出的概念。它指的是通过多种不同的维度审视数据,进行深层次分析。主要的操作包括下钻、上卷、切片、切块等。

参考Excel的数据透视表的功能,大家就好理解这些操作了。数据透视表实现了对原始数据的各种聚合、分解、切片等操作,OLAP也是如此。可以把OLAP理解成对公司数据库建立一个大的透视表,通过这个透视表进行各种维度的分析,这就是OLAP。

baa49e2b29d5bfd1b556faa3ee5e2e2d.png

说白了,OLAP是用于我们进行分析的引擎。在很多公司的数据架构中,OLAP作为顶层分析应用层与数据存储层的中间处理层。其核心解决的是和数据分析相关的需求。

2c3300d04116c331643287882649bc68.png

常见的OLAP架构可以分为三类。

9fe816766c526259e9415015e2574eab.png

(1)ROLAP

第一种架构称为ROLAP(Relational OLAP),即关系型OLAP。顾名思义,是直接使用关系模型进行构建的。因此,多维分析的操作是可以直接转换成SQL进行查询的。

c0aa8396f2f19f4524bda5fad0f6c3f5.jpeg

这种架构对数据的实时处理能力要求很高。像ClickHouse、Impala、Presto都是典型的RLOAP代表。

(2)MOLAP

第二种架构称为MOLAP(Multidimensional OLAP),即多维型OLAP。

dc8bc41dcb65737bd583ffe2cca119b2.jpeg

MOLAP的出现是为了缓解ROLAP的性能问题。其核心思路是对数据预先聚合处理,以存储空间换查询时间的减少。典型的MOLAP包括Kylin、Druid等。

容易想到,如果维度较多,需要存储的数据量级会有指数级地上涨。一张千万级别的数据表,可能膨胀到需要存储亿级别的体量。

另外,由于需要进行预计算,MOLAP的数据会有一定的滞后性,不能实时进行数据分析。并且由于只保留了聚合后的结果数据,无法查询明细数据。

(3)HOLAP

第三类架构称为HOLAP(Hybrid OLAP),即混合架构OLAP。

这种架构可以理解成ROLAP和MOLAP的集成。

03


OLAP实现技术的演进

前面我们也陆续介绍了OLAP相关的一些技术。下面我们简单聊聊OLAP技术的演进过程。

(1)传统关系型数据库阶段

第一个阶段称为传统的关系型数据库阶段。在这个阶段中,OLAP主要是以Oracle、MySQL等关系型数据库实现。

e71f2176cd74fbb8f21075d40c5c67cb.jpeg

在ROLAP架构下,直接使用这些数据库作为存储和计算的载体;在MOLAP架构下,则借助物化视图的形式实现数据立方体。

该阶段中,无论是ROLAP还是MOLAP,当数据体量大、维度数目多的时候,都存在严重的性能问题,甚至存在根本查不出结果的情况。

(2)大数据技术阶段

第二个极端可以称为大数据阶段。在这个阶段,主要依赖Hive等大数据技术进行实现。

0f9936ec1e4ebb71f3de6f6c153204c4.png

以ROLAP为例,传统的关系型数据库被Hive和SparkSQL这类新型技术所取代。相比传统的数据库而言,面向海量数据的处理性能明显提升了很多。但是在提供实时的在线查询服务时,仍然需要几十秒甚至数分钟才能返回。

(3)最新阶段

最近几年,一款新的OLAP解决方案ClickHouse走进了大家的视野。其优越的查询计算性能让人惊叹。头条、阿里、腾讯等大厂也纷纷进行使用。

947f3fde89b916f4e342c14200c056c2.png

ClickHouse是由来自俄罗斯的Yandex公司研发的(Yandex类似于中国的百度,是俄罗斯的本土搜索引擎,占据俄国47%的搜索市场),是一款开源软件。

其他一些常见的OLAP技术方案对比如下,供参考。

e022d09bdb16d3c9cb6a3ff7b478b43a.png

不同的技术,也都存在各自的优点和缺点。在目前阶段,没有哪种OLAP技术是万能的灵丹妙药,可以解决所有问题。大家在技术选型时,需要结合自己的业务数据特点,进行选择。不知道未来是否有一天,能出现完美的OLAP解决方案,一统江湖。期待吧。

关于OLAP就分享这些,欢迎继续关注~

RECOMMEND

推荐阅读

3d5a31ef0ae00ac1d6268093db1f946d.jpeg

73c87f46e700e2195f884ca7251f59e6.gif

更多精彩回顾

书讯 |8月书讯(上) | 重磅新书来袭!书讯 |8月书讯(下) | 重磅新书来袭!资讯 |《Java核心技术》基于Java 17全面升级!干货 |再见了Java8,Java17:我要取代你干货 | 李三红:Java版本升级需要纳入到可持续性维度
干货 |市面上的大前端岗位到底是做什么的?

088ffd1dfee6c3447cf6e8273622147b.gif

65bfee85ffca5234abcaf32a2541ab01.gif

点击阅读全文购买

  • 0
    点赞
  • 1
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值