随着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市场,并且各自都仍在发展和演进之中。用户需要根据自己的特定应用场景和技术领域选择合适的工具。
扫描微信二维码联系作者
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。