Iniciar e parar um tempo de execução de integração Azure-SSIS em um cronograma
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como agendar o início e a interrupção de um tempo de execução (IR) de integração do Azure-SQL Server Integration Services (SSIS) usando o Azure Data Factory e o Azure Synapse Analytics. Um IR do Azure-SSIS é um recurso de computação dedicado para executar pacotes SSIS.
Um custo está associado à execução de um IR do Azure-SSIS. Normalmente, você deseja executar seu IR somente quando precisar executar pacotes SSIS no Azure e parar seu IR quando não precisar mais dele. Você pode usar o Data Factory, a página do portal do Azure para pipelines do Azure Synapse Analytics ou o Azure PowerShell para iniciar ou parar manualmente seu IR.
Como alternativa, você pode criar atividades da Web no Data Factory ou nos pipelines do Azure Synapse Analytics para iniciar e parar seu RI em uma agenda. Por exemplo, você pode iniciá-lo de manhã antes de executar suas cargas de trabalho diárias de ETL e pará-lo à tarde depois que as cargas de trabalho forem concluídas.
Você também pode encadear uma atividade de Executar Pacote SSIS entre duas atividades da Web que iniciam e param seu IR. Seu IR começará e parará sob demanda, antes ou depois da execução do pacote. Para obter mais informações sobre a atividade Executar Pacote SSIS, consulte Executar um pacote SSIS com a atividade Executar Pacote SSIS no portal do Azure.
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Para implementar este passo a passo, você precisa:
Uma instância do Azure Data Factory. Se você não tiver um provisionado, siga as etapas em Guia de início rápido: criar uma fábrica de dados usando o portal do Azure e o Azure Data Factory Studio.
Um IR do Azure-SSIS. Se você não tiver um provisionado, siga as instruções em Provisionar o tempo de execução da integração Azure-SSIS no Azure Data Factory.
Criar e agendar pipelines do Data Factory que iniciam e param um IR do Azure-SSIS
Nota
Esta seção não é suportada para o Azure-SSIS no Azure Synapse Analytics com a proteção de exfiltração de dados habilitada.
Esta seção mostra como usar atividades da Web em pipelines do Data Factory para iniciar e parar seu IR do Azure-SSIS em um cronograma ou para iniciá-lo e pará-lo sob demanda. Você criará três pipelines:
- O primeiro pipeline contém uma atividade da Web que inicia seu IR do Azure-SSIS.
- O segundo pipeline contém uma atividade da Web que interrompe seu IR do Azure-SSIS.
- O terceiro pipeline contém uma atividade Executar Pacote SSIS encadeada entre duas atividades Web que iniciam e param o IR do Azure-SSIS.
Depois de criar e testar esses pipelines, você pode criar um gatilho que define um cronograma para executar um pipeline. Por exemplo, você pode criar dois gatilhos. O primeiro está programado para funcionar diariamente às 6h e está associado ao primeiro gasoduto. O segundo está programado para funcionar diariamente às 18h e está associado ao segundo gasoduto. Desta forma, você tem um período das 6h às 18h todos os dias quando seu RI está em execução, pronto para executar suas cargas de trabalho diárias de ETL.
Se você criar um terceiro gatilho agendado para ser executado diariamente à meia-noite e associado ao terceiro pipeline, esse pipeline será executado à meia-noite todos os dias. Ele iniciará seu IR pouco antes da execução do pacote e, em seguida, executará seu pacote. Ele irá parar imediatamente o seu IR logo após a execução do pacote, para que o seu IR não seja executado ociosamente.
Crie seus pipelines
Na home page do Azure Data Factory, selecione Orquestrar.
Na caixa de ferramentas Atividades, expanda o menu Geral e arraste uma atividade da Web para a superfície do designer de pipeline. Na guia Geral da janela de propriedades da atividade, altere o nome da atividade para startMyIR. Alterne para a guia Configurações e execute as seguintes ações.
Nota
Para Azure-SSIS no Azure Synapse Analytics, use a API REST do Azure Synapse Analytics correspondente para obter o status do tempo de execução da integração, iniciar o tempo de execução da integração e interromper o tempo de execução da integração.
Para URL, insira a seguinte URL para a API REST que inicia o IR do Azure-SSIS. Substitua
{subscriptionId}
,{resourceGroupName}
,{factoryName}
, e{integrationRuntimeName}
pelos valores reais para o seu IR.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}/start?api-version=2018-06-01
Como alternativa, você pode copiar e colar o ID do recurso do seu RI na página de monitoramento na interface do usuário ou aplicativo do Data Factory para substituir a seguinte parte da URL anterior:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}
.Em Método, selecione POST.
Em Corpo, digite
{"message":"Start my IR"}
.Em Autenticação, selecione Identidade Gerenciada para usar a identidade gerenciada pelo sistema especificada para seu data factory. Para obter mais informações, consulte Identidade gerenciada para o Azure Data Factory.
Em Recurso, insira
https://management.azure.com/
.
Clone o primeiro pipeline para criar um segundo. Altere o nome da atividade para stopMyIR e substitua as seguintes propriedades:
Para URL, insira a seguinte URL para a API REST que interrompe o IR do Azure-SSIS. Substitua
{subscriptionId}
,{resourceGroupName}
,{factoryName}
, e{integrationRuntimeName}
pelos valores reais para o seu IR.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}/stop?api-version=2018-06-01
.Em Corpo, digite
{"message":"Stop my IR"}
.
Crie um terceiro pipeline. Arraste uma atividade Executar Pacote SSIS da caixa de ferramentas Atividades para a superfície do designer de pipeline. Em seguida, configure a atividade seguindo as instruções em Executar um pacote SSIS com a atividade Executar pacote SSIS no portal do Azure.
Encadeie a atividade Executar Pacote SSIS entre duas atividades da Web que iniciam e param seu RI, semelhante às atividades da Web no primeiro e no segundo pipelines.
Em vez de criar manualmente o terceiro pipeline, você também pode criá-lo automaticamente a partir de um modelo:
- Selecione as reticências (...) ao lado de Pipeline para abrir um menu suspenso de ações do pipeline. Em seguida, selecione a ação Pipeline do modelo .
- Marque a caixa de seleção SSIS em Categoria.
- Selecione o pipeline Schedule ADF para iniciar e parar o Azure-SSIS IR antes e depois de executar o modelo de pacote SSIS.
- No menu suspenso Azure-SSIS Integration Runtime, selecione seu IR.
- Selecione o botão Usar este modelo .
Depois de criar seu pipeline automaticamente, somente o pacote SSIS é deixado para você atribuir à atividade Executar Pacote SSIS.
Para tornar o terceiro pipeline mais robusto, você pode garantir que as atividades da Web para iniciar e parar seu IR sejam repetidas se houver erros transitórios (por exemplo, devido à conectividade de rede). Você também pode garantir que essas atividades da Web sejam concluídas somente quando seu RI for realmente iniciado ou interrompido.
Para fazer isso, você pode substituir cada atividade da Web por uma atividade Till. A atividade Until contém duas atividades na web: uma para iniciar e parar seu RI e outra para verificar seu status de RI. Vamos chamar até que as atividades Start SSIS IR e Stop SSIS IR. A atividade Start SSIS IR Until contém as atividades da Web Try Start SSIS IR e Get SSIS IR Status . A atividade Stop SSIS IR Until contém as atividades da Web Try Stop SSIS IR e Get SSIS IR Status .
Na guia Configurações da atividade Iniciar IR do SSIS Até, para Expressão, digite
@equals('Started', activity('Get SSIS IR Status').output.properties.state)
. Na guia Configurações da atividade Parar IR do SSIS Até, para Expressão, digite@equals('Stopped', activity('Get SSIS IR Status').output.properties.state)
.Dentro de ambas as atividades Till, as atividades da Web Try Start SSIS IR e Try Stop SSIS IR são semelhantes às atividades da Web no primeiro e segundo pipelines. Na guia Configurações das atividades da Web Obter Status de IR do SSIS, execute as seguintes ações:
Para URL, insira a seguinte URL para a API REST que obtém o status de IR do Azure-SSIS. Substitua
{subscriptionId}
,{resourceGroupName}
,{factoryName}
, e{integrationRuntimeName}
pelos valores reais para o seu IR.https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}/integrationRuntimes/{integrationRuntimeName}?api-version=2018-06-01
Em Método, selecione GET.
Em Autenticação, selecione Identidade Gerenciada para usar a identidade gerenciada pelo sistema especificada para seu data factory. Para obter mais informações, consulte Identidade gerenciada para o Azure Data Factory.
Em Recurso, insira
https://management.azure.com/
.
Atribua a identidade gerenciada para sua fábrica de dados uma função de Colaborador a si mesma, para que as atividades da Web em seus pipelines possam chamar a API REST para iniciar e interromper os IRs do Azure-SSIS provisionados nela:
Na página Data Factory no portal do Azure, selecione Controle de acesso (IAM).
Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.
Definição Value Role Contribuinte Atribuir acesso a Usuário, grupo ou entidade de serviço Membros O seu nome de utilizador do Data Factory
Valide sua fábrica de dados e todas as configurações de pipeline selecionando Validar tudo ou Validar na barra de ferramentas de fábrica ou pipeline. Feche a Saída de Validação de Fábrica ou a Saída de Validação de Pipeline selecionando o botão de seta dupla (>>).
Teste a execução de seus pipelines
Selecione Test Run na barra de ferramentas de cada pipeline. No painel inferior, a guia Saída lista as execuções de pipeline.
Para testar o terceiro pipeline, você pode usar o SQL Server Management Studio se armazenar seu pacote SSIS no catálogo do SSIS (SSISDB). Na janela Conectar ao Servidor, execute as seguintes ações:
- Em Nome do servidor, digite <o nome> do servidor.database.windows.net.
- Selecionar Opções>>.
- Em Conectar ao banco de dados, selecione SSISDB.
- Selecione Ligar.
- Expanda Catálogos do>Integration Services SSISDB> sua pasta >Projetos> seus pacotes de projeto >SSIS.
- Clique com o botão direito do mouse no pacote SSIS especificado a ser executado e selecione Relatórios padrão Relatórios>>Todas as Execuções.
- Verifique se o pacote foi executado.
Agende seus pipelines
Agora que seus pipelines funcionam como esperado, você pode criar gatilhos para executá-los em cadências especificadas. Para obter detalhes sobre como associar gatilhos a pipelines, consulte Configurar agendas para pipelines.
Na barra de ferramentas do pipeline, selecione Gatilho e, em seguida, selecione Novo/Editar.
No painel Adicionar gatilhos, selecione + Novo.
No painel Novo gatilho, execute as seguintes ações:
- Em Nome, insira um nome para o gatilho. No exemplo a seguir, trigger2 é o nome do gatilho.
- Em Tipo, selecione Agendar.
- Em Data de início, insira uma data e hora de início em UTC.
- Em Recorrência, insira uma cadência para o gatilho. No exemplo a seguir, é uma vez por dia.
- Se pretender que o gatilho tenha uma data de fim, selecione Especificar uma data de fim e, em seguida, selecione uma data e hora.
- Selecione Iniciar gatilho na criação para ativá-lo imediatamente após publicar todas as configurações do Data Factory.
- Selecione OK.
Na página Parâmetros de Execução do Acionador, revise todos os avisos e selecione Concluir.
Publique todas as configurações do Data Factory selecionando Publicar tudo na barra de ferramentas de fábrica.
Monitorar seus pipelines e gatilhos no portal do Azure
Para monitorar execuções de gatilho e de pipeline, use a guia Monitor no lado esquerdo da interface do usuário ou do aplicativo Data Factory. Para obter etapas detalhadas, consulte Monitorar visualmente o Azure Data Factory.
Para exibir as execuções de atividade associadas a uma execução de pipeline, selecione o primeiro link (Exibir execuções de atividade) na coluna Ações . Para o terceiro pipeline, três execuções de atividade aparecem: uma para cada atividade encadeada no pipeline (atividade da Web para iniciar seu IR, atividade Executar pacote SSIS para executar seu pacote e atividade da Web para parar seu IR). Para exibir o pipeline executado novamente, selecione o link Pipelines na parte superior.
Para exibir as execuções de gatilho, selecione Execuções de gatilho na lista suspensa em Execuções de pipeline na parte superior.
Monitorar seus pipelines e gatilhos usando o PowerShell
Use scripts como os exemplos a seguir para monitorar seus pipelines e gatilhos:
Obtenha o status de uma execução de pipeline:
Get-AzDataFactoryV2PipelineRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $myPipelineRun
Obtenha informações sobre um gatilho:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "myTrigger"
Obtenha o status de uma execução de gatilho:
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "myTrigger" -TriggerRunStartedAfter "2018-07-15" -TriggerRunStartedBefore "2018-07-16"
Criar e agendar um runbook de Automação do Azure que inicia e para um IR do Azure-SSIS
Nesta seção, você aprenderá a criar o runbook de Automação do Azure que executa um script do PowerShell para iniciar e parar seu IR do Azure-SSIS em uma agenda. Essas informações são úteis quando você deseja executar scripts adicionais antes ou depois de iniciar e parar seu IR para pré-processamento e pós-processamento.
Criar sua conta de Automação do Azure
Se você não tiver uma conta de Automação do Azure, crie uma seguindo as instruções nesta seção. Para obter etapas detalhadas, consulte Criar uma conta de Automação do Azure.
Como parte desse processo, você cria uma conta Run As do Azure (uma entidade de serviço no Microsoft Entra ID) e atribui a ela uma função de Colaborador em sua assinatura do Azure. Certifique-se de que é a mesma assinatura que contém seu data factory com o IR do Azure-SSIS. A Automação do Azure usará essa conta para autenticar no Azure Resource Manager e operar em seus recursos.
Abra o browser Microsoft Edge ou Google Chrome. Atualmente, a interface do usuário do Data Factory é suportada apenas nesses navegadores.
Inicie sessão no portal do Azure.
Selecione Novo no menu à esquerda, selecione Monitoramento + Gerenciamento e, em seguida, selecione Automação.
No painel Adicionar Conta de Automação, execute as seguintes ações:
- Em Nome, insira um nome para sua conta de Automação do Azure.
- Em Assinatura, selecione a assinatura que tem seu data factory com o IR do Azure-SSIS.
- Em Grupo de recursos, selecione Criar novo para criar um novo grupo de recursos ou selecione Usar existente para usar um existente.
- Em Local, selecione um local para sua conta de Automação do Azure.
- Para Criar conta Run As do Azure, selecione Sim. Uma entidade de serviço será criada em sua instância do Microsoft Entra e atribuída uma função de Colaborador em sua assinatura do Azure.
- Selecione Fixar no painel para exibir a conta permanentemente no painel do Azure.
- Selecione Criar.
Monitore o status de implantação de sua conta de Automação do Azure no painel do Azure e em notificações.
Confirme se a home page da sua conta de Automação do Azure é exibida. Isso significa que você criou a conta com sucesso.
Importar módulos do Data Factory
No menu à esquerda, na seção RECURSOS COMPARTILHADOS , selecione Módulos. Verifique se você tem Az.DataFactory e Az.Profile na lista de módulos. Ambos são obrigatórios.
Se você não tiver Az.DataFactory:
Vá para o módulo Az.DataFactory na Galeria do PowerShell.
Selecione Implantar na Automação do Azure, selecione sua conta de Automação do Azure e selecione OK.
Volte para visualizar os módulos na seção RECURSOS COMPARTILHADOS no menu à esquerda. Aguarde até que STATUS para o módulo Az.DataFactory mude para Disponível.
Se você não tem Az.Profile:
Vá para o módulo Az.Profile na Galeria do PowerShell.
Selecione Implantar na Automação do Azure, selecione sua conta de Automação do Azure e selecione OK.
Volte para visualizar os módulos na seção RECURSOS COMPARTILHADOS no menu à esquerda. Aguarde até que STATUS para o módulo Az.Profile mude para Disponível.
Criar seu runbook do PowerShell
Esta seção fornece etapas para criar um runbook do PowerShell. O script associado ao seu runbook inicia ou para o IR do Azure-SSIS, com base no comando especificado para o parâmetro OPERATION .
As etapas a seguir não fornecem os detalhes completos para criar um runbook. Para obter mais informações, consulte Criar um runbook.
Alterne para a guia Runbooks e selecione + Adicionar um runbook na barra de ferramentas.
Selecione Criar um novo runbook e execute as seguintes ações:
- Em Name, insira StartStopAzureSsisRuntime.
- Para Tipo de runbook, selecione PowerShell.
- Selecione Criar.
Copie e cole o seguinte script do PowerShell na janela de script do runbook. Salve e publique seu runbook usando os botões Salvar e Publicar na barra de ferramentas.
Nota
Este exemplo usa uma identidade gerenciada atribuída ao sistema. Se você estiver usando uma conta Run As (entidade de serviço) ou uma identidade gerenciada atribuída pelo usuário, consulte os scripts de exemplo da Automação do Azure para a parte de logon.
Habilite as permissões apropriadas de controle de acesso baseado em função (RBAC) para a identidade gerenciada dessa conta de automação. Para obter mais informações, consulte Funções e permissões para o Azure Data Factory.
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 #####"
Teste seu runbook selecionando o botão Iniciar na barra de ferramentas.
No painel Iniciar Runbook, execute as seguintes ações:
- Para RESOURCEGROUPNAME, insira o nome do grupo de recursos que tem seu data factory com o IR do Azure-SSIS.
- Para DATAFACTORYNAME, insira o nome do seu data factory com o IR do Azure-SSIS.
- Para AZURESSISNAME, insira o nome do IR do Azure-SSIS.
- Para OPERATION, digite START.
- Selecione OK.
No painel Trabalho, selecione o bloco Saída. No painel Saída, aguarde a mensagem ##### Concluído ##### depois de ver ##### Iniciando #####. Iniciar um IR do Azure-SSIS leva cerca de 20 minutos. Feche o painel Trabalho e volte para a página Runbook .
Repita as duas etapas anteriores usando STOP como o valor para OPERATION. Inicie seu runbook novamente selecionando o botão Iniciar na barra de ferramentas. Insira seu grupo de recursos, data factory e nomes de IR do Azure-SSIS. Para OPERATION, digite STOP. No painel Saída, aguarde a mensagem ##### Concluído ##### depois de ver ##### Parando #####. Parar um IR do Azure-SSIS não demora tanto quanto iniciá-lo. Feche o painel Trabalho e volte para a página Runbook .
Você também pode acionar seu runbook através de um webhook. Para criar um webhook, selecione o item de menu Webhooks . Ou você pode criar o webhook em uma agenda selecionando o item de menu Agendas , conforme especificado na próxima seção.
Crie agendas para seu runbook iniciar e parar um IR do Azure-SSIS
Na seção anterior, você criou um runbook de Automação do Azure que pode iniciar ou parar um IR do Azure-SSIS. Nesta seção, você cria duas agendas para seu runbook. Ao configurar a primeira agenda, especifique START para OPERATION. Ao configurar o segundo, especifique STOP para OPERATION. Para obter etapas detalhadas para criar agendas, consulte Criar uma agenda.
Na página Runbook, selecione Agendas e, em seguida, selecione + Adicionar uma agenda na barra de ferramentas.
No painel Schedule Runbook, execute as seguintes ações:
- Selecione Vincular uma agenda ao seu runbook.
- Selecione Criar uma nova agenda.
- No painel Nova Agenda, insira Iniciar IR diariamente para Nome.
- Em Inícios, insira um horário que esteja alguns minutos após o horário atual.
- Em Recorrência, selecione Recorrente.
- Para Repetir sempre, digite 1 e selecione Dia.
- Selecione Criar.
Alterne para a guia Parâmetros e execute configurações . Especifique seu grupo de recursos, data factory e nomes de IR do Azure-SSIS. Em OPERATION, digite START e selecione OK. Selecione OK novamente para ver a programação na página Agendas do seu runbook.
Repita as duas etapas anteriores para criar uma agenda chamada Stop IR diariamente. Insira um horário que seja pelo menos 30 minutos após o horário especificado para a agenda diária Start IR. Em OPERATION, digite STOP e selecione OK. Selecione OK novamente para ver a programação na página Agendas do seu runbook.
Na página Runbook, selecione Jobs no menu à esquerda. A página que se abre lista os trabalhos criados por suas agendas nos horários especificados, juntamente com seus status. Você pode ver os detalhes do trabalho, como sua saída, semelhante ao que apareceu depois que você testou seu runbook.
Quando terminar o teste, desative suas agendas editando-as. Selecione Agendas no menu à esquerda, selecione Iniciar IR diariamente/Parar IR diariamente e, em seguida, selecione Não para Ativado.
Conteúdos relacionados
Veja a seguinte postagem no blog:
Veja os artigos seguintes da documentação do SSIS: