Ecco un pezzo di codice che inizializzare un TableBatchOperation progettato per recuperare le due file in un unico lotto:Il recupero di molte righe utilizzando un TableBatchOperation non è supportato?
TableBatchOperation batch = new TableBatchOperation();
batch.Add(TableOperation.Retrieve("somePartition", "rowKey1"));
batch.Add(TableOperation.Retrieve("somePartition", "rowKey2"));
//second call throws an ArgumentException:
//"A batch transaction with a retrieve operation cannot contain
//any other operation"
Come citato, viene generata un'eccezione, e sembra non supportato per recuperare N righe in un unico lotto. Questo è un grosso problema per me, in quanto ho bisogno di recuperare circa 50 righe per richiesta. Questo problema è tanto più saggio quanto il costo. Come forse sapete, i prezzi di Archiviazione tabella di Azure si basano sulla quantità di transazioni, il che significa che 50 operazioni di recupero sono 50 volte più costose di una singola operazione batch.
Ho perso qualcosa?
Side note Sto utilizzando il nuovo Azure Storage api 2.0. Ho notato che questa domanda non è mai stata sollevata sul web. Questo vincolo potrebbe essere stato aggiunto di recente?
modificare
ho trovato una questione connessa qui: Very Slow on Azure Table Storage Query on PartitionKey/RowKey List. Sembra che l'uso di TableQuery con "o" su rowkey risulti con una scansione completa della tabella. Qui c'è davvero un problema serio ...
Sono bloccato ... non riesco a trovare una soluzione accettabile ... non mi meraviglio perché le domande azzurre sullo stackoverflow sono così inattive: tuttavia Azure non è pronto per la produzione. – uzul
Hai qualche esempio del tipo di dati che stai cercando di richiedere? – knightpfhor
Sono semplici stringhe JSON, molto piccole e milioni di esse. Ho creato qualche entità generica con una proprietà "Data" contenente la stringa ... ma ora sto pensando che dovrei andare con i blob in termini di prestazioni ... ma non riesco ancora a recuperarli in un singolo round trip ... – uzul