过滤规则
总的来说:可以根据Rowkey,列, 列值等进行过滤
搭配比较运算符和比较器使用
比较运算符
比较器
scan+Filter
- 其实在hbase shell中,执行的ruby脚本,背后还是调用hbase提供的java API
- 在HBase中有很多过滤器,语法格式看起来会比较复杂,要重点理解这个语法是什么意思
- 过滤器在hbase shell中是使用一个表达式来描述,在java里面是new的各种对象
scan "ORDER_INFO", {FILTER => "RowFilter(=,'binary:02602f66-adc7-40d4-8485-76b5632b5b53')", COLUMNS => ['C1:STATUS', 'C1:PAYWAY'], FORMATTER => 'toString'}
"RowFilter(=,'binary:02602f66-adc7-40d4-8485-76b5632b5b53')"
这个就是一个表达式- RowFilter就是java API中Filter的构造器名称
- 可以理解为RowFilter()就是创建一个过滤器对象
- 是JRuby一个特殊记号,表示是一个比较运算符,还可以是>、<、>=…
- binary:02602f66-adc7-40d4-8485-76b5632b5b53是一个比较器的表达式,为了方便大家理解,可以将比较器理解为配置值的地方,binary:xxxx表示直接和值进行毕节
#关于计数器
- 计数器得用INCR来操作
- 计数器是一个特殊的列用put操作是改不了的,scan操作是扫不出来的.得用get
- incr “表名”, “rowkey”, “列蔟:列”, xxx
HBase一些管理命令
- status:常用命令,可以查看整个集群的运行的节点数
- whoami:查看当前的用户
- disable/enable:禁用/开启表
- drop:删除表
- exists:判断表是否存在
- truncate:清空表(同事也会清除表的分区),虽然表结构还在,但是分区成1会降低HBase的性能.