“ 每个做大数据的同学,都该当听过OLAP或者实践过。”
什么是OLAP多维剖析,它究竟有啥浸染,如今都有哪些盛行的技能办理方案来实现?本日我们详细聊一聊。
文中部分内容参考了朱凯老师的《ClickHouse事理解析》,感兴趣的朋友可以买来读一读。

在聊OLAP之前,我们先把韶光拉长,聊聊BI系统。
(1)传统BI系统
上个世纪,IT技能迅猛发展,紧张特色便是线下事情的线上化。各种各样的IT系统(比如ERP、CRM等)在各个行业落地履行。相应的,我们把这类系统称之为联机事务处理(OLTP)系统。
但是在企业的运行过程中,不但是有流程审批这些事情,还有很多报表统计、剖析决策干系的诉求。但是早期的IT系统的数据各自独立,相互割裂,给剖析带来了极大的困难。
为理解决这一问题,人们提出了数据仓库的观点,把数据集中在一起,打通隔阂,并通过分层的办法处理数据(关于数据仓库,可以回顾《数据仓库根本知识》,数据仓库的核心思路维度建模,参考文章《维度建模》。文章都有着详细的讲解,这里不展开了)。
逐步的,在数仓根本上供应数据剖析的系统逐步发展起来。直到90年代,BI系统的观点提出来,专门指代这类剖析系统。相对付OLTP系统,这类BI系统被称为联机剖析(OLAP)系统。
传统BI系统办理了很多问题,但是存在的瓶颈也是很多的。比如数据的剖析效率底下、研发迭代缓慢等,都对运用效果产生了负面影响。
(2)当代BI系统
最近几年,SaaS模式的兴起,为BI系统带来了新的发展机遇。例如我们熟知的GA、神策剖析、友盟剖析等,采纳的做事模式都是SaaS化。很多中小型公司的BI系统不再依赖于数仓的搭建。
而当代BI系统背后的OLAP技能也在不断发展。
2、什么是OLAP下面我们详细聊聊OLAP。
OLAP即联机剖析,又可以称为多维剖析,是关系型数据库之父Edgar Frank于1993年提出的观点。它指的是通过多种不同的维度核阅数据,进行深层次剖析。紧张的操作包
括下钻、上卷、切片、切块等。
参考Excel的数据透视表的功能,大家就好理解这些操作了。数据透视表实现了对原始数据的各种聚合、分解、切片等操作,OLAP也是如此。可以把OLAP理解成对公司数据库建立一个大的透视表,通过这个透视表进行各种维度的剖析,这便是OLAP。
说白了,OLAP是用于我们进行剖析的引擎。在很多公司的数据架构中,OLAP作为顶层剖析运用层与数据存储层的中间处理层。其核心办理的是和数据剖析干系的需求。
常见的OLAP架构可以分为三类。
(1)ROLAP
第一种架构称为ROLAP(Relational OLAP),即关系型OLAP。顾名思义,是直策应用关系模型进行构建的。因此,多维剖析的操作是可以直接转换成SQL进行查询的。
这种架构对数据的实时处理能力哀求很高。像ClickHouse、Impala、Presto都是范例的RLOAP代表。
(2)MOLAP
第二种架构称为MOLAP(Multidimensional OLAP),即多维型OLAP。
MOLAP的涌现是为了缓解ROLAP的性能问题。其核心思路是对数据预先聚合处理,以存储空间换查询韶光的减少。范例的MOLAP包括Kylin、Druid等。
随意马虎想到,如果维度较多,须要存储的数据量级会有指数级地上涨。一张千万级别的数据表,可能膨胀到须要存储亿级别的体量。
其余,由于须要进行估量算,MOLAP的数据会有一定的滞后性,不能实时进行数据剖析。并且由于只保留了聚合后的结果数据,无法查询明细数据。
(3)HOLAP
第三类架构称为HOLAP(Hybrid OLAP),即稠浊架构OLAP。
这种架构可以理解成ROLAP和MOLAP的集成。
3、OLAP实现技能的演进前面我们也陆续先容了OLAP干系的一些技能。下面我们大略聊聊OLAP技能的演进过程。
(1)传统关系型数据库阶段
第一个阶段称为传统的关系型数据库阶段。在这个阶段中,OLAP紧张因此Oracle、MySQL等关系型数据库实现。
在ROLAP架构下,直策应用这些数据库作为存储和打算的载体;在MOLAP架构下,则借助归天视图的形式实现数据立方体。
该阶段中,无论是ROLAP还是MOLAP,当数据体量大、维度数目多的时候,都存在严重的性能问题,乃至存在根本查不出结果的情形。
(2)大数据技能阶段
第二个极度可以称为大数据阶段。在这个阶段,紧张依赖Hive等大数据技能进行实现。
以ROLAP为例,传统的关系型数据库被Hive和SparkSQL这类新型技能所取代。比较传统的数据库而言,面向海量数据的处理性能明显提升了很多。但是在供应实时的在线查询做事时,仍旧须要几十秒乃至数分钟才能返回。
(3)最新阶段
最近几年,一款新的OLAP办理方案ClickHouse走进了大家的视野。其优胜的查询打算性能让人惊叹。头条、阿里、腾讯等大厂也纷纭进行利用。
ClickHouse是由来自俄罗斯的Yandex公司研发的(Yandex类似于中国的百度,是俄罗斯的本土搜索引擎,霸占俄国47%的搜索市场),是一款开源软件。
其他一些常见的OLAP技能方案比拟如下,供参考。
不同的技能,也都存在各自的优点和缺陷。在目前阶段,没有哪种OLAP技能是万能的灵丹灵药,可以办理所有问题。大家在技能选型时,须要结合自己的业务数据特点,进行选择。不知道未来是否有一天,能涌现完美的OLAP办理方案,一统江湖。期待吧。
关于OLAP就分享这些,以为不错就点个关注吧~