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 indiretamente
Agendar um pacote indiretamente como parte de um pipeline do Azure Data Factory
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:
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.
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.
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
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
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.
No SQL Server Management Studio, conecte-se ao banco de dados do SQL Server local no qual você deseja criar o trabalho.
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.
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.
Na caixa de diálogo Nova Etapa do Trabalho, selecione
SSISDB
como o Banco de dados.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
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.