Таблицы хранилища Azure, вопросы, касающиеся запросов и обработки запросов - PullRequest
0 голосов
/ 17 ноября 2011

У меня два коротких вопроса относительно таблиц хранения Azure.

  1. Есть ли что-то вроде обзора методов, которые я могу использовать для запроса таблицы хранения?Я нашел пример для LINQ, есть ли альтернативы в .NET Framework?

  2. Где происходит «обработка запросов»?Например, когда вы используете SQL и отправляете сложный запрос на ваш SQL-сервер, этот сервер начинает его оценивать и возвращает результат вашему клиенту.Это то же самое для хранения таблиц, или клиент получает данные и должен сам выполнять обработку?

1 Ответ

4 голосов
/ 17 ноября 2011

Для # 1 взгляните на клиентскую библиотеку WCF Data Services (что используется в .NET для запроса хранения таблиц).Вы можете избежать LINQ, если хотите создавать URL-адреса вручную, но LINQ, безусловно, является доминирующим способом запроса хранилища таблиц из кода .NET.

Для # 2 хранилище таблиц поддерживает очень мало операций (в основном простофильтры).Если вам нужно выполнить сортировку, группировку и т. Д., Вам нужно сначала вывести данные локально, а затем выполнить запрос оттуда.То, где все происходит, зависит от кода, который вы пишете.Например, произойдет сбой следующего:

mytable.Select(e => e.PartitionKey == "foo").OrderBy(e => e.SomeTime).Take(10)

, поскольку запрос будет отправлен в хранилище таблиц Windows Azure, и произойдет сбой, поскольку таблицы не поддерживают сортировку.Тем не менее, будет работать следующее (но очень неэффективно):

mytable.Select(e => e.PartitionKey == "foo").ToList().OrderBy(e => e.SomeTime).Take(10)

Это приведет к тому, что весь набор результатов (все с ключом раздела "foo") будет удален локально, потому что .ToList вызывает выполнение запроса.Затем, как только все это будет в памяти, оно будет отсортировано и возвращены первые десять элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...