Shell HBase 1.2-删除带有可见性标签的单元格

Shell HBase 1.2-删除带有可见性标签的单元格,shell,hbase,Shell,Hbase,在HBase 1.2中,我有: 具有全局权限“RW”和以下授权的用户testShellUser:testShell\u visY 具有以下可见性标签的表testShellTable中的单元格:testShell\u visY 以下是testShellUser授权和特权的“证明”: hbase(main):001:0> get_auths 'testShellUser' testShell_visY 0 row(s) in 1.3290 seconds hbase(main):003:

在HBase 1.2中,我有:

  • 具有全局权限“RW”和以下授权的用户testShellUser:testShell\u visY
  • 具有以下可见性标签的表testShellTable中的单元格:testShell\u visY
以下是testShellUser授权和特权的“证明”:

hbase(main):001:0> get_auths 'testShellUser'
testShell_visY
0 row(s) in 1.3290 seconds

hbase(main):003:0> user_permission 'testShellTable'
User                               Namespace,Table,Family,Qualifier:Permission
 testShellUser                     default,testShellTable,,: [Permission: actions=READ,WRITE]
 hbase                             default,testShellTable,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
0.2210秒内2行

当以testShellUser身份登录到HBase shell时,我可以看到以下单元格:

hbase(main):009:0> scan 'testShellTable'
ROW                                COLUMN+CELL
 2                                 column=cf:name, timestamp=1500315396737, value=Wilma
在以testShellUser身份进行身份验证时,我无法删除该单元格——也就是说,下面的命令不执行任何操作:

delete 'testShellTable', '2', 'cf:name', 1500315396737

是否有一个命令或上述命令的变体允许testShellUser删除此单元格(而不提升用户的权限/授权或从单元格中删除可见性标签)?

在试用HBase shell之后,我似乎找到了“解决方案”

似乎,如果单元格具有可见性字符串,那么对于删除该单元格的delete命令,delete命令必须提供与该单元格的可见性字符串匹配的可见性字符串条件。因此,对于我在原始问题中提到的情况,必须使用以下删除命令:

delete 'testShellTable', '2', 'cf:name', 1500315396737, {VISIBILITY=>'testShell_visY'}
作为旁注,用户似乎还可以删除用户看不到的单元格。在我的例子中,如果用户拥有授权字符串“testShell_visX”,那么用户对“testShellTable”的扫描将不会显示单元格,但是前面提到的delete命令仍然会删除单元格