如何根据Accumulo代理客户端的rowkey删除Accumulo中的logging
我正在使用Accumulo 1.6,并希望通过nodejs中的accumulo代理客户端通过给予rowkey删除一些logging。
但是当我试图将相同的rowkey放入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函数的参数是什么? 我试了一遍,开始和结束,但它抱怨
"org.apache.accumulo.core.client.AccumuloException: start row must be less than end row"
然后我试图通过start = 1
和end = 1\0
,以确保开始less于结束,但没有发生,没有错误扔,没有行删除。 我认为这是由开始引起的,并且是为了deleteRows而包含的。 所以我很困惑如何删除一个logging(哪些行具有相同的rowID)。
为我的情况使用(字符 – 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);