TypedFilterAdapter<org.apache.hadoop.hbase.filter.WhileMatchFilter>
public class WhileMatchFilterAdapter extends TypedFilterAdapterBase<org.apache.hadoop.hbase.filter.WhileMatchFilter>
WhileMatchFilter
.Constructor | Description |
---|---|
WhileMatchFilterAdapter(FilterAdapter subFilterAdapter) |
Constructor for WhileMatchFilterAdapter.
|
Modifier and Type | Method | Description |
---|---|---|
com.google.cloud.bigtable.data.v2.models.Filters.Filter |
adapt(FilterAdapterContext context,
org.apache.hadoop.hbase.filter.WhileMatchFilter filter) |
Adapt the given filter.
|
FilterSupportStatus |
isFilterSupported(FilterAdapterContext context,
org.apache.hadoop.hbase.filter.WhileMatchFilter filter) |
Determine if the given filter can be adapted to a Bigtable RowFilter.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getIndexScanHint
public WhileMatchFilterAdapter(FilterAdapter subFilterAdapter)
Constructor for WhileMatchFilterAdapter.
subFilterAdapter
- a FilterAdapter
object.public com.google.cloud.bigtable.data.v2.models.Filters.Filter adapt(FilterAdapterContext context, org.apache.hadoop.hbase.filter.WhileMatchFilter filter) throws IOException
WhileMatchFilter
as follow:
|
V
+--------+--------+
| |
| |
label('id-in') wrappedFilter.filter()
| |
| |
sink() +-----+-----+
+ | |
label('id-out') all()
| |
sink() |
+ v
The above implementation gives enough information from the server side to determine whether the
remaining rows should be filtered out. For each WhileMatchFilter
instance, an unique ID
is generated for labeling. The input label is the unique ID suffixed by "-in" and the output
label is the unique ID suffixed by "-out". When wrappedFilter
decides to filter out the
rest of rows, there is no out label ("id-out") applied in the output. In other words, when
there is a missing "id-out" for an input "id-in", WhileMatchFilter.filterAllRemaining()
returns true
. Since the server continues to send
result even though WhileMatchFilter.filterAllRemaining()
returns true
, we need to replace this WhileMatchFilter
instance with a "block all" filter and rescan from the next row.context
- a FilterAdapterContext
object.filter
- a S object.Filters.Filter
object.IOException
- if any.public FilterSupportStatus isFilterSupported(FilterAdapterContext context, org.apache.hadoop.hbase.filter.WhileMatchFilter filter)
context
- a FilterAdapterContext
object.filter
- a S object.FilterSupportStatus
object.