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