gpt4 book ai didi

java - 累积删除带安全标签的行

转载 作者:太空宇宙 更新时间:2023-11-04 10:29:06 25 4
gpt4 key购买 nike

我正在尝试删除表上的 Accumulo 行。该表如下所示:

Key: id0001 hero:alias [secretId] 1525804166026 false             Value: Batman
Key: id0001 hero:name [secretId] 1525804166026 false Value: Bruce Wayne
Key: id0001 hero:wearsCape? [secretId] 1525804166026 false Value: true
Key: id0002 hero:alias [] 1525804166026 false Value: Robin
Key: id0002 hero:name [secretId] 1525804166026 false Value: Dick Grayson
Key: id0002 hero:wearsCape? [secretId] 1525804166026 false Value: true
Key: id0003 hero:alias [] 1525804166026 false Value: Joker
Key: id0003 hero:name [] 1525804166026 false Value: Unknown
Key: id0003 hero:wearsCape? [] 1525804166026 false Value: false

我正在尝试删除 ID 为“id0001”、ColFam“hero”、ColQual“name”的行。我的代码是这样的:

    Mutation mut = new Mutation("id0001");
mut.putDelete(new Text("hero"), new Text("name"));
try (Scanner scanner1 = commishConn.createScanner("GothamPD", new Authorizations("secretId"))) {
//scanner1.setRange(Range.exact("id0001"));
for (Entry<Key,Value> entry : scanner1) {
mut.putDelete(entry.getKey().getColumnFamily(), entry.getKey().getColumnQualifier());
}
}
BatchWriter batchwriter = conn.createBatchWriter("GothamPD",1000000, 60000, 2);
batchwriter.addMutation(mut);
batchwriter.flush();

虽然我已经指定了授权,但它并没有删除。

最佳答案

ColumnVisibility 是列的一部分。如果您要删除具有非空可见性的条目,则需要包含它。

Mutation.putDelete 方法 has a variation它接受 ColumnVisibility 的第三个参数。

例如,替换:

  for (Entry<Key,Value> entry : scanner1) {
mut.putDelete(entry.getKey().getColumnFamily(), entry.getKey().getColumnQualifier());
}

具有以下内容:

  for (Entry<Key,Value> entry : scanner1) {
Key k = entry.getKey();
mut.putDelete(k.getColumnFamily(), k.getColumnQualifier(), k.getColumnVisibilityParsed());
}

警告:请小心;此扫描并删除循环将删除扫描仪找到的所有数据。

注意:扫描仪循环之前的 putDelete 是多余的;如果存在的话,它已经在循环中被删除。

关于java - 累积删除带安全标签的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50240244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com