Данные в облаке

Приступаем к разработке с применением SQL Azure

Линн Лэнгит

Microsoft Windows Azure предлагает несколько вариантов хранения данных. К ним относятся хранилище Windows Azure и SQL Azure. Вы можете использовать что-то одно или оба хранилища в своем проекте. Хранилище Windows Azure в настоящее время содержит три типа структур хранения: таблицы, очереди и большие двоичные объекты (blobs).

SQL Azure — это сервис реляционного хранилища данных в облаке. Некоторые преимущества этого предложения — возможность использовать привычную реляционную модель разработки, которая включает многое из стандартного языка SQL Server (T-SQL), инструментов и утилит. Конечно, работа с хорошо известными реляционными структурами в облаке, например таблицами, представлениями и хранимыми процедурами, также приводит к увеличению производительности труда разработчиков на этой новой платформе. К другим преимуществам относятся уменьшенная потребность в задачах администрирования базы данных для настройки сервера, сопровождения и защиты, а также встроенная поддержка максимальной надежности, высокой доступности и масштабируемости.

Я не буду рассказывать здесь о хранилище Windows Azure и сравнивать разные хранилища. Об этом вы можете прочесть в рубрике «Доступ к данным» за июль 2010 г.(msdn.microsoft.com/magazine/ff796231). Важно отметить лишь, что таблицы Windows Azure не являются реляционными. Основное внимание я уделяю изучению возможностей SQL Azure.

В этой статье я поясню различия между SQL Server и SQL Azure. Эти различия нужно понимать досконально, чтобы должным образом использовать свои нынешние познания в области SQL Server при работе над проектами, где в качестве источника данных выступает SQL Azure.

Если вы новичок в программировании для облака, то, прежде чем читать эту статью, вам стоит получить базовую информацию по тематике Windows Azure. Хорошая отправная точка — MSDN Developer Cloud Center по ссылке msdn.microsoft.com/ff380142.

Начинаем работу с SQL Azure

Чтобы начать работу с SQL Azure, сначала создайте учетную запись. Если вы подписчик MSDN, то можете использовать до трех баз данных SQL Azure (максимальный размер каждой из которых равен 1 Гб) в течение 16 месяцев (подробности на msdn.microsoft.com/subscriptions/ee461076). Чтобы зарегистрироваться под полноценной учетной записью SQL Azure (взимается плата за хранение и передачу данных), зайдите на microsoft.com/windowsazure/offers/.

После оформления учетной записи SQL Azure самый простой способ начального обращения к ней — через веб-портал sql.azure.com. Вы должны входить в систему с Windows Live ID, сопоставленным с вашей учетной запись в Windows Azure. После входа вы можете создать свою серверную систему и приступить к разработке приложения.

Пример содержимого веб-портала для управления SQL Azure показан на рис. 1. Здесь вы видите сервер и связанные с ним базы данных. Также обратите внимание на вкладку на веб-портале для управления настройками брандмауэра (Firewall Settings) для конкретной системы SQL Azure.

image: Summary Information for a SQL Azure Database

Рис. 1. Сводная информация по базе данных SQL Azure

Когда вы впервые создаете свою серверную систему SQL Azure, имени сервера присваивается случайная строка. Как правило, в момент создания сервера вы также задаете имя пользователя-администратора, пароль, территориальное расположение сервера и правила брандмауэра. Вы можете выбрать местоположение для своей системы SQL Azure при создании сервера. На экране появится список местоположений (информационных центров), откуда вы выберете нужное. Если клиентская часть вашего приложения построена на платформе Windows Azure, у вас появится возможность разместить обе части в одной географической точке, сопоставив эти части.

По умолчанию доступа к вашему серверу нет, поэтому вам придется создать правила брандмауэра для всех клиентских IP-адресов. SQL Azure использует порт 1433, поэтому убедитесь, что этот порт открыт вашему клиентскому приложению. При соединении с SQL Azure вы будете указывать имя пользователя в формате имя_пользователя@имя_сервера. SQL Azure поддерживает только аутентификацию средствами SQL Server; аутентификация средствами Windows не поддерживается. Кроме того, допускаются MARS-соединения (Multiple Active Result Set).

Для открытых соединений установлен тайм-аут по истечении 30 минут бездействия. Кроме того, соединения могут разрываться при длительно выполняемых запросах и транзакциях или при избыточном использовании ресурсов. В руководствах по разработке рекомендуется открывать, использовать и вручную закрывать эти соединения, а также включать в приложения логику повторного подключения в случае разрыва соединений и избегать кеширования соединений. Подробнее о поддерживаемых клиентских протоколах для SQL Azure см. публикацию Стива Нейла (Steve Hale) по ссылке blogs.msdn.com/b/sqlnativeclient/archive/2010/02/12/using-sql-server-client-apis-with-sql-azure-vversion-1-0.aspx.

Также не забывайте шифровать строку подключения, чтобы предотвратить сетевые атаки с посредником (man-in-the-middle attacks).

Если в строке подключения не указано имя базы данных, то по умолчанию будет выполнено соединение с главной базой данных (master). В SQL Azure T-SQL-выражение USE для смены баз данных не поддерживается, поэтому, как правило, вы будете задавать нужную базу данных в строке подключения (если вы хотите подключиться к базе данных, отличной от главной). Вот пример соединения ADO.NET:

Server=tcp:server.ctp.database.windows.net;
Database=<databasename>;
123ser ID=user@server;
123assword=123assword;
Trusted_Connection=False;
Encrypt=true;

Подготовка баз данных

После успешного соединения к своей системе вы захотите создать одну или больше баз данных. Хотя базы данных можно создавать через портал SQL Azure, по-видимому, вы предпочтете делать это другими средствами, например с помощью SQL Server Management Studio 2008 R2. По умолчанию вы можете создать до 149 баз данных для каждой серверной системы в SQL Azure. Если вам нужно больше баз данных, вы должны позвонить в коммерческий отдел Windows Azure и договориться о расширении этого лимита.

При создании базы данных вы должны выбрать максимальный размер. Текущие варианты размеров (и тарифы) — Web или Business Edition. Web Edition (вариант по умолчанию) поддерживает базы данных размером 1 или 5 Гб суммарно. Business Edition поддерживает базы данных до 50 Гб с приростом размеров по 10 Гб — иначе говоря, 10, 20, 30, 40 и 50 Гб.

Лимит размера для базы данных задается при ее создании; для этого используется ключевое слово MAXSIZE. Вы можете изменять лимит по размеру или переходить на другую редакцию (Web или Business) после изначального создания базы выражением ALTER DATABASE. Если вы достигли предела для выбранной редакции, то получите ошибку с кодом 40544. При определении размера базы данных не учитывается главная база данных (master database) и любые журналы, связанные с базами данных. Подробнее на эту тему, а также о ценовой политике см. по ссылке microsoft.com/windowsazure/pricing/#sql.

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

После создания базы данных вы можете быстро получить информацию для строки подключения к ней, выбрав эту базу данных в списке на портале, а затем щелкнув кнопку Connection Strings. Вы также можете быстро проверить соединение с выбранной базой данных через портал, щелкнув кнопку Test Connectivity. Чтобы эта проверка прошла успешно, вы должны выбрать Allow Microsoft Services to Connect to this Server на вкладке Firewall Rules портала SQL Azure.

Создание приложения

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

В отличие от хранилищ данных Windows Azure (таблиц, очередей или больших двоичных объектов) при использовании SQL Azure в качестве источника данных для проекта в среде разработки устанавливать ничего не требуется. Если вы работаете в Visual Studio 2010, то можете просто начать — не нужно никаких дополнительных SDK, инструментов или чего-либо другого.

Хотя многие разработчики будут использовать клиентскую часть Windows Azure с серверной частью SQL Azure, такая конфигурация не обязательна. Вы можете использовать любой клиентский интерфейс с поддерживаемой библиотекой соединений вроде ADO.NET или ODBC. Это позволило бы включать, например, приложения, написанные на Java или PHP. Подключение к SQL Azure через OLE DB в настоящее время не поддерживается.

Если вы разрабатываете свое приложение в Visual Studio 2010, то можете просматривать или создавать многие типы объектов в выбранной системе SQL Azure непосредственно из Visual Studio Server Explorer. К этим объектам относятся, в том числе, Tables, Views, Stored Procedures, Functions и Synonyms. Вы также можете увидеть данные, сопоставленные с этими объектами, используя это средство просмотра. Для многих разработчиков применение Visual Studio 2010 в качестве основного средства просмотра и управления данными SQL Azure будет вполне достаточно. Окно Server Explorer View показано на рис. 2. Отображается как локальная база данных, так и экземпляр в облаке. Вы заметите, что узлы дерева немного различаются в этих двух представлениях. Например, узла Assemblies в облачной базе данных нет, потому что собственные сборки (assemblies) в SQL Azure не поддерживаются.

image: Viewing Data Connections in Visual Studio Server Explorer

Рис. 2. Просмотр соединений с базой данных в Visual Studio Server Explorer

Как уже упоминалось, еще один инструмент, позволяющий работать с SQL Azure — SQL Server Management Studio (SSMS) 2008 R2. С помощью SSMS 2008 R2 вы получаете доступ к более полному набору операций для баз данных SQL Azure, чем из Visual Studio 2010. Я использую оба инструмента в зависимости от нужной мне операции. Пример операции, доступной в SSMS 2008 R2 (и недоступной в Visual Studio 2010), — создание новой базы данных с помощью сценария на T-SQL. Другой пример — возможность легко выполнять индексные операции (создание, поддержку, удаление и др.). Один из примеров представлен на рис. 3.

image: Using SQL Server Management Studio 2008 R2 to Manage SQL Azure

Рис. 3. Применение SQL Server Management Studio 2008 R2 для управления SQL Azure

В только что выпущенном SQL Server 2008 R2 появилось приложение уровня данных (data-tier application, DAC). DAC-пакеты (pacs) — это объекты, которые объединяют схемы и объекты базы данных SQL Server или SQL Azure в одну сущность. Для создания DAC из существующей базы данных можно использовать либо Visual Studio 2010, либо SQL Server 2008 R2 SSMS.

Если вы хотите использовать Visual Studio 2010 для работы с DAC, то должны выбрать в этой среде тип проекта SQL Server Data-Tier Application.Затем в Solution Explorer щелкните имя проекта правой кнопкой мыши и выберите Import Data-Tier Application. Запустится мастер, который проведет вас по процессу импорта. Если вы работаете в SSMS, сначала щелкните правой кнопкой мыши базу данных, которую вы хотите использовать в Object Explorer, выберите Tasks и укажите Extract Data-Tier Application для создания DAC.

Сгенерированный DAC — это сжатый файл, содержащий несколько файлов T-SQL и XML. Вы можете работать с содержимым, щелкнув правой кнопкой мыши файл .dacpac, а затем выбрав команду Unpack. SQL Azure поддерживает удаление, развертывание, извлечение и регистрацию DAC-пакетов, но не поддерживает их обновление.

Другой инструмент, позволяющий соединяться с SQL Azure, — новейший CTP-выпуск Houston. Houston — это кодовое название инструмента управления для систем SQL Azure, основанного на Silverlight и не требующего установки. Подключаясь к SQL Azure через Houston, вы можете указать местонахождение информационного центра (на момент написания статьи поддерживались следующие варианты:North Central U.S., South Central U.S., North Europe, Central Europe, Asia Pacific или Southeast Asia).

Houston пока находится в состоянии ранней бета-версии и в текущем выпуске (рис. 4) выглядит наподобие SSMS. Houston поддерживает работу с Tables, Views, Queries и Stored Procedures в базах данных SQL Azure. Обращаться к Houston можно с сайта SQL Azure Labs по ссылке sqlazurelabs.com/houston.aspx.

image: Using Houston to Manage SQL Azure

Рис. 4. Применение Houston для управления SQL Azure

Другой инструмент, с помощью которого можно подключаться к базу данных SQL Azure — SQLCMD (msdn.microsoft.com/library/ee336280). Однако его утилита OSQL командной строки не поддерживается SQL Azure.

Использование SQL Azure

Итак, вы подключились к своей системе SQL Azure и создали новую пустую базу данных. Что именно можно делать с помощью SQL Azure? А точнее, вас, по-видимому, интересует, каковы лимиты на создание объектов. И как заполнять данными эти объекты после их создания?

Как было упомянуто в начале статьи, SQL Azure предоставляет реляционное хранилище данных в облаке, но его функциональность слегка отличается от аналогичной локальной системы SQL Server. Давайте рассмотрим некоторые ключевые различия между ними.

Вы можете создавать наиболее часто используемые объекты в базе данных SQL Azure привычными методами. Доступны все распространенные реляционные объекты (в том числе таблицы, представления, хранимые процедуры, индексы и функции). Однако в создании объектов есть некоторые различия. Вот их сводное описание.

  • Таблицы SQL Azure должны содержать кластерный индекс (clustered index). Впоследствии в выбранных таблицах можно создавать индексы, отличные от кластерных. Допускается создание пространственных индексов (spatial indices), а XML-индексов — нет.
  • Динамические таблицы (heap tables) не поддерживаются.
  • Геопространственные CLR-типы (например, Geography и Geometry) поддерживаются, равно как и тип данных HierachyID. Прочие CLR-типы не поддерживаются.
  • Создание представления должно выполняться первым выражением в пакете команд (batch). Кроме того, создание представления (или хранимой процедуры) с шифрованием не поддерживается.
  • Функции могут быть скалярными, подставляемыми в строку (inline) или с несколькими выражениями, оцениваемыми в таблице, но любые виды CLR-функций недопустимы.

Полный справочник частично поддерживаемых выражений T-SQL для SQL Azure см. на сайте MSDN по ссылке msdn.microsoft.com/library/ee336267.

Прежде чем создавать объекты, учтите, что вы будете подключаться к главной базе данных, если не укажете в строке подключения другую базу данных. В SQL Azure выражение USE (database) не поддерживается и поэтому с его помощью нельзя сменить базу данных, так что, если вам нужно соединиться с базой данных, отличной от главной, указывайте ее в явном виде в строке подключения.

Миграция и загрузка данных

Если вы планируете создавать объекты SQL Azure, используя в качестве источника данных и структур существующую локальную базу данных, то можете просто задействовать SSMS для написания соответствующего DDL-сценария, чтобы создать эти объекты в SQL Azure. В таком случае используйте мастер Generate Scripts Wizard и установите для параметра Script for the database engine type значение «for SQL Azure».

Еще проще сгенерировать сценарий — применить мастер SQL Azure Migration Wizard, который можно скачать с сайта CodePlex по ссылке sqlazuremw.codeplex.com. Этот удобный инструмент позволяет генерировать сценарий для создания объектов; кроме того, можно загружать данные операцией массового копирования с помощью bcp.exe.

Вы могли бы также подготовить пакет SQL Server Integration Services (SSIS) для извлечения и запуска DDM- или DDL-сценария. Если вы используете SSIS, то скорее всего подготовили бы пакет, который извлекает DDL из исходной базы данных, преобразует его в DDL-сценарий для SQL Azure, а затем выполняет этот сценарий в одной или нескольких системах SQL Azure. Также при выполнении пакета можно было бы загружать связанные данные. Подробнее о работе с SSIS см. msdn.microsoft.com/library/ms141026.

Также стоит упомянуть о создании DDL и миграции данных в CTP-выпуске SQL Azure Data Sync Services (sqlazurelabs.com). Вы можете увидеть этот сервис в действии в видеоролике на Channel 9 «Using SQL Azure Data Sync Service to provide Geo-Replication of SQL Azure Databases» (tinyurl.com/2we4d6q). В настоящее время SQL Azure Data Sync Services работает через группы синхронизации (серверы HUB и MEMBER), а потом через синхронизацию по расписанию на уровне индивидуальных таблиц в базах данных, выбранных для синхронизации.

Для синхронизации данных между источником данных и системой SQL Azure можно использовать Microsoft Sync Framework Power Pack for SQL Azure. На момент написания статьи эта инфраструктура находилась в стадии CTP-версии и доступна по ссылке tinyurl.com/2ecjwku. Если вы применяете ее для выполнения синхронизации данных в своем приложении, то, вероятно, захотите скачать и связанный с ней SDK.

Как быть, если ваша исходная база данных больше максимального размера для SQL Azure? Она может оказаться даже больше абсолютного максимума в 50 Гб для Business Edition.

На сегодняшний день клиенты должны разбивать свои данные на разделы (секционировать их) вручную, если размер их базы данных превышает установленные лимиты. Microsoft объявила, что в будущем предоставит для SQL Azure утилиты для автоматического разбиения данных на разделы. А тем временем важно отметить, что разбиение таблиц в T-SQL не поддерживается в SQL Azure. Есть бесплатная утилита Enzo SQL Shard (enzosqlshard.codeplex.com), с помощью которой можно разбить свой источник данных на разделы.

Обратите внимание и на другие различия между SQL Server и SQL Azure, касающиеся загрузки данных и доступа к ним.

Недавно была добавлена возможность копировать базу данных SQL Azure командой Database Copy. Ее синтаксис для копирования между серверами выглядит так:

CREATE DATABASE DB2A AS COPY OF Server1.DB1A

T-SQL-выражение INSERT поддерживается без возможности обновления представлений или указания подсказки о блокировке внутри выражения INSERT.

Что касается миграции данных, T-SQL-команда DROP DATABASE и другие DDL-команды имеют дополнительные ограничения при выполнении в SQL Azure. Кроме того, T-SQL-команды RESTORE и ATTACH DATABASE не поддерживаются. Наконец, не поддерживается и T-SQL-выражение EXECUTE AS (login).

Доступ к данным и возможности программирования

Теперь рассмотрим общие вопросы программирования при работе с данными в облаке. Для начала вы должны продумать, где вы установите свою среду разработки. Если вы подписчик на MSDN и можете работать с базами данных размером менее 1 Гб, тогда имеет смысл вести разработку только в облачной системе («песочнице»). Тогда у вас не будет проблем с переходом от локальной системы к системе в облаке. Используя обычную учетную запись SQL Azure (а не подписчика на MSDN), вы могли бы работать непосредственно с облачным экземпляром (скорее всего с копией своей производственной базы данных, размещенной в облаке). Конечно, разработка напрямую из облака не всегда является практичным вариантом.

Если вы предпочтете работать с локальной базой данных SQL Server, размещенной на предприятии (on-premises), то должны создать механизм для синхронизации локальной системы с облачной. Вы могли бы сделать это, используя любой из рассмотренных ранее способов, и инструменты вроде Data Sync Services и Sync Framework разрабатываются с учетом этого варианта.

Пока вы используете только поддерживаемую функциональность, переключение вашего приложения с локальной системы SQL Server на базу данных в SQL Azure выполняется просто:вам нужно лишь изменить строку подключения в приложении.

Независимо от размещения среды разработки — на предприятии или в облаке — вам нужно понимать некоторые различия в программировании SQL Server и SQL Azure. Я уже рассказал о различиях в T-SQL и строках подключения. Кроме этого, как минимум, во всех таблицах должен быть кластерный индекс (динамические таблицы не поддерживаются).

Как упоминалось, выражение USE для смены баз данных не поддерживается. Это также означает, что нет поддержки распределенных (между базами данных) транзакций или запросов, равно как и связанных серверов.

К другим возможностям, недоступным при работе с базой данных SQL Azure, относятся:

  • полнотекстовая индексация;
  • собственные CLR-типы (однако встроенные CLR-типы Geometry и Geography поддерживаются);
  • RowGUID (используйте вместо них тип uniqueidentifier с функцией NEWID);
  • XML-индексы столбцов;
  • типы данных файлового потока;
  • разреженные столбцы.

Для базы данных всегда используются параметры сортировки (collation) по умолчанию. Чтобы внести изменения в сортировку, задайте необходимое значение для сортировки на уровне столбцов, используя T-SQL-выражение COLLATE.

Наконец, в настоящее время нельзя использовать SQL Profiler или Database Tuning Wizard для баз данных в SQL Azure.

Вот некоторые из важных инструментов, которые можно использовать с SQL Azure для оптимизации и мониторинга:

  • SSMS Query Optimizer для просмотра деталей ожидаемого или реального плана выполнения запроса и клиентской статистики;
  • представления Select Dynamic Management для мониторинга работоспособности и состояния;
  • Entity Framework для подключения к SQL Azure после создания начальной модели и сопоставляющих файлов (mapping files) путем соединения с локальной копией базы данных SQL Azure.

В зависимости от типа разрабатываемого приложения вы можете использовать SSAS, SSRS, SSIS или PowerPivot. Вы также можете применять любой из этих продуктов в качестве потребителя данных из базы данных SQL Azure. Просто подключитесь к своему серверу SQL Azure и выберите базу данных, используя методы, уже описанные в этой статье.

Не менее важно полностью понимать поведение транзакций в SQL Azure. Как упоминалось, поддерживаются только локальные транзакции (в пределах одной и той же базы данных). Кроме того, для базы данных, размещенной в SQL Azure, доступен только один уровень изоляции транзакций — READ COMMITTED SNAPSHOT. Используя этот уровень изоляции, считывающий код получает самую последнюю согласованную версию данных, которая была доступна на момент выполнения выражения STARTED.

SQL Azure не распознает конфликты обновления. Такой вариант также называют модель оптимистичной параллельной обработки (optimistic concurrency model), поскольку могут наблюдаться потерянные операции обновления, операции неповторяемого чтения и появляться фантомы. Конечно, операции чтения изменяемых данных невозможны.

Администрирование базы данных

В целом, при использовании SQL Azure роль администратора заключается в логическом управлении. Физическое управление реализуется самой платформой. С практической точки зрения, это означает, что физических серверов, которые вам пришлось бы покупать, устанавливать, обновлять, поддерживать или защищать, нет. У вас нет возможности физически размещать файлы, журналы, tempdb и прочие объекты в определенных физических местоположениях. Ввиду этого T-SQL-команды USE <database>, FILEGROUP, BACKUP, RESTORE и SNAPSHOT не поддерживаются.

SQL Azure не поддерживает SQL Agent. Кроме того, нет возможности (или необходимости) настройки репликации, передачи журналов, зеркалирования или кластеризации баз данных. Если вам нужно поддерживать локальную синхронизированную копию схем и данных SQL Azure, вы можете использовать любой из рассмотренных инструментов для миграции и синхронизации данных — они работают в обеих областях. Также можно задействовать команду DATABASE COPY.

А какие еще задачи может понадобиться выполнять администраторам в системе SQL Azure?

Чаще всего потребуется логическое администрирование. Оно подразумевает задачи, связанные с безопасностью и управлением производительностью. Вдобавок вам может понадобиться мониторинг использования пропускной способности и соответствующих тарифов. Чтобы помочь в выполнении этих задач, SQL Azure предоставляет общедоступную панель управления Status History, где показываются текущее состояние сервиса и последняя хронология (пример такой хронологии приведен на рис. 5); эта панель управления доступна на microsoft.com/windowsazure/support/status/servicedashboard.aspx.

image: SQL Azure Status History

Рис. 5. Хронология состояний SQL Azure

SQL Azure по умолчанию обеспечивает высокую планку безопасности. Он принуждает использовать шифрование по SSL при любых разрешенных (через правила брандмауэра) клиентских соединениях. Также защищаются логины серверного уровня, пользователи и роли уровня базы данных. В SQL Azure нет ролей серверного уровня. Хорошее правило — шифрование строки подключения. Кроме того, для дополнительной безопасности можно воспользоваться сертификатами Windows Azure. Подробнее см. по ссылке blogs.msdn.com/b/sqlazure/archive/2010/09/07/10058942.aspx.

В области производительности SQL Azure предлагает такие средства, как автоматическое удаление длительно выполняемых транзакций и закрытие простаивающих (более 30 минут) соединений. Хотя SQL Profiler или флаги трассировки для оптимизации производительности неприменимы, вы можете использовать SQL Query Optimizer для просмотра планов выполнения запросов и клиентской статистики. Вы также можете настраивать сбор статистики и оптимизировать индексы с помощью стандартных методов T-SQL.

При администрировании баз данных также доступен список выбора представлений для динамического управления (включая информацию о базе данных, выполнении или транзакции). Можно использовать, в частности, sys.dm_exec_connections, _requests, _sessions, _tran_database_transactions, _active_transactions и _partition_stats. Полный список поддерживаемых представлений для динамического управления в SQL Azure см. по ссылке msdn.microsoft.com/library/ee336238.aspx#dmv.

Помимо этого, введено еще несколько новых представлений вроде sys.database_usage и sys.bandwidth_usage. Они отображают количество, тип и размер баз данных, а также использование полосы пропускания для каждой базы данных, чтобы администраторы могли понимать биллинг SQL Azure. Один из примеров представлен на рис. 6. В этом представлении объемы перечисляются в Кб. Вы можете вести мониторинг занимаемого пространства с помощью такой команды:

SELECT SUM(reserved_page_count) * 8192 
FROM sys.dm_db_partition_stats

image: Bandwidth Usage in SQL Query

Рис. 6. Использование полосы пропускания SQL-запросом

Вы можете получать сведения о текущих тарифах для системы SQL Azure через портал SQL Azure, выбрав ссылку Billing в верхнем правом углу экрана.

Где узнать больше

Чтобы узнать больше о SQL Azure, предлагаю вам скачать Windows Azure Training Kit. В него входят справочные материалы по SQL Azure, техническое документы, видеоролики и др. Этот набор доступен по ссылке microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78.

Кроме того, советую читать блог группы SQL Azure blogs.msdn.com/b/sqlazure/ и периодически заходить на сайт MSDN SQL Azure Developer Center (msdn.microsoft.com/windowsazure/sqlazure).

Если вас интересует более подробная предварительная информация о планируемых средствах SQL Azure, обязательно заходите на сайт SQL Azure Labs по ссылке sqlazurelabs.com.                                                                                

Линн Лэнгит (Lynn Langit)— разработчик-стратег Microsoft в Южной Калифорнии. Она опубликовала две книги по бизнес-анализу в SQL Server и подготовила набор учебных курсов для ознакомления детей с основами программирования (см. сайт TeachingKidsProgramming.org). Читайте ее блог blogs.msdn.com/b/SoCalDevGal.

Выражаю благодарность за рецензировании статьи экспертам Джорджу Хьюи (George Huey) и Дэвиду Робинсону (David Robinson)