20世纪80年代,大型企业在数据库中存储的事务型数据量不断增加,对应的相关数据查询分析也越来越复杂,传统的关系数据库已经不能满足客观需求。1993年英国学者E.F.科德(E.F.Codd,1923~2003)研究团队首次提出可将OLAP应用到数据仓库系统中,以支持复杂的企业的复杂分析操作。数据仓库指能够对大量企业数据进行快速、准确分析的决策支持商业系统。主要分为三个部分:①数据层。用于实现企业操作数据的抽取、转换、清洗和汇总等。在企业的中心信息数据库里进行处理。②应用层。OLAP即处于应用层中,主要实现对信息数据的分析。③表现层。通过应用层的处理,将查询的报表、联机分析处理的结果等通过前台分析工具呈献给用户。
来自科德提出的12条准则,是多数OLAP产品设计的指导性原则:①多维概念视图;在企业的实际经营中,企业的视图本质上就是多维的,因此OLAP的概念模型从多维建立。②透明性;透明性准则包括两层含义:首先用户只关心操作,而不留意OLAP在哪个位置工作。其次,用户只需要使用熟悉的查询工具进行查询,而不必关心输入OLAP工具的数据是来自同构还是异构数据库。③异构存取能力,OLAP能够将概念视图映射到异质的数据上,能访问数据并执行所需转换。④报表能力,系统能从不同的数据维数和维的层次按照用户需求生成报表,并保证即时响应速度。⑤C/S体系结构,OLAP建立在客户/服务器体系结构基础之上。⑥维度等同性,对维的基本结构和操作能力上的要求是等同的。⑦动态稀疏矩阵处理能力,如同大数据的数据特性,OLAP中数据在不同维、不同层次分布不一定均匀,并且是动态演变的。稀疏性、动态性是其基本特征,OLAP中使用的数据分析模型一定要能适用于稀疏性数据,并能根据数据动态改变。⑧多用户支持,系统要支持多用户同时使用,为不同的用户建立不同的模型、执行不同的操作。⑨非受限跨维操作,OLAP系统提供计算完备的编程语言来定义各类计算公式,对任意维度任意层次进行需要的操作。⑩明确的数据操纵定义,在数据的操作定义上要上直观明了,各类操作的定义要严格、精确。⑪多报表多格式支持,OLAP提供与主流数据分析软件的交互接口(如Excel、R、Matlab等),报表中生成多种格式的表格与图表。⑫不受限维与聚集层次,通常来说,OLAP系统支持的维数大于15,系统用户可以任意建立聚集层次。
主要是仿照模拟企业决策人员的多角度思考模式,并为企业建立多维的数据分析模型。现实中,企业的数据分析通常是多维的,例如经销渠道、产品特性、市场细分等分别都可以为产品的一个独立维度。OLAP利用提前建立的多维数据模型能够快速地帮用户获取数据,同时在多个维度之间进行切换,以便客户快速地获取查询结果。OLAP提供复杂查询的速度只有关系数据库OLTP(Online Transaction Processing)查询的0.1%。其广泛应用和数据仓库的快速发展有极大的关系。数据仓库中每个分析都是一个OLAP应用,而所有的OLAP的应用都是数据仓库中的一部分。特点:①快速响应;OLAP系统的快速响应能力是大多数企业的基本需求。通常来说,OLAP系统能在5秒内对用户的查询分析处理做出响应,否则将超出用户的忍耐限度。②可分析性,指OLAP系统能基本满足企业大部分的逻辑分析、统计分析的相关任务。③多维性;是OLAP的关键属性。系统需要能从多个角度对数据建立视图并进行分析。④信息可获取性,在大数据分析应用中,数据往往大规模、分布式地存储在众多不同节点。OLAP系统能即时从各个节点获得相关信息,为用户提供即时响应,而不论数据的具体物理存储节点或者数据的规模。
以数据仓库为基础,按照存储方式不同可分为关系型联机分析处理(Relational OLAP,简称ROLAP)、多维联机分析处理(Multidimensional OLAP,简称MOLAP)和混合型联机分析处理(Hybrid OLAP,简称HOLAP)三种类型。
将多维数据存在关系数据库中,根据应用需要将一批预先定义的实视图以表的形式存储在关系数据库中。在储存时,只针对那些在SQL查询中应用频率较高、计算工作量大的查询作为实视图存储,一次来提高查询效率。同时ROLAP还设计了专门的RDBMS针对OLAP进行优化,以便实现并行存储、并行查询等优化。ROLAP主要通过软件实现,因此又称为虚拟OLAP。
优势包括:没有大小限制;现有的关系数据库的技术可以沿用;如ORACLE、DB2等,已对OLAP做了优化并提供了很多专有特性,包括并行查询与存储、分布式数据管理、基于分布式缓存的查询优化、基于树的数据索引优化、与SPARK大数据平台的交互接口、OLAP SQL扩展等。劣势:一般比MDD响应速度慢;不支持有关预计算的读写操作;SQL无法完成部分计算;无法完成多行的计算;无法完成维之间的计算等。
MOLAP将多维数据以多维数组的形式,存储在数据的物理层上。维的属性值则映射到了多维数组的下标值中,数据的值则存储在数组单元中。MOLAP的实现主要在物理层,因此又称为物理OLAP。
MOLAP的优势:性能好、响应速度快;专为OLAP所设计;支持高性能的决策支持计算;复杂的跨维计算;多用户的读写操作;行级的计算等。劣势:增加了系统的复杂程度,因此与之对应的系统培训与维护费用也会增加;由于受到操作系统中数据盘的格式类型限制,文件大小具有上限(只能10~20G),因此需要提前对数据大小进行预估计,否则可能导致数据大小超出限制;需要对维度进行预定义,因此无法支持维的动态演化;缺乏数据模型的统一访问标准。
兼具了ROLAP和MOLAP的优势,同时具有可伸缩性和快速计算的特点。当数据规模较大时,比如大量的业务数据,可以存放在RDB中;而聚合性的多维分析视图和查询缓存,则可以存放在MOLAP中。针对未预计到的新的用户查询与分析操作请求,可以首先从DBMS中查询,然后传输到MOLAP数据立方体中并存储,并由OLAP引擎将结果回馈到用户界面。新出现的分析查询操作,系统可以自动在MOLAP数据立方体中建立相关的多维模型并缓存相关的查询数据,以方便用户日后类似多维分析查询操作的快速响应。
OLAP基于多维模型定义了一系列面向分析的操作类型,常见的操作包括:钻取(Drill-down)、上卷(Roll-up)、切片(Slice)、切块(Dice)以及旋转(Pivot)等。钻取(Drill-down)指维的不同层次间的变化,从上层降到下一层,或者说是将汇总数据拆分到更细节的数据;上卷(Roll-up)指钻取的逆操作,即从细粒度数据向高层的聚合;切片(Slice)指选择维中特定的值进行分析;切块(Dice)指选择维中特定区间的数据或者某批特定值进行分析;旋转(Pivot)指维的位置的互换,就像是二维表的行列转换。
多数大型数据产品都提供OLAP工具,如Oracle、Microsoft SQL Server、IBM DB2、Informix、SyBase等,另外还有Cognos、Hyperion Essbase、MicroStrategy等产品。Oracle、微软、和IBM的OLAP产品多为数据库的附带分析挖掘工具。而从专业OLAP独立工具来看,Hyperion Essbase在美国市场占有率较高,能与ERP集成,全球大型企业用户超过1500家;而Microstrategy更强调安全性,在政府和金融行业受到关注。中国近年来的BI项目,特别是在有足够预算的大型企业,多选用Cognos和Essbase。