HBase(七)Hbase過濾器

2021-10-09 23:45:11 字數 2571 閱讀 1646

基礎api中的查詢操作在面對大量資料的時候是非常蒼白的,這裡hbase提供了高階的查詢方法:filter。filter可以根據簇、列、版本等更多的條件來對資料進行過濾,基於hbase本身提供的三維有序(主鍵有序、列有序、版本有序),這些filter可以高效的完成查詢過濾的任務。帶有filter條件的rpc查詢請求會把filter分發到各個regionserver,是乙個伺服器端(server-side)的過濾器,這樣也可以降低網路傳輸的壓力。

要完成乙個過濾的操作,至少需要兩個引數。乙個是抽象的操作符,hbase提供了列舉型別的變數來表示這些抽象的操作符:less/less_or_equal/equal/not_euqal等;另外乙個就是具體的比較器(comparator),代表具體的比較邏輯,如果可以提高位元組級的比較、字串級的比較等。有了這兩個引數,我們就可以清晰的定義篩選的條件,過濾資料。

less <

less_or_equal <=

equal =

not_equal <>

greater_or_equal >=

greater >

no_op 排除所有

binarycomparator 按位元組索引順序比較指定位元組陣列,採用 bytes.compareto(byte)

binaryprefixcomparator 跟前面相同,只是比較左端的資料是否相同

nullcomparator 判斷給定的是否為空

bitcomparator 按位比較

regexstringcomparator 提供乙個正則的比較器,僅支援 equal 和非 equal

substringcomparator 判斷提供的子串是否出現在 value 中

public class hbasefiltertest 

}

}

執行結果部分截圖

}執行結果部分截圖 

}執行結果部分截圖 

}執行結果部分截圖 

}執行結果部分截圖 

會返回滿足條件的整行

public class hbasefiltertest2 

}

}

}

執行結果部分截圖

}執行結果部分截圖 

}執行結果部分截圖 

}執行結果部分截圖

HBase之過濾器

過濾器的型別很多,但是可以分為兩大類 比較過濾器,專用過濾器 過濾器的作用是在服務端判斷資料是否滿足條件,然後只將滿足條件的資料返回給客戶端 hbase 的基本 api,包括增 刪 改 查等。增 刪都是相對簡單的操作,與傳統的 rdbms 相比,這裡的查詢操作略顯蒼白,只能根據特性的行鍵進行查詢 g...

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 過濾器(所有過濾)

filter介面中定義了過濾器的基本方法,filterbase抽象類實現了filter介面。所有內建的過濾器則直接或者間接繼承自filterbase抽象類。使用者只需要將定義好的過濾器通過setfilter方法傳遞給scan或put的例項即可。scan 中定義的setfilter override ...