Сводка функциональных возможностей хранилища таблиц
REST API хранилища таблиц Azure соответствует спецификации протокола OData с некоторыми отличиями, как описано в следующих разделах.
Расширения хранилища таблиц
Хранилище таблиц расширяет функциональные возможности OData
следующими способами.
Общий ключ, общий ключ Lite и авторизация Microsoft Entra
Для хранилища таблиц требуется, чтобы каждый запрос был авторизован. Поддерживаются общий ключ, общий ключ Lite и авторизация Microsoft Entra ID. Microsoft Entra ID авторизация является более безопасной и рекомендуется для запросов к хранилищу таблиц с помощью REST API.
Дополнительные сведения о авторизации запросов см. в статье Авторизация запросов к службе хранилища Azure.
Маркеры продолжения для разбиения запросов на страницы
Запрос к хранилищу таблиц может возвращать не более 1000 элементов одновременно и выполняться не более пяти секунд. Если результирующий набор содержит более 1000 элементов или запрос не был завершен в течение пяти секунд, ответ содержит заголовки. Эти заголовки предоставляют разработчику маркеры продолжения для использования, чтобы возобновить запрос к следующему элементу в результирующем наборе. Заголовки маркеров продолжения можно возвращать для операции таблицы запросов или операции сущностей запроса .
Обратите внимание, что общее время, отводимое запросу на планирование и обработку запроса, составляет 30 секунд, включая 5 секунд для выполнения запроса.
Дополнительные сведения о маркерах продолжения см. в разделе Время ожидания запроса и разбиение на страницы.
Системные свойства первичного ключа
Каждая сущность в хранилище таблиц имеет два ключевых свойства: PartitionKey
свойство и RowKey
свойство . Эти свойства формируют первичный ключ таблицы и однозначно определяют каждую сущность в таблице.
Оба свойства требуют строковых значений. Разработчик отвечает за предоставление значений для этих свойств при вставке новой сущности и их включение в любую операцию обновления или удаления для сущности.
Дополнительные сведения об этих обязательных ключевых свойствах см. в разделе Основные сведения о модели данных хранилища таблиц.
Системное свойство Timestamp
Каждая сущность в хранилище таблиц имеет системное Timestamp
свойство. Свойство Timestamp
— это значение, поддерживаемое DateTime
на стороне сервера, для записи времени последнего изменения сущности. Хранилище таблиц использует Timestamp
свойство внутренне для обеспечения оптимистичного параллелизма. Значение Timestamp
монотонно увеличивается; это означает, что значение Timestamp
увеличивается при каждом изменении сущности. Данное свойство не следует задавать при операциях вставки и обновления (это значение будет пропускаться).
Дополнительные сведения о свойстве см. в Timestamp
разделе Основные сведения о модели данных хранилища таблиц.
Пакетные операции
Хранилище таблиц поддерживает пакетные транзакции для сущностей, которые находятся в одной таблице и принадлежат к одной группе секций, что означает, что они имеют одинаковое PartitionKey
значение. Это позволяет совершать множественные операции вставки, обновления, слияния и удаления в одной атомарной транзакции. Хранилище таблиц поддерживает подмножество функций, предоставляемых протоколом OData.
Дополнительные сведения о пакетных операциях см. в разделе Выполнение транзакций группы сущностей.
Ограничения хранилища таблиц
Хранилище таблиц имеет следующие ограничения на функциональные возможности, предоставляемые OData
.
Credentials, свойство
Хранилище таблиц не поддерживает использование свойства Credentials класса DataServiceContext для авторизации запроса. Вместо этого необходимо авторизовать запрос к хранилищу таблиц, добавив заголовок Authorization
в запрос. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure.
Типы свойств
Поддерживаются не все типы свойств, OData
поддерживаемые . Список поддерживаемых типов свойств см. в разделе Основные сведения о модели данных хранилища таблиц.
Операции со ссылками
Хранилище таблиц в настоящее время не поддерживает связи между таблицами. Ссылки - это ассоциативные связи между данными.
Операции с свойствами select
Проекция относится к запросу подмножества свойств для сущности или сущностей. Это аналогично выбору подмножества столбцов или свойств таблицы при выполнении запросов, интегрированных в язык (LINQ).
Проекция уменьшает объем данных, который должен быть возвращен запросом, указывая, что в ответе возвращаются только некоторые свойства. Проекция поддерживается в версии службы хранилища Azure 2011-08-18. Дополнительные сведения см. в разделах Сущности запросов, Написание запросов LINQ к хранилищу таблиц и OData: выбор параметра системного запроса ($select)).
Операторы запросов LINQ
Хранилище таблиц поддерживает следующие операторы запросов LINQ:
From
Where
Take
Дополнительные сведения см. в разделе Операторы запросов, поддерживаемые для хранилища таблиц.
Операторы сравнения LINQ
Можно использовать подмножество операторов сравнения, предоставляемых LINQ. Дополнительные сведения см. в разделах Запросы к таблицам и сущностям и Написание запросов LINQ к хранилищу таблиц.
Метод GetMetadataURI
Вы можете использовать метод GetMetadataURI класса DataServiceContext , но он не возвращает сведения о схеме, кроме трех фиксированных свойств схемы. А именно: PartitionKey
, RowKey
и Timestamp
.
Форматы полезных данных
OData
поддерживает отправку полезных данных в формате JSON. Хранилище таблиц поддерживает OData
формат JSON начиная с версии API 2013-08-15, а OData
версия службы данных — 3.0. Предыдущие версии не поддерживают формат JSON.
Полезные данные Atom поддерживаются во всех версиях до 11.12.2015. Версия 2015-12-11 и более поздние поддерживают только полезные данные JSON.
Примечание
JSON — это рекомендуемый формат полезных данных, и это единственный формат, поддерживаемый для версии 2015-12-11 и более поздних версий.
Дополнительные сведения см. в разделах Формат полезных данных для операций хранилища таблиц и Настройка заголовков версии службы данных OData.