2015-02-06 85 views
4

我使用Apache Phoenix來簡化我在Hbase上的數據檢索/更新操作。但是我想知道從的性能角度看哪個更好?鳳凰或自定義包裝使用Hbase本機API?或者我們有沒有其他方法不影響性能?Apache Phoenix vs Hbase Native API

回答

3

在完美的世界中Native api的工作速度會更快,但是您需要一直努力工作,因爲爲Hbase開發良好的API是一個單獨的項目。大項目。

而且您需要對map-reduce和hbase內部過程有很好的理解。但鳳凰已經爲你做了這一切。 例如 輔助索引可在主表上創建並自動維護全局索引。 查詢在更高效時自動使用索引,將全表掃描轉換爲點掃描和範圍掃描。 多列可能按升序或降序排列順序編制索引。 索引中可能包含額外的主表列,以形成覆蓋索引。 有兩種風格: 可變數據的服務器端索引維護。 客戶端索引維護針對一次寫入附加用例進行了優化。

鳳凰也爲您跳過掃描map-reduce。 還有更多...看看這裏http://phoenix-hbase.blogspot.com/http://phoenix.apache.org/performance.html#

團隊,根據鳳凰工作已經花費了大量的時間來優化這一切操作,如果你想與原生API編寫。你一定要確保你能做得更好。

作爲另一種解決方案,您可以使用Hive或SparkSQL。 但Hive的性能較差,Spark是獨立的羣集,也是困難的技術。

也是一個很好的技術是SparkOnHbase的高性能http://blog.cloudera.com/blog/2014/12/new-in-cloudera-labs-sparkonhbase/ 這一個更快,但更復雜。並沒有像索引和Hbase原生函數一樣的好功能。所以你需要寫它。

0

Phoenix將會非常合適,因爲它可以更好地理解Hbase的內部工作原理,將SQL查詢轉換爲本地HBase調用。它會爲你實現協處理器,爲你維護索引,如果你打算通過Hbase API實現將是一個繁瑣的過程。所以鳳凰使得Hbase查詢的生活更容易。由於它是由salesforce創建的,您可以爲其擔保。此外,它有良好的社區支持。