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

行 ID が 1 のすべての行を削除する場合、deleteRows 関数にどのパラメーターを渡す必要がありますか? 最初と最後にパス1を試しましたが、文句を言います

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

それから私は合格し、開始が終了よりも少ないことを確認しようとしましstart = 1end = 1\0が、何も起こらず、エラーがスローされず、行が削除されませんでした。deleteRows の start が exclude で end が include であることが原因だと思います。だから私は1つのレコードを削除する方法について混乱しています(どの行が同じ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 に答える