Apache Phoenix是HBase的SQL驅(qū)動,是一個HBse的開源SQL引擎,Phoenix 使得 HBase 支持通過 JDBC 的方式進(jìn)行訪問,并將你的 SQL 查詢轉(zhuǎn)成 HBase 的掃描和相應(yīng)的動作。有需要的朋友歡迎前來下載使用。
更新亮點:
Phoenix 4.x 與 HBase 0.98 和 1.3 兼容。
修復(fù)在連接時創(chuàng)建 SYSTEM.CATALOG 快照的 bug
關(guān)于行刪除處理的大量錯誤修復(fù)
統(tǒng)計收集改進(jìn)
新增 COLLATION_KEY 函數(shù)
Apache Phoenix功能:
Phoenix通過以下方式實現(xiàn)了比你自己手寫的方式相同或者可能是更好的性能(更不用說可以少寫了很多代碼):
* 編譯你的SQL查詢?yōu)樵鶫Base的scan語句
* 檢測scan語句最佳的開始和結(jié)束的key
* 精心編排你的scan語句讓他們并行執(zhí)行
* 讓計算去接近數(shù)據(jù)通過
* 推送你的WHERE子句的謂詞到服務(wù)端過濾器處理
* 執(zhí)行聚合查詢通過服務(wù)端鉤子(稱為協(xié)同處理器)
除此之外,我們還做了一些有趣的增強(qiáng)功能來更多地優(yōu)化性能:
* 實現(xiàn)了二級索引來提升非主鍵字段查詢的性能
* 統(tǒng)計相關(guān)數(shù)據(jù)來提高并行化水平,并幫助選擇最佳優(yōu)化方案
* 跳過掃描過濾器來優(yōu)化IN,LIKE,OR查詢
* 優(yōu)化主鍵的鹽值來均勻分布寫壓力
HBase優(yōu)勢:
一種觀點是:給大伙兒一些他們已經(jīng)熟悉的東西吧。什么是更好的方式去激勵他們使用HBase呢?最好的方式就是使用JDBC和SQL,原因有以下幾點:
* 降低用戶需要寫的代碼的數(shù)量
* 讓性能優(yōu)化對用戶透明
* 方便利用和整合大量的已經(jīng)存在的工具