Задержка доступа к таблице Windows Azure Ключи разделов и ключи строк
У нас есть система хранения таблиц Windows Azure, в которой у нас есть различные типы объектов, которые сообщают значения в течение дня, поэтому у нас есть следующий сценарий раздела и ключа строки:
Есть около 4000 - 5000 субъектов. Существует 6 типов сущностей, которые распределены примерно равномерно. так что около 800'ish каждый.
ParitionKey: entityType-Date
Ключ строки: entityId
В каждой строке записываются значения для объекта для этого конкретного дня. В настоящее время JSON сериализуется.
Данные довольно многословны.
Мы будем периодически проверять значения в этих разделах в течение месяца или двух месяцев, в зависимости от того, что хотят видеть пользователи нашего веб-сайта.
У нас проблема в том, что если мы хотим запросить данные за месяц для одной сущности, мы обнаружим, что нам нужно запросить 31 ключ раздела по entityId.
Сначала это очень медленно, но после первого вызова результат кэшируется.
К сожалению, характер сайта заключается в том, что будет разное количество разных запросов, поэтому вряд ли данные получат большую выгоду от кэширования.
Очевидно, мы могли бы увеличить разделы, т. Е., Возможно, целую неделю данных и расширить rowKeys до entityId и date.
Какие другие варианты открыты для меня, или это просто случай, когда таблицы Windows Azure имеют довольно высокую задержку?
1 ответ
Некоторые варианты включают
Сделайте 31 запрос параллельно
Сделайте один запрос на диапазон ключей раздела, то есть
Ключ раздела>= entityType-StartDate и ключ раздела <= entityType-EndDate и ключ Row = entityId.
Вполне возможно, что в зависимости от ваших данных этот запрос может иметь меньшую задержку, чем ваш текущий запрос.