Я искал и искал способ удаления элементов с одинаковым идентификатором по условию диапазона. Ни одна из перегрузок для Table.DeleteItem, похоже, не принимает условие диапазона, а только диапазон.Удалить строки по id и условиям диапазона?
Есть ли другой подход к удалению всех записей старше часа?
Я бы предпочел не получать все соответствующие строки hashkey и вручную удалять каждую строку с помощью определенного ключа диапазона.
В основном я использую .NET SDK, но любые подсказки оценены.
Я вижу несколько примеров записи партии, но ничего, что занимает целый диапазон.
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();
}
Вам не нужно возвращать все поля - вы можете указать, какие атрибуты получить - поскольку вы хотите сделать удаление, вы получите только хэш/диапазон. – FlavorScape
Мне сложно понять, почему вы можете запрашивать условие диапазона, но не удалять. Это кажется довольно простым в линейной системе индексированной памяти. Возможно, они хотят, чтобы вы уничтожили их, чтобы удалить единицы пропускной способности. – FlavorScape
@FlavorScape Я думаю, что я рассмотрел ваш первый комментарий в первом абзаце; но помните, что вы по-прежнему платите за полный размер элемента, даже если только получить хэш/диапазон. –