Accumulo удалить элемент строки, когда идентификаторы строк совпадают

Я пытаюсь найти способ удалить определенную строку из таблицы, когда она имеет тот же идентификатор строки, что и другая пара строк в Accumulo. Вот как я настроил свой стол:

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

Скажем, я хочу удалить газ со стола. Я знаю, что мог бы использовать connection.tableOperations().deleteRows(table, start, stop), но если я передам идентификатор строки m0 - 1 и m0 функции, она удалит все эти записи. Могу ли я удалить, где colFam = что-то и colQual = что-то? Я не видел ничего в API для поддержки этого, но код Франкенштейна тоже классный :)


person erp    schedule 28.07.2015    source источник


Ответы (1)


Да, это возможно. Я думал о строках и столбцах все еще в sql mindest. Чтобы удалить столбец (о чем я и думал), а не строку. Вы просто пишете очередную мутацию. Например:

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{
   ...
}

Работает идеально :)

person erp    schedule 28.07.2015