Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом документе содержатся рекомендации по выбору идеального количества единиц хранилища данных (DWUS) для выделенного пула SQL (прежнее название — хранилище данных SQL) для оптимизации цен и производительности, а также о том, как изменить количество единиц.
Что такое единицы хранилища данных
Выделенный пул SQL (ранее — хранилище данных SQL) представляет коллекцию подготовленных аналитических ресурсов. Аналитические ресурсы определяются как сочетание ЦП, памяти и операций ввода-вывода.
Эти три ресурса объединяются в единицы масштабирования вычислений, называемые единицами хранилища данных (DWUS). DWU представляет абстрактную нормализованную меру вычислительных ресурсов и производительности.
Изменение уровня обслуживания изменяет количество ЦОД, доступных в системе, что, в свою очередь, изменяет производительность и стоимость системы.
Для повышения производительности можно увеличить количество единиц хранилища данных. Для снижения производительности уменьшите единицы хранилища данных. Расходы на хранение и вычисления выставляются отдельно, поэтому изменение единиц хранилища данных не влияет на затраты на хранение.
Производительность единиц хранилища данных зависит от этих метрик рабочей нагрузки хранилища данных:
- Насколько быстро запрос в стандартном выделенном пуле SQL (ранее — SQL DW) может сканировать большое количество строк, а затем выполнять сложную агрегацию. Эта операция является интенсивной операцией ввода-вывода и ЦП.
- Как быстро выделенный пул SQL (ранее известный как SQL DW) может загружать данные из хранилищ Azure Blob Storage или Azure Data Lake. Эта операция сильно нагружает сеть и центральный процессор.
- Как быстро
CREATE TABLE AS SELECT
команда T-SQL может скопировать таблицу. Эта операция включает чтение данных из хранилища, распределение его по узлам устройства и повторное запись в хранилище. Эта операция является ресурсоемкой для ЦП, операций ввода-вывода и сети.
Increasing DWUs:
- Linearly changes performance of the system for scans, aggregations, and CTAS statements
- Increases the number of readers and writers for PolyBase load operations
- Увеличивает максимальное количество одновременных запросов и слотов для параллельной обработки.
Цель уровня обслуживания
Цель уровня обслуживания (SLO) — это параметр масштабируемости, определяющий уровень затрат и производительности выделенного пула SQL (ранее — хранилище данных SQL). Уровни обслуживания выделенного пула SQL 2-го поколения (ранее — хранилище данных SQL) измеряются в единицах хранилища данных (DWU), например DW2000c.
Примечание.
Выделенный пул SQL (ранее - SQL DW) 2-го поколения недавно расширил возможности масштабирования, чтобы поддерживать вычислительные уровни с мощностью до DW100c. Существующие хранилища данных в настоящее время в 1-м поколениях, для которых требуются более низкие уровни вычислений, теперь могут обновляться до 2-го поколения в регионах, доступных без дополнительных затрат. Если регион еще не поддерживается, вы по-прежнему можете обновить его до поддерживаемого региона. Дополнительные сведения см. в статье Обновление до Gen2.
В T-SQL параметр SERVICE_OBJECTIVE определяет уровень обслуживания и уровень производительности выделенного пула SQL (ранее — хранилище данных SQL).
CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
,SERVICE_OBJECTIVE = 'DW1000c'
)
;
Уровни производительности и единицы хранилища данных
Каждый уровень производительности использует немного разные единицы измерения для единиц хранилища данных. Это различие отражается на счете, поскольку единица измерения напрямую влияет на начисление оплаты.
- Хранилища данных 1-го поколения измеряются в единицах хранилища данных (DWUS).
- Хранилища данных 2-го поколения измеряются в единицах вычислительного хранилища данных (cDW).
Как dwUs, так и cDWUs поддерживают масштабирование вычислений вверх или вниз, а также приостановку вычислений, если не требуется использовать хранилище данных. Эти операции выполняются по запросу. 2-го поколения использует локальный кэш на основе дисков на вычислительных узлах для повышения производительности. При масштабировании или приостановке работы системы кэш недействителен и поэтому требуется период потепления кэша до достижения оптимальной производительности.
Ограничения емкости
Каждый сервер SQL Server (например, myserver.database.windows.net) имеет квоту единицы транзакций базы данных (DTU), которая позволяет определенное количество единиц хранилища данных. Дополнительные сведения см. в ограничениях емкости управления рабочими нагрузками.
Сколько единиц хранилища данных требуется
Идеальное количество единиц хранилища данных зависит от рабочей нагрузки и объема данных, загруженных в систему.
Шаги по поиску оптимального DWU для рабочей нагрузки:
Begin by selecting a smaller DWU.
Отслеживайте производительность вашего приложения при тестировании нагрузок данных в систему, сравнивая количество выбранных единиц обработки данных (DWU) с наблюдаемой производительностью. Проверьте, отслеживая использование ресурсов.
Определите дополнительные требования для периодических периодов пиковых действий. Рабочие нагрузки, демонстрирующие значительные пики и спады в активности, могут требовать частого масштабирования.
Выделенный пул SQL (ранее — хранилище данных SQL) — это масштабируемая система, которая может задействовать огромные объемы вычислительных ресурсов и обрабатывать значительные объемы данных.
Чтобы увидеть его истинные возможности масштабирования, особенно при увеличении DWU, рекомендуется масштабировать набор данных одновременно, чтобы обеспечить загрузку процессоров достаточным количеством данных. Для тестирования масштабирования рекомендуется использовать не менее 1 ТБ.
Примечание.
Производительность запросов увеличивается только при большей параллелизации, если работа может быть разделена между вычислительными узлами. Если вы обнаружите, что масштабирование не изменяет производительность, может потребоваться настроить структуру таблиц и (или) ваши запросы. Инструкции по настройке запросов см. в разделе "Управление запросами пользователей".
Разрешения
Для изменения единиц хранилища данных требуются разрешения, описанные в ALTER DATABASE.
Встроенные роли Azure, такие как участник базы данных SQL и участник SQL Server, могут изменять параметры DWU.
Просмотр текущих параметров DWU
Чтобы просмотреть текущий параметр DWU, выполните следующие действия.
- Откройте обозреватель объектов SQL Server в Visual Studio.
- Connect to the master database associated with the logical SQL server.
- Select from the sys.database_service_objectives dynamic management view. Ниже приведен пример:
SELECT db.name [Database]
, ds.edition [Edition]
, ds.service_objective [Service Objective]
FROM sys.database_service_objectives AS ds
JOIN sys.databases AS db ON ds.database_id = db.database_id
;
Изменение единиц хранилища данных
Портал Azure
Чтобы изменить DWUs, следуйте следующим шагам.
Откройте портал Azure, откройте базу данных и нажмите кнопку "Масштаб".
В разделе "Масштаб" переместите ползунок влево или вправо, чтобы изменить параметр DWU.
Нажмите кнопку Сохранить. Появится сообщение подтверждения. Нажмите кнопку "Да", чтобы подтвердить или нет , чтобы отменить.
PowerShell
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.
To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. Следующий пример задает целевой уровень обслуживания dw1000 для базы данных MySQLDW, размещенной на сервере MyServer.
Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"
For more information, see PowerShell cmdlets for dedicated SQL pool (formerly SQL DW)
T-SQL
С помощью T-SQL можно просмотреть текущие dwUsettings, изменить параметры и проверить ход выполнения.
To change the DWUs:
- Подключитесь к базе данных master, связанной с сервером.
- Используйте инструкцию ALTER DATABASE TSQL. В следующем примере цель уровня обслуживания — DW1000c для базы данных MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;
REST API-интерфейсы
Чтобы изменить DWUs, используйте REST API для создания или обновления базы данных. В следующем примере цель уровня обслуживания — DW1000c для базы данных MySQLDW
, размещенной на сервере MyServer. Сервер находится в группе ресурсов Azure с именем ResourceGroup1.
PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8
{
"properties": {
"requestedServiceObjectiveName": "DW1000c"
}
}
Для получения дополнительных примеров REST API см. REST API для выделенного пула SQL (ранее хранилище данных SQL).
Check status of DWU changes
DWU changes may take several minutes to complete. При автоматическом масштабировании рассмотрите возможность реализации логики, чтобы убедиться, что некоторые операции были завершены перед продолжением другого действия.
Проверка состояния базы данных с помощью различных конечных точек позволяет правильно реализовать автоматизацию. Портал предоставляет уведомление после завершения операции и текущего состояния баз данных, но не разрешает программную проверку состояния.
Состояние базы данных невозможно проверить для операций горизонтального масштабирования с помощью портала Azure.
Чтобы проверить состояние изменений DWU, выполните следующие действия.
Подключитесь к базе данных master, связанной с сервером.
Отправьте следующий запрос, чтобы проверить состояние базы данных.
SELECT * FROM sys.dm_operation_status WHERE resource_type_desc = 'Database' AND major_resource_id = 'MySQLDW' ;
This DMV returns information about various management operations on your dedicated SQL pool (formerly SQL DW) such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.
Рабочий процесс масштабирования
При запуске операции масштабирования система сначала убивает все открытые сеансы, откатывая все открытые транзакции, чтобы обеспечить согласованное состояние. For scale operations, scaling only occurs after this transactional rollback has completed.
- Для операции масштабирования система отсоединяет все вычислительные узлы, подготавливает дополнительные вычислительные узлы, а затем повторно присоединяется к уровню хранения.
- Для операции горизонтального масштабирования система отсоединяет все вычислительные узлы, а затем повторно присоединяет только необходимые узлы к уровню хранения.
Дальнейшие действия
Дополнительные сведения об управлении производительностью см. в разделе "Классы ресурсов" для управления рабочими нагрузками и ограничений на использование памяти и параллелизма.