2014-01-28 6 views
0

Я попытался использовать CloudTable :: ExecuteBatch (новый TableBatchOperation {operation1, operation2}); Каждая операция была операцией Retrieve. Сниппет в вопросе выглядит следующим образом:Azure Table Storage Batch Row Key Lookups

var partitionKey = "1"; 

var operation1 = TableOperation.Retrieve(partitionKey, "1"); 
var operation2 = TableOperation.Retrieve(partitionKey, "2"); 

var executedResult = ExecuteBatch(new TableBatchOperation{operation1, operation2}); 

я получил исключение о том, что не может быть какой-либо операции извлечения в пакетном выполнении. Есть ли способ снять это или асинхронное выполнение - лучший способ обработки нескольких ключей разделов, поиска строк строк? Для моего варианта использования мне придется искать не более трех разных строк с помощью ключа раздела и строки строки одновременно.

ответ

1

Да, периодические операции имеют определенные ограничения и не включают GETS. Вы можете попробовать варианты запросов, как описано здесь, если ключ раздела остается таким же.

Windows Azure table access latency Partition keys and row keys selection

В противном случае, вы можете запросить параллельно.

+0

Опасайтесь, я обманул этот вопрос. Я не могу сделать запрос для ряда строк, потому что я мог бы получить первый и последний ключи в разделе. Я думаю, что параллельный запрос может оказаться лучшим способом. Это то же самое, что асинхронный вызов azure? Если вы не можете сказать мне или указать мне источник, который имеет значение? Вы можете отправить эту ссылку (или более лучшую) в свой ответ для более поздних посетителей: http://social.msdn.microsoft.com/Forums/windowsazure/en-us/d573a17b-2221-4c10-80bc-83b12e863c7d/parallel- queries-to-azure-table-storage? forum = windowsazuredata – Teeknow

+0

Да, параллельные вызовы выполняются асинхронно, но их необходимо сделать одновременно параллельными. Для параллельного запроса должно быть много примеров. Вы также можете изучить использование TPL, поскольку это хороший способ абстрагироваться от непосредственного использования потоков. http://msdn.microsoft.com/en-us/library/dd537609.aspx. Если вам нужно запустить только 3 запроса, возвращающих отдельные строки, распараллеливание может не дать лучшую производительность, и последовательная обработка может быть достаточной. Параллельные вызовы имеют больше смысла, если у вас их много и/или они выполняют сложные запросы, возвращая большое количество строк. – hocho

Смежные вопросы