Skip to content

Latest commit

 

History

History
67 lines (52 loc) · 2.77 KB

row-filters.rst

File metadata and controls

67 lines (52 loc) · 2.77 KB

Bigtable Row Filters

It is possible to use a RowFilter <google.cloud.bigtable.row_filters.RowFilter> when adding mutations to a ConditionalRow <google.cloud.bigtable.row.ConditionalRow> and when reading row data with read_row() <google.cloud.bigtable.table.Table.read_row> or read_rows() <google.cloud.bigtable.table.Table.read_rows>.

As laid out in the RowFilter definition, the following basic filters are provided:

  • SinkFilter <.row_filters.SinkFilter>
  • PassAllFilter <.row_filters.PassAllFilter>
  • BlockAllFilter <.row_filters.BlockAllFilter>
  • RowKeyRegexFilter <.row_filters.RowKeyRegexFilter>
  • RowSampleFilter <.row_filters.RowSampleFilter>
  • FamilyNameRegexFilter <.row_filters.FamilyNameRegexFilter>
  • ColumnQualifierRegexFilter <.row_filters.ColumnQualifierRegexFilter>
  • TimestampRangeFilter <.row_filters.TimestampRangeFilter>
  • ColumnRangeFilter <.row_filters.ColumnRangeFilter>
  • ValueRegexFilter <.row_filters.ValueRegexFilter>
  • ValueRangeFilter <.row_filters.ValueRangeFilter>
  • CellsRowOffsetFilter <.row_filters.CellsRowOffsetFilter>
  • CellsRowLimitFilter <.row_filters.CellsRowLimitFilter>
  • CellsColumnLimitFilter <.row_filters.CellsColumnLimitFilter>
  • StripValueTransformerFilter <.row_filters.StripValueTransformerFilter>
  • ApplyLabelFilter <.row_filters.ApplyLabelFilter>

In addition, these filters can be combined into composite filters with

  • RowFilterChain <.row_filters.RowFilterChain>
  • RowFilterUnion <.row_filters.RowFilterUnion>
  • ConditionalRowFilter <.row_filters.ConditionalRowFilter>

These rules can be nested arbitrarily, with a basic filter at the lowest level. For example:

# Filter in a specified column (matching any column family).
col1_filter = ColumnQualifierRegexFilter(b'columnbia')

# Create a filter to label results.
label1 = u'label-red'
label1_filter = ApplyLabelFilter(label1)

# Combine the filters to label all the cells in columnbia.
chain1 = RowFilterChain(filters=[col1_filter, label1_filter])

# Create a similar filter to label cells blue.
col2_filter = ColumnQualifierRegexFilter(b'columnseeya')
label2 = u'label-blue'
label2_filter = ApplyLabelFilter(label2)
chain2 = RowFilterChain(filters=[col2_filter, label2_filter])

# Bring our two labeled columns together.
row_filter = RowFilterUnion(filters=[chain1, chain2])

google.cloud.bigtable.row_filters