关于hbase:Hbase高级功能过滤Filter

1.创立一个Rumenz

// 创立了两个列族user和depart
> ./bin/hbase shell
> create 'Rumenz','user','depart'

2.插入数据

> put 'Rumenz','user|id1','user:name','张三'
> put 'Rumenz','user|id1','depart:name','开发部'
> put 'Rumenz','user|id2','user:name','王五'
> put 'Rumenz','user|id2','depart:name','市场部'
> put 'Rumenz','user|tsc','user:name','入门'
> put 'Rumenz','user1|id1','user:name','小站'

3.找出值为张三的记录

> scan 'Rumenz',FILTER=>"ValueFilter(=,'binary:张三')"

4.找出值中蕴含字的记录

> scan 'Rumenz',FILTER=>"ValueFilter(=,'substring:部')"

5.找出列名以dep结尾的记录

> scan 'Rumenz',FILTER=>"ColumnPrefixFilter('dep')"

6.找出列名以ts结尾并且值为入门的值


> scan 'Rumenz',FILTER=>"ColumnPrefixFilter('ts') AND ValueFilter(=,'binary:入门')"

7.找出rowkey以user1结尾

> scan 'Rumenz',FILTER=>"PrefixFilter('user1')"

8.一个rowkey可能有会多个版本,通过FirstKeyOnlyFilter能够获取最新版本的数据.获取最新数据中值中蕴含的数据

> scan 'Rumenz',FILTER=>"FirstKeyOnlyFilter() and ValueFilter(=,'substring:部')"

9.一个rowkey可能有会多个版本,通过FirstKeyOnlyFilter能够获取最新版本的数据.获取最新数据中值中蕴含的数据并且只返回key不须要value

> scan 'Rumenz',FILTER=>"FirstKeyOnlyFilter() and ValueFilter(=,'substring:部') AND KeyOnlyFilter()"

10.从user|id2行开始,查问rowkey以user结尾的数据

> sacn 'Rumenz',{STARTROW=>'user|id2',FILTER=>"PrefixFilter('user')"}

11.查找rowkey中蕴含id的数据

> scan 'Rumenz', {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('id'))}

12.查找user:name列值为王五的数据并只显示user:name

//显示多个列应用COLUMNS => ['user:name','xxxx']
>scan 'Rumenz', {COLUMNS => 'user:name', FILTER => SingleColumnValueFilter.new(Bytes.toBytes('user'), Bytes.toBytes('name'), CompareFilter::CompareOp.valueOf('EQUAL'), Bytes.toBytes('王五'))}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理