hbase 通过shell查询:
1、SingleColumnValueFilter用法:
SingleColumnValueFilter 这个过滤器有6个参数:列族、列名、比较运算符、比较器和两个可选参数:filterIfColumnMissing和setLatestVersionOnly。
filterIfColumnMissing:如果设置为true,则会把没有过滤器所指定列的行都过滤掉。默认值是false,所以看上去,当没有过滤器所指定的列时,过滤器不起作用。
setLatestVersionOnly:如果设置为false,则除了检查最新版本,还会检查以前的版本。默认值是true,只检查最新版本的值。
5)比较器:
前面例子中的regexstring:2014-11-08.、binary:\x00\x00\x00\x05,这都是比较器。HBase的filter有四种比较器:
(1)二进制比较器:如’binary:abc’,按字典排序跟’abc’进行比较
(2)二进制前缀比较器:如’binaryprefix:abc’,按字典顺序只跟’abc’比较前3个字符
(3)正则表达式比较器:如’regexstring:abyz’,按正则表达式匹配以ab开头,以yz结尾的值。这个比较器只能使用=、!=两个比较运算符。
(4)子串比较器:如’substring:abc123’,匹配以abc123开头的值。这个比较顺也只能使用=、!=两个比较运算符。
用法示例:
- 查找表:T1,c1列,url字段包含youtube.com/watch,并且c1列,字段oo包含utf-8的一条数据
scan 'T1',{LIMIT=>1,COLUMNS=>['c1:url','c1:oo'],FILTER=>"SingleColumnValueFilter('c1','url',=,'substring:youtube.com/watch') AND SingleColumnValueFilter('c1','oo',=,'substring:utf-8') "}
或
scan 't_c1c2_splits65536',{LIMIT=>1,COLUMNS=>['c1:url','c1:oo'],FILTER=>"SingleColumnValueFilter('c1','url',=,'substring:youtube.com/watch') AND SingleColumnValueFilter('c1','oo',=,'substring:iso-8859-1',true,false) "}
2、
java.util.Date.new(1583916289375).toString
3,echo “get ‘t_c1c2_splits65536’,‘0ba159ce37899ffbe5b62596180fe716’”|hbase shell
参考文献:https://blog.csdn.net/logsharp/article/details/51784824