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
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Java+7入门经典 -1 简介
    优化算法动画演示Alec Radford's animations for optimization algorithms
    如何写科技论文How to write a technical paper
    开始学习深度学习和循环神经网络Some starting points for deep learning and RNNs
    用500行Julia代码开始深度学习之旅 Beginning deep learning with 500 lines of Julia
    用10张图来看机器学习Machine learning in 10 pictures
    ICLR 2013 International Conference on Learning Representations深度学习论文papers
    ICLR 2014 International Conference on Learning Representations深度学习论文papers
    卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
    卷积神经网络Convolutional Neural Networks
  • 原文地址:https://www.cnblogs.com/cxhfuujust/p/8086409.html
Copyright © 2011-2022 走看看