Planifier l’exécution de packages SSIS (SQL Server Integration Services) déployés dans Azure

S’applique à :SQL Server SSIS Integration Runtime dans Azure Data Factory

Choisissez une des méthodes décrites dans cet article pour planifier l’exécution de packages SSIS déployés sur le catalogue SSISDB sur un serveur Azure SQL Database. Vous pouvez planifier un package soit directement, soit indirectement dans le cadre d’un pipeline Azure Data Factory. Pour obtenir une vue d’ensemble de SSIS sur Azure, consultez Effectuer un « lift-and-shift » des charges de travail SQL Server Integration Services vers le cloud.

Planifier un package avec SSMS

Dans SQL Server Management Studio (SSMS), vous pouvez cliquer avec le bouton droit sur un package déployé dans la base de données du catalogue SSIS, SSISDB, puis sélectionner Planifier pour ouvrir la boîte de dialogue Nouvelle planification. Pour plus d’informations, consultez Planifier des packages SSIS dans Azure avec SSMS.

Cette fonctionnalité nécessite SQL Server Management Studio version 17.7 ou ultérieure. Pour obtenir la dernière version de SSMS, consultez Télécharger SQL Server Management Studio (SSMS).

Planifier un package avec des travaux élastiques SQL Database

Pour plus d’informations sur les travaux élastiques SQL Database, consultez Gestion des bases de données cloud avec augmentation de la taille des instances.

Prérequis

Pour pouvoir utiliser des travaux élastiques afin de planifier des packages SSIS stockés dans la base de données de catalogues SSISDB sur un serveur Azure SQL Database, vous devez effectuer les actions suivantes :

  1. Installez et configurez les tâches de base de données élastique. Pour plus d’informations, consultez Vue d’ensemble de l’installation des tâches de base de données élastique.

  2. Créez des informations d’identification au niveau de la base de données pour permettre aux travaux d’envoyer des commandes à la base de données de catalogues SSIS. Pour plus d’informations, consultez CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

Créer un travail élastique

Créez le travail à l’aide d’un script Transact-SQL similaire au script indiqué dans l’exemple suivant :

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

Planifier un package avec SQL Server Agent en local

Pour plus d’informations sur SQL Server Agent, consultez Travaux de SQL Server Agent pour les packages.

Prérequis : Créer un serveur lié

Avant de pouvoir utiliser SQL Server Agent localement pour planifier l’exécution des packages stockés sur un serveur Azure SQL Database, vous devez ajouter le serveur SQL Database à votre serveur SQL Server local en tant que serveur lié. L’exemple ci-dessous utilise Microsoft OLE DB Driver pour SQL Server.

  1. Configurer le serveur lié

    -- 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. Configurer les informations d’identification du serveur lié

    -- 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. Configurer les options du serveur lié

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

Pour plus d’informations, consultez Créer des serveurs liés et Serveurs liés.

Créer un travail de SQL Server Agent

Pour planifier un package avec SQL Server Agent localement, créez un travail avec une étape de travail qui appelle les procédures stockées du catalogue SSIS [catalog].[create_execution], puis [catalog].[start_execution]. Pour plus d’informations, consultez Travaux de SQL Server Agent pour les packages.

  1. Dans SQL Server Management Studio, connectez-vous à la base de données SQL Server locale sur laquelle vous souhaitez créer le travail.

  2. Cliquez avec le bouton droit sur le nœud SQL Server Agent, sélectionnez Nouveau, puis Travail pour ouvrir la boîte de dialogue Nouveau travail.

  3. Dans la boîte de dialogue Nouveau travail, sélectionnez la page Étapes, puis Nouveau pour ouvrir la boîte de dialogue Nouvelle étape du travail.

  4. Dans la boîte de dialogue Nouvelle étape du travail, sélectionnez SSISDB en tant que Base de données.

  5. Dans le champ Commande, entrez un script Transact-SQL similaire au script figurant dans l’exemple suivant :

    -- 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. Finissez de configurer et de planifier le travail.

Planifier un package dans le cadre d’un pipeline Azure Data Factory

Vous pouvez planifier un package indirectement à l’aide d’un déclencheur pour exécuter un pipeline Azure Data Factory qui exécute un package SSIS.

Pour planifier un pipeline Data Factory, utilisez l’un des déclencheurs suivants :

Pour exécuter un package SSIS dans le cadre d’un pipeline Data Factory, utilisez l’une des activités suivantes :

Étapes suivantes

Passez en revue les options disponibles pour exécuter des packages SSIS déployés sur Azure. Pour plus d’informations, consultez Exécuter des packages SSIS dans Azure.