主流开源OLAP对比分析

数据库按照应用场景划分可以分为OLTP和OLAP,OLTP是针对交易型的场景比如像银行的存取款、转账类业务,OLAP是针对分析型的场景比如用于企业决策支持的BI、报表类业务。
而在OLAP领域,又可以根据具体技术实现分为MOLAP及ROLAP。MOLAP是基于多维分析的OLAP系统,一般对存储有优化,进行部分预计算,查询性能最高,但查询灵活性有限制ROLAP是更偏向传统关系型的OLAP系统,ROLAP又分为两类:一类是MPP数据库,另一类是SQL引擎。MPP数据库是完整的数据库,一般需要把数据导入到库中进行OLAP分析,入库时对数据分布进行优化,进而获得后期查询性能的提升,提供灵活的即席查询能力,但无法支持超大数据量的查询。SQL引擎只提供SQL执行能力,不负责具体的数据存储。

目前主流的开源OLAP产品按照此分类主要有以下产品:
在这里插入图片描述

以下针对以上几种开源组件分别进行概要的介绍说明,并进行相关特性的对比。

MOLAP

Kylin

Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供 Hadoop 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc.开发并贡献至开源社区。Kylin的核心思想是预计算,理论基础是:以空间换时间。即将多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。把高复杂度的聚合运算,多表连接等操作转换成对预计算结果的查询。最新版本的Apache Kylin4.0采用了全新的 Spark 构建引擎和 Parquet 作为存储,同时使用 Spark 作为查询引擎。
Kylin的架构图如下:
在这里插入图片描述
优点:

  1. 亚秒级查询响应;
  2. 支持百亿、千亿甚至万亿级别交互式分析;

缺点:

  1. 不支持 insert, update, delete 等 SQL 操作,用户修改数据的话需要重新批量导入(构建);
  2. 需要预先建立模型后加载数据到 Cube 后才可进行查询

Druid

Apache Druid是高性能的实时分析数据库,主要提供对大量的基于时序的数据进行OLAP查询能力。支持毫秒级的快速的交互式查询。Druid的核心设计结合了数据仓库、时间序列数据库和搜索系统的思想,适用于多种场景的高性能数据实时分析。
Druid的架构图如下:
在这里插入图片描述优点:

  1. 为分析而设计:为OLAP工作流的探索性分析而构建。它支持各种filter、aggregator和查询类型。
  2. 交互式查询:低延迟数据摄取架构允许事件在它们创建后毫秒内查询。
  3. 高可用:数据在系统更新时依然可用、可查询。规模的扩大和缩小不会造成数据丢失。
  4. 可伸缩:每天处理数十亿事件和TB级数据。

缺点:

  1. 不支持更新操作,数据不可更改
  2. 不支持事实表之间的关联

对比Kylin:

  • 都是cube预计算
  • 支持流式更灵活
  • Kylin 利用 Hadoop/HBase 做计算和存储,使用 SQL 查询,提供 JDBC/ODBC 驱动与常见 BI 工具集成
  • Druid 有自己独立的分布式集群,能够实时摄入数据,有自己的查询接口(与BI兼容性较弱),通常多用于实时要求高的场景

ROLAP

Greeplum

GreenPlum是基于PostgreSQL的开源MPP数据库,具有良好的线性扩展能力,具有高效的并行运算和并行存储特性。
GreenPlum的架构图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值