HBase shell scan 過濾器用法總結

比較器:
前面例子中的regexstring:2014-11-08.*、binary:\x00\x00\x00\x05,這都是比較器。HBase的filter有四種比較器:
(1)二進制比較器:如’binary:abc’,按字典排序跟’abc’進行比較
(2)二進制前綴比較器:如’binaryprefix:abc’,按字典順序只跟’abc’比較前3個字符
(3)正則表達式比較器:如’regexstring:ab*yz’,按正則表達式匹配以ab開頭,以yz結尾的值。這個比較器只能使用=、!=兩個比較運算符。
(4)子串比較器:如’substring:abc123’,匹配以abc123開頭的值。這個比較順也只能使用=、!=兩個比較運算符。正則表達式

比較運算符:
HBase的filter中有7個比較運算符shell

1. LESS (<) bash

2. LESS_OR_EQUAL (<=) spa

3. EQUAL (=) code

4. NOT_EQUAL (!=) blog

5. GREATER_OR_EQUAL (>=) 排序

6. GREATER (>) string

7. NO_OP (no operation)(不知道這個怎麼用)io

若是須要再bash直接執行查詢,能夠使用一下方式class

echo "scan 'testByCrq', FILTER=>\"ValueFilter(=,'substring:111')\"" | hbase shell

幾個例子

scan 'obd:journey', LIMIT => 10, FILTER=>"(ValueFilter(>,'binary:\x00\x00\x00\x00\x00\x00\x00\x0F') )"  

scan 'obd:journey', LIMIT => 10, FILTER=>"(ValueFilter(>,'binary:\x00\x00\x02\x81') AND ValueFilter(<,'binary:\x00\x00\x02\x82'))"

scan 'obd:journey', LIMIT => 10, FILTER=>"(RowFilter(>,'binary:\x00\x00\x02\x81') AND RowFilter(<,'binary:\x00\x00\x02\x82'))"

echo "scan 'obd:journey', FILTER=>\"(RowFilter(>,'binary:\x00\x00\x02\x81'))\"" | ./hbase shell > ~/journey.txt


echo "scan 'obd:journey', FILTER=>\"(RowFilter(=,'binaryprefix:\x00\x00\x02\x81'))\"" | ./hbase shell > ~/journey.txt


echo "scan 'obd:journey', FILTER=>\"(RowFilter(>=,'binaryprefix:\x00\x00\x02\x81\x00\x00\x00\x00\x00\x00\x00\x00'))\"" | ./hbase shell > ~/journey.txt

echo "scan 'obd:journey', FILTER=>\"(RowFilter(>=,'binaryprefix:\x00\x00\x00\x81\x00\x00\x00\x00\x00\x00\x00\x00'))\"" | ./hbase shell > ~/journey.txt

scan 'obd:journey', FILTER=>"(RowFilter(>,'binary:\x00\x00\x02\x81\x00\x00\x00\x00\x00\x00\x00\x00'))"


echo "scan 'obd:journey', FILTER=>\"(RowFilter(>,'binaryprefix:\x00\x00\x02\x81\x00\x00\x00\x00\x00\x00\x00\x00') AND RowFilter(<,'binaryprefix:\x00\x00\x02\x82\x00\x00\x00\x00\x00\x00\x00\x00'))\"" | ./hbase shell > ~/journey.txt
相關文章
相關標籤/搜索