快速理解 Phoenix : SQL on HBASE

來源:互聯網
上載者:User

作者:劉旭暉 Raymond 轉載請註明出處

Email:colorant at 163.com

BLOG:http://blog.csdn.net/colorant/

更多雲端運算相關項目快速理解文檔  http://blog.csdn.net/colorant/article/details/8255910

==是什麼 ==

 

目標Scope

 

EasyStandard SQL access on top of HBase

 

官方定義

 

A SQL layer over HBase delivered as a client-embedded JDBC drivertargeting low latency queries over HBase data

 

個人理解

 

不同於Hive on HBase的方式,Phoenix將Query
Plan直接使用HBaseAPI實現,目的是規避MapReduce架構,減少查詢的時間延遲

 

==架構 ==

 

Phoenix中SQL Query Plan的執行,基本上是通過構建一系列的Hbase
scan來完成。

 

為了儘可能減少資料轉送,在Region Server使用Coprocessor來儘可能的執行Aggregate相關工作,基本思想是使用RegionObserver在PostScannerOpen
hook中將RegionScanner替換成支援Aggregation工作的定製化的Scanner,具體的Aggregate操作通過custom的scan屬性傳遞給RegionScanner。與基於MapReduce的架構執行Plan的思想比較,基本上就是通過Coprocessor,使用RegionServer自身來在各個節點上執行Aggregation。

 

此外,通過各種定製的Filter在Hbase的RegionScanner
scan過程中,儘早的將不相關的資料過濾掉。

 

採用JDBC介面和應用程式互動。

 

==實現 ==

 

目前支援簡單的表的建立,修改,資料刪減,過濾,檢索等SQL文法,從文法上看,不支援多表操作,本質上應該是由於不支援多表聯合類的操作如各種Join等,所以在Where部分也就不能做多表的比較。

 

個人認為,由於Coprocessor和
Filter自身能力的限制,如果完全不依賴Map Reduce架構,只通過HbaseClient API想要實現複雜的Query操作如多表聯合操作,相對比較困難,或者大量工作需要在用戶端代碼中實現,效能上可能無法滿足需求。

 

從RoadMap上來看,打算支援Hash
Join,要考慮效能的話,我猜測大概的實現思路是把第一次scan的小表的結果以某種方式儲存在記憶體中供第二次Scan時匹配用,那麼應該需要在scan之間保留狀態,不知道這點phoneix具體打算怎麼實現。

 

此外,Secondary Index也在計劃之中。沒有Secondary
Index,顯然在查詢效率方面要大打折扣。

 

然後,基於HBase的TS Basedversion和不限制qualifier等特性,大概還打算實現一些相對有趣的功能,比如動態column,嵌套資料結構,schema演化等。

 

適用領域

 

如果不能找到比較好的辦法來實現Join類操作,多表相關的操作都不能高效實現,那麼應該只能用於簡單的過濾,排序,單表檢索類工作。照官方的說法就是適用於10M-100M行規模的簡單查詢。

 

不過,考慮到HBase表的設計理念,盡量用冗餘資料空間減少複雜性的思想,實際上可以把相關資料都放在同一個表裡,而不需要為了減少資料冗餘,拆分到多個表中,很大程度上可以規避現階段Phoenix在多表聯合操作方面的能力缺失(當然,所有資料在一個表裡儲存,如果帶來更新操作的負擔和一致性問題,那還是要拆分的)

 

==相關文獻 ==

 

文法:http://forcedotcom.github.com/phoenix/

Wiki首頁:https://github.com/forcedotcom/phoenix/wiki

代碼:https://github.com/forcedotcom/phoenix

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.