隨着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市場,而且各自都仍在發展和演進之中。用戶須要根據本身的特定應用場景和技術領域選擇合適的工具。性能優化
掃描微信二維碼聯繫做者微信