Blog > Integration Services
Créer des colonnes dérivées d'une date dans SSIS


Dans le cadre d'un projet, j'ai eu besoin de créer des colonnes dérivées d'une date dans SSIS. J'en profite donc pour partager avec vous les fonctions de calcul.
Dans les lignes de code ci-dessous, il suffit de remplacer MaDate par le nom de votre colonne Date dans la donnée d'entrée du composant.

Pour générer un libellé de mois :
(MONTH(MaDate)==1)?"Janvier":(MONTH(MaDate)==2)?"Février":(MONTH(MaDate)==3)?"Mars":(MONTH(MaDate)==4)?"Avril":(MONTH(MaDate)==5)?"Mai":(MONTH(MaDate)==6)?"Juin":(MONTH(MaDate)==7)?"Juillet":(MONTH(MaDate)==8)?"Août":(MONTH(MaDate)==9)?"Septembre":(MONTH(MaDate)==10)?"Octobre":(MONTH(MaDate)==11)?"Novembre":(MONTH(MaDate)==12)?"Décembre":"Erreur"

Pour générer un libellé de jour :
(DATEPART("dw",MaDate)==1)?"Lundi":(DATEPART("dw",MaDate)==2)?"Mardi":(DATEPART("dw",MaDate)==3)?"Mercredi":(DATEPART("dw",MaDate)==4)?"Jeudi":(DATEPART("dw",MaDate)==5)?"Vendredi":(DATEPART("dw",MaDate)==6)?"Samedi":(DATEPART("dw",MaDate)==7)?"Dimanche":"Erreur"

Pour générer un libellé de semestre :
(DATEPART("qq",MaDate) < 3)?"1er semestre":"2ème semestre"

Pour générer un libellé de trimestre:
(DATEPART("qq",MaDate)==1)?"1er trimestre":(DATEPART("qq",MaDate)==2)?"2ème trimestre":(DATEPART("qq",MaDate)==3)?"3ème trimestre":"4ème trimestre"

L'installation de packages SSIS


Il existe plusieurs modes d'installation et de déploiement des packages SSIS, voici les plus communs :

Déploiement par SQL Server Data Tools :
Lors de la phase de développement, l'outil SQL Server Data Tools permet de déployer directement le package sur un serveur.

Installation par SQL Server Management Studio :
L'agent SQL Server (le service SQL Agent) permet de planifier l'exécution de packages SSIS. L'outil SQL Server Management Studio permet de le configurer.

Installation par utilitaire :
Au moment de la génération du package, le compilateur créé un fichier ayant pour nom "[nom_du_projet].ispac" dans le dossier bin/Development. Il s'agit d'un utilitaire d'installation des packages. Il suffit généralement de spécifier la source des données et la cible d'installation.

Installation en ligne de commande :
L'exécutable DtExec.exe permet de déployer un package en ligne de commande.Ce qui permet de se passer de SQL Agent et d'utiliser un autre outil de planification.
Pour éviter d'apprendre la syntaxe par coeur, il existe une astuce : Dans SQL Server Management Studio, au moment de l'exécution du package, aller dans la partie "Ligne de commande" et récupérer la chaîne de caractères. Il suffit ensuite d'ajouter DtExec.exe devant cette chaîne paramètre.

Coach MSDN sur la BI


Pour avoir un aperçu rapide des outils BI de Microsoft, il existe des tutoriels téléchargeables. Pour le moment, ils n'existent des tutoriaux que pour SQL Server 2008 R2. Mais en attendant une correspondance avec 2012, les voici :Pour ma part, je conseil de faire les ateliers dans l'ordre SSIS, SSAS puis SSRS. Le développement d'un projet BI se déroule généralement dans cet ordre. Bien entendu, ces tutoriaux ne vous permettent que d'appréhender un peu l'interface des outils autour d'un projet très basique. Pour réaliser un réel projet BI, il faudra pousser bien plus long votre formation.

Requête dynamique dans un package SSIS


Dans SSIS, il est possible de créer des requêtes dynamiques exécutées pour chaque élément d'un flux.
Par exemple, on veut initialiser la valeur d'une colonne en fonction de l'identifiant de la table :
Mettre "Id=" [Colonne_Id] dans une colonne [Colonne_Description]

Pour cela :
  • Utiliser le composant "Colonne dérivée" pour créer une nouvelle donnée avec l'expression : "Id=" + (DT_WSTR,50) [Colonne_Id]
  • Utiliser le composant "Commande OLE DB" et écrire la requête suivante :
    UPDATE MaTable SET Colonne_Description = ? WHERE Colonne_Id = ?
  • Utiliser l'onglet "Mappage de colonnes" du composant pour mapper avec les bonnes données du flux. SSIS génère automatique des paramètres param_0 et param_1 qui correspondent aux ? rencontrés, dans l'ordre d'apparition.

1 2