Sie sind auf Seite 1von 27

Prsentation de SQL Server

Integration Services : SSIS


par Fleur-Anne BLAIN (fablain.developpez.com)
Date de publication : 07/11/2007
Dernire mise jour : 07/11/2007
Ce tutoriel a pour but de vous prsenter les services d'intgration de donnes de Microsoft
SQL Server 2005, soit SSIS.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 2 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Introduction.................................................................................................................................................................. 3
I - Qu'est-ce que SSIS?.............................................................................................................................................. 3
II - L'environnement SSIS........................................................................................................................................... 3
II-A - Cration d'un projet SSIS.............................................................................................................................3
II-B - L'espace de travail SSIS.............................................................................................................................. 4
II-C - La boite outils SSIS.................................................................................................................................. 5
III - Notre exemple de projet SSIS............................................................................................................................. 6
III-A - Objectifs....................................................................................................................................................... 6
III-B - Notre source de donnes : un fichier plat................................................................................................... 7
III-C - Destination de l'import : Base de donnes MS SQL Server....................................................................... 7
IV - Gestion des sources de donnes........................................................................................................................ 7
IV-A - Cration d'une tche................................................................................................................................... 7
IV-B - Gestion de la source de donnes...............................................................................................................8
V - Transformation des donnes.............................................................................................................................. 12
V-A - Principes de notre transformation de donnes.......................................................................................... 12
V-B - Script de transformation............................................................................................................................. 13
VI - Destination des donnes................................................................................................................................... 18
VI-A - Configuration de la destination des donnes : Base de donnes MS SQL Server................................... 18
VI-B - Import des donnes et vrifications.......................................................................................................... 22
VII - Dploiement du package SSIS......................................................................................................................... 23
Conclusion................................................................................................................................................................. 27
Liens utiles.................................................................................................................................................................27
Remerciements.......................................................................................................................................................... 27
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 3 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Introduction
Afin de garder un systme d'information cohrent et de simplifier la vie des informaticiens, Microsoft SQL Server
2005 est dot d'un nouvel outil d'intgration de donnes (d'une source en passant par une transformation optionnelle
des donnes, vers une destination) appell SSIS. Il permet de communiquer des donnes de systmes d'information
diffrents ce qui reprsente bien les besoins actuels en terme de systme d'information, de transfert de donnes et
permet de garder une cohrence.
Prenons le cas d'une entreprise qui dispose d'une application. Celle-ci me gnre des donnes, dans notre cas
sous forme de fichier plat, que nous souhaitons intgrer dans notre base de donnes. Notre problmatique tant de
rcuprer ces informations, de vrifier leurs formats s'ils correspondent ou non aux formats de donnes de notre
destination et enfin de les intgrer.
Bien entendu, si notre application nous avait gnr un autre type de source de donnes, cela fonctionne aussi
car SSIS gre plusieurs types de sources de donnes tels que les fichiers plats, les fichiers Excel, XML mais nous
dcouvrirons tout cela plus tard.
Nous allons explorer SSIS tout d'abord travers une prsentation. Nous nous familiariserons ensuite avec
l'environnement de conception et d'utilisation de SSIS. Enfin, nous raliserons un exemple de projet SSIS complet.
I - Qu'est-ce que SSIS?
SSIS est un outil d'extraction, de transformation et de chargement de donnes, en bref ce que l'on appelle un ETL.
On extrait d'une source de donnes, puis suit la transformation si besoin, pour ensuite injecter ces donnes vers MS
SQL Server ou encore d'autres destinations.
SSIS est l'amlioration de la version 2005 d'un outil souvent plus connu, dans les versions antrieures 2005, sous
le nom de Data Transformation Services, soit DTS.
Pr-requis :

Microsoft Visual Studio Developper/Enterprise Edition

Microsoft SQL Server 2005 Standard/Enterprise Edition


De plus, savoir manipuler Visual Studio et connatre quelques notions de base en base de donnes (en particulier
les types de donnes existants) est un plus.
II - L'environnement SSIS
II-A - Cration d'un projet SSIS
Comme il est stipul dans les pr-requis, pour travailler avec SSIS il vous faut un Microsoft Visual Studio
(fonctionnalit non disponible malheureusement avec les versions express). L'environnement de conception d'un
package SSIS est donc Visual Studio avec, si possible, un accs votre serveur de donnes. Ceci en vue au minimum
de contrler que l'import s'est bien effectu (en plus des logs de progression disponiblent avec votre package SSIS).
Pour crer votre projet, slectionnez Business Intelligence :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 4 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Crez alors votre nouveau projet de type Integration Services. Dcouvrons alors notre environnement de travail SSIS,
que nous allons dtailler :
Comme nous pouvons le constater dans l'explorateur de solution, notre projet contient ds sa cration un package :
package.dtx. C'est dans ce package que nous droulerons de manire ordonne la slection, la transformation et
l'importation des donnes.
II-B - L'espace de travail SSIS
L'espace de travail (central) est divis en 4 parties sous forme d'onglet :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 5 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/

Le Control Flow ou flux de contrle : permet de contrler, d'ordonner et dissocier les tches raliser par
le package.

Le Data Flow ou flux de donnes : permet de contrler, d'ordonner et dissocier les flux de donnes traiter.
C'est cette tape que la slection, la transformation et l'insertion des donnes sont ralises.

L'Event Handlers ou gestionnaire d'vnements : Des vnements peuvent tre associs aux lments
du package. Cet onglet permet donc de grer les vnements comme par exemple un traitement spcifique
suite une gestion d'erreurs.

Le Package Explorer ou explorateur de package : permet par dfinition d'explorer le package travers
une arborescence. Celle-ci est trs utile en particulier lors d'importants projets SSIS, ou si le package se
compose de nombreux lments.
II-C - La boite outils SSIS
Tous nos composants de package se trouvent dans cette boite outils. Celle-ci propose une srie de composants
en fonction de l'onglet sur lequel nous sommes, logique. Regardons de plus prs ces quelques extraits de notre
boite outils :
Au niveau flux de contrles, celle-ci se trouve organise en 2 parties comme nous pouvons le voir ci-dessous :
Divers contrles ou tches sont pr-existants comme les tches de flux de donnes, de nettoyage d'historique ou
encore de sauvegarde de base de donnes, etc.
Au niveau flux de donnes, celle-ci se trouve organise en 3 parties : les composants source, les composants
transformation et enfin les composants destination.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 6 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Nous avons notre disposition divers types de composants source comme les fichiers Excel, les fichiers plats,
XML, etc. De mme nous avons plusieurs composants transformations que nous verrons ultrieurement et enfin les
composants destinations tels que des fichiers plats, excel ou encore SQL Server.
III - Notre exemple de projet SSIS
III-A - Objectifs
Notre objectif principal est d'importer les donnes d'un fichier plat gnr par l'application de notre entreprise, dans
notre base de donnes. Pour cela, il nous faudra spcifier dans un premier temps la source de donnes : notre fichier
plat. Puis dans un second temps, il nous faudra raliser le script de transformation de donnes afin que les formats
de celles-ci soient compatibles pour l'insertion comme les dates ou encore le nombre d'enfant. Enfin, en destination
nous identifierons la base de donnes, plus prcisment la table souhaite que nous dcouvrirons plus tard.
SSIS, travers tous ces composants, nous permet de crer un flux de donnes cohrent et organis. D'ailleurs, nous
pouvons voir que ce flux de donnes est modlis par une flche verte qui permet d'effectuer le lien entre chaque
composant. Et donc, entre chacune de nos tapes avant l'import :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 7 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
III-B - Notre source de donnes : un fichier plat
Notre source de donnes intgrer est un fichier plat, contenant diverses donnes dont celles que nous souhaitons
intgrer. Il se prsente de la manire suivante :
Fichier clients intgrer
code|NomClient|PrenomClient|DateNaiss|NbEnfant|DateInterview
00000|Houm|Benoit|19840822|1-|200709
azerty|Dupont|Nicolas|19700513|4|200701
00001|Tapis|Yan|19690911|1-|200702
00011|Posinello|Marisa|19801223|4|200602
00002|Champ||19740228|1-|200703
III22|Fiore|Sophie|19820330|2|200703
00001|Tapis|Yan|19690911|1-|200711
00011|Luc|Charlie|19701103|0|200703
II022|Bazin|Jean-Charles|17820420|5|200705
00001|Tapis|Yan|19690911|1-|200704
99011|Masel|Fanny|19790108|1|200706
Ce fichier plat a ce qu'on appelle des donnes d'entte, ici le libell des colonnes des donnes gnres. Il
possde des donnes que nous allons ignorer, comme la premire colonne, car elle n'est pas prendre en compte
dans l'insertion. De plus, certaines donnes devront subir des transformations avant d'tre importes car elles ne
correspondent pas au format de destination. Enfin, notons que les donnes gnres ont un sparateur "|".
III-C - Destination de l'import : Base de donnes MS SQL Server
Nous avons notre disposition une base de donnes Microsoft SQL Server 2005 o nous allons importer les donnes.
Ce fichier sera import dans une table client dont voici le script de cration :
Script de cration de table
USE [TestSSIS]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Client](
[IdClient] [int] IDENTITY(1,1) NOT NULL,
[NomClient] [nvarchar](50) COLLATE French_CI_AS NOT NULL,
[PrenomClient] [nvarchar](50) COLLATE French_CI_AS NULL,
[DateNaiss] [datetime] NOT NULL,
[NbreEnfant] [int] NOT NULL,
[DateInterview] [datetime] NOT NULL
) ON [PRIMARY]
IV - Gestion des sources de donnes
La gestion des sources de donnes se compose de la cration d'un tche spcifique notre traitement puis du choix
de notre source de donnes et du contenu de celle-ci.
IV-A - Cration d'une tche
La premire tape est de crer une nouvelle tche pour notre traitement. C'est de l'ordre du flux de contrle. Donc
dans l'onglet flux de contrle, nous choisissons le composant de la boite outils Data Flow Task ou tche de flux
de donnes :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 8 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Une tche permet d'encapsuler tout un traitement de donnes de la source, en passant par la transformation jusqu' la
destination. Il est intressant de diviser en tches chaque traitement pour une question d'organisation dans un premier
temps, mais aussi de rapidit d'excution car l'on peut excuter une tche parmi d'autres de manire spcifique.
Enfin, diviser en tches est aussi intressant lors de l'excution du package car lorsqu'une erreur survient, cela ne
bloque pas l'excution des autres tches si celles-ci n'ont aucune erreur spcifique.
Pour crer une nouvelle tche, faites glisser le composant sur l'espace de travail. Nous la renommerons traitement
client :
Comme dit prcdemment, nous pouvons constater qu'il est possible (clic droit) d'excuter
une tche voulue sans que cela n'influe sur les autres.
IV-B - Gestion de la source de donnes
Dans un premier temps, ouvrons la tche en double cliquant dessus. Celle-ci va nous conduire dans l'onglet flux
de donnes comme suit :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 9 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Ensuite, il nous faut crer une source de donnes. Dans notre cas c'est un fichier plat donc nous allons faire glisser
le composant Flat file Source ou source fichier plat sur notre espace de travail. Bien entendu si notre source de
donnes est diffrente, nous choisirons le composant correspondant.
Nous renommerons notre source de donnes en TestSSIS. Ensuite, il nous faut ouvrir la source de donnes afin de
lui affecter notre fichier et nos conditions en double cliquant sur celle-ci. Cela nous amne cette fentre ou bien
entendu nous allons cliquer sur new.
Ci-dessous, nous affectons notre fichier TestSSIS notre composant source. Notons que nous avons mis 1 le
nombre de lignes d'entte ignorer, car le libell des colonnes (en premire ligne du fichier) n'est pas une donne
prendre en compte :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 10 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Passons dans l'onglet colums ou colonnes de notre fentre. Nous pouvons constater qu'un premier aperu des
donnes est disponible et que notre ligne d'entte a bien t ignore. Notons aussi que SSIS est intelligent, il a
reconnu de lui mme le sparateur de donnes prsent dans le fichier source. Bien entendu il y en a d'autres possibles
dans la liste de slection comme ";", tabulation ou autres.
Passons dans l'onglet advanced ou avanc de notre fentre. A cette tape, nous renommons, affectons un type
et une taille nos colonnes. Nous n'effectuons cette action que pour les colonnes que nous garderons par la suite.
Souvenez-vous que la premire colonne du fichier (colonne 0 ici) est un code que nous ne souhaitons pas importer.
Vos types de colonnes doivent tre identiques aux types des colonnes de votre table si vous insrez vos
donnes dans une base de donnes.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 11 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Anticipons la transformation. Toutes les colonnes transformer, dans notre cas,
resteront de type String afin de les manipuler (les dates et les entiers signs) en
tant que chanes de caractres dans notre script de transformation.
Nous validons le traitement du fichier puis nous retournons la fentre initiale au niveau de l'onglet colums ou
colonne. C'est ici que nous slectionnons les colonnes qui nous intressent. Par consquent, nous dcocherons
uniquement la colonne 0 :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 12 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Nous validons entirement la connexion notre source de donnes. A noter que la petite croix rouge prsente
en cas d'erreur (normal la cration de la source de donnes) a disparu une fois celle-ci attribue. De mme,
notre manager de connexion (en bas) nous indique bien que le fichier TestSSIS a t pris en compte. En cas de
modification, nous pouvons accder directement notre fichier plat en cliquant sur le fichier du manager de connexion.
V - Transformation des donnes
V-A - Principes de notre transformation de donnes
Notre transformation consiste passer la date de naissance du format aaaa/mm/jj au format de notre colonne
DateNaiss soit jj/mm/aaaa. Nous transformerons aussi les donnes de notre fichier au niveau du nombre d'enfants. Le
1- devra passer en entier sign -1, celui-ci signifiant que le client n'a pas rpondu cette question lors de l'interview.
Enfin, nous transformerons les donnes concernant les dates d'interview du format aaaa/mm au format de notre
base de donnes savoir jj/mm/aaaa. Le jour n'tant pas prcis mais ncessaire, nous mettrons 01 en guise de
jour toutes nos dates d'interview.
Nous raliserons toutes ces transformations dans un mme fichier de script.
Le principe de la transformation de donnes est d'utiliser les donnes du fichier en entre de transformation, de
simuler une colonne intermdiaire de sortie aprs la transformation. Cette dernire fera office de colonne d'entre
l'tape de l'import des donnes :
Ceci sera ralis pour chaque transformation.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 13 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
V-B - Script de transformation
Dans notre cas, nous passerons par un script pour raliser cette transformation de donnes. Nous glisserons le
composant Script Component sur notre espace de travail :
Avant de commencer la transformation, nous devons relier notre fichier source de donnes notre composant Script.
Pour cela il suffit de faire glisser la flche verte jusqu'a notre composant Script comme dcrit ci-dessous :
Dbutons la transformation de donnes en double cliquant sur notre composant. Nous commencerons par l'onglet
colonnes d'entres o nous slectionnons les colonnes transformer et uniquement celles-ci :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 14 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Dans l'onglet Inputs and Outputs, nous pouvons retrouver en entre les colonnes slectionnes prcdemment :
Nous ajoutons une colonne intermdiaire pour chaque colonne transformer. Nos colonnes transformes porteront
le nom T_nomdecolonne afin de les dissocier :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 15 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
En plus du nom, il nous faut modifier le type de chaque colonne transforme. Celui-
ci doit correspondre au type de nos colonnes de base de donnes (datetime, int,
etc.).
Aprs cela, nous pouvons passer concrtement au script en se rendant sur l'onglet Script puis Design Script :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 16 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Une nouvelle fentre Visual Studio For Applications s'ouvre. C'est la o nous allons programmer notre script de
transformation. A noter que ce script est en VB.NET.
Voici le code, par exemple, pour manipuler nos donnes dans notre cas :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 17 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Script de transformation
' Microsoft SQL Server Integration Services user script component
' This is your new script component in Microsoft Visual Basic .NET
' ScriptMain is the entrypoint class for script components
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
'
' Add your code here
'
'Transformation de la date de naissance
If Not Row.DateNaiss_IsNull Then
Dim annee As Integer = Integer.Parse(Row.DateNaiss.Substring(0, 4))
Dim mois As Integer = Integer.Parse(Row.DateNaiss.Substring(4, 2))
Dim jour As Integer = Integer.Parse(Row.DateNaiss.Substring(6, 2))
Row.TDateNaiss = New DateTime(annee, mois, jour)
End If
'Transformation du nombre d'enfant
If Not Row.NombreEnfant_IsNull Then
Dim isNegativ As Boolean = Row.NombreEnfant.Contains("-")
Dim nb As String = Row.NombreEnfant.Replace("-", String.Empty)
Dim res As Integer = Integer.Parse(nb)
If isNegativ Then
res = -res
End If
Row.TNombreEnfant = res
End If
'Transformation de la date d'interview
If Not Row.DateInterview_IsNull Then
Dim annee As Integer = Integer.Parse(Row.DateInterview.Substring(0, 4))
Dim mois As Integer = Integer.Parse(Row.DateInterview.Substring(4, 2))
Dim jour As Integer = 1
Row.TDateInterview = New DateTime(annee, mois, jour)
End If
End Sub
End Class
Bien entendu, ce type de transformation reste un exemple, mme sur le principe. En effet, il
est aussi possible selon les circonstances d'utiliser ce qu'on appelle les colonnes drives,
avec lequel est fourni un assistant de manipulation de donnes si vous n'tes pas trs
l'aise avec le VB.net. Cet assistant regroupe les principales fonctions connues sur les
dates, les chanes de caractres ou autres.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 18 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
VI - Destination des donnes
VI-A - Configuration de la destination des donnes : Base de donnes MS SQL Server
Nous avons gr notre source de donnes, nous avons programm notre script de transformation, maintenant
nous allons configurer l'import. Notre cible est une table client d'une base de donnes MS SQL Server 2005. Nous
utiliserons, du fait de la base de donnes Microsoft SQL Server, le composant SQL Server Destination.
Nous faisons donc glisser le composant SQL Server Destination lui mme reli notre script (flche verte), que nous
allons configurer en double cliquant sur celui-ci :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 19 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Remplir les lments demands reste assez intuitif. Cependant, si vous ne disposez pas au premier lancement de
votre chane de connexion, il vous est possible d'en crer une comme suit :
Il nous faut slectionner le serveur, le type d'authentification choisie ainsi que la base de donnes voulue.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 20 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Dans l'onglet manager de connexion, nous spcifions la connexion utiliser ainsi que la table destination de notre
base de donnes. Dans notre cas, la table client :
Au niveau de l'onglet Mapping, SSIS arrive associer les bonnes colonnes entre elles. Mais concernant les colonnes
transformes, il faut les spcifier nous mme comme ci-dessous :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 21 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
D'autres possibilits sont offertes dans l'onglet Advanced :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 22 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
A noter que notre manager de connexion, en plus de notre fichier nous a ajout (en bas)
notre connexion notre base de donnes. Il suffit de modifier cette donne pour que la
modification de destination s'effectue dans tout le package.
VI-B - Import des donnes et vrifications
Pour l'import des donnes, soit il nous faut cliquer droit sur la tche de l'onglet fulx de contrle afin de l'excuter
(en particulier si nous ne souhaitons pas l'excution d'autres tches en mme temps), soit nous excutons tout le
package (F5). Si l'excution se droule correctement, tout s'affiche en vert et le nombre de lignes insres est visible :
En cas d'erreur, le composant en erreur ou bloquant s'affiche en rouge. Il est possible de voir le dtail de cette erreur
dans un nouvel onglet qui est apparu lors de l'excution : l'onglet Progress. Cet onglet droule tape par tape
l'excution et donne les messages d'erreurs.
La premire vrification possible dans Visual Studio est donc de voir tous nos composants s'orner de vert. Mais nous
pouvons aussi vrifier dans notre base de donnes si l'insertion a bien t effective. Voici l'tat de notre table avant
excution de notre package SSIS :
Voici notre table client aprs excution de notre package SSIS :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 23 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
VII - Dploiement du package SSIS
Comme nous l'avons fait prcdemment, l'excution du package est possible via Visual Studio (F5). Cependant, un
dploiement du package sur le serveur est plus avantageux, en particulier pour automatiser l'excution.
La premire tape tant l'activation de la cration de l'utilitaire de dploiement de notre package. Pour cela, nous
allons cliquer droit afin d'atteindre les proprits du projet. Dans l'onglet Deployement Utility, mettre la proprit
CreatDeploiementUtility vrai comme suit :
Nous validons donc cette modification. Ensuite, il nous faut regnrer le projet. Nous vrifions que la modification a
bien t prise en compte dans notre projet Visual Studio comme suit :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 24 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Il y a bien un dossier deployement, qui lui-mme contient ce qui nous intresse, savoir le fichier
SSIS_tutoriel.SSISDeploymentManifest dans notre cas. Afin de dbuter le dploiement, nous allons ouvrir ce fichier
qui va nous diriger vers un assistant de dploiement de package.
Dans notre cas, nous choisirons File System Deployement. Selon vos besoins et suivant la description qui peut vous
aider, vous devrez choisir l'un ou l'autre.
Continuons l'assistant. Nous laissons le chemin par dfaut pour le dploiement de notre package. Puis nous
continuons.
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 25 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Nous arrivons sur une fentre intermdiaire nous demandant de confirmer. Bien entendu nous confirmons :
Nous arrivons sur une fentre rcapitulative avec diverses informations :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 26 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Voil, grce cet assistant, nous venons de deployer notre package. Vrifions que tout s'est correctement droul.
Nous nous connecterons notre serveur l'aide d'SQL Server Management Studio en slectionnant Integration
Services en type de serveur :
Notre package existe bien dans notre arborescence. C'est dj une bonne nouvelle. Nous allons l'excuter (clic droit
Run Package) afin de constater que nous avons le mme rsultat :
Prsentation de SQL Server Integration Services : SSIS par Fleur-Anne BLAIN (fablain.developpez.com)
- 27 -
Copyright 2007 - Fleur-Anne BLAIN. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes,
documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E
de dommages et intrets. Droits de diffusion permanents accords developpez LLC.
http://fablain.developpez.com/tutoriel/ssis/
Aprs excution, tout s'est droul comme prvu, les 11 lignes de notre fichier importer sont correctement arrives
destination. Et si nous ne sommes toujours pas certains, il suffit de vrifier les donnes dans notre table.
Conclusion
Nous venons de parcourir quelques fonctionnalits vitales pour la cration d'un package SSIS. Bien entendu, il suffit
de regarder de plus prs la bote outils pour constater qu'il en existe de nombreuses autres.
Nous avons trait de SSIS et de son dploiement en "manuel". Cependant, si vous souhaitez automatiser l'excution
du package (en batch), il vous faudra vous pencher davantage sur les fonctionnalits du service SQL Server Agent,
qui permet de rgler trs facilement une frquence, une priode, etc. d'excution.
Liens utiles

Microsoft Visual Studio Developper/Enterprise Edition

Microsoft SQL Server 2005 Standard/Enterprise Edition

Microsoft TechNet SQL Server Integraiton Services


Remerciements
Je remercie Dut et Pedro pour leurs corrections ainsi que pcaboche et Ditch pour leurs remarques constructives.

Das könnte Ihnen auch gefallen