随着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市场,而且各自都仍在发展和演进之中。用户须要根据本身的特定应用场景和技术领域选择合适的工具。性能优化
扫描微信二维码联系做者微信