Partilhar via


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

Se aplica a:SQL Server SSIS Integration Runtime no Azure Data Factory

Você pode agendar a execução de pacotes SSIS implantados no Catálogo SSISDB em um servidor do Banco de Dados SQL do Azure escolhendo um dos métodos descritos neste artigo. Você pode agendar um pacote diretamente ou agendar um pacote indiretamente como parte de um pipeline do Azure Data Factory. Para obter uma visão geral sobre o SSIS no Azure, consulte Elevar e deslocar cargas de trabalho do SQL Server Integration Services para a nuvem.

Agendar um pacote com o SSMS

No SQL Server Management Studio (SSMS), você pode clicar com o botão direito do rato em um pacote implantado no banco de dados do Catálogo SSIS, SSISDBe selecionar Agendar para abrir a caixa de diálogo Novo cronograma. Para obter mais informações, consulte Programar pacotes SSIS no Azure com o SSMS.

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

Agendar um pacote com trabalhos elásticos do Banco de dados SQL

Para saber mais sobre trabalhos elásticos no Banco de dados SQL, veja Gerenciando bancos de dados em nuvem escalonados.

Pré-requisitos

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

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

  2. Crie credenciais de escopo de base de dados que podem ser utilizadas pelas tarefas para enviar comandos para a base de dados do Catálogo SSIS. Para obter mais informações, consulte CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

Criar um trabalho elástico

Crie o trabalho usando um script Transact-SQL semelhante ao script 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 localmente com o SQL Server Agent

Para obter mais informações sobre o SQL Server Agent, consulte SQL Server Agent Jobs for Packages.

Pré-requisito - Criar um servidor vinculado

Antes de poder usar o SQL Server Agent no local para agendar a execução de pacotes armazenados em um servidor do Banco de Dados SQL do Azure, você precisa adicionar o servidor do Banco de Dados SQL ao SQL Server local como um servidor vinculado. O exemplo abaixo usa o driver 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 credenciais de servidor vinculado

    Substitua <password> por uma senha válida.

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

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

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

Criar uma tarefa do SQL Server Agent

Para agendar um pacote com o SQL Server Agent no local, crie um trabalho com um passo de trabalho que chame os procedimentos armazenados do Catálogo SSIS [catalog].[create_execution] e, em seguida, [catalog].[start_execution]. Para obter mais informações, consulte SQL Server Agent Jobs for Packages.

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

  2. Clique com o botão direito do rato no nó do SQL Server Agent, selecione Novae selecione Tarefa para abrir a caixa de diálogo Nova Tarefa.

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

  4. Na caixa de diálogo Etapa de Novo Trabalho , selecione SSISDB como o Banco de Dados .

  5. No campo de comando, insira um script Transact-SQL semelhante ao script 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

Você pode agendar um pacote indiretamente usando um gatilho para executar um pipeline do Azure Data Factory que executa um pacote SSIS.

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

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

Próximos passos

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