Экспорт (0) Печать
Развернуть все

Основные сведения о модели данных службы таблиц

Обновлено: Август 2014 г.

Служба таблиц предоставляет структурированное хранилище в виде таблиц. В следующих разделах описана модель данных службы таблиц.

Учетная запись хранения — это глобальная и уникальная сущность в системе хранения. Учетная запись хранения является родительским пространством имен для службы таблиц и служит основой для проверки подлинности. В рамках одной учетной записи хранения можно создать любое количество таблиц, при этом каждая таблица должна иметь уникальное имя.

Учетную запись хранения всегда необходимо указывать в URI-запросе. Базовый URI-адрес для доступа к службе таблиц выглядит следующим образом:

https://myaccount.table.core.windows.net

Таблицы хранят данные как коллекции сущностей. Сущности аналогичны строкам. Сущность имеет первичный ключ и набор свойств. Свойство сходно со столбцом, имеет имя и представляет пару «тип-значение».

Служба таблиц не требует наличия схемы для таблиц, поэтому две сущности в одной таблице могут иметь различные наборы свойств. Разработчики могут принудительно требовать наличия схемы на стороне клиента. Таблица может содержать любое число сущностей.

Имена таблиц должны соответствовать следующим правилам:

  • Имена таблиц должны быть уникальными в пределах учетной записи.

  • Имена таблиц могут содержать только буквенно-цифровые символы.

  • Имена таблиц не могут начинаться с цифры.

  • В именах таблиц учитывается регистр символов.

  • Имена таблиц должны быть длиной от 3 до 63 символов.

  • Некоторые имена таблиц зарезервированы, в том числе «tables». Попытка создания таблицы с зарезервированным именем возвращает код ошибки 404 (Bad Request).

Эти правила также описываются регулярным выражением: «^[A-Za-z][A-Za-z0-9]{2,62}$».

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

Имена свойств — это строки, учитывающие регистр, длиной до 255 символов. Имена свойств должны следовать правилам именования для Идентификаторов C#.

noteПримечание
Некоторые идентификаторов C# недопустимы согласно Спецификации XML. Эти идентификаторы нельзя использовать в именах свойства, потому что имена свойств передаются службе таблиц запросом в виде XML.

ImportantВажно!
Имена свойств передаются службе таблиц в URL-адресе. Некоторые символы необходимо перекодировать (в последовательность с процентом) для использования в URL-адресе. При этом используется кодировка UTF-8 (рекомендуется) или многобайтовая кодировка (MBCS). Перекодировка производится автоматически при использовании библиотек Azure .NET или создании объекта Uri, содержащего имя свойства. Однако есть некоторые символы, которые недопустимы в URL-адресе, даже будучи перекодированы. Эти символы не могут использоваться в именах свойств. Кодовые точки вроде \ uE000 допустимы в NTFS-именах, но не являются допустимыми символами Юникода, поэтому их использовать нельзя. Кроме того, некоторые символы ASCII и Юникода, например, управляющие символы (от 0x00 до 0x1F, \u0081 и т. д.), также не являются допустимыми. Правила, касающиеся Юникод-строк в HTTP/1.1, см. в следующем разделе:

noteПримечание
Начиная с версии 2009-04-14, служба таблиц не поддерживает работу с именами свойств, содержащих тире (-).

Сущность может иметь до 255 свойств, включая 3 системные свойства, описанные в следующем разделе. Поэтому пользователь может включать до 252 свойств в дополнение к 3 системным свойствам. Общий размер всех данных в свойствах сущности не может превышать 1 MБ.

Сущность всегда имеет следующие системные свойства:

  • Свойство PartitionKey

  • Свойство RowKey

  • Свойство Timestamp

Эти системные свойства автоматически включаются в каждой сущность таблицы. Имена этих свойств зарезервированы и не могут быть изменены. Разработчик отвечает за вставку и обновлений значений для PartitionKey и RowKey. Сервер управляет значением Timestamp, которое не может быть изменено.

Следующие символы недопустимы в значениях свойств PartitionKey и RowKey.

  • Символ косой черты (/)

  • Символ обратной косой черты (\)

  • Символ номера (#)

  • Символ вопросительного знака (?)

  • Управляющие символы от U+0000 до U+001F, включая следующие:

    • Символ горизонтальной табуляции (\t)

    • Символ перевода строки (\n)

    • Символ возврата каретки (\r)

  • Управляющие символы от U+007 до U+009F

Таблицы разбиваются для поддержки балансировки нагрузки между узлами хранилища. Сущности таблицы упорядочиваются по секциям. Секция — это последовательный диапазон сущностей с одинаковым значением ключа секции. Ключ секции — это уникальный идентификатор секции в таблице, указываемый в свойстве PartitionKey. Ключ секции составляет первую часть первичного ключа сущности. Ключ секции может быть строковым значением размером до 1 КБ.

Необходимо вводить свойство PartitionKey в каждую операцию вставки, обновления и удаления.

Вторая часть первичного ключа это ключ строки, указываемый в свойстве RowKey. Ключ строки — уникальный идентификатор сущности в рамках заданной секции. Совместно PartitionKey и RowKey однозначно идентифицируют каждую сущность в таблице.

Ключ строки — строковое значение размером до 1 КБ.

Необходимо вводить свойство RowKey в каждую операцию вставки, обновления и удаления.

Свойство Timestamp это значение типа DateTime, которое задается сервером для отметки времени последнего изменения сущности. Служба таблиц использует свойство Timestamp для реализации внутреннего алгоритма оптимистичного параллелизма. Значение Timestamp монотонно увеличивается; это означает, что значение Timestamp увеличивается при каждом изменении сущности. Данное свойство не следует задавать при операциях вставки и обновления (это значение будет пропускаться).

Служба таблиц поддерживает подмножество типов данных, определенных в спецификации протокола OData. В следующей таблице приведены поддерживаемые в службе таблиц типы свойств:

 

Тип данных OData Тип CLR Подробности

Edm.Binary

byte[]

Массив байт размером до 64 КБ.

Edm.Boolean

bool

Значение типа Boolean.

Edm.DateTime

DateTime

64-разрядное значение, выраженное в формате UTC. Поддерживаемый диапазон DateTime начинается с полночи (12:00) 1 января 1601 г. н. э., формат UTC. Диапазон заканчивается на 31-м декабря 9999 года.

Edm.Double

double

64-разрядное значение с плавающей запятой.

Edm.Guid

Guid

128-битный глобальный уникальный идентификатор.

Edm.Int32

Int32 или int

32-разрядное целое число.

Edm.Int64

Int64 или long

64-разрядное целое число.

Edm.String

String

Значение в кодировке UTF-16. Строковые значения могут иметь размер до 64 КБ.

По умолчанию свойство создается как тип String, если не задан другой тип. Чтобы явным образом типизировать свойство, укажите его тип данных с помощью подходящего типа данных OData для операции Вставка сущности или Обновление сущности. Дополнительные сведения см. в Вставка и обновление сущностей.

Пример фильтрации по различным типов свойств в URI-запросе см. в разделе Запросы к таблицам и сущностям.

См. также

Показ:
© 2014 Microsoft