Новости

Приступаємо до роботи з базами даних SQL Azure

  1. До ваших послуг
  2. Підключення до «хмари»
  3. Присвоєння початкових значень в «хмарі»
  4. Прагнути до високої мети
  5. Ще не все гладко?

База даних SQL Azure Database - це розроблений фахівцями Microsoft «хмарний» варіант SQL Server. Продукт SQL Azure дуже нагадує локальну версію SQL Server; він являє собою «хмарну» реляційну базу даних, до якої можна підключитися, і наділений безліччю відомих засобів управління і розробки з арсеналу SQL Server. В інформації, що публікується нижче статті я роз'ясню, як приступити до роботи з базою даних SQL Azure Database, а також як підключитися до SQL Azure і використовувати її в якості внутрішньої бази даних ваших додатків.

До ваших послуг

Перший етап підготовки до роботи з SQL Azure Database зводиться до створення облікового запису SQL Azure. Початкові CTP-версії SQL Azure забезпечували вільний доступ. Термін дії цих версій закінчився в листопаді 2009 року, коли Microsoft замінила їх робочою версією SQL Azure. Існує два рівня облікових записів SQL Azure. Версія SQL Azure Web Edition дозволяє зберігати до 1 Гбайт даних і обходиться споживачеві в 9,99 дол. На місяць. Версія SQL Azure Business Edition забезпечує зберігання до 10 Гбайт даних, а щомісячний внесок за її використання становить 99,99 дол. Ви можете створити обліковий запис SQL Azure, заглянувши на сайт sql.azure.com і пройшовши там процес реєстрації.

Щоб отримати можливість управляти базою даних SQL Azure, користувач, який став абонентом служби SQL Azure, реєструється в системі. Для цього йому необхідно відкрити сайт http://sql.azure.com і зареєструватися там з використанням ідентифікатора Windows Live ID. По завершенні початкового налаштування служби SQL Azure користувач отримує запрошення ввести адміністративне облікове ім'я, яке використовується для входу в систему, а також пароль, який повинен відповідати жорстким вимогам безпеки. Після введення облікових адміністративних даних на екрані відображається інтерфейс управління SQL Azure, представлений на екрані 1.

Після введення облікових адміністративних даних на екрані відображається інтерфейс управління SQL Azure, представлений на екрані 1

Вікно SQL Azure Management дозволяє виконувати дві ключові завдання: створювати бази даних і здійснювати підключення клієнтів до сервера SQL Azure. У процесі початкового підключення особливу увагу слід приділяти правильному написання імені сервера SQL Azure, яке необхідно вводити для установки з'єднання клієнта з базою даних.

Приступаючи роботі з SQL Azure, перш за все необхідно створити базу даних. Для цього потрібно перейти на вкладку Databases і натиснути кнопку Create Database. Ви побачите діалогове вікно, в якому можна вказати ім'я бази даних і її максимальний розмір. У мене була можливість вибрати один з двох показників - 1 Гбайт або 10 Гбайт. Для початкового тестування я створив базу даних pubs розміром в 1 Гбайт.

Після створення бази даних отримаємо рядок з'єднання з нею; для цього потрібно виставити прапорець перед даними і натиснути кнопку Connection Strings, яка розташована в нижній частині екрана 1. Це важливо, оскільки, на відміну від локальної системи SQL Server, користувач не може змінювати бази даних після підключення до SQL Azure. Необхідно встановлювати нове з'єднання для підключення до іншої бази даних. В лістингу наводиться приклад рядків підключення до SQL Azure з ADO.NET і ODBC.

Далі необхідно активувати брандмауер. Підключення до бази даних SQL Azure неможливо до активації діапазону IP-адрес, які будуть використовуватися клієнтськими системами для підключення. Щоб додати нові записи брандмауера перейдіть на вкладку Firewall Settings і натисніть кнопку Add Record. На екрані з'явиться діалогове вікно Custom Firewall Settings. У ньому потрібно ввести діапазон IP-адрес, звідки можна буде підключатися до бази даних SQL Azure. Тут слід зробити одне зауваження: якщо ви застосовуєте технологію трансляції мережевих адрес Network Address Translation (NAT), буде потрібно використовувати загальнодоступні IP-адреси системи (тобто не внутрішні IP-адреси вашої клієнтської системи). SQL Azure допоможе вам у вирішенні цього питання, відобразивши поточний зовнішній (загальнодоступний) IP-адреса в діалоговому вікні Custom Firewall Settings.

Підключення до «хмари»

SQL Azure підтримує підключення клієнтів за допомогою власного протоколу SQL Server Tabular Data Stream (TDS), і ви можете підключитися до SQL Azure за допомогою SQL Server Management Studio (SSMS). Але важливо мати на увазі, що оглядач Object Explorer не функціонує, оскільки йому потрібен доступ до таблиці sys.configurations, яка недоступна в системі SQL Azure. Тому при вирішенні завдань управління SQL Azure вам доведеться задовольнятися редактором запитів Query Editor. Для підключення до SQL Azure відкрийте SSMS. При цьому автоматично відкриється діалогове вікно Connect. У ньому потрібно клацнути на Cancel, після чого буде встановлено з'єднання Object Explorer з базою даних. На екрані з'явиться порожнє вікно SSMS. Клацніть New Query, а потім заповніть діалогове вікно з'єднання, як показано на екрані 2.

З вікна на екрані 2 випливає, що я дав сервера ім'я, отримане у вікні управління SQL Azure. Я вибрав пункт SQL Server Authentication і ввів ім'я адміністратора для реєстрації, а також пароль, який використовував при створенні служби SQL Azure. Потім я клацнув пункт Options, в командному рядку Connect to database ввів ім'я бази даних pubs і натиснув Connect. В результаті відкрилося вікно редактора запитів Query Editor, який підключився до системи SQL Azure. На даному етапі ви можете створити схему бази даних, а також об'єкт за допомогою виконання команд T-SQL з редактора Query Editor.

Присвоєння початкових значень в «хмарі»

При проведенні тестування я користувався версією SQL Azure CTP, і треба сказати, що в цій ситуації у мене не було прийнятного варіанту отримання даних від локальних систем SQL Server для перенесення в SQL Azure. Я думав, що створити базу даних pubs для виконання перших тестів найпростіше за допомогою сценарію insrpubs.sql; цей сценарій, що входить до складу демонстраційного пакету SQL Server 2000, можна завантажити з сайту Microsoft.

Однак я відразу ж зіткнувся з труднощами: сценарій ніяк не виконувався. Справа в тому, що хоча SQL Azure нагадує локальну систему SQL Server, між ними є істотні відмінності. Перша виникла у мене проблема полягала в тому, що команда USE не підтримується. Це розумно, тому що користувач може підключатися тільки до однієї бази даних. Далі, я був дещо здивований тим, що для роботи з таблицями SQL Azure потрібно первинний кластерізованний індекс. Зіткнувшись з цими труднощами, я вирішив звернутися до оперативної документації.

Фахівці Microsoft рекомендують користувачам версії CTP наступний метод внесення даних в SQL Azure: запустити майстер Database Script Wizard, а потім вручну відредагувати створений сценарій. Для того щоб конвертувати демонстраційну базу даних pubs, я клацнув правою кнопкою миші елемент pubs і потім вибрав пункти Tasks, Generate Scripts. Виконавши необхідні дії в діалоговому вікні вітання, я перейшов в діалогове вікно Select Database і вибрав базу даних pubs, як показано на екрані 3.

Потім в діалоговому вікні Choose Script Options я змінив параметри сценарію, показані в таблиці. У цих параметрах проявляються майже всі вимоги до сценарію, оскільки SQL Azure не підтримує ні призначені для користувача типи даних, ні розширені властивості, ні інструкцію USE. Оскільки настройка Script Data передбачає прописування в сценарії як даних, так і схеми, цей метод для роботи з великими базами даних не підходить.

Натиснувши кнопку Next в діалоговому вікні Choose Script Options, я відкрив діалогове вікно Choose Object Types, де послідовно вибрав елементи Stored procedures, Tables і Views (екран 4). Потім натисканням тієї ж кнопки Next я переходив з одного вікна в інше, де вибирав всі об'єкти в діалогових вікнах Choose Stored Procedures, Choose Tables і Choose Views. В останньому вікні майстра я натиснув кнопку Finish, в результаті чого в новому вікні редактора Query Editor був сформований сценарій створення бази даних pubs.

Далі я відредагував сценарій, тобто видалив всі елементи, які «не подобаються» системі SQL Azure. Перш за все, я видалив таку інструкцію в усіх рядках, де вона використовувалася:

SET ANSI_NULLS ON

Потім я відредагував всі інструкції CREATE TABLE і видалив наступну пропозицію:

WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

Нарешті, я подбав про те, щоб всі інструкції CREATE TABLE мали обмеження кластерізованного первинного ключа. Такі обмеження вже існують в більшості таблиць баз даних pubs database, але, як виявилося, мені потрібно було відредагувати таблиці employee, discounts і roysched. Після внесення необхідних змін я запустив сценарій. В результаті в базі даних pubs були створені об'єкти і заповнені таблиці. Після цього я зміг звернутися із запитом до бази даних pubs в SQL Azure і отримати результат, що продемонстровано на екрані 5.

Як і слід було очікувати, SQL Azure підтримує всі стандартні запити на вибірку T-SQL, включаючи об'єднання декількох таблиць і підзапити на вибірку. Щоб отримати уявлення про те, які кошти не підтримуються системою SQL Azure, познайомтеся з врізкою «Ключові відмінності бази даних SQL Azure» .

Прагнути до високої мети

Заповнивши базу даних, я спробував підключитися до SQL Azure з програми ADO.NET. Будь-які додаткові інструменти для цього не знадобилися. Зазначу, до речі, що Microsoft поставляє додатковий компонент Visual Studio, іменований Windows Azure Tools for Microsoft Visual Studio. Однак для створення додатків бази даних, які виконуються в середовищі SQL Azure, цей компонент не потрібно.

Підключення проекту Visual Studio 2008 до SQL Azure методом зв'язування даних пройшло бездоганно. Спочатку я відкрив Visual Studio 2008 і вибрав елементи File, New Project. Потім в діалоговому вікні New Project я вибрав додаток Windows Forms і дав новому проекту ім'я SQLAzure. Нарешті, я призначив властивості Text в Form значення SQL Azure Demo, а потім змінив розміри форми, перетворивши її в горизонтальний прямокутник, відбуксирував на форму елемент управління DataGridView і зафіксував всі чотири його сторони.

Щоб додати джерело даних SQL Azure, я клацнув на стрілці завдань DataGridView і вибрав в списку Choose Data Source пункт Add Project Data Source. В результаті на екрані відкрилося вікно майстра вибору джерела даних Data Source Configuration wizard. У діалоговому вікні Choose a Data Source Type я вибрав елемент Database і натиснув кнопку Next. Потім в діалоговому вікні Choose Your Data Connection був обраний пункт New Connection, і на екрані з'явилося діалогове вікно Add Connection. Спочатку я спробував додати з'єднання Microsoft SQL Server (SqlClient). Тестове з'єднання було встановлено, але я отримав повідомлення про помилку, коли намагався додати до проекту джерело даних. Замість цього мені потрібно було вибрати джерело Microsoft ODBC Data Source, і тоді на екрані з'явилося б діалогове вікно ODBC Add Connection, показане на екрані 6.

Я вибрав параметр Use connection string і ввів рядок з'єднання, отриману раніше у вікні диспетчера SQL Azure. Використана мною рядок з'єднання виглядає так:

Driver = {SQL Server Native Client 10.0}; Server = tcp: gvlxq1rlrw.database.windows.net; Database = pubs; Uid = mikeo @ gvlxq1rlrw; Pwd = myPassword

Далі я зберіг з'єднання під ім'ям pubsConnectionString. Після цього в діалоговому вікні Choose Your Database Objects я вибрав таблицю authors. В результаті був створений набір даних, що забезпечує додавання, редагування та видалення даних з таблиці pubs в SQL Azure. В цілому процес формування додатка, який посів лише кілька хвилин, дуже нагадував роботу зі звичайною системою SQL Server. Виконання цього простого додатка ілюструє екран 7.

Час від часу виникали ситуації, де мені доводилося знову робити спроби підключитися до бази даних SQL Azure. У всіх інших відносинах процес розробки програми за допомогою SQL Azure дуже нагадував відповідний процес в локальній системі SQL Server. Хоча дане демопріложеніе було дуже простим, я виявив, що час відгуку не перевищує однієї секунди, тобто можна порівняти з тим часом, який відзначається при виконанні програми на локальній системі.

Ще не все гладко?

Приступаючи до роботи над статтею, я мав слабке уявлення про те, що ж, власне, таке ця служба SQL Azure і як її можна використовувати. Але попрацювавши якийсь час з SQL Azure, я усвідомив для себе її схожість з базою даних SQL Server і зрозумів, яким саме чином ця обставина полегшує впровадження і експлуатацію SQL Azure. Однак треба мати на увазі, що відмінності у вимогах до схеми і обмежені типи даних ускладнюють процес перенесення додатків на платформу SQL Azure. І навіть якщо такий процес буде успішно здійснено, цілком можливо, що переваги, отримані компаніями від використання платформи SQL Azure, залишаться досить скромними - з урахуванням того, що локальні системи SQL Server мають гарну масштабованість і мають безліч засобів для забезпечення високої доступності.

Хоча загальновизнано, що хмарна обробка даних знаходиться на початкових стадіях свого розвитку, мабуть, вже можна сказати, що з точки зору незалежних постачальників програмних продуктів, які відчувають потребу в повсюдно доступних базах даних, SQL Azure представляється найбільш підходящим рішенням. Головна перевага цієї системи в тому, що до неї можна звертатися з будь-якої точки земної кулі. Завдяки такому обставині ця база даних перетворюється в привабливу платформу для створення нових додатків незалежними розробниками. Більш детальну інформацію про SQL Azure можна знайти за адресою www.microsoft.com/windowsazure/sqlazure і в блозі SQL Azure Team.

Майкл Оті ( [email protected] ) - технічний директор Windows IT Pro і SQL Server Magazine, автор Microsoft SQL Server 2008 New Features (Osborne / McGraw-Hill)

Лістинг.Рядки підключення SQL Azure

ADO.NET: Server = tcp: gvlxq1rlrw.database.windows.net; Database = pubs; User ID = mikeo; Password = myPassword; Trusted_Connection = False ODBC: Driver = {SQL Server Native Client 10.0}; Server = tcp: gvlxq1rlrw.database .windows.net; Database = pubs; Uid = mikeo @ gvlxq1rlrw; Pwd = myPassword Ключові відмінності бази даних SQL Azure

Адміністратори бази даних SQL Server і розробники знаходять в роботі з SQL Azure Database і з SQL Server багато спільного. Але є і суттєві відмінності. Для забезпечення високої доступності в системі SQL Azure зберігається по три копії вмісту кожної бази даних. Ці копії можуть розміщуватися на серверах SQL Azure, розташованих в різних географічних точках.
SQL Azure підтримує майже всі інструкції, типи даних і системні збережені процедури T-SQL з SQL Server. Однак є ряд поширених засобів (можливо, вони включені в ваші поточні додатки), які не підтримуються платформою SQL Azure. До них відносяться:
• середу SQL CLR;
• геопросторові типи даних;
• типи даних image, text і ntext;
• призначені для користувача типи даних;
• аутентифікація Windows;
• інструкція USE;
• інструкції OPENQUERY і OPENROWSET;
• інструкції BACKUP і RESTORE;
• підтримка доступу до системних таблиць.
Слід зазначити, що SQL Azure підтримує такі типи даних: xml; date, time і datetime2, а також varbinary (max). Більш докладні відомості про SQL Azure і мовою T-SQL можна знайти в довіднику complete SQL Azure T-SQL Reference за адресою http://msdn.microsoft.com/en-us/library/ee336281.aspx .

Ще не все гладко?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: