Compartilhar via


Agendar a execução de pacotes SSIS (SQL Server Integration Services) implantados no Azure

Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory

É possível agendar a execução dos pacotes do SSIS implantados no Catálogo do SSISDB em um servidor de Banco de Dados SQL do Azure escolhendo um dos métodos descritos neste artigo. É possível agendar um pacote direta ou indiretamente como parte de um pipeline do Azure Data Factory. Para obter uma visão geral sobre o SSIS no Azure, consulte Migrar cargas de trabalho do SQL Server Integration Services por lift-and-shift para a nuvem.

Agendar um pacote com o SSMS

No SSMS (SQL Server Management Studio), clique com o botão direito do mouse em um pacote implantado no banco de dados do Catálogo do SSIS, SSISDB, e selecione Agendar para abrir a caixa de diálogo Novo agendamento. Para obter mais informações, consulte Agendar pacotes SSIS no Azure com o SSMS.

Esse recurso exige o SQL Server Management Studio versão 17.7 ou superior. Para obter a versão mais recente do SSMS, confira Baixar o SSMS (SQL Server Management Studio).

Agendar um pacote com trabalhos elásticos de Banco de Dados SQL

Para obter mais informações sobre trabalhos elásticos no Banco de Dados SQL, consulte Gerenciando bancos de dados de nuvem expandidos.

Pré-requisitos

Antes que você possa usar trabalhos elásticos para agendar pacotes do SSIS armazenados no banco de dados de catálogo do SSISDB em um servidor de Banco de Dados SQL do Azure, você deverá fazer o seguinte:

  1. Instale e configure os componentes de trabalhos de banco de dados elástico. Para obter mais informações, consulte Visão geral da instalação de trabalhos de Banco de Dados Elástico.

  2. Crie credenciais no escopo do banco de dados que os trabalhos possam usar para enviar comandos para o banco de dados de catálogo do SSIS. Para obter mais informações, veja CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

Criar um trabalho elástico

Crie o trabalho usando um script Transact-SQL semelhante ao mostrado no exemplo a seguir:

-- Create Elastic Jobs target group
EXEC jobs.sp_add_target_group 'TargetGroup'

-- Add Elastic Jobs target group member
EXEC jobs.sp_add_target_group_member @target_group_name='TargetGroup',
    @target_type='SqlDatabase', @server_name='YourSQLDBServer.database.windows.net',
    @database_name='SSISDB' 

-- Add a job to schedule SSIS package execution
EXEC jobs.sp_add_job @job_name='ExecutePackageJob', @description='Description', 
    @schedule_interval_type='Minutes', @schedule_interval_count=60

-- Add a job step to create/start SSIS package execution using SSISDB catalog stored procedures
EXEC jobs.sp_add_jobstep @job_name='ExecutePackageJob', 
    @command=N'DECLARE @exe_id bigint 
        EXEC [SSISDB].[catalog].[create_execution]
            @folder_name=N''folderName'', @project_name=N''projectName'',
            @package_name=N''packageName'', @use32bitruntime=0,
            @runinscaleout=1, @useanyworker=1, 
            @execution_id=@exe_id OUTPUT         
        EXEC [SSISDB].[catalog].[start_execution] @exe_id, @retry_count=0', 
    @credential_name='YourDBScopedCredentials', 
    @target_group_name='TargetGroup' 

-- Enable the job schedule 
EXEC jobs.sp_update_job @job_name='ExecutePackageJob', @enabled=1, 
    @schedule_interval_type='Minutes', @schedule_interval_count=60 

Agendar um pacote com o SQL Server Agent local

Para obter mais informações sobre o SQL Server Agent, consulte Trabalhos do SQL Server Agent para pacotes.

Pré-requisito – criar um servidor vinculado

Antes de usar o SQL Server Agent local para agendar a execução de pacotes armazenados em um servidor de Banco de Dados SQL do Azure, você precisa adicionar o servidor de Banco de Dados SQL ao seu SQL Server local como um servidor vinculado. O exemplo abaixo usa o Driver do Microsoft OLE DB para SQL Server.

  1. Configurar o servidor vinculado

    -- Add the SSISDB database on your Azure SQL Database as a linked server to your SQL Server on premises
    EXEC sp_addlinkedserver
        @server='myLinkedServer', -- Name your linked server
        @srvproduct='',     
        @provider='MSOLEDBSQL', -- Microsoft OLE DB Driver for SQL Server
        @datasrc='<server_name>.database.windows.net', -- Add your Azure SQL Database server endpoint
        @location='',
        @provstr='',
        @catalog='SSISDB'  -- Add SSISDB as the initial catalog
    
  2. Configurar as credenciais do servidor vinculado

    -- Add your Azure SQL Database server admin credentials
    EXEC sp_addlinkedsrvlogin
        @rmtsrvname = 'myLinkedServer',
        @useself = 'false',
        @rmtuser = 'myUsername', -- Add your server admin username
        @rmtpassword = 'myPassword' -- Add your server admin password
    
  3. Configurar as opções do servidor vinculado

    EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;
    

Para obter mais informações, consulte Criar servidores vinculados e Servidores vinculados.

Criar um trabalho do SQL Server Agent

Para agendar um pacote com o SQL Server Agent local, crie um trabalho com uma etapa de trabalho que chama os procedimentos armazenados do catálogo SSIS [catalog].[create_execution] e depois [catalog].[start_execution]. Para obter mais informações, consulte Trabalhos do SQL Server Agent para pacotes.

  1. No SQL Server Management Studio, conecte-se ao banco de dados do SQL Server local no qual você deseja criar o trabalho.

  2. Clique com o botão direito do mouse no nó SQL Server Agent, selecione Novo e, em seguida, selecione Trabalho para abrir a caixa de diálogo Novo Trabalho.

  3. Na caixa de diálogo Novo Trabalho, selecione a página Etapas e, em seguida, selecione Novo para abrir a caixa de diálogo Nova Etapa do Trabalho.

  4. Na caixa de diálogo Nova Etapa do Trabalho, selecione SSISDB como o Banco de dados.

  5. No campo Comando, insira um script do Transact-SQL semelhante ao mostrado no exemplo a seguir:

    -- T-SQL script to create and start SSIS package execution using SSISDB stored procedures
    DECLARE    @return_value int, @exe_id bigint 
    
    EXEC @return_value = [YourLinkedServer].[SSISDB].[catalog].[create_execution] 
        @folder_name=N'folderName', @project_name=N'projectName', 
        @package_name=N'packageName', @use32bitruntime=0, @runincluster=1, @useanyworker=1,
        @execution_id=@exe_id OUTPUT 
    
    EXEC [YourLinkedServer].[SSISDB].[catalog].[set_execution_parameter_value] @exe_id,
        @object_type=50, @parameter_name=N'SYNCHRONIZED', @parameter_value=1
    
    EXEC [YourLinkedServer].[SSISDB].[catalog].[start_execution] @execution_id=@exe_id
    
  6. Conclua a configuração e o agendamento do trabalho.

Agendar um pacote como parte de um pipeline do Azure Data Factory

É possível agendar um pacote indiretamente usando um gatilho para executar um pipeline do Azure Data Factory que executa um pacote do SSIS.

Para agendar um pipeline do Data Factory, use um dos seguintes gatilhos:

Para executar um pacote do SSIS como parte de um pipeline do Data Factory, use uma das seguintes atividades:

Próximas etapas

Revise as opções para executar pacotes do SSIS implantados no Azure. Para obter mais informações, consulte Executar pacotes SSIS no Azure.