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

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

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

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

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

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

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

Image showing a button labeled

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

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

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

    Functions that are deployed with template

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

    Select Integrate for function

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

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

    Change function schedule

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

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

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

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

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

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

    Change function trigger compute level

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

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

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

  1. Перейдите на панель "Функции".

    Functions pane

  2. Выберите переключатель для соответствующих триггеров, которые вы хотите включить.

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

    Примечание.

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

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

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

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

    Screenshot that shows the

  2. В разделе "Язык" выберите JavaScript, затем выберите TimerTrigger.

    Create new function

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

    Scale down Saturday

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

    Copy index 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:00 до DW1000c, однократное масштабирование до DW600 в 16:00 и уменьшение в 22:00 до 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

Увеличьте масштаб в 8:00 до DW1000c, один раз уменьшите до DW600c в 16:00 по будням. Приостановка работы в пятницу в 23:00 и возобновление работы в понедельник в 7:00.

Функция Расписание Операция
Функция 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.

См. выделенный пул SQL (ранее SQL DW) репозиторий образцов.