Published on

November 22, 2011

Comprendre les variables de SQL Server Integration Services

SQL Server Integration Services (SSIS) est un outil puissant pour l’intégration de données et l’automatisation des flux de travail. Lorsque vous travaillez avec SSIS, vous pouvez rencontrer différentes techniques et méthodes pour accéder aux variables dans une tâche de script ou un composant de script. Cependant, il est important de comprendre que la plupart du temps, la méthode simple est suffisante et les techniques avancées ne sont pas nécessaires.

La confusion

De nombreux articles et billets de blog discutent de techniques avancées telles que l’utilisation des méthodes LockOneForRead, LockOneForWrite, LockForRead, LockForWrite et GetVariables pour accéder aux variables SSIS dans une tâche de script ou un composant de script. Bien que ces méthodes puissent être utiles dans des scénarios spécifiques, elles sont souvent excessives et ne sont pas nécessaires dans la plupart des situations.

La raison pour laquelle ces techniques avancées sont largement discutées est qu’elles traitent des cas particuliers où la méthode simple peut ne pas fonctionner comme prévu. Cependant, s’appuyer sur ces méthodes nécessite une compréhension approfondie de leur fonctionnalité, de la séquence appropriée des appels de méthode et de la nécessité d’appeler Unlock après utilisation. Cette complexité peut entraîner de la confusion et des erreurs potentielles.

La méthode simple

SSIS offre un moyen simple d’accéder aux variables sans écrire de code. Dans la tâche de script et le composant de script, vous pouvez utiliser les propriétés ReadOnlyVariables et ReadWriteVariables pour spécifier les variables avec lesquelles vous souhaitez travailler.

Par exemple, dans la tâche de script, vous pouvez simplement taper le nom de variable entièrement qualifié ou le sélectionner dans la liste exposée par le bouton de points de suspension (…) dans les propriétés ReadOnlyVariables ou ReadWriteVariables. Ces variables seront ensuite disponibles dans la collection Dts.Variables dans votre code.

Dans le composant de script, le processus est similaire. Vous pouvez taper le nom de variable entièrement qualifié ou le sélectionner dans la liste des propriétés ReadOnlyVariables ou ReadWriteVariables. L’accès à ces variables dans le script est plus convivial par rapport aux méthodes avancées.

Lecture et écriture de variables

Pour lire une variable appelée “StringVar” dans une tâche de script, vous pouvez utiliser le code C# suivant :

// Code C# pour lire une variable SSIS
string scriptVariable;
scriptVariable = (string)Dts.Variables["User::StringVar"].Value;

Pour le code VB, la syntaxe serait :

' Code VB pour lire une variable SSIS
Dim scriptVariable As String
scriptVariable = Dts.Variables("User::StringVar").Value

De même, pour écrire dans la même variable, vous pouvez utiliser le code suivant :

// Code C# pour écrire dans une variable SSIS
Dts.Variables["User::StringVar"].Value = "Nouvelle valeur";
' Code VB pour écrire dans une variable SSIS
Dts.Variables("User::StringVar").Value = "Nouvelle valeur"

Le processus est identique dans le composant de script, la seule différence étant la syntaxe pour accéder aux variables dans le script.

Meilleures pratiques

Alors que la méthode simple est suffisante pour la plupart des scénarios, voici quelques meilleures pratiques à garder à l’esprit lors de l’utilisation de variables dans SSIS :

  1. Utilisez les propriétés ReadOnlyVariables et ReadWriteVariables au lieu des méthodes Lock*. Cela permet non seulement de signaler quelles variables vous utilisez dans vos scripts, mais garantit également un verrouillage approprié des variables.
  2. Dans les composants de script, lisez les variables dans la méthode PreExecute plutôt que dans ProcessInputRow. La lecture de variables entraîne un coût de performance en raison de la barrière COM/.Net. Si vous avez besoin de la valeur de la variable pendant le traitement des lignes, lisez-la dans la méthode PreExecute et stockez-la dans une variable de niveau module pour un accès efficace.
  3. Dans les tâches de script, lisez ou écrivez dans les variables une seule fois. Tout comme le point précédent, traverser la barrière COM plusieurs fois peut avoir un impact sur les performances. Sortez la valeur de la variable SSIS et stockez-la localement pour une utilisation ultérieure. Lors de l’écriture, évitez d’utiliser la variable SSIS comme emplacement de stockage intermédiaire et utilisez plutôt une variable locale, en attribuant la valeur finale une seule fois.
  4. Dans les composants de script, si vous avez besoin de lire une variable, de traiter des données, puis d’écrire à nouveau dans la même variable, envisagez d’utiliser deux variables distinctes à la place. Cette approche simplifie le script et garantit la clarté des états “avant” et “après” de la variable.

En suivant ces meilleures pratiques, vous pouvez optimiser vos packages SSIS et améliorer leur maintenabilité.

Conclusion

Comprendre comment travailler avec des variables dans SQL Server Integration Services est essentiel pour construire des flux de travail d’intégration de données efficaces et fiables. Bien que des techniques avancées existent, la méthode simple utilisant les propriétés ReadOnlyVariables et ReadWriteVariables est souvent suffisante pour la plupart des scénarios. En respectant les meilleures pratiques et en évitant une complexité inutile, vous pouvez rationaliser votre processus de développement SSIS et obtenir des résultats optimaux.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.