/cc @billyjacobson
Currently, the Python bigtable library support for filtering on numeric values expects raw bytes, e.g.:
from google.cloud.bigtable import row_filters
filter = row_filters.ValueRangeFilter(
start_value=b'\x00\x00\x00\x00\x00\x00\x00\x01', # 1
end_value=b'\x00\x00\x00\x00\x00\x00\x00\x0a', # 10
)
We already have support for writing "normal" integers, e.g.:
from google.cloud.bigtable import row_data
row = row_data.DirectRow(b'row-key')
row.set_cell('col-family', b'column', value=1)
where the integer 1 gets converted to b'\x00\x00\x00\x00\x00\x00\x00\x01' under the covers.
This feature request is to add similar support for filtering on values, e.g.:
from google.cloud.bigtable import row_filters
filter = row_filters.ValueRangeFilter(start_value=1, end_value=10)
While we are at it, add an ExactValueFilter wrapper around `` (for parity with other languages), e.g..
from google.cloud.bigtable import row_filters
filter = row_filters.ExactValueFilter(value=1)
which would map to (for integer values):
filter = row_filters.ValueRegexFilter(b'\x00\x00\x00\x00\x00\x00\x00\x01')