簡單來說,Phoenix 是一個可以讓我們通過SQL的方式操作HBase資料庫的架構。
HBase是一個NoSQL資料庫,shell用戶端隻支援一些簡單的操作,而且看起來容易暈。
例如下面這個圖,傳回的是一張表的所有資料:

是不是很難看,而且如果對HBase進行複雜查詢的話,隻能通過HBase的原生API編寫查詢程式,這樣就比較麻煩。
使用Phoenix的話,就可以使用SQL來查詢,便捷高效,同時還可以為HBase添加二級索引,提升查詢性能,還有其他一些友善的特性。
Phoenix 支援通過編寫JDBC代碼來操作HBase,比原生API更友善。
到 HBase 中檢視:
結果資訊:
成功生成了 US_POPULATION 表。
先建立一個測試資料檔案 <code>us_population.csv</code>,内容如下:
執行指令,把檔案中的資料導入到資料庫:
查詢表資料:
Phoenix自帶了一個web統計的小示例,先執行指令把他導入進來:
先執行了建表sql,然後導入資料檔案csv。
<code>CORE</code>、<code>DB</code>字段是CPU和資料庫使用量。
根據DOMAIN分組,檢視每組平均CUP、資料庫使用情況:
檢視各個domain的通路數,從高到低排序:
Phoenix 的基礎功能就是在 HBase 之上添加了 SQL 層,可以讓我們更友善的使用 HBase。
Phoenix 有很多優秀特性,例如:二級索引、命名空間映射、視圖、多租戶、動态列、事務 ……
而且現在已經發展的非常完善,可以內建 Spark、Hive、Pig、MapReduce,還有 Flume 插件。