HBase 資料查詢,過濾器的使用

2021-09-02 08:16:13 字數 2630 閱讀 2668

public

static

void

main

(string[

] args)

throws exception }}

//4.關閉資源

tab.

close()

;}

base中只能按照指定行鍵行鍵範圍或全表掃瞄來查詢資料

hbase還提供了過濾器機制,可以在原有的查詢結果的基礎上,在伺服器端實現進一步的過濾,返回符合過濾條件的資料,為hbase查詢資料提供了更好的靈活性。

hbase支援自定義過濾器,但也同時提供了大量內建的過濾器,可以直接使用

rowfilter

行過濾器,可以篩選出匹配的行

filter filter =

newrowfilter

(compareop.not_equal,

newbinarycomparator

("rk3"

.getbytes()

));filter filter =

newrowfilter

(compareop.equal,

newregexstringcomparator

("^[^1]+1[^1]+$|^.*x$"

);

keyonlyfilter

這個過濾器唯一的功能就是只返回每行的行鍵,其他值全部為空

對於只關注於行鍵的應用場景來說非常合適,這樣忽略掉其值就可以減少傳遞到客戶端的資料量,能起到一定的優化作用

filter filter =

newkeyonlyfilter()

;

randomrowfilter

本過濾器的作用就是按照一定的機率(<=0會過濾掉所有的行,>=1會包含所有的行)來返回隨機的結果集,對於同樣的資料集,多次使用同乙個randomrowfilter會返回不通的結果集,對於需要隨機抽取一部分資料的應用場景,可以使用此過濾器

filter filter =

newrandomrowfilter

(0.5f

);

columnprefixfilter

按照列名的字首來篩菜單元格的,如果我們想要對返回的列的字首加以限制的話,可以使用這個過濾器

按照具體的值來篩菜單元格的過濾器

按照指定列的值,決定整行是否返回

filter filter = new singlecolumnvaluefilter("cf1".getbytes(), "c1".getbytes(), 

compareop.equal, new regexstringcomparator("^[\\w&&[^2]]*$"));

filter list

用於綜合使用多個過濾器。其有兩種關係:filterlist.operator.must_pass_one和filterlist.operator.must_pass_all,預設的是filterlist.operator.must_pass_all,顧名思義,它們分別是and和or的關係

測試**

public

static

void

main

(string[

] args)

throws exception }}

//4.關閉資源

tab.

close()

;}

學習中,有不正確的地方多多指教

模型查詢 過濾器

查詢集表示從資料庫獲取的物件集合,查詢集可以有多個過濾器,過濾器就是乙個函式,基於所給的引數限制查詢集結果,建立查詢集不會帶來任何資料的訪問,直到呼叫資料時,才會訪問資料。建立學生模型 class student models.model s name models.charfield max le...

SQLAlchemy查詢過濾器和執行函式

過濾器返回結果 filter 把過濾器新增到原查詢上,返回乙個新查詢 filter by 把等值過濾器新增到原查詢上,返回乙個新查詢 limit 使用指定的值限定原查詢返回的結果 offset 偏移原查詢返回的結果,返回乙個新查詢 order by 根據指定條件對原查詢結果進行排序,返回乙個新查詢 ...

HBase中使用過濾器進行查詢

比較過濾器有幾種?rowfilter 基於rowkey的過濾 familyfilter 基於列簇的過濾 qualifierfilter 基於欄位的過濾 valuefilter 基於值的過濾 dependentcolumnfilter 參考值過濾器 比較運算子?less 匹配小於設定值的值 less ...