行鍵設計
高表與寬表
- 高表:表中列少行多
- 寬表:表中列多行少
Hbase隻能按行分片,是以高表更有優勢。 把需要檢索的條件盡量放到行鍵rowkey裡面去 寬表适合需要行級原子性的需求
輔助索引
- 由用戶端管理索引:缺點比優點更多
- 帶索引的事務型Hbase: ITHbase (個人認為要遠離在原本就不成熟的HBase上的更不成熟的封裝)
- 帶索引的Hbase: IHbase (個人認為要遠離在原本就不成熟的HBase上的更不成熟的封裝)
- 協處理器: 用鈎子維護索引
搜尋內建
- 用HBase存儲資料,用MapReduce任務建立索引,索引使用Lucene 或者 Solr。并且Lucene的背景存儲用HBase
- BuildTableIndex類可以掃描整個表,并建立Lucene索引,存儲在HDFS上
- HBasene: 直接在HBase内部建立搜尋索引
布隆過濾器
布隆過濾器可以減少 I/O操作的層面,但是消耗很大的性能,預設不要用