最初,Apache Hadoop被視為是批處理非結構化數據的平臺。從本質上講,Hadoop是一種存儲和處理大量數據的廉價又可靠的方式,吸引了更多的客戶。
隨著時間的推移,Data Gravity的影響增加了對SQL on Hadoop的需求。最初的目標是找到使用SQL來支持Hadoop數據的方法,但現在越來越多的要求是用像Tableau這樣的工具,將業務用戶與數據連接起來。
開源方法
有許多開源的SQL on Hadoop解決方案,包括Hive(LLAP),Impala,SparkSQL和Presto。這些產品大都比較年輕,仍然有很大的改進。這些解決方案最大的優勢在于它們是從頭開始編寫的,用于分析Hadoop中的數據。
人們經常說好的軟件需要10年時間來研發,SQL產品也不列外,特別是在查詢優化方面,雖然Hadoop本身已經有10年的歷史了,但是Hadoop產品上的大部分SQL都太年輕。這也是為什么許多專有的數據庫產品都建立在巨人肩膀上的原因。例如,PostgreSQL派生的產品列表中包括的Greenplum、Netezza、ParAccel、Redshift和Vertica。
專有解決方案
在Hadoop中有專門使用SQL來查詢數據的方法。
其中的一些允許用戶運行TDWI調用“SQL off Hadoop”,這需要Hadoop集群和一個單獨的SQL引擎平臺。在不同平臺之間移動數據需要額外的費用,但有些人可能會認為將SQL工作負載從Hadoop集群中分離出來會帶來好處,因此額外的費用也是值得的。
基準測試
基準測試可以作為來判斷Hadoop選項上的替代SQL功能和性能的基本點。包括以下幾點:
1. AtScale:這是AtScale第二次SQL on Hadoop測試,明顯看得出來,他們測試的開源產品有了大幅改進,更符合用戶對新產品的期望,另一個發現是,產品對不同的查詢都有優勢和弱點,表明這還不是一個適合所有市場的產品。另外,基準使用了相對較小的TPC-H查詢集,而這里列出的其他基準使用更新和更全面的TPC-DS查詢集。
2. Comcast對TPC-DS查詢進行了基準測試,比較了不同的SQL on Hadoop產品。這也是比較不同文件格式性能的唯一基準。
3. Kognitio TPC-DS查詢設置了一個基準,包括所有的TPC-DS查詢和并發測試。關于基準運行方式以及每個查詢結果。
基準測試過程中呈現出了一些共性:
1. 開源產品在功能和性能方面正在得到顯著改善。
2. 許多開源產品不成熟,意味著它們無法運行所有的TPC-DS查詢集,因為它們不支持所需的語法,或者會產生運行時錯誤。
3. 某些產品(特別是SparkSQL和Presto)需要對并發性能進行調優。
4. Hive本身非常緩慢(Comcast特別強調)。 Hive LLAP是一個重大的改進,盡管AtScale仍然把它排在Presto和Impala的后面。
不再是“一刀切”
只要在Hadoop集群上使用SQL on Hadoop解決方法,就可以找到適合的工具來工作。如果您已經有了Hive for ELT和其他批處理功能,但是無法滿足將Hadoop中的數據連接到業務用戶社區的需求,那么您可以使用不同的SQL on Hadoop解決方案來完成該任務,并保持當前 Hive工作負載到位。