Compartir a través de


Programar la ejecución de paquetes de SQL Server Integration Services (SSIS) implementados en Azure

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

Puede programar la ejecución de los paquetes SSIS implementados en el catálogo de SSISDB en un servidor de Azure SQL Database si selecciona uno de los métodos que se describen en este artículo. Puede programar un paquete directamente, o bien programarlo de manera indirecta como parte de una canalización de Azure Data Factory. Para obtener información general sobre SSIS en Azure, vea Migrar cargas de trabajo de SQL Server Integration Services a la nube mediante lift-and-shift.

Programar un paquete con SSMS

En SQL Server Management Studio (SSMS), puede hacer clic con el botón derecho en un paquete implementado en la base de datos del catálogo de SSIS, SSISDB, y seleccionarProgramación para abrir el cuadro de diálogo Nueva programación. Para obtener más información, vea Programar paquetes SSIS en Azure con SSMS.

Esta característica require SQL Server Management Studio versión 17.7 o superior. Para obtener la versión más reciente de SSMS, vea Download SQL Server Management Studio (SSMS) [Descargar SQL Server Management Studio (SSMS)].

Programar un paquete con trabajos elásticos de SQL Database

Para obtener más información acerca de los trabajos elásticos en SQL Database, consulte Administración de bases de datos escaladas horizontalmente en la nube.

Requisitos previos

Para poder usar trabajos elásticos para programar paquetes SSIS almacenados en la base de datos del catálogo de SSISDB en un servidor Azure SQL Database, debe realizar las acciones siguientes:

  1. Instale y configure los componentes de trabajos de Elastic Database. Para obtener más información, consulte Información general sobre la instalación de trabajos de Elastic Database.

  2. Cree credenciales de ámbito de base de datos que los trabajos puedan usar para enviar comandos a la base de datos del catálogo de SSIS. Para obtener más información, vea CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL) [CREAR CREDENCIAL DE ÁMBITO DE BASE DE DATOS (Transact-SQL)].

Crear un trabajo elástico

Cree un trabajo mediante un script Transact-SQL similar al que se muestra en el ejemplo siguiente:

-- 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 

Programar un paquete con el Agente SQL Server local

Para obtener más información, sobre el Agente SQL Server, consulte Trabajos del Agente SQL Server para paquetes.

Requisitos previos: creación de un servidor vinculado

Para poder usar el Agente SQL Server de forma local para programar la ejecución de paquetes almacenados en un servidor de Azure SQL Database, tiene que agregar el servidor de SQL Database a su SQL Server local como un servidor vinculado. En el ejemplo siguiente se usa el Controlador Microsoft OLE DB para SQL Server.

  1. Configuración del 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. Configuración de las credenciales del 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. Configuración de las opciones del servidor vinculado

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

Para obtener más información, consulte Crear servidores vinculados y Servidores vinculados.

Crear un trabajo del Agente SQL Server

Para programar un paquete con el Agente SQL Server de forma local, cree un trabajo con un paso de trabajo que llame a los procedimientos almacenados [catalog].[create_execution] y, a continuación, [catalog].[start_execution] del catálogo de SSIS. Para obtener más información, consulte Trabajos del Agente SQL Server para paquetes.

  1. En SQL Server Management Studio, conéctese a la base de datos de SQL Server local en la que desee crear el trabajo.

  2. Haga doble clic en el nodo Agente SQL Server, seleccione Nuevo y, a continuación, seleccione Trabajo para abrir el cuadro de diálogo Nuevo trabajo.

  3. En el cuadro de diálogo Nuevo trabajo, seleccione la página Pasos y, a continuación, seleccione Nuevo para abrir el cuadro de diálogo Nuevo paso de trabajo.

  4. En el cuadro de diálogo Nuevo paso de trabajo, seleccione SSISDB en Base de datos.

  5. En el campo Comando, escriba un script Transact-SQL similar al que se muestra en el ejemplo siguiente:

    -- 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. Termine de configurar y programar el trabajo.

Programar un paquete como parte de una canalización de Azure Data Factory

Puede programar un paquete de manera indirecta mediante un desencadenador para ejecutar una canalización de Azure Data Factory en la que se ejecute un paquete SSIS.

Para programar una canalización de Azure Data Factory, use uno de los desencadenadores siguientes:

Para ejecutar un paquete SSIS como parte de una canalización Azure Data Factory, use una de las siguientes actividades:

Pasos siguientes

Revise las opciones para ejecutar paquetes SSIS que se implementen en Azure. Para obtener más información, vea Ejecutar paquetes SSIS en Azure.