你需要的不是实时数仓 | 你需要的是一款强大的OLAP数据库(下)

在上一章节中,我们讲到实时数仓的建设,互联网大数据技术发展到今天,各个领域基本已经成熟,有各式各样的解决方案可以供我们选择。

在实时数仓建设中,解决方案成熟,消息队列Kafka、Redis、Hbase鲜有敌手,几乎已成垄断之势。而OLAP的选择则制约整个实时数仓的能力。开源盛世的今天,可以供我们选择和使用的OLAP数据库令人眼花缭乱,这章我们选取了几个最常用的OLAP开源数据引擎进行分析,希望能给正在做技术选型和未来架构升级的你提供一些帮助。

本文给出了常用的开源OLAP引擎的性能测评:
https://blog.csdn.net/oDaiLiDong/article/details/86570211

OLAP百家争鸣 OLAP简介

OLAP,也叫联机分析处理(Online Analytical Processing)系统,有的时候也叫DSS决策支持系统,就是我们说的数据仓库。与此相对的是OLTP(on-line transaction processing)联机事务处理系统。

联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。

Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的要求,SQL对大数据库的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,Codd提出了多维数据库和多维分析的概念,即OLAP。

OLAP委员会对联机分析处理的定义为:从原始数据中转化出来的、能够真正为用户所理解的、并真实反映企业多维特性的数据称为信息数据,使分析人员、管理人员或执行人员能够从多种角度对信息数据进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或多维环境特定的查询和报表需求,它的技术核心是"维"这个概念,因此OLAP也可以说是多维数据分析工具的集合。

OLAP的准则和特性

E.F.Codd提出了关于OLAP的12条准则:

准则1 OLAP模型必须提供多维概念视图

准则2 透明性准则

准则3 存取能力准则

准则4 稳定的报表能力

准则5 客户/服务器体系结构

准则6 维的等同性准则

准则7 动态的稀疏矩阵处理准则

准则8 多用户支持能力准则

准则9 非受限的跨维操作

准则10 直观的数据操纵

准则11 灵活的报表生成

准则12 不受限的维与聚集层次

一言以蔽之:

OLTP系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作,强调事务性;
OLAP系统则强调数据分析,强调SQL执行时长,强调磁盘I/O,强调分区。

OLAP开源引擎

目前市面上主流的开源OLAP引擎包含不限于:Hive、Hawq、Presto、Kylin、Impala、Sparksql、Druid、Clickhouse、Greeplum等,可以说目前没有一个引擎能在数据量,灵活程度和性能上做到完美,用户需要根据自己的需求进行选型。

组件特点和简介 Hive

https://hive.apache.org/

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

对于hive主要针对的是OLAP应用,其底层是hdfs分布式文件系统,hive一般只用于查询分析统计,而不能是常见的CUD操作,Hive需要从已有的数据库或日志进行同步最终入到hdfs文件系统中,当前要做到增量实时同步都相当困难。

Hive的优势是完善的SQL支持,极低的学习成本,自定义数据格式,极高的扩展性可轻松扩展到几千个节点等等。

但是Hive 在加载数据的过程中不会对数据进行任何处理,甚至不会对数据进行扫描,因此也没有对数据中的某些 Key 建立索引。Hive 要访问数据中满足条件的特定值时,需要暴力扫描整个数据库,因此访问延迟较高。

Hive真的太慢了。大数据量聚合计算或者联表查询,Hive的耗时动辄以小时计算,在某一个瞬间,我甚至想把它开除出OLAP"国籍",但是不得不承认Hive仍然是基于Hadoop体系应用最广泛的OLAP引擎。

Hawq


https://blog.csdn.net/wzy0623/article/details/55047696
https://www.oschina.net/p/hawq

Hawq是一个Hadoop原生大规模并行SQL分析引擎,Hawq采用 MPP 架构,改进了针对 Hadoop 的基于成本的查询优化器。除了能高效处理本身的内部数据,还可通过 PXF 访问 HDFS、Hive、HBase、JSON 等外部数据源。HAWQ全面兼容 SQL 标准,能编写 SQL UDF,还可用 SQL 完成简单的数据挖掘和机器学习。无论是功能特性,还是性能表现,HAWQ 都比较适用于构建 Hadoop 分析型数据仓库应用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgdjj.html