FuzzyRowFilter官网才是最好的学习地方

  • org.apache.hadoop.hbase.filter

Class FuzzyRowFilter


  •  
    @InterfaceAudience.Public
    public class FuzzyRowFilter
    extends org.apache.hadoop.hbase.filter.FilterBase
    这是标准FuzzyRowFilter的优化版本,它基于模糊行键来过滤数据. 在扫描过程中执行快进. 它需要成对(行键,模糊信息)来匹配行键. 其中模糊信息是一个字节数组,其值为0或1:
    • 0-表示提供的行键中的此字节是固定的,即,行键在相同位置的字节必须匹配
    • 1-表示提供的行键中的该字节不是固定的,即,此位置处的行键的字节可以与提供的行键中的字节不同
    示例:假设行键格式为userId_actionId_year_month. userId的长度是固定的,为4,actionId的长度为2,年和月的长度分别为4和2个字节. 假设我们需要获取在每年的1月执行了某些操作(编码为" 99")的所有用户. 然后,该对(行键,模糊信息)将如下所示:行键=" ???? _ 99 _ ???? _ 01"(一个值可以使用任何值代替"?")模糊信息=" \ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00 \ x00 \ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00"即模糊信息告诉匹配的掩码是" ???? _ 99 _ ???? _ 01",在哪里? 可以是任何值.
    • Method Detail

      • filterKeyValue

        @Deprecated
        public Filter.ReturnCode filterKeyValue(Cell c)

        Deprecated. 

        从类复制的描述: Filter

        一种基于列族,列限定符和/或列值进行过滤的方法. 返回代码如下所述. 这允许过滤器仅过滤一定数量的列,然后终止而不匹配ever column. 如果filterRowKey返回true,则filterKeyValue需要与其保持一致. filterKeyValue可以假定已为该行调用filterRowKey. 如果您的过滤器返回ReturnCode.NEXT_ROW ,则它应返回ReturnCode.NEXT_ROW直到Filter.reset()为止,以防万一调用方调用下一行. 具体的实现者可以通过抛出IOException在他们的代码中指示失败情况.

        Overrides:

        Filter filterKeyValue

        Parameters:

        c相关单元

        Returns:

        如下所述,默认为Filter.ReturnCode.INCLUDE

        See Also:

        Filter.ReturnCode

      • filterCell

        public Filter.ReturnCode filterCell(Cell c)

        从类复制的描述: Filter

        一种基于列族,列限定符和/或列值进行过滤的方法. 返回代码如下所述. 这允许过滤器仅过滤一定数量的列,然后终止而不匹配ever column. 如果filterRowKey返回true,则filterCell需要与其保持一致. filterCell可以假定已为该行调用filterRowKey. 如果您的过滤器返回ReturnCode.NEXT_ROW ,则它应返回ReturnCode.NEXT_ROW直到Filter.reset()为止,以防万一调用方调用下一行. 具体的实现者可以通过抛出IOException在他们的代码中指示失败情况.

        Overrides:

        Filter filterCell

        Parameters:

        c相关单元

        Returns:

        如下所述的代码

        See Also:

        Filter.ReturnCode

      • getNextCellHint

        public Cell getNextCellHint(Cell currentCell)

        Description copied from class: org.apache.hadoop.hbase.filter.FilterBase

        不确定下一步必须寻找哪个键的过滤器可以继承此实现,默认情况下返回空单元格. 如果过滤器返回匹配代码SEEK_NEXT_USING_HINT,则它还应该告诉哪个是它必须寻求的下一个关键字. 收到匹配代码SEEK_NEXT_USING_HINT后,QueryMatcher将调用此函数以找出下一步必须寻找的键. 具体的实现者可以通过抛出IOException在他们的代码中指示失败情况.

        Overrides:

        org.apache.hadoop.hbase.filter.FilterBase类中的getNextCellHint

        Returns:

        下一步必须寻找的KeyValue. 如果过滤器不确定下一步要寻找哪个键,则返回null.

      • filterAllRemaining

        public boolean filterAllRemaining()

        从类org.apache.hadoop.hbase.filter.FilterBase复制的描述

        从不过滤所有剩余过滤器的过滤器可以继承该实现,该实现从不尽早停止过滤器. 如果返回true,则扫描将终止. 具体的实现者可以通过抛出IOException在他们的代码中指示失败情况.

        Overrides:

        filterAllRemaining在类org.apache.hadoop.hbase.filter.FilterBase

        Returns:

        结束扫描为true,继续扫描为false.

      • toByteArray

        public byte[] toByteArray()

        从类org.apache.hadoop.hbase.filter.FilterBase复制的描述

        返回长度为0字节的数组,用于不需要特殊序列化的过滤器

        Overrides:

        org.apache.hadoop.hbase.filter.FilterBase类中的toByteArray

        Returns:

        使用pb序列化的过滤器

      • parseFrom

        public static FuzzyRowFilter parseFrom(byte[] pbBytes)
                                        throws org.apache.hadoop.hbase.exceptions.DeserializationException

        Parameters:

        pbBytes一个pb序列化的FuzzyRowFilter实例

        Returns:

        bytesFuzzyRowFilter的实例

        Throws:

        org.apache.hadoop.hbase.exceptions.DeserializationException

        See Also:

        toByteArray()

      • toString

        public String toString()

        从类org.apache.hadoop.hbase.filter.FilterBase复制的描述

        返回过滤器的信息以进行调试和记录.

        Overrides:

        org.apache.hadoop.hbase.filter.FilterBase类中的toString

发布了33 篇原创文章 · 获赞 7 · 访问量 9580

猜你喜欢

转载自blog.csdn.net/Baron_ND/article/details/103188059