文章资料-情感.机器.认知-电子AI 游客
基于大数据的OLAP技术
【8883】by1 2022-09-20 最后编辑2022-09-20 14:00:59 浏览698

在线分析处理(Online Analytical Processing,OLAP)技术是大数据技术中快速解决多维分析问题的方法之一。由于OLAP需要快速读取大量数据,因此它对数据的读取吞吐量和计算效率有很高的要求。目前,基于大数据的OLAP技术一般从面向读的存储优化、预计算、支持灵活分析等方面不断提高,近几年出现了很多令人激动的产品。



01
OLAP技术介绍


OLAP技术让用户能够从多个角度交互地分析多维数据,从中发现规律,用来做决策支持。在分析过程中,用户需要获取和处理历史数据(一段时期内),有时也需要获取和处理实时数据,此时查询吞吐量和相应时间是关键性能指标。


1、OLAP分析操作


OLAP分析一般需要设计数据立方体,立方体由分析的维度(dimension)、层级(level)和指标(metric)来定义,支持上卷(roll-up)、钻取(drill-down)、切片(slicing)和切块(dicing)等分析操作。


2、与OLTP的区别


与OLAP相对的是OLTP。OLTP的全称是联机事务处理(Online Transaction Processing),是传统关系型数据库的主要应用。OLTP的特点是实现插入、更新、删除等事务的在线处理,但系统需要保证事务的完整性,满足ACID原则。在OLTP中,事务的吞吐量是关键性能指标,以每秒事务数来衡量效率。


由于严格的约束限制,支持OLTP的数据系统通常无法满足OLAP大规模数据读取与处理的需求,二者对数据读取的吞吐量要求相差不止一个量级,因此OLAP系统的技术选型一般与OLTP不同,数据的组织方式也不同。



02
实时OLAP系统的两种架构模型


随着DT时代的到来,越来越多的业务需求要求大数据系统既能处理历史数据,又能进行实时计算,同时越来越要求运营的时效性,以便即时评估运营活动效果,即时调整策略。针对实时大数据统计分析系统,有两种架构设计路线:LambdaKappa




实时OLAP系统的两种架构模型对比如图1所示。


图片

▲图1 实时OLAP的两种架构模型对比


两种架构模型的优缺点对比如下:




03
OLAP相关技术分类


按照数据模型可将OLAP相关技术分为MOLAP、ROLAP和HOLAP 3种类型:


按照实现的技术方法可将OLAP相关技术分为MPP架构、预计算和搜索引擎三类。


三种技术方法的优缺点及适用场景对比如表1所示。


▼表1 三种技术方法的优缺点及适用场景对比

图片


针对这三种技术实现方法,该如何做技术选型呢?OLAP技术需要考虑系统的数据量、性能和灵活性三个方面,但是目前还没有一种方法能同时在这三个方面做到完美,在设计时需要在这三个方面之间做出取舍。比如MPP架构,它有很好的数据量和灵活性的支持,但是它的性能无法保证,随着计算量和复杂度的增加,响应时间可能从秒级变为分钟级甚至小时级。而预计算系统和搜索引擎技术方法则是通过牺牲灵活性来换取高性能。另外,还要考虑是否需要查询明细数据等辅助需求。


04
OLAP技术典型流行产品示例


本节介绍两个Hadoop体系兼容的OLAP产品,一个是基于MPP架构的OLAP引擎—

Impala,一个是基于预计算方法的OLAP引擎—Kylin。


1、Impala


Impala属于SQL on Hadoop的开源MPP分析引擎,可在Hadoop集群上运行。它由Cloudera公司主导开发,作为Hive的高性能替代品,用于大数据实时查询分析。Impala提高了Apache Hadoop的SQL查询性能,同时保留了熟悉的Hive用户体验,采用SQL语法(Hive SQL),使得Hive的用户可以顺畅地迁移到Impala上。Impala采用与基础数据存储引擎分离的设计,使用HDFS和HBase作为数据存储,并从Hive获取元数据,这是它与传统关系型数据库系统的主要区别。传统关系数据的查询引擎与存储引擎是紧密耦合的。


为了避免延迟,Impala避开了MapReduce,通过专门实现的分布式查询引擎直接访问数据,比Hive快几个数量级。


Impala的优点如下所示。



Impala由三个服务组成:Impala主进程(Impala daemon)、StateStore进程和Catalog进程。

Impala架构示意图如图2所示。


图片

▲图2 Impala架构


2、Kylin


Apache Kylin是一个开源的分布式分析引擎,提供Hadoop、Spark之上的SQL查询接口及多维分析能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。


Kylin通过三步支持查询。



Kylin原理示意图如图3所示。


图片

图3 Kylin原理


Apache Kylin的特性如下所示。



本文摘编于《数据应用工程:方法论与实践》,经出版方授权发布。(书号:9787111704096)转载请保留文章出处。