我有一个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
答案 0 :(得分:1)
您可以将SingleColumnValueFilter与AND / OR条件一起使用。
在这里,由于您使用了不同的列族,因此请使用以下内容:
scan 'person', {FILTER=>"SingleColumnValueFilter('attr','id',=,'binary:p1_03') AND SingleColumnValueFilter('details','name*',=,'binary:xyz')"}