hbase shell scan简单语法

转载:https://www.cnblogs.com/hyl8218/p/10058873.html

比较器:
前面例子中的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个比较运算符

1. LESS (<)

2. LESS_OR_EQUAL (<=)

3. EQUAL (=)

4. NOT_EQUAL (!=)

5. GREATER_OR_EQUAL (>=)

6. GREATER (>)

7. NO_OP (no operation)(不知道这个怎么用)

如果需要再bash直接执行查询,可以使用一下方式

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

 

常用语法举例:

habse shell

scan '表名', FILTER=>"RowFilter(=,'substring:333')"                 #通过rowkey过滤,匹配出rowkey含333的数据    
scan '表名', FILTER=>"RowFilter(=,'binary:4546546')" #通过rowkey过滤,匹配出rowkey等于4546546的数据
scan '表名', FILTER=>"RowFilter(<=,'binary:5657657657888')" #通过rowkey过滤,匹配出rowkey小于等于5657657657888的数
scan '表名', FILTER=>"ValueFilter(=,'substring:555')"         #通过value过滤,匹配出value含555的数据
scan '表名', FILTER=>"FamilyFilter(=,'substring:ferer')"          #通过列簇过滤,匹配出列簇含ferer的数据
 
 
 
 
 
上一篇:索引的八种使用模式


下一篇:什么是Exadata Smart Scan?