一、說明
1、由於數據量巨大的時候,單純的Hbase查詢就會變得比較慢。如果讓Hbase查詢再快一些,就要爲其創建二級索引。爲Hbase創建二級索引一般有兩種思路,一個思路是使用phoenix爲Hbase創建二級索引,另一個思路是使用es爲Hbase創建二級索引。
2、使用phoenix爲Hbase創建二級索引的思路是可行的,但是當查詢條件變的很多時就變的很不靈活。比如我有二十個查詢條件隨機組合查詢,每次查詢都會有一到二十個條件一起用,這樣的話每一種情況都要用phoenix創建索引是比較繁瑣的,還容易漏掉其中的幾種組合;
3、由於es的條件查詢比較靈活,可以多條件隨機靈活結合,所以在查詢條件相當多、數據量又巨大的條件下要優先選擇es爲Hbase創建二級索引的;
二、es爲Hbase創建二級索引的思路
1、假設Hbase中要查詢的數據字段爲rowid、name、age、sex、content,要查詢的條件爲name、age、sex;
2、rowid必須爲手動創建的rowid;
3、則在存入數據的時候、Hbase要存入一份rowid、name、age、sex、content,es也要存入相同的rowid、name、age、sex,查詢時只需先在es根據條件查出rowid,再去Hbase根據確定的rowid去查找相應的記錄;
4、圖解