我是hbase世界的新手,正在尝试下面的查询。我触发了下面的hbase命令表单shell。我希望只检索与筛选条件匹配的行:与列名“serviceid”和值“61490992624”匹配的行。
但是,它也检索其他行(rod id:100545100546100547,australia,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
1条答案
按热度按时间xmq68pz91#
我找到了这种行为的原因。filterifmissing标志必须设置为true。下面的命令给出了适当的结果。最后一个布尔参数'true'仅适用于最新版本。没有那面旗帜,指挥就不起作用。
感谢这个链接:hbase:records在字段不存在的地方返回