重要
由于開源HBase API的一些限制,使用HBase API兼容的二級索引存在一系列限制和問題,因此該功能不再維護,不推薦新用戶使用。歡迎大家通過Lindorm SQL使用二級索引,相關內容請參見二級索引。
二級索引簡介
HBase原生提供了主鍵索引,即按Rowkey的二進制排序的索引。Scan可基于此Rowkey索引高效的執(zhí)行整行匹配、前綴匹配、范圍查詢等操作。但若需要使用Rowkey之外的列進行查詢,則只能使用filter在指定的Rowkey范圍內進行逐行過濾。若無法指定Rowkey范圍,則需進行全表掃描,不僅浪費大量資源,查詢RT也無法保證。
有多種解決方案可解決HBase的多維查詢的問題。例如以要查詢的列再單獨寫一張表(用戶自己維護二級索引),或者將數(shù)據(jù)導出到Solr或者ES這樣的外部系統(tǒng)進行索引。
Solr/ES固然強大,但對于大部分列較少且有固定查詢模式的場景來說,有”殺雞用牛刀”之感。為此,HBase增強版推出了原生的全局二級索引解決方案,以更低的成本解決此類問題。因內置于HBase,提供了強大的吞吐與性能。這個索引方案在阿里內部使用多年,經歷了多次雙11考驗,尤其適合解決海量數(shù)據(jù)的全局索引場景。下圖給出了HBase增強版與Phoenix在索引場景下的性能對比:
文檔內容是否對您有幫助?