Paramétrer un Lookup pour alléger les données mises en cache en Business Intelligence avec SSIS (SQL Server Integration Services)
Par Elros

Le , par Elros, Membre éclairé
Hello,

Afin de compléter l'un de mes anciens billets (SSIS : Lookup, Commande SQL avec paramètres et appel de procédure, etc.), je vais vous expliquer plus en détail comment gagner du temps et des ressources sur SSIS.

Nous allons créer un flux SSIS permettant de charger les n métiers d'un service. On pourrait faire une boucle pour charger tous les métiers de chaque service mais, on va passer par un paramètre projet.

Pour cela, nous ajoutons un nouveau paramètre "ServiceID" dans notre fichier : projet.params



Une fois notre paramètre créé, avec le service numéro 3 d'affecté, on peut créer notre package.
Dans la partie flux de contrôle, nous allons rendre paramétrable notre flux de données. Pour cela, il faut sélectionner la tâche de flux de données "METIER", trouver dans les propriétés la partie "Expressions" et cliquer sur les trois points.



Nous avons une première fenêtre où l'on choisit notre "Lookup" à paramétrer avec la propriété "SqlCommand". Puis, cliquer sur les trois points.



Une nouvelle fenêtre s'ouvre pour nous permettre de créer la requête paramétrée.
On peut retrouver notre paramètre projet "ServiceID" préfixé avec "$Project::", cela montre que c'est paramètre projet.

On crée la requête SQL en passant notre paramètre. L'éditeur d'expression attend du texte, on est obligé de convertir en chaîne de caractère notre paramètre qui initialement est un entier.
Nous pouvons évaluer l'expression pour vérifier que la requête est cohérente.



Une fois validé, nous avons un petit "Fx" qui apparaît au coin de notre tâche. Cela signifie que notre tâche est paramétrée.



Dans la partie flux de données, nous avons un petit triangle rouge/rose qui apparaît sur le "Lookup".
Initialement, ce triangle ne s'affiche pas mais, pour vous faciliter la vie je vous conseil d'utiliser un "Add-in" que je présente ici : BIDS Helper - Add-in Visual Studio



On vérifie que la requête jouée dans le "Lookup" correspond à notre paramètre. Nous pouvons constater que le "ServiceID" récupère bien la valeur 3 de notre paramètre.


Bon test


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Contacter le responsable de la rubrique Business Intelligence