联机分析处理OLAP(On-Line Analytical Processing)。开源OLAP引擎包含Hive、SparkSQL、Presto、HAWQ、Druid、ClickHouse、Impala、Kylin、Greeplum等。
OLAP简介 - 图1

OLAP也称决策支持系统(Decision Support System,DSS),是数据仓库系统的主要应用形式,使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。
基于数据仓库的决策支持系统通常由数据仓库、联机分析处理和数据挖掘三个部分组成,其中数据仓库是系统的核心。
OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心概念是维(观察数据的特定角度,如时间维),因此OLAP也可以说是多维数据分析工具的集合。
OLAP系统按照数据存储格式可以分为Relational OLAP(ROLAP)、Multidimensional OLAP(MOLAP)和Hybrid OLAP(HOLAP)三种类型。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。

OLAP背景

OLAP的本质

OLAP是一种数据处理技术,专门设计用于支 持复杂的分析操作,侧重对决策人员和高层 管理人员的决策支持,可以根据分析人员的 要求快速、灵活地进行大数据量的复杂查询 处理,并且以一种直观而易懂的形式将查询 结果提供给决策人员,以便他们准确掌握企 业(公司)的经营状况。
image.png

OLAP是新概念?

完全不是,1993年关系数据库之父codd提出OLTP(数据库的事务性)已经无法满足用户对数据查询分析的要求,用户 的决策分析需要对关系数据库进行大量的计算才能得到结果,提出多维数据库和多维分析的概念
OLAP委员会对联机分析处理的定义为:使分析人员、管理人员或执行人员能够从多种角度对从原始数据中转化出来 的、能够真正为用户所理解的、并真实反映企业维特性的信息进行快速、一致、交互的存取,从而获得对数据更深 入了解的一类软件技术.
image.png

3: 为什么需要olap平台

传统的OLTP型数据库,已经不能满足需求,如下问题已经变得越来越广泛
1) 数据规模都在几十T及P级别的数据,一般服务器承载不了。
2) 数据量在猛烈增长, 但是查询的性能要求反而变大越来越高
3)Ods层的数据来源比较多,依赖比较多,但是用户的决策分析需要对这些Ods层的数据进行大量计算才能得到结果
4) SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求
5)一次处理的数据量大
以后问题可以通过olap很好的结果,通过olap处理的数据,具有如下特点:
1) 支持数据的数据量大,可达到几十T及P级别的数据
2)数据量大但是查询速度依然很高

4: olap能做哪些事情?

1) 大数据毫秒到亚秒级查询
2) 大数据的sql查询
3) BI的支持,可以和BI系统让大数据可视化动起来。
OLAP简介 - 图4

5: olap 产品

目前有两种MDD 的OLAP产品:基于多维数据库的MOLAP和交互分析的的ROLAP。
ROLAP,叫关系型 OLAP。它的特点是基于关系性模型,计算的时候,根据原始数据 去做聚合运算。常见的小数据量可以利用 MySQL、Oracle 这种传统数据库,而大数据 量可以利用 Spark SQL、Presto 这些项目。
MOLAP,叫多维 OLAP。它的特点就是它会基于一个预定义的模型,我需要知道,要 根据什么维度,要去算哪些指标,我提前就把这些结果弄好,存储在引擎上。当查询的 时候,根据结果简单地做下汇总就可以得出来。代表产品:kylin, Druid
kylin, 特点:开源 cube hive 预聚合 hbase
druid,特点: 开源 实时序列 位图索引

OLAP引擎分类

ROLAP (Relational OLAP)

• 基于RDBMS技术,通过并⾏化/内存加速计算
• 代表:Presto / Impala / SparkSQL / Drill
image.png

MOLAP (Multi-dimensional OLAP)

• 预先聚合明细数据,系统中只存储汇总数据
• 代表:Kylin / Druid
image.png

Search Engines

• 基于搜索引擎技术,通过索引加速计算
• 代表:Elasticsearch / Solr
image.png

相同点: Kylin 和 ClickHouse 都能通过 SQL 的方式在 PB 数据量级下,亚秒级(绝多数查询 5s内返回)返回 OLAP(在线分析查询) 查询结果
不同应用场景:
Kylin 适合高并发,固定模式查询场景,例如: 报表分析,留存分析,用户标签画像分析,用户行为漏斗分析,归因分析等.
ClickHouse 适合低并发,灵活即席查询场景,也支持例如:报表分析,留存分析,用户标签画像分析,用户行为漏斗分析,归因分析等.
原理不同:
Kylin 是基于Hadoop平台,通过预计算, 通过定义cube模型,将结果预计算保存,之后当 SQL 请求过来直接可以以查表的方式获取结果, 使用预计算的一个形象的类比就是 九九乘法表, 大家都知道,乘法是加法的简化版本, 如果你背熟了九九乘法表, 下一次做乘法的时候,就可以直接得到结果. kylin 就是一个帮你记住 “九九乘法表” 的工具, 让你在使用 SQL 查询的时候,能够直接拿到结果,能够在O(1) 复杂度下得到计算结果.

ClickHouse 是 MPP 架构的列式存储 RDBMS (关系型数据库),通过极致使用 CPU 的性能达到高性能的 OLAP 分析.

参考

微信:选择适合你的开源OLAP引擎
https://mp.weixin.qq.com/s/pkPBqlYMm6AkpvxogfTA3A
语雀:选择适合你的开源OLAP引擎
https://www.yuque.com/kshare/2020/d57600f4-bf0b-405a-9cbe-49b7c9386a6f
知乎:开源OLAP引擎哪个快? (Presto、HAWQ、ClickHouse、GreenPlum)
https://zhuanlan.zhihu.com/p/54907288