1

我正在使用 Accumulo 1.6 并希望通过 nodejs 中的 accumulo 代理客户端通过给定行键删除一些记录。

但是当我尝试将相同的行键放入 deleteRows API 时,代理客户端会抛出“开始行必须小于结束行”

var rowId = "1";
var proxyClient = getAccumuloProxyClient();
proxyClient.deleteRows(getLogin(), TABLE_NAME, rowId, rowId, callback);

更新: 假设有一个表看起来像:

rowID | columnFamily | columnQualifier
1        name           John
1        age            25
1        department     sales
2        name           Lisa
2        age            25  
2        department     sales

如果我想删除 rowID 等于 1 的所有行,我应该将哪些参数传递给 deleteRows 函数?我尝试通过 1 开始和结束,但它抱怨

"org.apache.accumulo.core.client.AccumuloException: start row must be less than end row"

然后我尝试通过start = 1end = 1\0确保开始小于结束,但没有发生任何事情,没有抛出错误,没有删除行。我认为由开始引起的是排除和结束是包含删除行。所以我对如何删除一条记录(哪些行具有相同的rowID)感到困惑。

4

1 回答 1

1

对于我的情况,使用 (char - 1 作为起始行解决了我的问题:

var startRowId = rowId.substring(0, rowId.length - 1) + String.fromCharCode(rowId.charCodeAt(rowId.length - 1) - 1);
proxyClient.deleteRows(getLogin(), TABLE_NAME, startRowId, rowId, callback);
于 2015-05-12T07:24:00.210 回答