filter介面中定義了過濾器的基本方法,filterbase抽象類實現了filter介面。所有內建的過濾器則直接或者間接繼承自filterbase抽象類。使用者只需要將定義好的過濾器通過setfilter方法傳遞給scan或put的例項即可。
// scan 中定義的setfilter
@override
public scan setfilter(filter filter)
// get 中定義的setfilter
@override
public get setfilter(filter filter)
所有比較過濾器均繼承自comparefilter。建立乙個比較過濾器需要兩個引數,分別是比較運算子和比較器例項。
public comparefilter(final compareop compareop,final bytearraycomparable comparator)
比較運算子less (<)
less_or_equal (<=)
equal (=)
not_equal (!=)
greater_or_equal (>=)
greater (>)
no_op (排除所有符合條件的值)
比較運算子均定義在列舉類compareoperator中
@inte***ceaudience.public
public enum compareoperator
所有比較器均繼承自bytearraycomparable抽象類,常用的有以下幾種:binarycomparator : 使用bytes.compareto(byte ,byte )按字典序比較指定的位元組陣列。
binaryprefixcomparator : 按字典序與指定的位元組陣列進行比較,但只比較到這個位元組陣列的長度。
regexstringcomparator : 使用給定的正規表示式與指定的位元組陣列進行比較。僅支援equal和not_equal操作。
substringcomparator : 測試給定的子字串是否出現在指定的位元組陣列中,比較不區分大小寫。僅支援equal和not_equal操作。
nullcomparator :判斷給定的值是否為空。
bitcomparator :按位進行比較。
rowfilter :基於行鍵來過濾資料;familyfilterr :基於列族來過濾資料;
qualifierfilterr :基於列限定符(列名)來過濾資料;
valuefilterr :基於單元格(cell) 的值來過濾資料;
dependentcolumnfilter :指定乙個參考列來過濾其他列的過濾器,過濾的原則是基於參考列的時間戳來進行篩選 。
前四種過濾器的使用方法相同,均只要傳遞比較運算子和運算器例項即可構建,然後通過setfilter方法傳遞給scan:
filter filter = new rowfilter(compareoperator.less_or_equal,
new binarycomparator(bytes.tobytes("***")));
scan.setfilter(filter);
public class columnfamilyfilterdemo
tb.close();
}}
public class rowfilterdemo
tb.close();
}}
public class qualifierfilterdemo
tb.close();
}}
public class demo1
tb.close();
}}
must_pass_all :相當於and,必須所有的過濾器都通過才認為通過;must_pass_one :相當於or,只有要乙個過濾器通過則認為通過。
@inte***ceaudience.public
public enum operator
public class demo2
tb.close();
}}
hbase的所有過濾器
一 hbase的所有過濾器用法 keyonlyfilter filter str keyonlyfilter table connection.table table name table.scan filter filter str 返回所有行和列簇資料,值為空。firstkeyonlyfilte...
hbase 過濾器 scala 過濾器系列
過濾器系列710 c30810 賓士 c64 1500 004 09411 04 004094 3504 h12 110 2 w11102 2 wdk724 wdk725 沃爾沃 3825778 8149064 3825133 3825215 466634 11110668 11711074 477...
HBase(七)Hbase過濾器
基礎api中的查詢操作在面對大量資料的時候是非常蒼白的,這裡hbase提供了高階的查詢方法 filter。filter可以根據簇 列 版本等更多的條件來對資料進行過濾,基於hbase本身提供的三維有序 主鍵有序 列有序 版本有序 這些filter可以高效的完成查詢過濾的任務。帶有filter條件的r...