Ho cercato e cercato un modo per eliminare elementi con lo stesso ID in base a una condizione di intervallo. Nessuno degli overload per Table.DeleteItem sembra richiedere una condizione di intervallo, solo un intervallo.Elimina righe per ID e condizioni di intervallo?
C'è qualche altro approccio per eliminare tutte le voci più vecchie di un'ora?
Preferirei non non dover recuperare tutte le righe hashkey corrispondenti e cancellare manualmente ogni riga dalla chiave intervallo specifico.
Principalmente sto usando .NET SDK ma qualsiasi suggerimento è apprezzato.
Vedo alcuni esempi di scrittura batch, ma nulla che richiede un'intera gamma.
private static void SingleTableBatchWrite()
{
Table productCatalog = Table.LoadTable(client, "ProductCatalog");
var batchWrite = productCatalog.CreateBatchWrite();
var book1 = new Document();
book1["Id"] = 902;
book1["Title"] = "My book1 in batch write using .NET Helper API";
book1["ISBN"] = "902-11-11-1111";
book1["Price"] = 10;
book1["ProductCategory"] = "Book";
book1["Authors"] = new List<string> { "Author 1", "Author 2", "Author 3" };
book1["Dimensions"] = "8.5x11x.5";
batchWrite.AddDocumentToPut(book1);
// Specify delete item using overload that takes PK.
batchWrite.AddKeyToDelete(12345);
Console.WriteLine("Performing batch write in SingleTableBatchWrite()");
batchWrite.Execute();
}
Non è necessario restituire tutti i campi, è possibile specificare quali attributi ottenere: poiché si desidera eseguire un'eliminazione, si otterrà solo l'hash/intervallo. – FlavorScape
Trovo difficile capire perché è possibile eseguire una query su una condizione di intervallo ma non eliminare. Sembra piuttosto semplice in un sistema lineare di memoria indicizzata. Forse vogliono che tu consumi loro preziose unità di larghezza di banda da eliminare. – FlavorScape
@FlavorScape Penso di aver coperto il tuo primo commento nel primo paragrafo; ma ricorda che paghi comunque la dimensione completa dell'articolo anche se ottieni solo l'hash/intervallo. –