当行 ID 相同时,Accumulo 删除行项目

Accumulo delete a row item when row ids are the same

我正在尝试找出一种方法,当它具有与 Accumulo 中的另一对行相同的行 ID 时,从 table 中删除特定行。这就是我 table 设置的方式:

m0 : property : name -> erp
m0 : property : age -> 23
m0 : purchase : food -> 5.00
m0 : purchase : gas -> 24.00
m0 : purchase : beer -> 15.00

假设我想从 table 中删除 gas。我知道我可以使用 connection.tableOperations().deleteRows(table, start, stop) 但如果我将 m0 - 1m0 的行 ID 传递给函数,它将删除所有这些条目。我可以删除 colFam = something 和 colQual = something 吗?我在 API 中没有看到任何支持这一点的内容,但弗兰肯斯坦代码也很酷 :)

是的,这是可能的。我在想行和列仍然在 sql 脑海中。为了删除(这是我的想法)而不是。你只需编写另一个突变。例如:

Text rowId = new Text("m0");
Text colFam = new Text("purchase");
Text colQual = new Text("gas");
Mutation mut = new Mutation(rowId);
mut.putDelete(colFam, colQual);

writer = connection.createBatchWriter(tableName, new BatchWriter());
try{
    writer.addMutation(mut);
}catch{
   ...
}

工作完美:)