Фильтры HBase: ColumnPrefixFIlter и SingleColumnValueFilter - PullRequest
0 голосов
/ 05 марта 2019

У меня есть таблица 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

Мне нужно выбрать row_key, имя которого xyz и идентификатор p1_03 .Пробовал приведенный ниже запрос, но он приводит к обоим ключам строки.

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 голосов
/ 05 марта 2019

Вы можете использовать SingleColumnValueFilter с условиями И / ИЛИ.

Здесь, так как вы используете разные семейства столбцов, следовательно, используйте следующее:

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