1. 協(xié)處理器coprocessor方案。 原理就是自定義協(xié)處理器,實現(xiàn)`雙寫`,就是寫主表的時候,同時寫索引表[這里這個索引表是根據(jù)業(yè)務(wù)對查詢的需求建立的]。 比如我們要查詢的主表是A, 里面有RowKey,還有一列ColumnA. 如果想對ColumnA這一列建立索引,就自定義一個協(xié)處理器(觀察者模式),當(dāng)我們寫入A表中一條數(shù)據(jù),比如 行鍵rowkey(123),cloumnA列值:abc,這時協(xié)處理在索引表(自己建立,比如A_INDEX)中插入一條記錄 行鍵為剛才列A的值abc,列值為主表的rowkey(123). 查詢的時候,先查索引表得到rowkey,然后根據(jù)rowkey在主表中查。
2. ES 方案,將想要構(gòu)建的二級索引的字段值存儲到ES中,查詢時先去ES根據(jù)條件查到rowkey,然后根據(jù)rowkey再去hbase查數(shù)據(jù)。
3. Phoenix 方案。 Phoenix構(gòu)建構(gòu)建索引的方式,本質(zhì)也在HBase中建立索引表。只不建表的過程,索引維護(hù)的過程,Phoenix自己內(nèi)部實現(xiàn),暴露給用戶的只是SQL接口。
# 其實在HBase構(gòu)建二級索引,萬變不離其宗,最終的方向都是構(gòu)建索引字段與行鍵的映射關(guān)系,先更加索引表查行鍵,在根據(jù)行鍵,查最終數(shù)據(jù)。
更多關(guān)于大數(shù)據(jù)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。