SQL Azure Database является "облачным" сервисом баз данных от Microsoft. SQL Azure предоставляет доступную по Интернет функциональность баз данных как сервис. Основанные на "облачных" технологиям решения баз данных, такие как SQL Azure, могут принести множество преимуществ, включая быстрое развертывание, экономичное масштабирование, высокую доступность и сокращение издержек на управление. Это руководство содержит обзор архитектуры SQL Azure и описание того, как вы можете использовать SQL Azure для "расширения" существующей инфраструктуры или в качестве основной платформы. 

 Note
Если вы хотите принять участие в написании содержания этой страницы, используйте вкладку Edit (необходимо войти в систему). Если же вы хотите предоставить свой отзыв, напишите либо на e-mail azuredocs@microsoft.com либо напишите комментарий 

Различия

Так же, как и локальный экземпляр SQL Server, SQL Azure предоставляет Transact SQL доступ по интерфейсу Tabular Data Stream (TDS), что позволяет вашим приложениям использовать SQL Azure аналогично тому, как они используют SQL Server. Однако, поскольку SQL Azure является сервисом, администрирование SQL Azure немного отличается.
В отличие от администрирования локального SQL Server, SQL Azure разделяет логический и физический аспекты администрирования - вы продолжаете администрировать БД, управлять логинами, пользователями и ролями, однако об оборудовании заботится Microsoft, что позволяет SQL Azure предоставлять высокомасштабируемый мультитенантный сервис БД с высочайшей степенью доступности, масштабируемости, безопасности и самовосстановления.

Так как Microsoft занимается физическим администрированием, есть различия в контексте администрирования локального SQL Server и SQL Azure, а также различия в развертывании, поддержке Transact SQL, модели программирования и некоторой функциональности. Подробнее: Guidelines and Limitations (SQL Azure Database).


Логическое & физическое администрирование

Хотя SQL Azure играет серьезную роль в администрировании физических ресурсов БД, администратор БД также выполняет важную задачу в администрировании приложений, использующих SQL Azure. Используя SQL Azure, администратор БД управляет созданием схемы, статистикой, настройкой индексов, оптимизацией запросов и безопасностью. Подробнее про безопасность в SQL Azure: Managing Databases and Logins in SQL Azure.

SQL Azure автоматически реплицирует все данные для предоставления высокой доступности, управляет балансировкой нагрузки и обеспечением отказоустойчивости.
Вы не можете указать диск или файловую группу, где будет расположена БД или индекс. Так как файловая система вам недоступна и все данные автоматически реплицируются, команды по бэкапу и восстановлению, доступные в SQL Server, недоступны в SQL Azure - сервис сам резервирует все БД, однако пользователь делать этого не может. Возможно, подобная функциональность будет представлена в будущем.
Начиная с SQL Azure Service Update 4, SQL Azure позволяет создавать бэкап вашей БД копированием ее в новую БД в SQL Azure. Подробнее: Copying Databases in SQL Azure.

Подробнее про доступные возможности по переносу данных: Migrating Databases to SQL Azure.


Развертывание

При подготовке локального SQL Server это, возможно, должны выпо��нять администраторы БД или IT-отдел. SQL Azure сам разворачивает БД.
Вы можете начать разворачивать ваши БД SQL Azure при создании аккаунта Windows Azure. Этот аккаунт позволит вам получить доступ ко всем сервисам, таким как  Windows Azure, AppFabric, и SQL Azure, и используется для настройки и управления вашими подписками.

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

Подробнее про развертывание: SQL Azure Provisioning Model.


Поддержка Transact-SQL

Transact-SQL - язык запросов, необходимый для управления экземплярами SQL Server, позволяющий создавать и управлять всеми объектами и осуществлять операции вставки, возвращения, модификации и удаления данных. Приложения могут взаимодействовать с SQL Server путем отправки запросов Transact SQL. SQL Azure поддерживает подмножество Transact-SQL SQL Server. Подробнее про поддержку Transact-SQL: Transact-SQL Support (SQL Azure Database).


Фичи и типы

SQL Azure поддерживает не все фичи и типы данных SQL Server. Не поддерживаются Analysis Services, Replication и Service Broker. Вы можете подключиться к SQL Azure из локального Analysis Server и использовать SQL Azure как источник или приемник данных. Microsoft SQL Azure Reporting - облачный сервис отчетов, построенный на технологиях SQL Azure, SQL Server  и SQL Server Reporting Services. Вы можете публиковать, просматривать и управлять отчетами, отображающими данные из источников данных SQL Azure. 

Так как физическое администрирование осуществляется сервисом, все утверждения и опции, которые пытаются напрямую манипулировать физическими ресурсами, блокируются (Resource Governor, file group references, некоторые утверждения DDL). Также нельзя указывать серверные опции и SQL trace flags или использовать утилиты SQL Server Profiler и Database Tuning Advisor.


Ключевые преимущества сервиса

К преимуществам сервиса относятся управляемость, высокая доступность, масштабируемость, знакомая модель разработки и реляционная модель. 

Самоуправляемость

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

Высокая доступность

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

Масштабируемость

Ключевым достоинством сервиса является простота масштабирования решения. При разрастании требований необходимо горизонтально или вертикально масштабировать свое решение. Вертикальное масштабирование всегда имеет "потолок", тогда как горизонтальное виртуально не имеет границ. Типичным решением горизонтального масштабирования является партиционирование. Модель "плати-по-факту-использования" гарантирует, что вы будете платить только за то, что используете, поэтому вы можете легко ограничить свои ресурсы, если они вам не нужны. 

Знакомая модель разработки

При создании локальных приложений, использующих SQL Server, разработчики используют клиентские библиотеки типа ADO.NET, ODBC, которые пользуются протоколом TDS в задачах коммуникаций между клиентом и сервером. SQL Azure предоставляет аналогичный SQL Server интерфейс TDS, что позволяет использовать те же самые инструменты и библиотеки, что и в случае с локальным SQL Server. Подробнее про TDS: Network Protocols and TDS Endpoints.

Реляционная модель

Внутри каждого сервера SQL Azure вы можете создать БД с таблицами, представлениями, хранимыми процедурами, индексами и другими объектами. Подобная модель позволяет использовать существующую архитектуру реляционной БД и Transact SQL и упрощает процесс миграции существующих приложений в SQL Azure. Подробнее про Transact SQL и его связь с SQL Azure: Transact-SQL Support (SQL Azure Database).

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

В таблице собраны сравнения между SQL Azure и SQL Server. 

Фича SQL Server (локально) SQL Azure Меры к уменьшению объема ущерба

Хранилище данных

По факту нет ограничений на размер

* Web-редакция хорошо подходит для небольших веб-приложений и рабочих или приложений подразделений. Эта редакция поддерживает БД от 1 до 5 Гб в размере. 

* Business-редакция хорошо подходит для независимых вендоров ПО (ISV), бизнес-приложений и корпоративных приложений. Эта редакция поддерживает БД вплоть до 150 Гб в размере, с инкрементом 10 Гб.

Точная информация: Pricing Overview.

· Старые данные могут быть перемещены в другую БД в SQL Azure либо в локальную БД.

- Из-за ограничений размеров одной из рекомендаций является партиционирование данных по БД. Создание нескольких БД позволит вам по максимуму воспользоваться преимуществом мощностей нескольких узлов. Эластичность, заложенная в модель Azure, позволяет создавать столько БД, сколько вам надо, и, когда надо, удалять их. Самой большой проблемой является написание приложения, которое масштабируется на несколько БД. Написав его, логика может быть расширена для масштабирования между N БД. 

Редакция

· Express

· Workgroup

· Standard

· Enterprise

* Web Edition

* Business Edition

Подробнее: Accounts and Billing in SQL Azure.

 

Подключение

· SQL Server Management Studio

· SQLCMD

*  SQL Server Management Studio из пакета SQL Server 2008 R2 и SQL Server 2008 R2 Express позволяет подключиться и управлять SQL Azure. Предыдущие версии не поддерживаются.
                       

*The Management portal for SQL Azure 

* SQLCMD

Подробнее:Tools and Utilities Support.

Миграция данных

 

Подробнее: Migrating Databases to SQL Azure.

 

Аутентификация

* SQL Authentication

* Windows Authentication

Только SQL Server Authentication

Используйте SQL Server Authentication

Схема

Нет ограничений

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

Проверьте ваши скрипты и удостоверьтесь, что все таблицы будут иметь кластерный индекс, иначе в таблицу без кластерного индекса не получится вставить данные. 

Поддержка TSQL 

Полностью поддерживаются некоторые запросы TSQL, однак�� есть полностью не поддерживаемые.

* Поддерживаемые Transact-SQL:http://msdn.microsoft.com/en-us/library/ee336270.aspx

* Частично поддерживаемые Transact-SQL:http://msdn.microsoft.com/en-us/library/ee336267.aspx

* Неподдерживаемые Transact-SQL:http://msdn.microsoft.com/en-us/library/ee336253.aspx

Команда “USE”

Поддерживается

Не поддерживается. Для смены БД необходимо подключаться напрямую к нужной БД. 

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

Транзакционная репликация

Поддерживается 

Не поддерживается

Для перенса данных можно использовать BCP или SSIS. Можно также использовать SQL Azure Data Sync для синхронизации локального SQL Server и SQL Azure или нескольких серверов SQL Azure.
Подробнее про миграцию: Migrating Databases to SQL Azure.

Выгрузка логов

Поддерживается 

Не поддерживается 

Зеркалирование БД

Поддерживается 

Не поддерживается 

SQL Agent

Поддерживается 

Запускать SQL Agent и задачи нельзя 

Можно запускать SQL Server Agent на локальном сервере и подключаться к SQL Azure.

Опции сервера

Поддерживается 

Поддерживаются некоторые системные представления.
Подробнее на MSDN: System Views (SQL Azure Database).

Большинство метаданных уровня системы отключено, так как в облачной модели 
нет смысла показывать информацию уровня сервера. 

Ограничения по подключению

N/A

Для работы всех клиентов SQL Azure подключение к сервису может быть закрыто. Подробнее на MSDN: General Guidelines and Limitations и [[SQL Azure Connection Management]].

SQL Server Integration Services (SSIS)

Можно запускать локально 

Недоступно

Запуск SSIS локально и подключение с помощью провайдера ADO.NET к SQL Azure. 


Ссылки

Статья была написана Dinakar Nethi, Niraj Nagrani и отредактирована Michael Thomassy, David Robinson.