Créer une pause dans un package SSIS avec une requête T-SQL et la fonction WAIT FOR DELAY.
L’ETL SSIS de Microsoft ne propose pas de composant natif dédié pour créer une pause dans un package SSIS. Qu’elle soit de quelques secondes ou quelques minutes dans un flux de contrôle entre 2 séquences par exemple. Pour marquer un temps d’arrêt entre l’exécution de plusieurs tâches SSIS, de requêtes SQL, ou de conteneurs, une bonne alternative est de créer une boucle en code C#, basée sur le temps. De la même manière, avec le composant SSIS Script Task, il est possible d’utiliser les fonctions de temps pour paramétrer la pause et attendre le temps souhaité.
Toutefois une solution encode plus simple est d’utiliser la tâche Execute SQL Task et la fonction T-SQL WAITFOR DELAY. Ou encore de programmer le moment auquel le package doit être finir son exécution. Cette page liste tous les tutoriels pour apprendre les bases de Microsoft SSIS.
Voici un exemple de script Transact-SQL pour ajouter simplement une pause de quelques secondes, minutes ou quelques heures avant de passer au composant suivant. Il permet par exemple d’attendre qu’une copie de fichiers ou de chargement se finisse totalement. Pour cela, paramétrer les heures, les minutes et les secondes directement dans le code SQL ou en dur dans une variable SSIS.
Table of Contents
1. Ajouter et paramétrer les composant SSIS
Pour commencer, créer un projet SSIS avec Visual Studio 2019. Ensuite, configurer une connexion OLE DB vers une base de données SQL Server, ici c’est une base locale et c’est donc localhost qui est utilisé comme serveur. Puis ajouter les composants suivants :
- Un premier flux de données.
- Le composant Execute SQL Task (Exécution de tâche SQL) entre les deux flux de données pour temporiser l’exécution.
- Le deuxième flux de données SSIS.
2. Configurer la tâche SSIS d’exécution de code SQL
Configurer le composant avec une requête T-SQL pour attendre le temps souhaité, avec un format de type : HH:MM:SS, dans cet ordre :
- Heures
- Minutes
- Secondes
Utiliser cet exemple de code SQL pour créer une pause de 5 secondes avec un script T-SQL.
WAITFOR DELAY '00:00:05';
3. Exécuter le package SSIS et observer le temps de pause
Une fois la pause en place, exécuter le package contenant les flux de données et observer le temps de pause de 5 secondes.
Une fois la pause terminée, les tâches suivantes s’exécutent normalement. Il est également possible de gérer ce script également avec des variables SSIS pour plus de flexibilité.
Conclusion sur les pauses dans les packages SSIS
Utiliser un script SQL Server est le moyen le plus simple d’implémenter une pause dans un package SSIS. Il ne permet pas de régler les besoins plus complexes comme attendre le dépôt d’un fichier texte par exemple. Mais le script peut être utilisé dans une boucle avec des contraintes de précédence et des variables pour parvenir à la solution.
Be the first to comment