Запуск и остановка среды выполнения интеграции Azure-SSIS по расписанию
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как запланировать запуск и остановку среды выполнения интеграции Служб интеграции Azure-SQL Server Integration Services (SSIS) с помощью Фабрика данных Azure и Azure Synapse Analytics. Azure-SSIS IR — это вычислительный ресурс, выделенный для выполнения пакетов служб SSIS.
Стоимость связана с запуском Azure-SSIS IR. Как правило, вы хотите запустить среду IR только в том случае, если вам нужно запустить пакеты служб SSIS в Azure и остановить среду IR, если она больше не нужна. Вы можете использовать фабрику данных, страницу портал Azure для конвейеров Azure Synapse Analytics или Azure PowerShell для запуска или остановки среды выполнения интеграции вручную.
Кроме того, вы можете создавать веб-действия в конвейерах Фабрики данных или Azure Synapse Analytics, чтобы начать и остановить среду ВЫПОЛНЕНИЯ в расписании. Например, вы можете запустить его утром перед выполнением ежедневных рабочих нагрузок ETL и остановить его во второй половине дня после выполнения рабочих нагрузок.
Вы также можете связать действие пакета SSIS между двумя веб-действиями, которые запускают и останавливают среду выполнения интеграции. Среда IR запустится и остановится по запросу до или после выполнения пакета. Дополнительные сведения о действии "Выполнение пакета служб SSIS" см. в разделе "Запуск пакета служб SSIS" с действием "Выполнение пакета служб SSIS" в портал Azure.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Необходимые компоненты
Для реализации этого пошагового руководства вам потребуется:
Экземпляр Фабрика данных Azure. Если у вас нет подготовки, выполните действия, описанные в кратком руководстве. Создание фабрики данных с помощью портал Azure и Фабрика данных Azure Studio.
An Azure-SSIS IR. Если у вас нет подготовленной среды выполнения интеграции Azure SSIS, следуйте инструкциям в Фабрика данных Azure.
Создание и планирование конвейеров фабрики данных, которые запускают и останавливают среду выполнения интеграции Azure-SSIS IR
Примечание.
Этот раздел не поддерживается для Azure-SSIS в Azure Synapse Analytics с включенной защитой от кражи данных.
В этом разделе показано, как использовать веб-действия в конвейерах фабрики данных для запуска и остановки среды выполнения интеграции Azure-SSIS по расписанию или запуска и остановки по запросу. Вы создадите три конвейера:
- Первый конвейер содержит веб-действие, которое запускает azure-SSIS IR.
- Второй конвейер содержит веб-действие, которое останавливает azure-SSIS IR.
- Третий конвейер содержит действие "Выполнить пакет SSIS", цепочки между двумя веб-действиями, которые запускаются и останавливают azure-SSIS IR.
После создания и тестирования этих конвейеров можно создать триггер, определяющий расписание выполнения конвейера. Например, можно создать два триггера. Первый должен выполняться ежедневно в 6 часов утра и связан с первым конвейером. Второй должен выполняться ежедневно в 6 вечера и связан со вторым конвейером. Таким образом, у вас есть период с 6 утра до 6 вечера каждый день, когда среда ir запущена, готова к выполнению ежедневных рабочих нагрузок ETL.
Если вы создаете третий триггер, который планируется выполнять ежедневно в полночь и связан с третьим конвейером, этот конвейер будет работать в полночь каждый день. Он запустит среду IR непосредственно перед выполнением пакета, а затем запустите пакет. Она немедленно остановит среду ir сразу после выполнения пакета, поэтому среда IR не будет выполняться бездействия.
Создание конвейеров
На домашней странице пользовательского интерфейса Фабрики данных выберите элемент Orchestrate (Оркестрация).
На панели элементов "Действия" разверните меню "Общие" и перетащите веб-действие в область конструктора конвейеров. На вкладке "Общие " окна свойств действия измените имя действия, чтобы запуститьMyIR. Перейдите на вкладку "Параметры " и выполните следующие действия.
Примечание.
Для Azure-SSIS в Azure Synapse Analytics используйте соответствующий REST API Azure Synapse Analytics, чтобы получить состояние среды выполнения интеграции, запустить среду выполнения интеграции и остановить среду выполнения интеграции.
Для URL-адреса введите следующий URL-адрес REST API, который запускает Azure-SSIS IR. Замените
{subscriptionId}
,{factoryName}
{resourceGroupName}
и{integrationRuntimeName}
фактическими значениями для среды ir.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}/start?api-version=2018-06-01
Кроме того, можно скопировать и вставить идентификатор ресурса ir на странице мониторинга на пользовательском интерфейсе фабрики данных или приложении, чтобы заменить следующую часть предыдущего URL-адреса:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}
Для поля Метод выберите POST.
В поле Текст введите
{"message":"Start my IR"}
.Для проверки подлинности выберите управляемое удостоверение, чтобы использовать указанное управляемое системой удостоверение для фабрики данных. Дополнительные сведения см. в разделе "Управляемое удостоверение" для Фабрика данных Azure.
В поле Ресурс введите
https://management.azure.com/
.
Клонируйте первый конвейер, чтобы создать второй. Измените имя действия, чтобы остановитьMyIR, и замените следующие свойства:
Для URL-адреса введите следующий URL-адрес REST API, который останавливает Azure-SSIS IR. Замените
{subscriptionId}
,{factoryName}
{resourceGroupName}
и{integrationRuntimeName}
фактическими значениями для среды ir.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}/stop?api-version=2018-06-01
.В поле Текст введите
{"message":"Stop my IR"}
.
Создайте третий конвейер. Перетащите действие "Выполнить пакет SSIS" из панели действий на область конструктора конвейеров. Затем настройте действие, следуя инструкциям в разделе "Запуск пакета служб SSIS" с действием "Выполнение пакета служб SSIS" в портал Azure.
Цепочка действий пакета SSIS между двумя веб-действиями, которые запускаются и останавливают среду ВЫПОЛНЕНИЯ, аналогичную этим веб-действиям в первых и второй конвейерах.
Вместо создания третьего конвейера можно также автоматически создать его из шаблона:
- Выберите многоточие (...) рядом с конвейером , чтобы открыть раскрывающееся меню действий конвейера. Затем выберите конвейер из действия шаблона .
- Установите флажок SSIS в разделе "Категория".
- Выберите конвейер ADF "Расписание", чтобы запустить и остановить azure-SSIS IR сразу перед и после запуска шаблона пакета служб SSIS.
- В раскрывающемся меню среды выполнения интеграции Azure-SSIS выберите среду выполнения ir.
- Нажмите кнопку "Использовать этот шаблон ".
После автоматического создания конвейера осталось только пакет служб SSIS, чтобы назначить действие "Выполнить пакет служб SSIS".
Чтобы сделать третий конвейер более надежным, вы можете убедиться, что веб-действия для запуска и остановки ir извлекаются при возникновении временных ошибок (например, из-за сетевого подключения). Вы также можете убедиться, что эти веб-действия завершены только при фактическом запуске или остановке среды ВЫПОЛНЕНИЯ.
Для этого можно заменить каждое веб-действие действием "Пока". Действие "Пока" содержит две веб-действия: одну, чтобы запустить и остановить ir, а другую — проверить состояние IR. Давайте назовем действия Until Запуска служб SSIS IR и Остановка служб SSIS IR. Действие Start SSIS IR до тех пор, пока не содержит действия запуска среды выполнения SSIS IR и получения веб-действий состояния SSIS IR. Действие Stop SSIS IR до тех пор, пока не содержит действия try Stop SSIS IR и Get SSIS IR Status web activity.
На вкладке "Параметры" действия start SSIS IR "Пока" для выражения введите
@equals('Started', activity('Get SSIS IR Status').output.properties.state)
. На вкладке "Параметры" действия Stop SSIS IR "Пока" введите@equals('Stopped', activity('Get SSIS IR Status').output.properties.state)
значение "Выражение".В обоих действиях " Пока" в веб-действиях try start SSIS IR и Try Stop SSIS IR похожи на эти веб-действия в первом и втором конвейерах. На вкладке "Параметры" для веб-действий get SSIS IR Status web actions выполните следующие действия:
В качестве URL-адреса введите следующий URL-адрес для REST API, который получает состояние Среды выполнения интеграции Azure-SSIS IR. Замените
{subscriptionId}
,{factoryName}
{resourceGroupName}
и{integrationRuntimeName}
фактическими значениями для среды ir.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}?api-version=2018-06-01
В поле Метод выберите GET.
Для проверки подлинности выберите управляемое удостоверение, чтобы использовать указанное управляемое системой удостоверение для фабрики данных. Дополнительные сведения см. в разделе "Управляемое удостоверение" для Фабрика данных Azure.
В поле Ресурс введите
https://management.azure.com/
.
Назначьте управляемому удостоверению для фабрики данных роль участника , поэтому веб-действия в своих конвейерах могут вызывать REST API для запуска и остановки IRS Azure-SSIS, подготовленных в нем:
На странице фабрики данных в портал Azure выберите элемент управления доступом (IAM).
Выберите Добавить>Добавить назначение ролей, чтобы открыть страницу Добавление назначения ролей.
Назначьте следующую роль. Подробные инструкции см. в статье Назначение ролей Azure с помощью портала Microsoft Azure.
Параметр Значение Роль Участник Назначить доступ для Пользователь, группа или субъект-служба Участники Имя пользователя фабрики данных
Проверьте фабрику данных и все параметры конвейера, выбрав "Проверить все" или "Проверить" на панели инструментов фабрики или конвейера. Закройте выходные данные проверки фабрики или выходные данные проверки конвейера, нажав кнопку с двойной стрелкой (>>).
Тестовый запуск конвейеров
Выберите тестовый запуск на панели инструментов для каждого конвейера. На нижней панели вкладка "Выходные данные " выводит список конвейеров.
Для тестирования третьего конвейера можно использовать SQL Server Management Studio при хранении пакета служб SSIS в каталоге служб SSIS (SSISDB). В окне Подключение к серверу сделайте следующее:
- В поле Имя сервера введите <имя вашего сервера>.database.windows.net.
- Выберите Параметры>>.
- В поле Подключение к базе данных выберите SSISDB.
- Нажмите Подключиться.
- Разверните каталоги служб Integration Services SSISDB> в папке> "Проекты> проектов>> служб SSIS".
- Щелкните правой кнопкой мыши указанный пакет служб SSIS для запуска, а затем выберите отчеты "Стандартные отчеты>>" для всех выполнений.
- Убедитесь, что пакет запущен.
Расписание конвейеров
Теперь, когда конвейеры работают так, как нам нужно, можно создать триггеры для их запуска с нужной частотой. Дополнительные сведения о связывании триггеров с конвейерами см. в разделе "Настройка расписаний для конвейеров".
На панели инструментов конвейера выберите "Триггер" и нажмите кнопку "Создать или изменить".
На панели "Добавить триггеры" нажмите кнопку +Создать.
На панели "Создать триггер" выполните следующие действия:
- В поле Имя введите имя триггера. В следующем примере триггер2 — это имя триггера.
- В поле Тип выберите Расписание.
- В поле "Дата начала" введите дату начала и время в формате UTC.
- В поле Повторение укажите периодичность активации триггера. В следующем примере это один раз в день.
- Если триггер должен иметь дату окончания, выберите "Указать дату окончания", а затем выберите дату и время.
- Нажмите кнопку "Пуск" при создании, чтобы активировать триггер сразу после публикации всех параметров фабрики данных.
- Нажмите ОК.
На странице "Параметры запуска триггера" просмотрите все предупреждения и нажмите кнопку "Готово".
Опубликуйте все параметры фабрики данных, выбрав "Опубликовать все " на панели инструментов фабрики.
Мониторинг конвейеров и триггеров в портал Azure
Чтобы отслеживать запуски триггеров и запуски конвейера, используйте вкладку "Монитор " в левой части пользовательского интерфейса фабрики данных или приложения. Подробные инструкции см. в разделе "Визуальный мониторинг" Фабрика данных Azure.
Чтобы просмотреть выполнения действий, связанные с запуском конвейера, щелкните первую ссылку (View Activity Runs (Просмотр запусков действий)) в столбце Действия. Для третьего конвейера отображаются три выполнения действий: по одному для каждого цепочки действий в конвейере (веб-действие для запуска среды IR, выполнения действия пакета SSIS для запуска пакета и веб-действий, чтобы остановить ir). Чтобы просмотреть повторную работу конвейера, выберите ссылку Pipelines в верхней части.
Чтобы просмотреть запуски триггера, выберите "Триггеры" в раскрывающемся списке в разделе "Запуски конвейера" в верхней части.
Мониторинг конвейеров и триггеров с помощью PowerShell
Используйте скрипты, такие как следующие примеры для мониторинга конвейеров и триггеров:
Получение состояния выполнения конвейера:
Get-AzDataFactoryV2PipelineRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $myPipelineRun
Получение сведений об триггере:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "myTrigger"
Получение состояния запуска триггера:
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "myTrigger" -TriggerRunStartedAfter "2018-07-15" -TriggerRunStartedBefore "2018-07-16"
Создание и планирование модуля Runbook служба автоматизации Azure, который запускает и останавливает среду выполнения интеграции Azure-SSIS IR
В этом разделе описано, как создать модуль Runbook служба автоматизации Azure, который запускает скрипт PowerShell для запуска и остановки среды выполнения интеграции Azure-SSIS в расписании. Эта информация полезна при выполнении дополнительных скриптов до или после запуска и остановки среды ВЫПОЛНЕНИЯ для предварительной обработки и последующей обработки.
Создание учетной записи службы автоматизации Azure
Если у вас нет учетной записи служба автоматизации Azure, создайте ее, следуя инструкциям в этом разделе. Подробные инструкции см. в статье Создание учетной записи службы автоматизации Azure.
В рамках этого процесса вы создадите учетную запись запуска От имени Azure (субъект-службу в идентификаторе Microsoft Entra ID) и назначьте ей роль участника в подписке Azure. Убедитесь, что это та же подписка, которая содержит фабрику данных с помощью Azure-SSIS IR. Служба автоматизации Azure применит эту учетную запись для аутентификации в Azure Resource Manager и управления ресурсами.
Откройте веб-браузер Microsoft Edge или Google Chrome. В настоящее время пользовательский интерфейс фабрики данных поддерживается только в этих браузерах.
Войдите на портал Azure.
Выберите "Создать" в меню слева, выберите "Мониторинг и управление" и выберите "Автоматизация".
На панели "Добавление учетной записи службы автоматизации" выполните следующие действия:
- В поле Имя введите имя учетной записи службы автоматизации Azure.
- Для подписки выберите подписку с фабрикой данных с помощью Azure-SSIS IR.
- Для группы ресурсов выберите "Создать", чтобы создать новую группу ресурсов, или выберите "Использовать существующую" для использования существующей.
- В поле Расположение выберите расположение для учетной записи службы автоматизации Azure.
- Для создания учетной записи запуска от имени Azure нажмите кнопку "Да". Субъект-служба будет создан в экземпляре Microsoft Entra и назначена роль участника в подписке Azure.
- Выберите " Закрепить на панели мониторинга", чтобы постоянно отображать учетную запись на панели мониторинга Azure.
- Нажмите кнопку создания.
Отслеживайте состояние развертывания учетной записи служба автоматизации Azure на панели мониторинга Azure и в уведомлениях.
Убедитесь, что откроется домашняя страница учетной записи служба автоматизации Azure. Это означает, что вы успешно создали учетную запись.
Импорт модулей фабрики данных
В меню слева в разделе "ОБЩИЕ РЕСУРСЫ " выберите "Модули". Убедитесь, что в списке модулей есть Az.DataFactory и Az.Profile . Они оба необходимы.
Если у вас нет Az.DataFactory:
Перейдите к модулю Az.DataFactory в коллекция PowerShell.
Выберите "Развернуть в служба автоматизации Azure", выберите учетную запись служба автоматизации Azure и нажмите кнопку "ОК".
Вернитесь к просмотру модулей в разделе SHARED RESOURCES в меню слева. Дождитесь изменения состояния модуля Az.DataFactory в Available.
Если у вас нет Az.Profile:
Перейдите к модулю Az.Profile в коллекция PowerShell.
Выберите "Развернуть в служба автоматизации Azure", выберите учетную запись служба автоматизации Azure и нажмите кнопку "ОК".
Вернитесь к просмотру модулей в разделе SHARED RESOURCES в меню слева. Подождите, пока состояние модуля Az.Profile изменится на Available.
Создание runbook PowerShell
В этом разделе приведены действия по созданию модуля Runbook PowerShell. Скрипт, связанный с модулю Runbook, запускает или останавливает среду выполнения интеграции Azure-SSIS, основанную на команде, указанной для параметра OPERATION .
Следующие шаги не содержат полных сведений о создании модуля Runbook. Дополнительные сведения см. в разделе "Создание модуля Runbook".
Перейдите на вкладку Runbooks и нажмите кнопку +Добавить модуль Runbook на панели инструментов.
Выберите " Создать модуль Runbook" и выполните следующие действия:
- В поле Имя введите StartStopAzureSsisRuntime.
- Для поля Тип Runbook выберите значение PowerShell.
- Нажмите кнопку создания.
Скопируйте и вставьте следующий скрипт PowerShell в окно скрипта Runbook. Сохраните и опубликуйте модуль Runbook с помощью кнопок "Сохранить и опубликовать " на панели инструментов.
Примечание.
В этом примере используется управляемое удостоверение, назначаемое системой. Если вы используете учетную запись запуска от имени (субъект-службу) или управляемое удостоверение, назначаемое пользователем, см. служба автоматизации Azure примеры сценариев для части входа.
Включите соответствующие разрешения управления доступом на основе ролей (RBAC) для управляемого удостоверения этой учетной записи службы автоматизации. Дополнительные сведения см. в разделе "Роли и разрешения" для Фабрика данных Azure.
Param ( [Parameter (Mandatory= $true)] [String] $ResourceGroupName, [Parameter (Mandatory= $true)] [String] $DataFactoryName, [Parameter (Mandatory= $true)] [String] $AzureSSISName, [Parameter (Mandatory= $true)] [String] $Operation ) $ErrorActionPreference = "Stop" try { "Logging in to Azure..." Connect-AzAccount -Identity } catch { Write-Error -Message $_.Exception throw $_.Exception } if($Operation -eq "START" -or $operation -eq "start") { "##### Starting #####" Start-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $AzureSSISName -Force } elseif($Operation -eq "STOP" -or $operation -eq "stop") { "##### Stopping #####" Stop-AzDataFactoryV2IntegrationRuntime -DataFactoryName $DataFactoryName -Name $AzureSSISName -ResourceGroupName $ResourceGroupName -Force } "##### Completed #####"
Протестируйте модуль Runbook, нажав кнопку "Пуск " на панели инструментов.
На панели запуска Runbook выполните следующие действия:
- В поле RESOURCEGROUPNAME введите имя группы ресурсов с фабрикой данных с помощью Azure-SSIS IR.
- В поле DATAFACTORYNAME введите имя фабрики данных с помощью Azure-SSIS IR.
- В поле AZURESSISNAME введите имя azure-SSIS IR.
- Для параметра OPERATION введите START.
- Нажмите ОК.
На панели "Задание" выберите плитку "Вывод". На панели вывода дождитесь завершения ##### ##### сообщения после ##### запуска #####. Запуск azure-SSIS IR занимает около 20 минут. Закройте область задания и вернитесь на страницу Runbook.
Повторите предыдущие два шага с помощью STOP в качестве значения операции. Запустите модуль Runbook еще раз, нажав кнопку "Пуск " на панели инструментов. Введите группу ресурсов, фабрику данных и имена Azure-SSIS IR. Для параметра OPERATION введите STOP. На панели вывода дождитесь завершения ##### ##### сообщения после ##### остановки #####. Остановка среды выполнения интеграции Azure-SSIS не занимает столько времени, сколько он начинается. Закройте область задания и вернитесь на страницу Runbook.
Вы также можете активировать модуль Runbook с помощью веб-перехватчика. Чтобы создать веб-перехватчик, выберите пункт меню "Веб-перехватчики ". Или вы можете создать веб-перехватчик по расписанию, выбрав пункт меню "Расписания ", как указано в следующем разделе.
Создание расписаний для запуска и остановки среды ВЫПОЛНЕНИЯ Azure-SSIS
В предыдущем разделе вы создали модуль Runbook служба автоматизации Azure, который может запустить или остановить среду выполнения интеграции Azure-SSIS IR. В этом разделе описано, как создать два расписания для модуля Runbook. При настройке первого расписания необходимо указать start for OPERATION. При настройке второй вы указываете STOP для ОПЕРАЦИИ. Подробные инструкции по созданию расписаний см. в разделе "Создание расписания".
На странице Runbook выберите "Расписания" и нажмите кнопку "Добавить расписание" на панели инструментов.
На панели "Расписание Runbook" выполните следующие действия:
- Выберите Связать расписание с модулем Runbook.
- Выберите Создать новое расписание.
- В области "Новое расписание" введите "Начать IR ежедневно" для имени.
- Для начала введите время, которое за несколько минут до текущего времени.
- Для параметра Периодичность выберите значение Повторяющееся.
- В поле Повторять каждые введите значение 1 и выберите День.
- Нажмите кнопку создания.
Перейдите на вкладку "Параметры" и "Параметры запуска". Укажите группу ресурсов, фабрику данных и имена Azure-SSIS IR. Для ОПЕРАЦИИ введите "ПУСК" и нажмите кнопку "ОК". Нажмите кнопку "ОК" , чтобы просмотреть расписание на странице "Расписания " модуля Runbook.
Повторите предыдущие два шага, чтобы создать расписание с именем Останавливать IR ежедневно. Введите время, которое по крайней мере 30 минут после того, как вы указали для расписания запуска IR ежедневно . Для ОПЕРАЦИИ введите STOP и нажмите кнопку "ОК". Нажмите кнопку "ОК" , чтобы просмотреть расписание на странице "Расписания " модуля Runbook.
На странице Runbook выберите "Задания" в меню слева. Страница, открывающая список заданий, созданных расписаниями в указанное время, вместе с их состояниями. Сведения о задании, такие как выходные данные, похожие на то, что появилось после тестирования модуля Runbook.
После завершения тестирования отключите расписания, изменив их. Выберите "Расписания" в меню слева, выберите "Пуск IR ежедневно" или "Остановить IR" и нажмите кнопку "Нет" для включения.
Связанный контент
См. в следующей записи блога:
См. документацию SSIS в следующих статьях:
- Развертывание, запуск и отслеживание пакета служб SSIS в Azure
- Подключение к каталогу служб SSIS в Azure
- Планирование выполнения пакета в Azure
- Connect to on-premises data sources with Windows Authentication (Подключение к локальным источникам данных с помощью аутентификации Windows)