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


Управление вычислительными ресурсами для выделенного пула SQL

В этой статье объясняется, как управлять вычислительными ресурсами для выделенного пула SQL (прежнее название — хранилище данных SQL) в Azure Synapse Analytics. Вы можете снизить затраты, заключив выделенный пул SQL или масштабируя выделенный пул SQL для удовлетворения требований к производительности.

Что такое управление вычислительными ресурсами?

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

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

Масштабирование вычислительных ресурсов

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

Инструкции по горизонтальному масштабированию см. в кратких руководствах по портал Azure, PowerShell или T-SQL. Кроме того, можно выполнять операции горизонтального масштабирования с помощью REST API.

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

Каждый выделенный пул SQL хранится в виде 60 дистрибутивов, которые равномерно распределяются по вычислительным узлам. Добавление вычислительных узлов увеличивает вычислительную мощность. При увеличении количества вычислительных узлов количество распределений на каждом вычислительном узле уменьшается, что обеспечивает дополнительную вычислительную мощность для обработки запросов. Аналогичным образом уменьшение единиц dwus уменьшает количество вычислительных узлов, что сокращает вычислительные ресурсы для запросов.

В следующей таблице показано, как изменяется число распределений на вычислительный узел при изменении dwUs. DW30000c предоставляет 60 вычислительных узлов и обеспечивает гораздо более высокую производительность запросов, чем DW100c.

Единицы использования хранилища данных # вычислительных узлов # распределений на узел
DW100c 1 60
DW200c 1 60
DW300c 1 60
DW400c 1 60
DW500c. 1 60
DW1000c 2 30
DW1500c 3 20
DW2000c 4 15
DW2500c 5 12
DW3000c 6 10
DW5000c 10 6
DW6000c 12 5
DW7500c 15 4
DW10000c 20 3
DW15000c 30 2
DW30000c 60 1

Поиск правильного размера единиц использования хранилища данных

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

Рекомендации по поиску оптимального количества dwus:

  • Для выделенного пула SQL в разработке начните с выбора меньшего количества dwus. В качестве отправной точки можно использовать DW400c или DW200c.
  • Отслеживайте производительность приложения, сравнивая ее с количеством выбранных DWU.
  • Предположим линейную шкалу и определим, сколько необходимо увеличить или уменьшить dwus.
  • Вносите изменения, пока не достигнете уровня производительности, который оптимально отвечает вашим бизнес-требованиям.

Когда требуется горизонтальное увеличение масштаба

Масштабирование dwus влияет на эти аспекты производительности:

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

Рекомендации по масштабированию dwus:

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

Что делать, если масштабирование не улучшает производительность?

Добавление DWUs увеличивает параллелизм. Если работа равномерно разделена между вычислительными узлами, дополнительная параллелизм улучшает производительность запросов. Если масштабирование не изменяет производительность, существуют некоторые причины, по которым это может произойти. Возможно, данные неравномерно разделены между распределениями или запросы вызывают много операций перемещения данных. Чтобы изучить проблемы производительности запросов, ознакомьтесь с разделом Устранение неполадок хранилища данных SQL Azure.

Остановка и возобновление вычислений

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

При приостановке выделенного пула SQL:

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

При возобновлении выделенного пула SQL:

  • Выделенный пул SQL получает вычислительные ресурсы и ресурсы памяти для параметра DWUs.
  • Вычисляется стоимость возобновления DWU.
  • Данные становятся доступными.
  • После подключения выделенного пула SQL необходимо перезапустить запросы рабочей нагрузки.

Если вы всегда хотите, чтобы выделенный пул SQL был доступен, рассмотрите возможность масштабирования до наименьшего размера, а не приостановки.

Инструкции по приостановке и возобновлению работы см. в кратких руководствах по портал Azure или PowerShell. Можно также использовать REST API приостановки или REST API возобновления.

Очистка транзакций перед приостановкой использования и масштабированием вычислительных ресурсов

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

При приостановке или масштабировании выделенного пула SQL за кулисами запросы отменяются при запуске приостановки или масштабирования запроса. Отмена простого запроса SELECT — это быстрая операция и практически не влияет на время приостановки или масштабирования экземпляра. Однако запросы транзакций, которые изменяют данные или структуру данных, могут не остановиться быстро. Транзакционные запросы по определению должны полностью завершиться или выполнить откат изменений.

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

Дополнительные сведения см. в разделе "Использование транзакций и оптимизации транзакций".

Автоматизация управления вычислительными ресурсами

Сведения об автоматизации операций управления вычислительными ресурсами см. в статье "Использование Функции Azure для управления вычислительными ресурсами для выделенного пула SQL".

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

Чтобы проверить состояние выделенного пула SQL, ознакомьтесь с краткими руководствами по PowerShell или T-SQL. Вы также можете проверить состояние выделенного пула SQL с помощью REST API.

Разрешения

Масштабирование выделенного пула SQL требует разрешений, описанных в ALTER DATABASE. Приостановка и возобновление требуют роли участника базы данных SQL, в частности Microsoft.Sql/servers/database/action.