RowFilter.Builder (Cloud Bigtable HBase Client for Java 0.9.7.1 API)

com.google.bigtable.v2

Class RowFilter.Builder

  • All Implemented Interfaces:
    RowFilterOrBuilder, Message.Builder, MessageLite.Builder, MessageLiteOrBuilder, MessageOrBuilder, Cloneable
    Enclosing class:
    RowFilter


    public static final class RowFilter.Builder
    extends GeneratedMessageV3.Builder<RowFilter.Builder>
    implements RowFilterOrBuilder
     Takes a row as input and produces an alternate view of the row based on
     specified rules. For example, a RowFilter might trim down a row to include
     just the cells from columns matching a given regular expression, or might
     return all the cells of a row but not their values. More complicated filters
     can be composed out of these components to express requests such as, "within
     every column of a particular family, give just the two most recent cells
     which are older than timestamp X."
     There are two broad categories of RowFilters (true filters and transformers),
     as well as two ways to compose simple filters into more complex ones
     (chains and interleaves). They work as follows:
     * True filters alter the input row by excluding some of its cells wholesale
     from the output row. An example of a true filter is the `value_regex_filter`,
     which excludes cells whose values don't match the specified pattern. All
     regex true filters use RE2 syntax (https://github.com/google/re2/wiki/Syntax)
     in raw byte mode (RE2::Latin1), and are evaluated as full matches. An
     important point to keep in mind is that `RE2(.)` is equivalent by default to
     `RE2([^\n])`, meaning that it does not match newlines. When attempting to
     match an arbitrary byte, you should therefore use the escape sequence `\C`,
     which may need to be further escaped as `\\C` in your client language.
     * Transformers alter the input row by changing the values of some of its
     cells in the output, without excluding them completely. Currently, the only
     supported transformer is the `strip_value_transformer`, which replaces every
     cell's value with the empty string.
     * Chains and interleaves are described in more detail in the
     RowFilter.Chain and RowFilter.Interleave documentation.
     The total serialized size of a RowFilter message must not
     exceed 4096 bytes, and RowFilters may not be nested within each other
     (in Chains or Interleaves) to a depth of more than 20.
     
    Protobuf type google.bigtable.v2.RowFilter
    • Method Detail

      • getChain

        public RowFilter.Chain getChain()
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
        Specified by:
        getChain in interface RowFilterOrBuilder
      • setChain

        public RowFilter.Builder setChain(RowFilter.Chain value)
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
      • setChain

        public RowFilter.Builder setChain(RowFilter.Chain.Builder builderForValue)
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
      • mergeChain

        public RowFilter.Builder mergeChain(RowFilter.Chain value)
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
      • clearChain

        public RowFilter.Builder clearChain()
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
      • getChainBuilder

        public RowFilter.Chain.Builder getChainBuilder()
         Applies several RowFilters to the data in sequence, progressively
         narrowing the results.
         
        .google.bigtable.v2.RowFilter.Chain chain = 1;
      • getInterleave

        public RowFilter.Interleave getInterleave()
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
        Specified by:
        getInterleave in interface RowFilterOrBuilder
      • setInterleave

        public RowFilter.Builder setInterleave(RowFilter.Interleave value)
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
      • setInterleave

        public RowFilter.Builder setInterleave(RowFilter.Interleave.Builder builderForValue)
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
      • mergeInterleave

        public RowFilter.Builder mergeInterleave(RowFilter.Interleave value)
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
      • clearInterleave

        public RowFilter.Builder clearInterleave()
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
      • getInterleaveBuilder

        public RowFilter.Interleave.Builder getInterleaveBuilder()
         Applies several RowFilters to the data in parallel and combines the
         results.
         
        .google.bigtable.v2.RowFilter.Interleave interleave = 2;
      • getCondition

        public RowFilter.Condition getCondition()
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
        Specified by:
        getCondition in interface RowFilterOrBuilder
      • setCondition

        public RowFilter.Builder setCondition(RowFilter.Condition value)
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
      • setCondition

        public RowFilter.Builder setCondition(RowFilter.Condition.Builder builderForValue)
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
      • mergeCondition

        public RowFilter.Builder mergeCondition(RowFilter.Condition value)
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
      • clearCondition

        public RowFilter.Builder clearCondition()
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
      • getConditionBuilder

        public RowFilter.Condition.Builder getConditionBuilder()
         Applies one of two possible RowFilters to the data based on the output of
         a predicate RowFilter.
         
        .google.bigtable.v2.RowFilter.Condition condition = 3;
      • getSink

        public boolean getSink()
         ADVANCED USE ONLY.
         Hook for introspection into the RowFilter. Outputs all cells directly to
         the output of the read rather than to any parent filter. Consider the
         following example:
             Chain(
               FamilyRegex("A"),
               Interleave(
                 All(),
                 Chain(Label("foo"), Sink())
               ),
               QualifierRegex("B")
             )
                                 A,A,1,w
                                 A,B,2,x
                                 B,B,4,z
                                    |
                             FamilyRegex("A")
                                    |
                                 A,A,1,w
                                 A,B,2,x
                                    |
                       +------------+-------------+
                       |                          |
                     All()                    Label(foo)
                       |                          |
                    A,A,1,w              A,A,1,w,labels:[foo]
                    A,B,2,x              A,B,2,x,labels:[foo]
                       |                          |
                       |                        Sink() --------------+
                       |                          |                  |
                       +------------+      x------+          A,A,1,w,labels:[foo]
                                    |                        A,B,2,x,labels:[foo]
                                 A,A,1,w                             |
                                 A,B,2,x                             |
                                    |                                |
                            QualifierRegex("B")                      |
                                    |                                |
                                 A,B,2,x                             |
                                    |                                |
                                    +--------------------------------+
                                    |
                                 A,A,1,w,labels:[foo]
                                 A,B,2,x,labels:[foo]  // could be switched
                                 A,B,2,x               // could be switched
         Despite being excluded by the qualifier filter, a copy of every cell
         that reaches the sink is present in the final result.
         As with an [Interleave][google.bigtable.v2.RowFilter.Interleave],
         duplicate cells are possible, and appear in an unspecified mutual order.
         In this case we have a duplicate with column "A:B" and timestamp 2,
         because one copy passed through the all filter while the other was
         passed through the label and sink. Note that one copy has label "foo",
         while the other does not.
         Cannot be used within the `predicate_filter`, `true_filter`, or
         `false_filter` of a [Condition][google.bigtable.v2.RowFilter.Condition].
         
        bool sink = 16;
        Specified by:
        getSink in interface RowFilterOrBuilder
      • setSink

        public RowFilter.Builder setSink(boolean value)
         ADVANCED USE ONLY.
         Hook for introspection into the RowFilter. Outputs all cells directly to
         the output of the read rather than to any parent filter. Consider the
         following example:
             Chain(
               FamilyRegex("A"),
               Interleave(
                 All(),
                 Chain(Label("foo"), Sink())
               ),
               QualifierRegex("B")
             )
                                 A,A,1,w
                                 A,B,2,x
                                 B,B,4,z
                                    |
                             FamilyRegex("A")
                                    |
                                 A,A,1,w
                                 A,B,2,x
                                    |
                       +------------+-------------+
                       |                          |
                     All()                    Label(foo)
                       |                          |
                    A,A,1,w              A,A,1,w,labels:[foo]
                    A,B,2,x              A,B,2,x,labels:[foo]
                       |                          |
                       |                        Sink() --------------+
                       |                          |                  |
                       +------------+      x------+          A,A,1,w,labels:[foo]
                                    |                        A,B,2,x,labels:[foo]
                                 A,A,1,w                             |
                                 A,B,2,x                             |
                                    |                                |
                            QualifierRegex("B")                      |
                                    |                                |
                                 A,B,2,x                             |
                                    |                                |
                                    +--------------------------------+
                                    |
                                 A,A,1,w,labels:[foo]
                                 A,B,2,x,labels:[foo]  // could be switched
                                 A,B,2,x               // could be switched
         Despite being excluded by the qualifier filter, a copy of every cell
         that reaches the sink is present in the final result.
         As with an [Interleave][google.bigtable.v2.RowFilter.Interleave],
         duplicate cells are possible, and appear in an unspecified mutual order.
         In this case we have a duplicate with column "A:B" and timestamp 2,
         because one copy passed through the all filter while the other was
         passed through the label and sink. Note that one copy has label "foo",
         while the other does not.
         Cannot be used within the `predicate_filter`, `true_filter`, or
         `false_filter` of a [Condition][google.bigtable.v2.RowFilter.Condition].
         
        bool sink = 16;
      • clearSink

        public RowFilter.Builder clearSink()
         ADVANCED USE ONLY.
         Hook for introspection into the RowFilter. Outputs all cells directly to
         the output of the read rather than to any parent filter. Consider the
         following example:
             Chain(
               FamilyRegex("A"),
               Interleave(
                 All(),
                 Chain(Label("foo"), Sink())
               ),
               QualifierRegex("B")
             )
                                 A,A,1,w
                                 A,B,2,x
                                 B,B,4,z
                                    |
                             FamilyRegex("A")
                                    |
                                 A,A,1,w
                                 A,B,2,x
                                    |
                       +------------+-------------+
                       |                          |
                     All()                    Label(foo)
                       |                          |
                    A,A,1,w              A,A,1,w,labels:[foo]
                    A,B,2,x              A,B,2,x,labels:[foo]
                       |                          |
                       |                        Sink() --------------+
                       |                          |                  |
                       +------------+      x------+          A,A,1,w,labels:[foo]
                                    |                        A,B,2,x,labels:[foo]
                                 A,A,1,w                             |
                                 A,B,2,x                             |
                                    |                                |
                            QualifierRegex("B")                      |
                                    |                                |
                                 A,B,2,x                             |
                                    |                                |
                                    +--------------------------------+
                                    |
                                 A,A,1,w,labels:[foo]
                                 A,B,2,x,labels:[foo]  // could be switched
                                 A,B,2,x               // could be switched
         Despite being excluded by the qualifier filter, a copy of every cell
         that reaches the sink is present in the final result.
         As with an [Interleave][google.bigtable.v2.RowFilter.Interleave],
         duplicate cells are possible, and appear in an unspecified mutual order.
         In this case we have a duplicate with column "A:B" and timestamp 2,
         because one copy passed through the all filter while the other was
         passed through the label and sink. Note that one copy has label "foo",
         while the other does not.
         Cannot be used within the `predicate_filter`, `true_filter`, or
         `false_filter` of a [Condition][google.bigtable.v2.RowFilter.Condition].
         
        bool sink = 16;
      • getPassAllFilter

        public boolean getPassAllFilter()
         Matches all cells, regardless of input. Functionally equivalent to
         leaving `filter` unset, but included for completeness.
         
        bool pass_all_filter = 17;
        Specified by:
        getPassAllFilter in interface RowFilterOrBuilder
      • setPassAllFilter

        public RowFilter.Builder setPassAllFilter(boolean value)
         Matches all cells, regardless of input. Functionally equivalent to
         leaving `filter` unset, but included for completeness.
         
        bool pass_all_filter = 17;
      • clearPassAllFilter

        public RowFilter.Builder clearPassAllFilter()
         Matches all cells, regardless of input. Functionally equivalent to
         leaving `filter` unset, but included for completeness.
         
        bool pass_all_filter = 17;
      • getBlockAllFilter

        public boolean getBlockAllFilter()
         Does not match any cells, regardless of input. Useful for temporarily
         disabling just part of a filter.
         
        bool block_all_filter = 18;
        Specified by:
        getBlockAllFilter in interface RowFilterOrBuilder
      • setBlockAllFilter

        public RowFilter.Builder setBlockAllFilter(boolean value)
         Does not match any cells, regardless of input. Useful for temporarily
         disabling just part of a filter.
         
        bool block_all_filter = 18;
      • clearBlockAllFilter

        public RowFilter.Builder clearBlockAllFilter()
         Does not match any cells, regardless of input. Useful for temporarily
         disabling just part of a filter.
         
        bool block_all_filter = 18;
      • getRowKeyRegexFilter

        public ByteString getRowKeyRegexFilter()
         Matches only cells from rows whose keys satisfy the given RE2 regex. In
         other words, passes through the entire row when the key matches, and
         otherwise produces an empty row.
         Note that, since row keys can contain arbitrary bytes, the `\C` escape
         sequence must be used if a true wildcard is desired. The `.` character
         will not match the new line character `\n`, which may be present in a
         binary key.
         
        bytes row_key_regex_filter = 4;
        Specified by:
        getRowKeyRegexFilter in interface RowFilterOrBuilder
      • setRowKeyRegexFilter

        public RowFilter.Builder setRowKeyRegexFilter(ByteString value)
         Matches only cells from rows whose keys satisfy the given RE2 regex. In
         other words, passes through the entire row when the key matches, and
         otherwise produces an empty row.
         Note that, since row keys can contain arbitrary bytes, the `\C` escape
         sequence must be used if a true wildcard is desired. The `.` character
         will not match the new line character `\n`, which may be present in a
         binary key.
         
        bytes row_key_regex_filter = 4;
      • clearRowKeyRegexFilter

        public RowFilter.Builder clearRowKeyRegexFilter()
         Matches only cells from rows whose keys satisfy the given RE2 regex. In
         other words, passes through the entire row when the key matches, and
         otherwise produces an empty row.
         Note that, since row keys can contain arbitrary bytes, the `\C` escape
         sequence must be used if a true wildcard is desired. The `.` character
         will not match the new line character `\n`, which may be present in a
         binary key.
         
        bytes row_key_regex_filter = 4;
      • getRowSampleFilter

        public double getRowSampleFilter()
         Matches all cells from a row with probability p, and matches no cells
         from the row with probability 1-p.
         
        double row_sample_filter = 14;
        Specified by:
        getRowSampleFilter in interface RowFilterOrBuilder
      • setRowSampleFilter

        public RowFilter.Builder setRowSampleFilter(double value)
         Matches all cells from a row with probability p, and matches no cells
         from the row with probability 1-p.
         
        double row_sample_filter = 14;
      • clearRowSampleFilter

        public RowFilter.Builder clearRowSampleFilter()
         Matches all cells from a row with probability p, and matches no cells
         from the row with probability 1-p.
         
        double row_sample_filter = 14;
      • getFamilyNameRegexFilter

        public String getFamilyNameRegexFilter()
         Matches only cells from columns whose families satisfy the given RE2
         regex. For technical reasons, the regex must not contain the `:`
         character, even if it is not being used as a literal.
         Note that, since column families cannot contain the new line character
         `\n`, it is sufficient to use `.` as a full wildcard when matching
         column family names.
         
        string family_name_regex_filter = 5;
        Specified by:
        getFamilyNameRegexFilter in interface RowFilterOrBuilder
      • getFamilyNameRegexFilterBytes

        public ByteString getFamilyNameRegexFilterBytes()
         Matches only cells from columns whose families satisfy the given RE2
         regex. For technical reasons, the regex must not contain the `:`
         character, even if it is not being used as a literal.
         Note that, since column families cannot contain the new line character
         `\n`, it is sufficient to use `.` as a full wildcard when matching
         column family names.
         
        string family_name_regex_filter = 5;
        Specified by:
        getFamilyNameRegexFilterBytes in interface RowFilterOrBuilder
      • setFamilyNameRegexFilter

        public RowFilter.Builder setFamilyNameRegexFilter(String value)
         Matches only cells from columns whose families satisfy the given RE2
         regex. For technical reasons, the regex must not contain the `:`
         character, even if it is not being used as a literal.
         Note that, since column families cannot contain the new line character
         `\n`, it is sufficient to use `.` as a full wildcard when matching
         column family names.
         
        string family_name_regex_filter = 5;
      • clearFamilyNameRegexFilter

        public RowFilter.Builder clearFamilyNameRegexFilter()
         Matches only cells from columns whose families satisfy the given RE2
         regex. For technical reasons, the regex must not contain the `:`
         character, even if it is not being used as a literal.
         Note that, since column families cannot contain the new line character
         `\n`, it is sufficient to use `.` as a full wildcard when matching
         column family names.
         
        string family_name_regex_filter = 5;
      • setFamilyNameRegexFilterBytes

        public RowFilter.Builder setFamilyNameRegexFilterBytes(ByteString value)
         Matches only cells from columns whose families satisfy the given RE2
         regex. For technical reasons, the regex must not contain the `:`
         character, even if it is not being used as a literal.
         Note that, since column families cannot contain the new line character
         `\n`, it is sufficient to use `.` as a full wildcard when matching
         column family names.
         
        string family_name_regex_filter = 5;
      • getColumnQualifierRegexFilter

        public ByteString getColumnQualifierRegexFilter()
         Matches only cells from columns whose qualifiers satisfy the given RE2
         regex.
         Note that, since column qualifiers can contain arbitrary bytes, the `\C`
         escape sequence must be used if a true wildcard is desired. The `.`
         character will not match the new line character `\n`, which may be
         present in a binary qualifier.
         
        bytes column_qualifier_regex_filter = 6;
        Specified by:
        getColumnQualifierRegexFilter in interface RowFilterOrBuilder
      • setColumnQualifierRegexFilter

        public RowFilter.Builder setColumnQualifierRegexFilter(ByteString value)
         Matches only cells from columns whose qualifiers satisfy the given RE2
         regex.
         Note that, since column qualifiers can contain arbitrary bytes, the `\C`
         escape sequence must be used if a true wildcard is desired. The `.`
         character will not match the new line character `\n`, which may be
         present in a binary qualifier.
         
        bytes column_qualifier_regex_filter = 6;
      • clearColumnQualifierRegexFilter

        public RowFilter.Builder clearColumnQualifierRegexFilter()
         Matches only cells from columns whose qualifiers satisfy the given RE2
         regex.
         Note that, since column qualifiers can contain arbitrary bytes, the `\C`
         escape sequence must be used if a true wildcard is desired. The `.`
         character will not match the new line character `\n`, which may be
         present in a binary qualifier.
         
        bytes column_qualifier_regex_filter = 6;