`
sunasheng
  • 浏览: 122853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Hbase过滤器2

 
阅读更多

根据限定符只返回一行数据,不存在:

public static void addQualifierFilter(FilterList list, byte[] family, byte[] qualifier) {
        byte[] fakeValue = Bytes.toBytes("DOESNOTEXIST");
        SingleColumnValueFilter filter = 
        	    new SingleColumnValueFilter(family, qualifier, CompareOp.NOT_EQUAL, fakeValue);  
        filter.setFilterIfMissing(true);
        list.addFilter(filter);
    }

 根据限定符选出不包含没有数据的:

 public static void addQualifierExcludeFilter(FilterList list, byte[] family, byte[] qualifier) {
    	SkipFilter filter = new SkipFilter(new QualifierFilter(CompareOp.NOT_EQUAL, new BinaryComparator(qualifier)));
        list.addFilter(filter);
    }

 根据时间来过滤:

public static void addTimeStampFilter(FilterList list, byte[] family, byte[] qualifier, byte[] timestamp) {
        SingleColumnValueFilter filter = 
        	    new SingleColumnValueFilter(family, qualifier, CompareOp.GREATER_OR_EQUAL, timestamp);
        list.addFilter(filter);
    }

 根据时间来过滤(不包含指定的时间):

public static void addTimeStampExcludeFilter(FilterList list, byte[] family, byte[] qualifier, byte[] timestamp) {
        SingleColumnValueExcludeFilter filter = 
        	    new SingleColumnValueExcludeFilter(family, qualifier, CompareOp.GREATER_OR_EQUAL, timestamp);
        list.addFilter(filter);
    }

 使用方法:

FilterList list = new FilterList();
		HBaseManager.addQualifierFilter(list, HTableConstant.USER_HOBBY_HOBBY_COLUMN_FAMILY, 
				HTableConstant.USER_HOBBY_USER_ID_QUALIFIER);
		HBaseManager.addTimeStampFilter(list,
				HTableConstant.USER_HOBBY_HOBBY_COLUMN_FAMILY,
				HTableConstant.USER_HOBBY_DATE_QUALIFIER, Bytes.toBytes(date));
		scan.setFilter(list);

 

分享到:
评论

相关推荐

    Hadoop学习四十二:HBase 过滤器

    HBase过滤器允许我们在读取数据时对结果进行筛选,减少不必要的I/O操作,从而提高效率。它们是通过实现`Filter`接口来定义的,并在扫描器(Scanner)执行时应用。HBase提供了多种内置过滤器,如...

    Hbase过滤器详解.md

    Hbase过滤器详解,基础篇

    hbase过滤器简单教程

    过滤器可以根据列族、列、版本等更多的条件来对数据进行过滤,基于 HBase 本身提供的三维有序(行键,列,版本有序),这些过滤器可以高效地完成查询过滤的任务,带有过滤器条件的 RPC 查询请求会把过滤器分发到各个...

    java操作Hbase之Hbase专用过滤器PageFilter的使用源代码

    HBase提供了多种过滤器机制,其中PageFilter是一种非常实用的工具,它可以帮助我们在查询时限制返回的结果数量,从而优化性能和内存使用。下面我们将深入探讨PageFilter的使用方法,并通过源代码示例来解释其工作...

    java操作Hbase之比较过滤器RowFilter的使用源码

    本文将深入探讨HBase的比较过滤器RowFilter的使用源码,帮助你理解如何在实际项目中应用这一关键功能。 RowFilter是HBase提供的过滤器之一,它允许我们根据行键(row key)来过滤表中的数据。在Java API中,我们...

    Hbase布隆过滤器详解

    布隆过滤器是一种高效的空间节约型数据结构,用于判断一个元素是否可能存在于一个大型集合中。它由布隆于1970年提出,主要利用了位数组和多个哈希函数来实现。基本思想是通过将元素经过多个独立的哈希函数映射到一个...

    HBASE使用注意事项

    通过对HBase的使用注意事项进行深入分析,我们了解到在表设计阶段应当重视RowKey的设计及其对数据分布的影响,同时还需要考虑压缩算法、过滤器的选择以及版本控制等因素。此外,对于Java API的使用也需要注意资源...

    hbase1.0.3_part2

    4. **HBase的过滤器机制**:过滤器是HBase查询性能优化的关键。通过使用行过滤器、列过滤器、时间戳过滤器等,可以在服务器端提前过滤掉不需要的数据,减少网络传输和客户端处理的压力。 5. **HBase的MapReduce支持...

    Hbase数据库界面管理器

    3. 查询过滤:支持多种过滤器查询是HBase数据库界面管理器的一大亮点。用户可以使用行键、列族、列限定符和时间戳等条件组合,构建复杂的查询语句,快速定位所需数据。 4. 导入导出:工具提供数据导入和导出功能,...

    HBase视频教程下载|基于微博数据应用的HBase实战开发

    课时8:过滤器实战之专用过滤器与FilterList 课时9:过滤器实战之自定义过滤器 课时10:Observer协处理器实战之Master级别原理剖析 课时11:Observer协处理器实战之Region级别原理剖析 课时12:Observer协处理器...

    Hbase shell及常用命令

    HBase过滤器可以根据条件过滤数据。例如,使用RowFilter过滤器来过滤Student表中的数据: scan 'Student', FILTER => "RowFilter(=, 'binary:0001')" HBase行键过滤器 ------------------ HBase行键过滤器用于...

    java代码使用thrift2操作hbase示例

    例如,你可能需要设置行键的编码方式,或者使用过滤器来精细化查询条件。同时,为了提高性能,通常会使用批量操作和多线程处理。 在提供的`Test`文件中,应该包含了实现这些操作的Java代码示例,你可以参考它们来...

    HBase官方文档中文版-HBase手册中文版

    2. 扫描器(Scanner):用于批量读取数据,支持设定条件过滤。 3. 表的分区与负载均衡:通过调整Region大小和分布,实现集群负载均衡。 五、HBase性能优化 1. 行键设计:优化行键设计,避免热点问题,确保数据均匀...

    hbase-2.4.17-bin 安装包

    3. 查询数据:`get '表名', '行键'`获取整行数据,或`scan '表名'`进行全表扫描,可以指定过滤器等条件。 4. 删除数据:`delete '表名', '行键', '列族:列限定符', [时间戳]`删除特定单元格,可选时间戳指定版本。 ...

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    3. **布隆过滤器**:使用布隆过滤器减少不必要的磁盘I/O,提高查询效率。 4. **Compaction**:定期进行Compaction减少文件数量,提升读写性能。 5. **BlockCache**:配置BlockCache大小,缓存最近访问的数据,提高...

    hbase分页查询实现.pdf

    Filter是HBase中的一种过滤器,用于过滤查询结果。在本文中,作者使用了FirstKeyOnlyFilter和SingleColumnValueFilter来实现分页查询。 知识点7:ResultScanner的使用 ResultScanner是HBase中的一种结果扫描器,...

    HBase基本操作.pdf

    例如,使用`scan '表名', {FILTER => '过滤器'} `可以对表数据进行过滤。过滤器可以是多个,用以组合不同条件。 #### 10. 时间戳和数据版本操作 HBase存储数据时会自动为每条数据记录时间戳。可以使用`put`命令插入...

Global site tag (gtag.js) - Google Analytics