小編給大家分享一下HBase中常用過(guò)濾器有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司科技有限公司專(zhuān)業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供成都移動(dòng)機(jī)房,高防服務(wù)器租用,成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。
1. 比較過(guò)濾器
(1) 比較過(guò)濾器的操作符
LESS <
LESS_OR_EQUAL <=
EQUAL =
NOT_EQUAL <>
GREATER_OR_EQUAL >=
GREATER >
NO_OP 排除所有
(2) 常用比較過(guò)濾器的比較器
BinaryComparator 按字節(jié)索引順序比較指定字節(jié)數(shù)組,采用Bytes.compareTo(byte[])
BinaryPrefixComparator 跟前面相同,只是比較左端的數(shù)據(jù)是否相同
NullComparator 判斷給定的是否為空
BitComparator 按位比較
RegexStringComparator 提供一個(gè)正則的比較器,僅支持 EQUAL 和非EQUAL
SubstringComparator 判斷提供的子串是否出現(xiàn)在value中
(3) 比較過(guò)濾器的實(shí)際應(yīng)用
3-1) 行鍵過(guò)濾器 RowFilter
Filter filter = new RowFilter(CompareOp.LESS_OR_EQUAL,new BinaryComparator(Bytes.toBytes("row-22")));
scan.setFilter(filter);
Filter filter1 = new RowFilter(CompareOp.EQUAL, new SubstringComparator("-5"));
scan.setFilter(filter1);
3-2) 列族過(guò)濾器FamilyFilter
Filter filter1 = new FamilyFilter(CompareFilter.CompareOp.LESS, new BinaryComparator(Bytes.toBytes("colfam3")));
scan.setFilter(filter1);
3-3) 列過(guò)濾器QualifierFilter
filter = new QualifierFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("col-2")));
scan.setFilter(filter1);
3-4) 值過(guò)濾器ValueFilter
Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator(".4") );
scan.setFilter(filter1);
2. 專(zhuān)用過(guò)濾器
(1) 前綴過(guò)濾器 PrefixFilter --針對(duì)行鍵
Filter fileter = new PrefixFilter(Bytes.toBytes("hello"));
scan.setFilter(fileter);
(2) 列前綴過(guò)濾器
Filter fileter = new ColumnPrefixFilter(Bytes.toBytes("hello"));
scan.setFilter(filter);
3. 正則表達(dá)式過(guò)濾(RegexStringComparator)
Scan scan = new Scan();
RegexStringComparator comp = new RegexStringComparator("you."); // 以 you 開(kāi)頭的字符串
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), CompareOp.EQUAL, comp);
scan.setFilter(filter);
4. SubStringComparator
用于監(jiān)測(cè)一個(gè)子串是否存在于值中,并且不區(qū)分大小寫(xiě)。
Scan scan = new Scan();
SubstringComparator comp = new SubstringComparator("1129"); // 查找包含 1129 的字符串
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), CompareOp.EQUAL, comp);
scan.setFilter(filter);
5. 布隆過(guò)濾器 BloomFilter
簡(jiǎn)介:hbase的storefile有很多,隨機(jī)查的時(shí)候可能需要遍歷很多storefile,如果在建表的時(shí)候指定了bloomfilter,則在get查詢(xún)(scan不管用)的時(shí)候就可以過(guò)濾掉很多不符合規(guī)則的storefile,提高查詢(xún)效率。
以上是“HBase中常用過(guò)濾器有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞標(biāo)題:HBase中常用過(guò)濾器有哪些
標(biāo)題網(wǎng)址:http://m.rwnh.cn/article28/jdipcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、小程序開(kāi)發(fā)、企業(yè)建站、做網(wǎng)站、微信小程序、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容