HBase筛选器:ColumnPrefixFIlter和SingleColumnValueFilter

时间:2019-03-05 08:25:59

标签: hbase hbase-shell

我有一个HBase表,个人。我正在使用ColumnPrefixFilter和SingleColumnValueFilter从HBase表中获取详细信息

假设,我有以下条目-

ROW_KEY     COLUMN+CELL
p1          column='attr:id',value=p1_03
p1          column='details:name_1',value=xyz
p2          column='attr:id',value=p2_04
p2          column='details:name_2',value=xyz

我需要获取名称为 xyz 且ID为 p1_03 的row_key。尝试了以下查询,但同时产生了两个行键。

scan 'person', {FILTER=>"SingleColumnValueFilter('attr','id',=,'binary:p1_03') AND (ColumnPrefixFilter('name') AND ValueFilter(=,'xyz'))"}

输出:

ROW         COLUMN+CELL
p1          column='details:name_1',value=xyz
p2          column='details:name_2',value=xyz

我只需要获取一个行键 p1

1 个答案:

答案 0 :(得分:1)

您可以将SingleColumnValueFilter与AND / OR条件一起使用。

在这里,由于您使用了不同的列族,因此请使用以下内容:

scan 'person', {FILTER=>"SingleColumnValueFilter('attr','id',=,'binary:p1_03') AND  SingleColumnValueFilter('details','name*',=,'binary:xyz')"}