HBase之過濾器

2021-09-25 09:39:46 字數 3153 閱讀 9483

過濾器的型別很多,但是可以分為兩大類——比較過濾器,專用過濾器

過濾器的作用是在服務端判斷資料是否滿足條件,然後只將滿足條件的資料返回給客戶端;

hbase 的基本 api,包括增、刪、改、查等。

增、刪都是相對簡單的操作,與傳統的 rdbms 相比,這裡的查詢操作略顯蒼白,只能根據特性的行鍵進行查詢(get)或者根據行鍵的範圍來查詢(scan)。

hbase 不僅提供了這些簡單的查詢,而且提供了更加高階的過濾器(filter)來查詢。

抽象操作符(比較運算子)

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 中

1、rowfilter(行鍵過濾器或rowkey的過濾器)

filter rowfilter = new rowfilter(compareop.greater, new binarycomparator("95007".getbytes()));

scan.setfilter(rowfilter);

2、列簇過濾器 familyfilter

filter familyfilter = new familyfilter(compareop.equal, new binarycomparator("info".getbytes()));

scan.setfilter(familyfilter);

3、列過濾器 qualifierfilter

filter qualifierfilter = new qualifierfilter(compareop.equal, new binarycomparator("name".getbytes()));

scan.setfilter(qualifierfilter);

4、值過濾器 valuefilter

filter valuefilter = new valuefilter(compareop.equal, new substringcomparator("男"));

scan.setfilter(valuefilter);

5、時間戳過濾器 timestampsfilter

listlist = new arraylist<>();

list.add(1522469029503l);

timestampsfilter timestampsfilter = new timestampsfilter(list);

scan.setfilter(timestampsfilter);

1、單列值過濾器 singlecolumnvaluefilter ----會返回滿足條件的整行

singlecolumnvaluefilter singlecolumnvaluefilter = new singlecolumnvaluefilter(

"info".getbytes(), //列簇

"name".getbytes(), //列

compareop.equal,

new substringcomparator("劉晨"));

//如果不設定為 true,則那些不包含指定 column 的行也會返回

singlecolumnvaluefilter.setfilterifmissing(true);

scan.setfilter(singlecolumnvaluefilter);

2、單列值排除器 singlecolumnvalueexcludefilter 

singlecolumnvalueexcludefilter singlecolumnvalueexcludefilter = new singlecolumnvalueexcludefilter(

"info".getbytes(),

"name".getbytes(),

compareop.equal,

new substringcomparator("劉晨"));

singlecolumnvalueexcludefilter.setfilterifmissing(true);

scan.setfilter(singlecolumnvalueexcludefilter);

3、字首過濾器 prefixfilter----針對行鍵

prefixfilter prefixfilter = new prefixfilter("9501".getbytes());

scan.setfilter(prefixfilter);

4、列字首過濾器 columnprefixfilter

columnprefixfilter columnprefixfilter = new columnprefixfilter("name".getbytes());

scan.setfilter(columnprefixfilter);

5、分頁過濾器 pagefilter

scan.setstartrow(startrow.getbytes());

scan.setmaxresultsize(pagesize);//設定我們掃瞄多少條資料

pagefilter filter1 = new pagefilter(pagesize);

JavaWeb之過濾器

對使用者請求進行統一認證 編碼轉換 對使用者傳送的資料進行過濾替換 轉換影象格式 對響應的內容進行壓縮 過濾器是乙個伺服器端的元件,它可以擷取使用者端的請求與響應資訊,並對這些資訊進行過濾。4.1 servlet 2.5request 使用者直接訪問頁面時,web容器將會呼叫過濾器 forward ...

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

Swift之過濾器 filter

swift 提供了很多方便的函式來運算元組,比如 filter,map,reduce,flatmap 等.今天我們了解一下 filter 顧名思義 就是用來過濾的,這是 swift 為每個陣列提供的乙個新式 filter 用於選擇陣列元素中滿足某種條件的元素。假設有乙個陣列,接著想要建立乙個新的陣列...