[使用单列值过滤器的hbase shell命令

问题描述 投票:0回答:1

我是Hbase世界的新手,请尝试以下查询。我触发了下面的hbase命令窗体外壳。我希望仅检索符合过滤条件的行:与列名“ serviceId”匹配且值为“ 61490992624”的行。

但是,它也会检索其他行(标尺ID:100545、100546、100547,澳大利亚,NSW,NT)。我希望只检索ID为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

hbase hbase-shell
1个回答
0
投票

我找出了行为的原因。 filterIfMissing标志必须设置为true。下面的命令给出了适当的结果。最后一个布尔型arg'true'用于LatestVersionOnly。没有该标志,命令将不起作用。

感谢此链接:HBase: Records returned where field is not present

scan 'api_cmp_usage', {FILTER=>"SingleColumnValueFilter('usage','serviceId',=,'binary:61490992624',true,true)"}
© www.soinside.com 2019 - 2024. All rights reserved.