1. 比較過濾器 (1) 比較過濾器的操做符 LESS < LESS_OR_EQUAL <= EQUAL = NOT_EQUAL <> GREATER_OR_EQUAL >= GREATER > NO_OP 排除全部 (2) 經常使用比較過濾器的比較器 BinaryComparator 按字節索引順序比較指定字節數組,採用Bytes.compareTo(byte[]) BinaryPrefixComparator 跟前面相同,只是比較左端的數據是否相同 NullComparator 判斷給定的是否爲空 BitComparator 按位比較 RegexStringComparator 提供一個正則的比較器,僅支持 EQUAL 和非EQUAL SubstringComparator 判斷提供的子串是否出如今value中 (3) 比較過濾器的實際應用 3-1) 行鍵過濾器 RowFilter Filter filter = new RowFilter(CompareOp.LESS_OR_EQUAL,new BinaryComparator(Bytes.toBytes("row-22"))); scan.setFilter(filter); Filter filter1 = new RowFilter(CompareOp.EQUAL, new SubstringComparator("-5")); scan.setFilter(filter1); 3-2) 列族過濾器FamilyFilter Filter filter1 = new FamilyFilter(CompareFilter.CompareOp.LESS, new BinaryComparator(Bytes.toBytes("colfam3"))); scan.setFilter(filter1); 3-3) 列過濾器QualifierFilter filter = new QualifierFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("col-2"))); scan.setFilter(filter1); 3-4) 值過濾器ValueFilter Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator(".4") ); scan.setFilter(filter1); 2. 專用過濾器 (1) 前綴過濾器 PrefixFilter --針對行鍵 Filter fileter = new PrefixFilter(Bytes.toBytes("hello")); scan.setFilter(fileter); (2) 列前綴過濾器 Filter fileter = new ColumnPrefixFilter(Bytes.toBytes("hello")); scan.setFilter(filter); 3. 正則表達式過濾(RegexStringComparator) Scan scan = new Scan(); RegexStringComparator comp = new RegexStringComparator("you."); // 以 you 開頭的字符串 SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), CompareOp.EQUAL, comp); scan.setFilter(filter); 4. SubStringComparator 用於監測一個子串是否存在於值中,而且不區分大小寫。 Scan scan = new Scan(); SubstringComparator comp = new SubstringComparator("1129"); // 查找包含 1129 的字符串 SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), CompareOp.EQUAL, comp); scan.setFilter(filter); 5. 布隆過濾器 BloomFilter 簡介:hbase的storefile有不少,隨機查的時候可能須要遍歷不少storefile,若是在建表的時候指定了bloomfilter,則在get查詢(scan無論用)的時候就能夠過濾掉不少不符合規則的storefile,提升查詢效率。 參考:http://blog.csdn.net/opensure/article/details/46453681 6. 更多過濾器實例 參考:http://blog.csdn.net/u012185296/article/details/47338549