开源SQL-on-Hadoop系统一览

引言

查询分析是大数据要解决的核心问题之一,而SQL作为查询分析中使用最简单、最广泛的的语言之一,必然而然的催生了许多支持在Hadoop上使用SQL的系统,这就是所谓的SQL-on-Hadoop系统,其中大众熟知的Hive就是最早的SQL-on-Hadoop系统。

经过若干年的发展,SQL-on-Hadoop系统已经百花齐放,按照架构划分这些系统大致可以分为以下几类:

  • MapReduce架构系统:如Hive,这类系统是在MapReduce计算框架上封装了一个SQL语义层,在运行过程中把SQL转换为MapReduce程序来执行
  • MPP架构系统:如Impala、Presto、Drill等,这类系统采用MPP(Massively Parallel Processing)架构,而非MapReduce
  • 预计算系统:如Druid、Kylin等,这类系统主要特点是对数据进行预计算,并将结果保存,而在查询时直接获取相应结果值

本文主要是对这些系统做了一个基本总结,并简单介绍了一些主流系统的架构以及处理流程。下表是按照时间顺序,对这些系统的一个概述,包括技术特点和主导公司等。

项目名称 时间点 技术特点 主导公司
Apache Hive 2008年进入Apache,2010年毕业 一款基于HDFS的MapReduce计算框架,提供类SQL的数据查询功能,本质是将SQL转换为MapReduce任务运行 初期由Facebook开发,后被各大公司广泛接受
Apache Spark 2010年进入Apache,2014年毕业 数据在内存中以RDD(Resilient Distributed Datasets)表示,DataFrame是其核心编程抽象,同时也支持交互式查询和流计算 Databricks
Cloudera Impala 2012年进入Apache,2017年11月毕业 一款使用C/C++实现的MPP SQL查询引擎,使用HDFS作为存储,并支持列存 Cloudera
Apache Drill 2012年进入Apache,2014年毕业 以Google Dremel论文为基础,一个MPP数据查询引擎,支持schema free的交互式数据查询 MapR
Presto 2013年开源 基于内存的计算引擎,本身并不存储数据,支持跨数据源的级联查询 Facebook
Stinger Initiative 2013年 对Hive的性能优化和提升 Hortonworks
Apache Phoenix 2013年进入Apache,2014年5月毕业 构建在HBase上的一个SQL层 初期由Salesforce开发
Apache Tajo 2013年进入Apache,2014年5月毕业 基于Hadoop的数据仓库和SQL数据查询执行引擎 由Database Lab., Korea University开发
Apache Flink 2014年4月进入Apache,2014年12月毕业 流式的数据流执行引擎,基于流计算来模拟批计算,分别提供了流处理和批处理API
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值