Корпорація Microsoft трансформувала власні сервіси Azure у хмарні рішення корпоративного рівня, інтегрувавши передові можливості, такі як керування та аналітика даних.
Microsoft започаткувала Azure SQL Data Warehouse, зробивши ставку на хмарні технології. Компанія активно просуває Azure SQL Data Warehouse, як гнучкий сервіс для управління базами даних, що поєднує функціонал еластичного сховища даних.
Що собою являє Azure SQL Data Warehouse?
Azure SQL Data Warehouse (тепер відомий як Azure Synapse Dedicated SQL Pool, тобто хмарне сховище даних) надає можливість створення та розгортання сховища даних в інфраструктурі Microsoft Azure. Azure Data Warehouse спроможний обробляти значні обсяги як реляційних, так і нереляційних даних. Він поєднує в собі потужності SQL сховища даних із можливостями хмарної обчислювальної платформи.
Сервіс підтримує SQL-сервери та дозволяє мігрувати існуючі SQL-сервери до сховища даних SQL. Також можливо використовувати звичні запити та структури даних. Крім цього, користувачі отримують миттєвий доступ до масштабування, призупинення та відновлення ресурсів сховища даних.
Він слугує повноцінним рішенням для створення сховища даних корпоративного рівня на базі SQL. Також його можна використовувати для:
- Перенесення наявних (локальних) сховищ даних у хмару.
- Розгортання сховищ даних для застосунків та сервісів, які потребують збереження та доступу до даних в режимі реального часу (наприклад, веб-додатків).
- Створення гібридних рішень для сховищ даних, які інтегруються з хмарними сховищами Azure та локальними серверами SQL.
Ключовою перевагою Azure SQL Data Warehouse є його еластичність. Він забезпечує масштабованість і можливість незалежного керування ресурсами сховища та обчислень. Це створює вигідну платформу, де користувачі оплачують лише фактичне використання ресурсів та часу.
Обчислювальна частина Azure SQL Data Warehouse функціонує на основі одиниць сховища даних (DWU), які відстежують обчислювальні ресурси, такі як сховище вводу/виводу та пам’ять, на всіх залучених обчислювальних вузлах.
Azure SQL Data Warehouse пропонує функціонал безпечного підключення. Це дозволяє обмежувати доступ до певних IP-адрес або їх діапазонів за допомогою правил брандмауера. Інтеграція з аутентифікацією Azure Active Directory (AAD) забезпечує можливість підключення до Azure SQL Data Warehouse, використовуючи облікові дані з Azure AD.
Багаторівневе шифрування гарантує захист даних в стані спокою, під час передачі та під час обробки, запобігаючи їх несанкціонованому використанню. Також доступні додаткові інструменти для перевірки, моніторингу даних та виявлення порушень безпеки.
У поєднанні з іншими інструментами Microsoft Azure, SQL Data Warehouse забезпечує неперевершену продуктивність, що є його значною перевагою порівняно з аналогічними сервісами на ринку.
Виділений пул SQL Azure Synapse
Azure Synapse Dedicated SQL Pool (раніше відомий як Azure SQL Data Warehouse) – це база даних, що використовує масову паралельну обробку, схожу на технології горизонтального масштабування, як Snowflake та Amazon Redshift. Для кінцевого користувача він виглядає як традиційний SQL Server, але фактично не зберігає та не обробляє дані на одному вузлі.
Це може значно підвищити продуктивність сховищ даних, об’єм яких перевищує декілька терабайтів, але для менших проектів можуть існувати більш ефективні рішення.
Його базова архітектура суттєво відрізняється від традиційних SQL Server. Це означає, що синтаксис та підходи до розробки також є відмінними.
Розподіл даних відображається на обчислювальних вузлах у виділеному пулі SQL. Пул динамічно перерозподіляє дані між обчислювальними вузлами, коли ви купуєте більше обчислювальних ресурсів.
Ви можете імпортувати значні обсяги даних за допомогою простих запитів PolyBase SQL, а потім використовувати систему розподілених запитів для проведення високоефективної аналітики.
Виділений пул SQL, який раніше називався SQL DW, надає вашому бізнесу єдине джерело достовірних даних, що дозволяє швидше інтегрувати та аналізувати дані, отримуючи при цьому більш надійну інформацію.
Яка відмінність між виділеними пулами SQL Azure Synapse та виділеними пулами SQL у робочому просторі Azure Synapse Analytics?
PowerShell є однією з найскладніших областей у документації щодо відмінностей між “виділеним пулом SQL (раніше SQLDW)” та виділеними пулами SQL “Synapse Analytics”.
Початкова реалізація SQL DW використовує логічний сервер, подібний до Azure SQL DB. Спільним є модуль PowerShell під назвою Az.Sql.
Цей модуль створює новий пул SQL (раніше SQLDW) за допомогою командлета New.AzSqlDatabase. Він має параметр “Edition”, який дозволяє визначити, що потрібен саме DataWarehouse.
Synapse Analytics поставляється з новим модулем PowerShell від Az.Synapse, з моменту його першого випуску. Для створення виділеного пулу SQL у робочому просторі Synapse Analytics, необхідно використовувати New-AzSynapseSqlPool.
Цей модуль PowerShell не потребує включення параметра “Edition”, оскільки він застосовується виключно для об’єктів Synapse.
Виділений пул SQL забезпечує обчислення та зберігання на основі T-SQL. Дані можна завантажувати, моделювати та обробляти у Synapse для прискорення отримання аналітичних висновків.
Azure Synapse пропонує безсерверні пули SQL та Apache Spark, на додаток до виділених пулів SQL. Ви можете обрати потрібний варіант, виходячи з конкретних потреб.
Безсерверний пул SQL дозволяє запитувати дані, що зберігаються у вашому озері даних.
Які функції виконує виділений пул SQL Azure Synapse?
Azure Synapse Dedicated SQL Pool використовує масштабовану архітектуру для розподілу обробки даних між кількома вузлами. Ви можете масштабувати обчислення незалежно від сховища, оскільки обчислювальні ресурси відокремлені від сховища.
Безсерверні пули SQL є безсерверними та автоматично масштабуються відповідно до вимог до ресурсів запиту. Вони адаптуються до змінних топологій, додаючи, видаляючи або вимикаючи вузли. Це гарантує, що ваш запит матиме достатньо ресурсів для успішного виконання.
Synapse SQL базується на архітектурі з використанням вузлів. Synapse SQL використовує архітектуру на основі вузлів. Додатки можуть підключатися до вузла управління та відправляти команди T-SQL. Це єдина точка доступу до Synapse SQL.
Вузли управління SQL Azure Synapse використовують систему розподілених запитів, яка оптимізує запити для паралельної обробки, а потім передає операції до обчислювальних вузлів, які виконують свою роботу паралельно.
Вузол управління безсерверним пулом SQL використовує механізм розподіленої обробки запитів (DQP) для оптимізації та управління розподіленим виконанням запитів.
Це досягається шляхом поділу користувацького запиту на дрібніші запити, які можна виконувати на обчислювальних вузлах. Кожне завдання є окремим блоком виконання. Воно отримує дані з інших завдань, групує файли та зчитує їх зі сховища.
Обчислювальні вузли зберігають усі дані користувача та виконують паралельні запити. Служба переміщення даних (DMS), внутрішня служба системного рівня, переміщує дані між вузлами, забезпечуючи паралельне виконання запитів та точні результати.
Synapse SQL використовує Azure Storage для захисту даних користувача. Azure Storage зберігає та керує вашими даними. За користування сховищем стягується окрема плата.
Особливості виділених пулів SQL Azure Synapse
Основні функціональні можливості Azure Synapse SQL Pool:
- Можливість запитувати дані в різних форматах, таких як Parquet, JSON і CSV, що зберігаються в озері даних.
- Користувачі можуть переглядати найновіші дані за допомогою реляційної абстракції.
- T-SQL дозволяє перетворювати дані в озері простим та масштабованим способом.
- Дослідники даних можуть швидко досліджувати структуру та вміст даних в озері за допомогою OPENROWSET або функцій автоматичного визначення схеми.
- Інженери даних можуть використовувати пул для дослідження озера та трансформації даних, а також для створення або спрощення конвеєрів обробки даних.
- Аналітики даних можуть отримувати доступ до даних та створювати зовнішні таблиці за допомогою мови T-SQL та інших звичних інструментів. Ці інструменти також можна підключити до безсерверного пулу SQL.
- Професіонали в сфері бізнес-аналітики можуть миттєво створювати звіти BI на основі таблиць Spark або озера даних.
Виділений пул SQL проти безсерверного пулу SQL
Безсерверний пул SQL
Робочі простори Azure Synapse містять безсерверний пул SQL, який виконує роль сервісу запитів до озер даних. Для доступу до даних не потрібно додаткової конфігурації. Він повністю безсерверний і не потребує налаштування або обслуговування інфраструктури.
Масштабування відбувається автоматично залежно від потреб ресурсів. Користувач сплачує лише за фактично оброблені дані, а не за зарезервовані ресурси. Безсерверний пул SQL також створює статистику для оптимізації виконання запитів.
Наприклад, коли ми виконуємо запит двічі або запускаємо два запити з однаковими планами виконання, цю статистику можна використовувати повторно.
Ці можливості дозволяють швидко аналізувати великі обсяги даних, не потребуючи їх копіювання або завантаження в окреме сховище.
Виділений пул SQL
Виділений пул SQL Synapse є наступником Azure SQL Data Warehouse і пропонує весь функціонал сховища даних корпоративного класу. Однак, на відміну від безсерверного пулу, користувачі повинні створювати та видаляти виділений пул SQL Synapse. Також можна вибирати обсяг необхідних ресурсів.
Обсяг цих ресурсів вимірюється за допомогою одиниць виділених пулів SQL Synapse. Вони називаються одиницями сховища даних (DWU). DWU представляє собою комбінацію ресурсів процесора, пам’яті та вводу/виводу.
Кількість DWU визначає продуктивність та вартість пулу. Замість оплати за запит, ми сплачуємо за час активності пулу, незалежно від обсягу виконаної роботи.
Для мінімізації витрат, виділені пули можна зупиняти та перезапускати. Для демонстраційних цілей ми створили виділений пул SQL на 100 DWU.
Після створення пулу, дані можна завантажити в нього за допомогою команди COPY, PolyBase з T-SQL запитами або за допомогою конвеєра даних. Ці дані зберігатимуться в колонковому сховищі в реляційних таблицях.
Виділений пул SQL | Безсерверний пул SQL | |
Призначення | Дозволяє надсилати запити до озера даних та обробляти їх. | Користувачі можуть запитувати файли озера даних. |
Інфраструктура | Потребує інфраструктуру | Немає необхідності створювати інфраструктуру або підтримувати кластери |
Операції | Перед виконанням операцій, необхідно налаштувати виділені сервери. | Для перетворення або дослідження даних не потрібна інфраструктура. |
Сховище даних | Для зберігання даних використовуються реляційні таблиці. | Озеро даних зберігає дані. |
Керування витратами | Ви можете керувати витратами, призупиняючи пул SQL і зменшуючи масштаб сховища. | Вартість обробки відбувається автоматично та нараховується за запитами |
Оплата | Зарезервовані ресурси підлягають оплаті. Плата за наданий DWU. | Плата за оброблені дані за запитом. Плата за оброблений ТБ. |
Висновок
Отже, це основні відомості про Azure SQL Data Warehouse (тепер відомий як Azure Synapse Dedicated SQL Pool). Хоча виділений пул SQL може здаватися схожим на традиційний SQL Server з багатьох точок зору, його базова архітектура (масова паралельна обробка) суттєво відрізняється. Це означає, що певні концепції та методи застосовуються лише до виділеного пулу SQL.
Також рекомендуємо вам дослідити відмінності між Data Lake і Data Warehouse.