随着Hadoop的流行,越来越多的企业把数据存储在Hadoop上,或者Non-SQL数据库上,随之相关的数据处理技术也从一开始的Map Reduce一统江湖,到现在各种技术竞相出现。最新的趋势是,大家普遍希望能够快速得到查询结果,做交互式查询,同时也希望传统的BI(Business Intelligence,商务智能)工具可以直接和基于Hadoop的大数据平台连接起来,以便使用现用工具进行可视化数据分析。

SQL on Hadoop是近几年发展起来的技术,解决了交互式查询和SQL支持的问题。下文总结了一些这个领域的开源项目,供参考。如有具体问题或任何反馈,欢迎联系作者本人:boyang798@gmail.com。

项目名称 技术特点 主导公司
Apache Hive 支持原生Hadoop数据存储和访问,存储数据schema等metadada信息,提供类SQL的数据查询语言 初期由Facebook开发,现在被Hadoop社区广泛接受
Apache Spark 将Map Reduce缓存在内存中执行(RDD,Resilient Distributed Datasets),使用多级有向图来优化查询执行。Spark SQL支持JDBC和ODBC Databricks
Cloudera Impala 使用C/C++实现的基于Hadoop的数据查询层,用户量比较大,与现有BI工具集成比较好 Cloudera
Stinger Initiative 基于Hive的性能优化和提升,与Hadoop结合比较紧密 Hortonworks
Apache Drill 以Google Dremel论文为基础,全新实现的数据查询层,不依赖Hadoop,支持schema free的数据查询。支持JDBC和ODBC MapR
Presto 分布式SQL查询执行引擎,支持多种数据源,可扩展性比较好。支持JDBC 初期由Facebook开发,现在Netflix也是积极用户和贡献者
Apache Phoenix 基于Apache HBase的关系型数据库层。支持JDBC 初期由Salesforce开发,现在被多家公司使用和共同开发
Apache Kylin 基于Apache HBase的OLAP,使用OLAP Cube技术做多维数据预计算和聚合。支持JDBC 由ebay开发
Apache Tajo 基于Hadoop的数据仓库和SQL数据查询执行引擎。支持JDBC 由Database Lab., Korea University开发
Cascading Lingual 基于Hadoop的SQL数据查询执行引擎。支持JDBC 由Cascading和Optiq开源社区开发
Dato (GraphLab) 严格意义上不属于SQL on Hadoop,但是其有特殊的技术,所以值得一提。基于C++实现的数据存储和分析工具,初期是Graph Base的数据存储和查询技术,主要用于机器学习。现在也扩展为通用的大数据分析和处理平台。 GraphLab由Carnegie Mellon University的Carlos Guestrin教授发起,现在改名为Dato,由dato.com公司主导

以上各个项目各有特点和优缺点,目前没有一家可以统一整个SQL on Hadoop市场,并且各自都仍在发展和演进之中。用户需要根据自己的特定应用场景和技术领域选择合适的工具。


扫描微信二维码联系作者
扫描微信二维码联系作者


BoYang
132 声望9 粉丝

Big Data, SQL on Hadoop