天天看點

Phoenix - Hbase與SQL

簡單來說,Phoenix 是一個可以讓我們通過SQL的方式操作HBase資料庫的架構。

HBase是一個NoSQL資料庫,shell用戶端隻支援一些簡單的操作,而且看起來容易暈。

例如下面這個圖,傳回的是一張表的所有資料:

Phoenix - Hbase與SQL

是不是很難看,而且如果對HBase進行複雜查詢的話,隻能通過HBase的原生API編寫查詢程式,這樣就比較麻煩。

使用Phoenix的話,就可以使用SQL來查詢,便捷高效,同時還可以為HBase添加二級索引,提升查詢性能,還有其他一些友善的特性。

Phoenix 支援通過編寫JDBC代碼來操作HBase,比原生API更友善。

Phoenix - Hbase與SQL

到 HBase 中檢視:

結果資訊:

成功生成了 US_POPULATION 表。

先建立一個測試資料檔案 <code>us_population.csv</code>,内容如下:

執行指令,把檔案中的資料導入到資料庫:

查詢表資料:

Phoenix - Hbase與SQL

Phoenix自帶了一個web統計的小示例,先執行指令把他導入進來:

先執行了建表sql,然後導入資料檔案csv。
Phoenix - Hbase與SQL
<code>CORE</code>、<code>DB</code>字段是CPU和資料庫使用量。

根據DOMAIN分組,檢視每組平均CUP、資料庫使用情況:

Phoenix - Hbase與SQL

檢視各個domain的通路數,從高到低排序:

Phoenix - Hbase與SQL

Phoenix 的基礎功能就是在 HBase 之上添加了 SQL 層,可以讓我們更友善的使用 HBase。

Phoenix 有很多優秀特性,例如:二級索引、命名空間映射、視圖、多租戶、動态列、事務 ……

而且現在已經發展的非常完善,可以內建 Spark、Hive、Pig、MapReduce,還有 Flume 插件。