基于列和时间戳的Hbase筛选行

基于列和时间戳的Hbase筛选行,hbase,filtering,Hbase,Filtering,我想使用hbase shell根据列值时间戳过滤列。例如: f:my_qualifier timestamp=1417542508438, value=some value 我想返回时间戳大于特定时间戳的所有列值。使用hbase外壳是否可以实现这一点?看起来TimestampsFilter需要一个特定的时间戳,我认为不可能使用比较器 提前谢谢 使用时间范围选项: scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 130

我想使用hbase shell根据列值时间戳过滤列。例如:

f:my_qualifier  timestamp=1417542508438,  value=some value
我想返回时间戳大于特定时间戳的所有列值。使用hbase外壳是否可以实现这一点?看起来TimestampsFilter需要一个特定的时间戳,我认为不可能使用比较器


提前谢谢

使用时间范围选项:

scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}
有关更多选项,请参阅扫描命令帮助:

hbase(main):001:0> scan

Here is some help for this command:
Scan a table; pass table name and optionally a dictionary of scanner
specifications.  Scanner specifications may include one or more of:
TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,
or COLUMNS, CACHE

Some examples:

  hbase> scan '.META.'
  hbase> scan '.META.', {COLUMNS => 'info:regioninfo'}
  hbase> scan 't1', {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => 'xyz'}
  hbase> scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}
  hbase> scan 't1', {FILTER => "(PrefixFilter ('row2') AND (QualifierFilter (>=, 'binary:xyz'))) AND (TimestampsFilter ( 123, 456))"}
  hbase> scan 't1', {FILTER => org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}

为了让时间范围为我工作,我必须使用毫秒时间戳。例如:上面的时间戳各有三个尾随零:
TIMERANGE=>[1303668804000,1303668904000]