zoukankan      html  css  js  c++  java
  • HBase Filter

    Filter

    • CompareFilter

    是高层的抽象类,下面我们将看到他的实现类和实现类代表的各种过滤条件

    • RowFilter,FamliyFilter,QualifierFilter,ValueFilter

    行,列组,列,值等的过滤

    1.RowFilter

    相关的过滤方法使用:
    提取rowkey以01结尾数据
    Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new RegexStringComparator(".*01$"));

    提取rowkey以包含201407的数据
    Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("201407"));


    提取rowkey以123开头的数据
    Filter filter = new RowFilter(CompareFilter.CompareOp.EQUAL,new BinaryPrefixComparator("123".getBytes()));

    • SingleColumnValueFilter

    单值过滤器是以特定“列”的“值”为过滤内容,值得是单列的值。而行值过滤器比较的是所有列的值。与其进行比较。

    //时间范围的查找, 比如是2012-12-12到2013-01-23日之间的数据

    FilterList filter = new FilterList(); 
        if (timeFrom != null) { 
            String sDate = String.valueOf(timeFrom.getTime()); 
            SingleColumnValueFilter scvf = new SingleColumnValueFilter(Bytes.toBytes("CF"), Bytes.toBytes("Date"), CompareOp.GREATER_OR_EQUAL, 
                    Bytes.toBytes(String.valueOf(sDate))); 
            filter.addFilter(scvf); 
        
       
        if (timeTo != null) { 
            String sDate = String.valueOf(timeTo.getTime()); 
            SingleColumnValueFilter scvf = new SingleColumnValueFilter(Bytes.toBytes("CF"), Bytes.toBytes("Date"), CompareOp.LESS_OR_EQUAL, 
                    Bytes.toBytes(String.valueOf(sDate))); 
            filter.addFilter(scvf); 
        }
    • FilterMissing

    指的是对于找不到该列的行的时候,做的特殊处理。true,不返回该行,false 返回该行

    • PrefixFilter

    前缀过滤器将会过滤掉不匹配的记录,过滤的对象是主键的值。

    • PageFilter

    分页过滤器,通过pageSize设置每次返回的行数,这需要客户端在遍历的时候记住页开始的地方,配合scan的startkey一起使用

    • FilterList

    过滤器集合,Hbase的过滤器设计遵照于设计模式中的组合模式,以上的所有过滤器都可以叠加起来共同作用于一次查询

    • KeyOnlyFilter

    设置过滤的结果集中只包含键而忽略值,

    • FirstKeyOnlyFilter

    在键过滤器的基础上,根据列有序,只包含第一个满足的键,返回每个行的第一列的KV,可以用于有效的执行行计数操作。

    • ColumnPrefixFilter

    这里过滤的对象是列的值。

    • TimestampsFilter

    这里参数是一个集合,只有包含在集合中的版本才会包含在结果集中



    作者:WJustHM
    链接:https://www.jianshu.com/p/0485cb607c2f
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    BZOJ3212 Pku3468 A Simple Problem with Integers(线段树区间求和、区间加模板)
    BZOJ2208 [Jsoi2010]连通数
    洛谷P3952 时间复杂度
    BZOJ1051 [HAOI2006]受欢迎的牛
    BZOJ4318 OSU!
    BZOJ1798 [Ahoi2009]Seq 维护序列
    BZOJ1483 [HNOI2009]梦幻布丁
    洛谷P1439 最长公共子序列(O(nlogn)最长公共子序列模板)
    BZOJ2429 [HAOI2006]聪明的猴子
    BZOJ3714 [PA2014]Kuglarz
  • 原文地址:https://www.cnblogs.com/cxhfuujust/p/8086409.html
Copyright © 2011-2022 走看看