Отличия Azure SQL Data Warehouse от SQL Database
Недавно меня спросили, какая разница между Azure SQL Database (SQLDB) и Azure SQL Data Warehouse. (SQLDW) Если вы подключаетесь и к той и к другой через Management Studio, кажется, что различия несущественны, но это совсем не так.
В традиционных локальных установках SQL Server производственные транзакционные (OLTP) базы данных размещаются на SQL Server Database Engine, а система хранилища данных (OLAP) обычно располагается на другом сервере, но использует один и тот же движок Database engine. Эти серверные системы с общими ресурсами известны как SMP (Symmetric Multiprocessing), и в этом случае нет никакой разницы в программном обеспечении, установленном на OLTP-серверах и OLAP-серверах; но в Azure все по-другому.
База данных SQL Database - это “платформа как услуга” (PaaS) для базы данных OLTP. Если вы не знакомы с PaaS, это означает, что вам не нужно поддерживать инфраструктуру или операционную систему - вам просто нужно иметь дело со стороной SQL Server. Важно отметить, что база данных Azure SQL - это единая база данных; Azure по-прежнему имеет концепцию «SQL Server», но его также можно рассматривать как контейнер для нескольких баз данных Azure SQL, которые в нем располагаются.
SQL Data Warehouse внешне ведет себя одинаково, это тоже предложение PaaS SQL Server единой базы данных, но все же это совсем другой продукт. SQLDW был создан для OLAP-систем. Эти системы ведут себя очень по-разному по отношению к отдельным операциям поиска, выполняемым базами данных OLTP, вместо этого выполняют большие проверки по многим строкам, чтобы вернуть агрегированные данные. Хранилище данных SQL Data Warehouse было разработано в качестве системы многопараллельной обработки (MPP), что редко встречается среди реляционных систем баз данных , хотя у Microsoft есть предложение на основе MPP в виде платформы Analytics (APS).
Системы MPP состоят из нескольких «узлов», каждый из которых имеет свои собственные ресурсы, и они работают вместе, чтобы обеспечить повышенную производительность. В случае SQLDW эти узлы фактически являются базами данных Azure SQL.
Такие различия в архитектуре ведут к различиям в других местах. MPP спроектирован с учетом больших запросов и пакетных процессов, но этот факт не предполагает, что сотни пользователей будут их запускать, что снова отразится на разных предложениях в Azure. Неудивительно, что SQLDW становится более дорогостоящим, а учитывая тот факт, что для увеличения емкости вы просто добавляете больше «узлов» (горизонтальное-масштабирование), вместо того, чтобы в традиционной манере добавить больше памяти или более быстро работающих дисков на серверы . (вертикальное масштабирование), неудивительно, что верхний предел стоимости гораздо выше.
Есть также некоторые проблемы при внедрении MPP, что приводит к временной недоступности некоторых функций. Ниже приведена таблица с основными различиями между SQLDB и SQLDW.
Azure SQL Database |
Azure SQL Data Warehouse |
|
Тип масштабируемости |
Вертикально-масштабируемая система |
Горизонтально-масштабируемая система |
Единицы производительности |
Единицы транзакций базы данных (DTU) |
Единицы использования хранилища данных (DWU) и вычислительные единицы использования хранилища данных (cDWU) |
Максимальный объем |
4ТБ |
До 1 Петабайт со сжатием (240 ТБ на диске) |
Ценовой диапазон, в мес. |
£4 - £15 тыс. |
£900 - £130 тыс., но вы можете приостановить его работу, чтобы снизить стоимость |
Предназначен для |
OLTP |
OLAP |
Архитектура |
SMP |
MPP |
Резервное копирование и восстановление |
Резервные копии создаются каждые 5-10 минут, непрерывное архивирование и восстановление на момент времени, считываемые реплики |
Резервные копии создаются каждые 24 часа |
Параллельные сессии |
30000 |
1024 |
Параллельные запросы |
6400 |
32 |
Поддержка PolyBase |
Нет |
Есть |
Поддержка JSON, XML и Graph |
Есть |
Нет |
Шифрование |
Всегда зашифровано, прозрачное шифрование данных (TDE) |
Прозрачное шифрование данных (TDE) |
Оптимизация в памяти |
Есть |
Нет |
Межбазовые запросы |
Есть |
Нет |
Таким образом, названия говорят сами за себя: SQL Data Warehouse создана для замены SQL Server Data Warehouse Database, а SQL Database - для замены традиционной базы данных OLTP. Поэтому, несмотря на то, что обе они созданы по одной технологии, вы должны убедиться, что выбрали подходящий вариант для ваших потребностей рабочей нагрузки.