Hbase API高级特性-附加过滤器

原创 2013年12月02日 22:18:59

1.   跳转过滤器(SkipFilter)

该过滤器包含了一个用户提供 过滤器,当被包装的过滤器遇到一个需要过滤的KeyValue实例时,用户可以过滤整行数据。当过滤器发现某一行中的一列需要过滤时,那么整行数据都将被过滤掉。例如:SkipFilter与ValueFilter组合起来获取不包含空列值得行。

public void skipFilter() throws IOException{
Filter filter1 = new ValueFilter(CompareFilter.CompareOp.NOT_EQUAL,
new BinaryComparator(Bytes.toBytes("hunan")));

Scan scan = new Scan();
scan.setFilter(filter1);
ResultScanner scanner1 = table.getScanner(scan);
for(Result res : scanner1){
for(KeyValue kv: res.raw())
System.out.println("KV1: "+kv+",value: "+Bytes.toString(kv.getValue()));
}
scanner1.close();

Filter filter2 = new SkipFilter(filter1);
scan.setFilter(filter2);
ResultScanner scanner2 = table.getScanner(scan);
for(Result res : scanner2){
for(KeyValue kv: res.raw())
System.out.println("KV2: "+kv+",value: "+Bytes.toString(kv.getValue()));
}
scanner2.close();
}

2.   全匹配过滤器(WhileMatchFilter)

当遇到一条数据被过滤时,它就会放弃后面的扫描。使用封装的过滤器来检查KeyValue,并确认是否一行数据因行键或是列被跳过而过滤。

public void WhileMatchFilter() throws IOException{
Filter filter1 = new RowFilter(CompareFilter.CompareOp.NOT_EQUAL,
new BinaryComparator(Bytes.toBytes("3103")));

Scan scan = new Scan();
scan.setFilter(filter1);
ResultScanner scanner1 = table.getScanner(scan);
for(Result res : scanner1){
for(KeyValue kv: res.raw())
System.out.println("KV1: "+kv+",value: "+Bytes.toString(kv.getValue()));
}
scanner1.close();

Filter filter2 = new WhileMatchFilter(filter1);
scan.setFilter(filter2);
ResultScanner scanner2 = table.getScanner(scan);
for(Result res : scanner2){
for(KeyValue kv: res.raw())
System.out.println("KV2: "+kv+",value: "+Bytes.toString(kv.getValue()));
}
scanner2.close();
}

HBase内置过滤器的一些总结

HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行...
  • cnweike
  • cnweike
  • 2015年01月20日 17:03
  • 31124

HBase查询(3)---Decorating Filters装饰性过滤器

3.1  SkipFilter 这个过滤器只作用到ValueFilter上。ValueFilter会返回所有满足条件的row及对应的列。而加上SkipFilter以后。会发现如果某一行的某一列不符合条...
  • bingjie1217
  • bingjie1217
  • 2013年09月25日 08:51
  • 911

Hbase的Filter详解使用

参数基础 有两个参数类在各类Filter中经常出现,统一介绍下: (1)比较运算符 CompareFilter.CompareOp 比较运算符用于定义比较关系,可以有以下几类值供选择: ...
  • lr131425
  • lr131425
  • 2017年05月24日 14:42
  • 914

HBase官方指南(2015最新版本)-配置详解篇

  • 2016年01月19日 12:44
  • 1.71MB
  • 下载

【甘道夫】HBase(0.96以上版本)过滤器Filter详解及实例代码

【甘道夫】HBase(0.96以上版本)过滤器Filter详解及实例代码
  • u010967382
  • u010967382
  • 2014年07月10日 11:58
  • 15179

Hbase使用filter快速高效查询

本博客是hbase使用filter快速高效查询的方法,我会慢慢补齐 几大Filters 1、Comparision Filters      1.1  RowFilter 1.2 Family...
  • liuxiaochen123
  • liuxiaochen123
  • 2012年07月11日 18:55
  • 25393

HBase - Filter - 过滤器的介绍以及使用

1 过滤器 HBase 的基本 API,包括增、删、改、查等。 增、删都是相对简单的操作,与传统的 RDBMS 相比,这里的查询操作略显苍白,只能根据特性的行键进行查询(Get)或者根据行...
  • qq_36864672
  • qq_36864672
  • 2017年11月24日 15:07
  • 142

HBase的分页-PageFilter

使用PageFilter分页效率比较低,应为每次都需要扫描前面的数据,直到扫描到所需要查的数据,但是查询下一页的时候可以直接利用上一页的rowkey来直接查出Filter是定义每次scan得出多少条记...
  • HANLIPENGHANLIPENG
  • HANLIPENGHANLIPENG
  • 2016年11月17日 17:38
  • 4567

HBase查询(3)---Decorating Filters装饰性过滤器

3.1  SkipFilter 这个过滤器只作用到ValueFilter上。ValueFilter会返回所有满足条件的row及对应的列。而加上SkipFilter以后。会发现如果某一行的某一列不符合条...
  • bingjie1217
  • bingjie1217
  • 2013年09月25日 08:51
  • 911

HBase总结(8)--附加过滤器、FilterList

一、介绍 本节介绍HBase提供的最后两种过滤器,并且也介绍多个过滤器配合使用的方法。 二、详解 1、附加过滤器 (1)跳转过滤器:SkipFilter(Filter filter) 该过滤...
  • u011518678
  • u011518678
  • 2016年03月14日 20:02
  • 657
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hbase API高级特性-附加过滤器
举报原因:
原因补充:

(最多只允许输入30个字)