Hbase 過濾器(所有過濾)

2021-10-10 23:42:57 字數 2386 閱讀 7554

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...