你不理解的“OLAP”,从这4点一看就可以明白
但凡从事数据相关工作的人,都多多少少听说过“OLAP”。但大部分还是处于懵懵懂懂的状态,只知道是一种数据分析技术的统称。那么,OLAP到底是什么?它和BI有什么关系?今天小麦就和大家一起一探究竟。
ONE 什么OLAP?
OLAP的概念*早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。
当今的数据处理大致可以分成两大类:联机事务处理OLTP(On-Line Transaction Processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易;OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLAP使用户能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是”维”这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(Dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
TWO OLAP的操作
OLAP的基本多维分析操作有钻取(Roll Up和Drill Down)、切片(Slice)和切块(Dice)、以及旋转(Pivot)、Drill Across、Drill Through等。
钻取是改变维的层次,变换分析的粒度。它包括向上钻取(Roll Up)和向下钻取(Drill Down)。Roll Up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill Down则相反,它从汇总数据深入到细节数据进行观察或增加新维。
切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
OLAP是针对特定问题的联机数据,通过多维的方式进行查询与分析。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维,而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础。
多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill Down和Roll Up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
THREE OLAP的分类
OLAP按存储器的数据存储格式分为ROLAP、MOLAP和HOLAP。
MOLAP(Multi-dimensional OLAP)以多维数组模型存储数据,它的特点是数据需要预计算(pre-computaion),然后把预计算之后的结果(cube)存在多维数组里。因为cube包含所有维度的聚合结果,所以查询速度非常快。但查询灵活度比较低,需要提前设计维度模型,查询分析的内容仅限于这些指定维度,增加维度需要重新计算。
ROLAP(Relational OLAP)以关系模型存储数据,一般要求事实表(fact table)和维度表(dimensition table)按一定关系设计,它不需要预计算,使用标准SQL就可以根据需要即时查询不同维度数据。它的扩展性强,适用于维度数量多的模型。但因为是即时计算,查询响应时间一般比预计算的MOLAP长。
不管是MOLAP的多维数据模型,还是ROLAP的关系模型,它们都需要预先设计好模型后才可以使用。
FOUR OLAP与BI的关系
BI包括数据采集、数据准备、数据分析和数据共享等环节,数据分析又包括报表、OLAP、数据挖掘、数据可视化等多种分析技术。所以说,OLAP只是BI的一部分,是BI中一种数据分析技术。因为OLAP需要预先建模,所以在BI中主要是用于“描述发生了什么?”,它和报表、仪表盘一样,是属于“静态”的一种分析技术,用于构建信息门户或监控数据。
透视分析是*常用的一款OLAP分析工具,可以快速分类汇总、比较大量的数据,并且可以根据用户的业务需求,快速变换统计分析维度来查看统计结果。透视分析不仅综合了数据排序、筛选、组合及分类汇总等数据分析方法的优点,而且汇总的方式更灵活多变,并能以不同方式显现数据。
但是,基于OLAP的透视分析需要复杂的数据加工过程,需要cube,需要建立维度表、事实表、定维度层次、聚合指标等等,数据查询需要写SQL语句。
所以,我们需要对“静态”的透视分析进行改良,让它成为“动态”的一种分析工具,让用户可以对数据进行自由地探索。让它不仅能够“描述发生了什么?”,而且还能够“分析为什么会发生?”。
例如,Smartbi的透视分析工具采用“类Excel数据透视表”的设计,多维分析不再需要建立模型,就能够组合维度、汇总计算、切片、钻取,洞察数据。不仅如此,任何字段都可直接作为输出字段或筛选条件,轻松实现对数据的查询与探索。
Smartbi在后续的V10版本中,还会对数据集进行重构,在数据集中集成全新的OLAP引擎,把OLAP分析能力赋予报表、仪表盘、透视分析等多种分析工具,打造一个更加智能化的大数据分析平台。
综上所述,OLAP的作用就是让用户可以快速地从不同的角度洞察数据的情况。在数据量大且维度指标众多的情况下,可以让用户聚焦分析的重点。说到这里,大家对“OLAP”的理解是不是深刻很多了呢?