【问题标题】:hbase shell commands using singlecolumnvalue filter使用单列值过滤器的 hbase shell 命令
【发布时间】:2019-10-18 03:05:01
【问题描述】:

我是 Hbase 世界的新手,正在尝试以下查询。 我触发了以下 hbase 命令形式的 shell。我希望只检索与过滤条件匹配的行:与列名“serviceId”匹配且值为“61490992624”的行。

但是,它也会检索其他行(rod ids:100545、100546、100547、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

【问题讨论】:

    标签: hbase hbase-shell


    【解决方案1】:

    我找到了这种行为的原因。 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)"}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多