Поделиться через


Использование ресурсов Synapse SQL

В этой статье описываются модели потребления ресурсов Synapse SQL.

Безсерверный SQL-пул

Бессерверный пул SQL — это услуга с оплатой за количество запросов, которая не требует от вас выбора подходящей конфигурации. Система автоматически подстраивается в соответствии с вашими требованиями, освобождая от необходимости управления инфраструктурой и выбора подходящего размера для вашего решения.

Выделенный пул SQL — единицы хранилища данных (DWUs) и вычислительные единицы хранилища данных (cDWUs)

Рекомендации по выбору идеального количества единиц хранилища данных (DWUS) для оптимизации цен и производительности, а также о том, как изменить количество единиц.

Единицы хранилища данных

Пул SQL Synapse представляет коллекцию подготовленных аналитических ресурсов. Аналитические ресурсы определяются как сочетание ЦП, памяти и операций ввода-вывода. Эти три ресурса объединяются в единицы масштабирования вычислений, называемые единицами хранилища данных (DWUS). DWU представляет абстрактную нормализованную меру вычислительных ресурсов и производительности. Изменение уровня обслуживания изменяет количество DWU, доступных в системе. В свою очередь, это изменение корректирует производительность и стоимость системы.

Для повышения производительности можно увеличить количество единиц хранилища данных. Для снижения производительности уменьшите единицы хранилища данных. Расходы на хранение и вычисления выставляются отдельно, поэтому изменение единиц хранилища данных не влияет на затраты на хранение.

Производительность единиц хранилища данных зависит от этих метрик рабочей нагрузки хранилища данных:

  • Насколько быстро стандартный запрос на хранение данных может сканировать большое количество строк, а затем выполнять сложную агрегирование. Эта операция является интенсивной операцией ввода-вывода и ЦП.
  • С какой скоростью хранилище данных может получать данные из объектов BLOB-хранилища Azure или из Azure Data Lake. Эта операция сильно нагружает сеть и центральный процессор.
  • Как быстро CREATE TABLE AS SELECT команда T-SQL может скопировать таблицу. Эта операция включает чтение данных из хранилища, распределение его по узлам устройства и повторное запись в хранилище. Эта операция является ресурсоемкой для ЦП, операций ввода-вывода и сети.

Увеличение DWUs:

  • Линейно изменяет производительность системы для сканирования, агрегаций и запросов CTAS.
  • Увеличивает количество читателей и писателей для операций загрузки PolyBase.
  • Увеличивает максимальное количество одновременных запросов и слотов параллельного выполнения.

Цель уровня обслуживания

Цель уровня обслуживания (SLO) — это параметр масштабируемости, определяющий уровень затрат и производительности хранилища данных. Уровни обслуживания для 2-го поколения измеряются в единицах хранилища вычислительных данных (cDWU), например DW2000c. Уровни обслуживания 1-го поколения измеряются в DWUs, например DW2000.

Цель уровня обслуживания (SLO) — это параметр масштабируемости, определяющий уровень затрат и производительности хранилища данных. Уровни обслуживания для выделенного пула SQL 2-го поколения измеряются в единицах хранилища данных (DWU), например DW2000c.

Примечание.

Azure Synapse Analytics 2-го поколения недавно добавил дополнительные возможности масштабирования для поддержки уровней вычислений не более 100 cDWU. Существующие хранилища данных в настоящее время в 1-м поколениях, для которых требуются более низкие уровни вычислений, теперь могут обновляться до 2-го поколения в регионах, доступных без дополнительных затрат. Если регион еще не поддерживается, вы по-прежнему можете обновить его до поддерживаемого региона. Дополнительные сведения см. в статье Обновление до Gen2.

В T-SQL параметр SERVICE_OBJECTIVE определяет уровень обслуживания и уровень производительности выделенного пула SQL.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

Уровни производительности и единицы хранилища данных

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

  • Хранилища данных 1-го поколения измеряются в единицах хранилища данных (DWUS).
  • Хранилища данных 2-го поколения измеряются в единицах вычислительного хранилища данных (cDW).

Как dwUs, так и cDWUs поддерживают масштабирование вычислений вверх или вниз, а также приостановку вычислений, если не требуется использовать хранилище данных. Эти операции выполняются по запросу. 2-го поколения использует локальный кэш на основе дисков на вычислительных узлах для повышения производительности. При масштабировании или приостановке работы системы кэш недействителен и поэтому требуется период потепления кэша до достижения оптимальной производительности.

При увеличении единиц хранилища данных вы линейно увеличиваете вычислительные ресурсы. Gen2 обеспечивает лучшую производительность запросов и наибольшую масштабируемость. Системы 2-го поколения также используют кэш.

Ограничения емкости

Каждый сервер SQL Server (например, myserver.database.windows.net) имеет квоту единицы транзакций базы данных (DTU), которая позволяет определенное количество единиц хранилища данных. Дополнительные сведения см. в ограничениях емкости управления рабочими нагрузками.

Оценка количества необходимых единиц хранилища данных

Идеальное количество единиц хранилища данных зависит от рабочей нагрузки и объема данных, загруженных в систему.

Шаги по поиску оптимального DWU для рабочей нагрузки:

  1. Начните с выбора меньшего DWU (единица данных).
  2. Отслеживайте производительность вашего приложения при тестировании нагрузок данных в систему, сравнивая количество выбранных единиц обработки данных (DWU) с наблюдаемой производительностью.
  3. Определите дополнительные требования для периодических периодов пиковых действий. Рабочие нагрузки, демонстрирующие значительные пики и спады в активности, могут требовать частого масштабирования.

Pул SQL является системой масштабирования, которая может предоставлять огромные вычислительные мощности и обрабатывать большие объемы данных. Чтобы увидеть его истинные возможности масштабирования, особенно при увеличении DWU, рекомендуется масштабировать набор данных одновременно, чтобы обеспечить загрузку процессоров достаточным количеством данных. Для тестирования масштабирования рекомендуется использовать не менее 1 ТБ.

Примечание.

Производительность запросов увеличивается только при большей параллелизации, если работа может быть разделена между вычислительными узлами. Если вы обнаружите, что масштабирование не изменяет производительность, может потребоваться настроить структуру таблиц и (или) ваши запросы. Инструкции по настройке запросов см. в разделе "Управление запросами пользователей".

Разрешения

Для изменения единиц хранилища данных требуются разрешения, описанные в ALTER DATABASE.

Встроенные роли Azure, такие как участник базы данных SQL и участник SQL Server, могут изменять параметры DWU.

Просмотр текущих параметров DWU

Чтобы просмотреть текущий параметр DWU, выполните следующие действия.

  1. Откройте обозреватель объектов SQL Server в Visual Studio.
  2. Подключитесь к master базе данных, связанной с логическим SQL-сервером.
  3. Выберите из динамического представления управления sys.database_service_objectives. Ниже приведен пример:
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, следуйте следующим шагам.

  1. Откройте портал Azure, откройте базу данных и выберите "Масштаб".

  2. В разделе "Масштаб" переместите ползунок влево или вправо, чтобы изменить параметр DWU.

  3. Выберите Сохранить. Появится сообщение подтверждения. Выберите "Да", чтобы подтвердить или нет , чтобы отменить.

PowerShell

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как осуществить переход на модуль Az PowerShell, см. статью Перенос Azure PowerShell с AzureRM на Az.

Чтобы изменить DWUs, используйте командлет PowerShell Set-AzSqlDatabase. Следующий пример задает целевой уровень обслуживания dw1000 для базы данных MySQLDW, размещенной на сервере MyServer.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

Для получения дополнительной информации см. раздел командлеты PowerShell для Azure Synapse Analytics

T-SQL

С помощью T-SQL можно просмотреть текущие dwUsettings, изменить параметры и проверить ход выполнения.

Чтобы изменить DWUs, следуйте этим шагам.

  1. Подключитесь к базе данных master, связанной с сервером.
  2. Используйте инструкцию 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": DW1000
    }
}

Для получения дополнительных примеров REST API см. раздел REST API для Azure Synapse Analytics.

Проверьте состояние изменений DWU

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

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

Невозможно проверить состояние базы данных для операций горизонтального масштабирования с помощью портала Azure.

Чтобы проверить состояние изменений DWU, выполните следующие действия.

  1. Подключитесь к базе данных master, связанной с сервером.
  2. Отправьте следующий запрос, чтобы проверить состояние базы данных.
SELECT    *
FROM      sys.databases
;
  1. Отправьте следующий запрос, чтобы проверить состояние операции
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

Это динамическое административное представление возвращает сведения о различных операциях управления в выделенном пуле SQL, таких как сама операция и её состояние, которое может быть либо в процессе выполнения, либо завершено.

Рабочий процесс масштабирования

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

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

Дальнейшие действия

Дополнительные сведения об управлении производительностью см. в разделе "Классы ресурсов" для управления рабочими нагрузками и ограничений на использование памяти и параллелизма.