Windows Azure Table - программирование - Введение в облачные решения Microsoft

Базовые операции таблиц и сущностей

Создание;

Извлечение с применением фильтров;

Обновление (только сущности);

Удаление;

Транзакции над группами сущностей, находящимися в одной таблице и секции;

Таблица интерфейсов программирования приложений, поддерживаемых таблицами и сущностями

Расширенные операции над таблицами и сущностями:

Разбиение на страницы;

Обработка конфликтов параллельных обновлений.

Контроль версий

Для обеспечения контроля версия для всех решений Windows Azure Storage был введен HTTP-заголовок "x-ms-version". Все изменения APIхранилища регистрируются как версии с помощью этого заголовка. Это обеспечивает возможность выполнять предыдущие версии команд и при этом расширять возможности существующих команд и вводить новые.

Заголовок "x-ms-version" должен задаваться для всех запросов к Windows Azure Storage. При поступлении анонимного запросе без указания версии система хранения выполнит самую старую из поддерживаемых версию этой команды.

Класс сущностей

Схема таблицы описывается как C#-класс. Такую модель использует ADO. NET Data Services. Схема известна только клиентскому приложению и упрощает доступ к данным. Сервер схему не применяет.

Для примера рассмотрим работу с таблицей контактов - Contact.

Рассмотрим описание сущностей Contact, хранящихся в таблице Contacts. Каждая сущность содержит следующие данные:

Группа контактов - Group ;

Имя контакта - NameOf ;

Дату создания контакта - DateOf ;

Адрес электронной почты - Email ;

Комментарии - Comment.

Для данной таблицы "Contacts" в качестве ключа секции используется Group, а в качестве ключа строки - NameOf. PartitionKey и RowKey - ключи таблицы Contacts, они объявляются посредством атрибута класса DataServiceKey (Ключ сервиса данных). Кроме ключей, в качестве свойств объявлены характерные для данного вида сущностей атрибуты. Все свойства имеют открытые ( public ) методы считывания и присвоения значения и хранятся в таблице Windows Azure Table. Итак, в примере ниже:

Public class Contacts

{

Public string PartitionKey { get; set; }

Public string RowKey { get; set; }

Public datetime DateOf { get; set; }

Public String Email { get; set; }

Public String Comments { get; set; }

}

Создание таблиц

Далее рассмотрим, как создать таблицу Contacts для учетной записи хранилища. Создание таблицы аналогично созданию сущности в основной таблице "Tables" . Эта основная таблица определена для каждой учетной записи хранилища, и имя каждой таблицы, используемой учетной записью хранения, должно быть зарегистрировано в основной таблице. Описание класса основной таблицы приведено ниже, где свойство TableName (Имя таблицы) представляет имя создаваемой таблицы.

Public class TableStorageTable

{ public string TableName { get; set; }

}

Фактическое создание таблицы происходит следующим образом:

// Uri сервиса: "http://<Account>.table. core. windows. net/"

DataServiceContext context = new DataServiceContext(serviceUri);

TableStorageTable table = new TableStorageTable("Contacts ");

// Создаем новую таблицу, добавляя новую сущность

// в основную таблицу "Tables"

Context. AddObject("Tables", table);

// результатом вызова SaveChanges является отклик сервера

DataServiceResponse response = context. SaveChanges();

ServiceUri - это uri сервиса таблицы, http://<Здесь указывается имя учетной записи>.table. core. windows. net/. DataServiceContext(Контекст сервиса данных) - один из основных классов сервиса данных ADO. NET, представляющий контекст времени выполнения для сервиса. Он обеспечивает API для вставки, обновления, удаления и запроса сущностей с помощью либо LINQ, либо RESTful URI и сохраняет состояние на стороне клиента. Более подробный пример работы с Windows Azure Table, начиная от создания приложения, будет рассмотрен в рамках соответствующего практического занятия.

Похожие статьи




Windows Azure Table - программирование - Введение в облачные решения Microsoft

Предыдущая | Следующая