phoenix使用hbase作為後端儲存,對於hbase來說,我們通常使用字典序的rowkey來快速訪問資料,除此之外,也可以使用自定義的filter來搜尋資料,但是它是基於全表掃瞄的。而phoenix提供的二級索引是可以避開全表掃瞄,是在hbase中快速查詢或批量檢索資料的另乙個選擇。下面的例子使用如下表進行測試:
create table hao1 ( id char(36) not null primary key, name varchar(50), age integer, createtime date)
upsert into hao1 (id, name, age, createtime) values('333', 'lp', 18, '2018-08-05 21:22:22');
phoenix提供了一種叫covered index覆蓋索引的二級索引。這種索引在獲取資料的過程中,內部不需要再去hbase上獲取任何資料,你查詢需要返回的列的資料都會被儲存在索引中。要想達到這種效果,你的select 的列,where 的列都需要在索引中出現。舉個例子,如果你的sql語句是 select name from hao1 where age=2,要最大化查詢效率和速度最快,你就需要建立覆蓋索引:
create index index1_c on hao1 (age) include(name);
注意關鍵字inclu Phoenix系列 二級索引(2)
phoenix客戶端在成功提交乙個操作並且得到成功響應後,就代表你所做的操作已經成功應用到原表和相關的索引表中。換句話說,索引表的維護和處理原表資料是同步的,並且各自是強一致性保證的。但是因為索引表和原表是在不同的表中,根據表的屬性和索引的型別,當服務端崩潰導致一次提交失敗時,原表和索引表中的資料就...
Phoenix二級索引建立
全域性索引是phoenix的重要特性,合理的使用二級索引能降低查詢延時,讓集群資源得以充分利用。本文將講述如何高效的設計和使用索引。全域性索引的根本是通過單獨的hbase表來儲存資料表的索引資料。我們通過如下示例看索引資料和主表資料的關係。建立資料表create table data table a...
CDH HBASE二級索引
a 對於已存在的表,每個需要建立索引的列簇都需要設定 replication scope 命令如下 b 新建表,用如下命令 c 生成實體配置檔案 d 編輯 home bigdata xuhailiu solr web collection conf schema.xml 檔案。為方便除錯,取出了檔案...