Команды оболочки hbase с использованием одноколоночного фильтра значений - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в мире Hbase и пробую следующий запрос. Я запустил приведенную ниже командную оболочку hbase. Я ожидаю получить только те строки, которые соответствуют критериям фильтрации: строки, соответствующие имени столбца 'serviceId' со значением '61490992624'.

Однако, он получает другие строки (идентификаторы стержней: 100545, 100546,100547, Австралия, NSW, NT). Я ожидаю, что будет получен только идентификатор строки TX005.

есть ли причины такого поведения?.

hbase(main):024:0> scan 'api_cus_usage', {FILTER=>"SingleColumnValueFilter('usage','serviceId',=,'binary:61490992624')"}
ROW           COLUMN+CELL
 100545        column=usage:colC, timestamp=1569912663258, value=100545
 100546        column=usage:colC, timestamp=1569912663269, value=100546
 100547        column=usage:colC, timestamp=1569912663279, value=100547
 Australia     column=usage:colB, timestamp=1569912663276, value=Australia
 NSW           column=usage:colA, timestamp=1569912663262, value=NSW
 NT            column=usage:colA, timestamp=1569912663272, value=NT
 TX005         column=usage:balanceInstanceId, timestamp=1567147803234, value=3
 TX005         column=usage:eventDateAndTime, timestamp=1567147802721, value=20190815T000000+1000
 TX005         column=usage:serviceId, timestamp=1567147802752, value=61490992624

1 Ответ

0 голосов
/ 18 октября 2019

Я выяснил причину поведения. Флаг filterIfMissing должен быть установлен в true. Команда ниже дала соответствующие результаты. последний логический аргумент 'true' предназначен для latestVersionOnly. Без этого флага команда не работала.

Благодаря этой ссылке: HBase: записи возвращены, когда поле отсутствует

scan 'api_cmp_usage', {FILTER=>"SingleColumnValueFilter('usage','serviceId',=,'binary:61490992624',true,true)"}
...