如何跨多个范围在 Accumulo 中执行有效的删除?
How can I perform efficient Deletions in Accumulo across multiple ranges?
我有一个具有以下架构的索引 table:
Row CF CQ
Name POB DOB
我怎样才能有效地删除多行(即 John Doe:New York:01/01/75,Jane Doe:Miami:06/21/80)?
使用要删除的所有 Range
(行)中的 BatchDeleter
和 setRanges
https://accumulo.apache.org/1.7/apidocs/org/apache/accumulo/core/client/BatchDeleter.html
BatchDeleter deleter= conn.createBatchDeleter("Table Name", new Authorizations(), 1, config);
Collection<Range> ranges = new ArrayList<Range>();
Scanner tableScannerRange= conn.createScanner("TableName", new Authorizations());
tableScannerRange.setRange(new Range("XXXX"));
for (Entry<Key, Value> entry : tableScannerRange) {
ranges.add(new Range(entry.getKey().getRow()));
}
deleter.setRanges(ranges);
deleter.delete();
或使用 Put Delete
Mutation mutation_data = new Mutation(" ");
mutation_data.putDelete(CF,CQ);
我有一个具有以下架构的索引 table:
Row CF CQ
Name POB DOB
我怎样才能有效地删除多行(即 John Doe:New York:01/01/75,Jane Doe:Miami:06/21/80)?
使用要删除的所有 Range
(行)中的 BatchDeleter
和 setRanges
https://accumulo.apache.org/1.7/apidocs/org/apache/accumulo/core/client/BatchDeleter.html
BatchDeleter deleter= conn.createBatchDeleter("Table Name", new Authorizations(), 1, config);
Collection<Range> ranges = new ArrayList<Range>();
Scanner tableScannerRange= conn.createScanner("TableName", new Authorizations());
tableScannerRange.setRange(new Range("XXXX"));
for (Entry<Key, Value> entry : tableScannerRange) {
ranges.add(new Range(entry.getKey().getRow()));
}
deleter.setRanges(ranges);
deleter.delete();
或使用 Put Delete
Mutation mutation_data = new Mutation(" ");
mutation_data.putDelete(CF,CQ);