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


Использование функций Azure для управления вычислительными ресурсами выделенного пула SQL (ранее — хранилище данных SQL) в Azure Synapse Analytics

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

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

Развертывание масштабирования на основе таймера с помощью шаблона Azure Resource Manager

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

  • Название группы ресурсов, в которой находится ваш экземпляр выделенного пула SQL (ранее — SQL DW)
  • Имя сервера, в котором находится ваш выделенный экземпляр пула SQL (ранее — SQL DW)
  • Имя выделенного экземпляра пула SQL (ранее — SQL DW)
  • Идентификатор клиента (идентификатор каталога) идентификатора Microsoft Entra
  • ID подписки
  • Идентификатор приложения служебного объекта
  • Секретный ключ служебной учетной записи

После получения предыдущей информации разверните этот шаблон:

Изображение с кнопкой

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

Изменение времени операции масштабирования

  1. Перейдите к службе вашего функционального приложения. Если вы развернули шаблон со значениями по умолчанию, эта служба должна называться DWOperations. После открытия вашего приложения Function App, вы заметите, что в службе Function App развернуты пять функций.

    Функции, развернутые с помощью шаблона

  2. Выберите DWScaleDownTrigger или DWScaleUpTrigger , чтобы увеличить или уменьшить масштаб. В раскрывающемся меню выберите "Интеграция".

    Выберите

  3. В настоящее время отображаемое значение должно сказать либо%ScaleDownTime%, либо %ScaleUpTime%. Эти значения указывают, что расписание основано на значениях, определенных в параметрах приложения. Теперь вы можете игнорировать это значение и изменить расписание на предпочитаемое время на основе следующих шагов.

  4. В области расписания добавьте выражение CRON, которое будет отражать, как часто вы хотите, чтобы Azure Synapse Analytics увеличивался.

    Изменение расписания функций

    Значением schedule является выражение CRON , включающее следующие шесть полей:

    {second} {minute} {hour} {day} {month} {day-of-week}
    

    Например, "0 30 9 * * 1-5" будет отражать триггер каждый рабочий день в 9:30 утра. Дополнительные сведения см. в примерах расписания функций Azure.

Изменение уровня вычислений

  1. Перейдите к службе вашего функционального приложения. Если вы развернули шаблон со значениями по умолчанию, эта служба должна называться DWOperations. После открытия вашего приложения Function App, вы заметите, что в службе Function App развернуты пять функций.

  2. Выберите DWScaleDownTrigger или DWScaleUpTrigger , чтобы увеличить или уменьшить значение вычислений. При выборе функций панель должна отобразить файлindex.js .

    Изменение уровня вычислений триггера функции

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

Используйте приостановку или возобновление вместо масштабирования

В настоящее время функции по умолчанию — DWScaleDownTrigger и DWScaleUpTrigger. Если вы хотите использовать функцию приостановки и возобновления, можно включить DWPauseTrigger или DWResumeTrigger.

  1. Перейдите в область "Функции".

    Область функций

  2. Выберите на ползунковом тумблере те триггеры, которые вы хотите активировать.

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

    Примечание.

    Функциональная разница между триггерами масштабирования и триггерами приостановки и возобновления заключается в сообщении, отправляемом в очередь. Дополнительные сведения см. в разделе "Добавление новой функции триггера".

Добавление новой функции триггера

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

  1. Создайте пустую функцию. Нажмите кнопку + рядом с местом расположения функций, чтобы отобразить область шаблона функции.

    Снимок экрана: меню

  2. На языке выберите JavaScript, а затем выберите TimerTrigger.

    Создание новой функции

  3. Присвойте функции имя и задайте расписание. На изображении показано, как можно активировать свою функцию каждую субботу в полночь (поздно вечером в пятницу).

    Суббота сокращения

  4. Скопируйте содержимое index.js из одной из других функций триггера.

    Копирование индекса js

  5. Задайте для переменной операции требуемое поведение следующим образом:

    // Resume the dedicated SQL pool (formerly SQL DW) instance
    var operation = {
        "operationType": "ResumeDw"
    }
    
    // Pause the dedicated SQL pool (formerly SQL DW) instance
    var operation = {
        "operationType": "PauseDw"
    }
    
    // Scale the dedicated SQL pool (formerly SQL DW)l instance to DW600c
    var operation = {
        "operationType": "ScaleDw",
        "ServiceLevelObjective": "DW600c"
    }
    

Сложное планирование

В этом разделе кратко показано, что необходимо для более сложного планирования приостановки, возобновления и масштабирования возможностей.

Пример 1

Ежедневное увеличение мощности в 8:00 до DW600c и уменьшение мощности в 20:00 до DW200c.

Функция Расписание Операция
Функция1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Функция2 0 0 20 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Пример 2

Ежедневно увеличивать масштаб в 8 утра до DW1000c, уменьшать масштаб до DW600 в 4 часа дня и уменьшать масштаб в 10 часов вечера до DW200c.

Функция Расписание Операция
Функция1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Функция2 0 0 16 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Функция3 0 0 22 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Пример 3

Увеличение мощности до DW1000c в 8 утра, уменьшение до DW600c в 4 часа дня в будние дни. Приостанавливается в пятницу в 11 вечера, возобновляется в понедельник в 7 утра.

Функция Расписание Операция
Функция1 0 0 8 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Функция2 0 0 16 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Функция3 0 0 23 * * 5 var operation = {"operationType": "PauseDw"}
Функция4 0 0 7 * * 1 var operation = {"operationType": "ResumeDw"}

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

Дополнительные сведения об триггере таймера Azure Functions.

См. репозиторий примеров выделенного пула SQL (ранее — хранилище данных SQL).