Управление вычислительными ресурсами для выделенного пула SQL (прежнее название — Хранилище данных SQL) в Azure Synapse Analytics

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

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

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

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

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

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

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

В следующей таблице показано, как изменяется количество распределений на вычислительный узел при изменении количества единиц использования хранилища данных. 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 ТБ. Чтобы найти оптимальное число единиц использования хранилища данных для выделенного пула SQL (прежнее название — Хранилище данных SQL), попробуйте изменить его масштаб. Выполните несколько запросов с различным количеством единиц использования хранилища данных после загрузки данных. Так как масштабирование выполняется достаточно быстро, попробуйте использовать разные уровни производительности не дольше одного часа.

Рекомендации по поиску оптимального количества единиц использования хранилища данных:

  • Если выделенный пул SQL (прежнее название — Хранилище данных SQL) находится в разработке, начните с небольшого количества единиц использования хранилища данных. В качестве отправной точки можно использовать DW400c или DW200c.
  • Отслеживайте производительность приложения, сравнивая ее с количеством выбранных единиц использования хранилища данных.
  • Исходя из того, что масштаб изменяется линейно, определите, как необходимо увеличить или уменьшить число единиц использования хранилища данных.
  • Вносите изменения, пока не достигнете уровня производительности, который оптимально отвечает вашим бизнес-требованиям.

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

Горизонтальное масштабирование единиц использования хранилища данных влияет на следующие аспекты производительности:

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

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

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

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

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

Сведения о приостановке и возобновлении работы вычислительных ресурсов

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

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

При возобновлении работы выделенного пула SQL (прежнее название — Хранилище данных SQL)

  • Выделенный пул SQL (прежнее название — Хранилище данных SQL) получает вычислительные ресурсы и ресурсы памяти для заданного количества единиц использования.
  • Возобновляется оплата единиц использования хранилища данных.
  • Данные становятся доступными.
  • После подключения выделенного пула SQL (прежнее название — Хранилище данных SQL) к сети необходимо перезапустить запросы рабочей нагрузки.

Чтобы сохранять постоянную доступность выделенного пула SQL (прежнее название — Хранилище данных SQL), вместо приостановки работы можно уменьшить его размер до минимального.

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

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

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

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

Дополнительные сведения см. в статьях Транзакции в хранилище данных SQL и Оптимизация транзакций для хранилища данных SQL.

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

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

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

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

Разрешения

Для масштабирования выделенного пула SQL (прежнее название — Хранилище данных SQL) требуются разрешения, описанные в статье ALTER DATABASE. Чтобы приостановить и возобновить работу, нужны разрешения Участник баз данных SQL, в частности Microsoft.Sql/servers/databases/action.

Следующие шаги

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