hbase shell scan简单语法

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

一、scan filter使用

比较器:
前面例子中的regexstring:2014-11-08.*、binary:x00x00x00x05,这都是比较器。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的数据

二、命名空间namespace:

HBase系统默认定义了两个缺省的namespace
  • hbase:系统内建表,包括namespace和meta表
  • default:用户建表时未指定namespace的表都创建在此

 create_namespace 'test'    #创建namespace

drop_namespace 'test'       #删除namespace

list_namespace                  #列出所有namespace

create 'test:test_table', 'fm1','fm2','fmN'   #在namespace下创建表

list_namespace_tables 'test'    #查看namespace下的表

grant 'test_user' 'W' '@test'       #授权test_user对test命名空间有写权限

revoke 'test_user''@test'           #回收test_user对test命名空间的权限

 
 
 
 
原文地址:https://www.cnblogs.com/to-here/p/15009648.html