Anda di halaman 1dari 47

Introduction Sql Server Integrtion

Services (SSIS)
Plus connu avant sous le nom de Data Transformation Services (DTS), SSIS est la nouvelle version ce
cet outil de SQL Server apparu avec la version 2005 du SGBD de Microsoft. Nous allons essayer de
dcouvrir ensemble ce que peut nous apporter SSIS.

Sommaire
Prsentation gnrale............................................................................................................................3
Comment travailler avec SSIS ?...............................................................................................................4
ControlFlow........................................................................................................................................7
DataFlow............................................................................................................................................7
Event Handlers....................................................................................................................................7
Package Explorer................................................................................................................................7
Prsentation de lexemple......................................................................................................................7
Structure dun fichier de log de IIS.....................................................................................................7
Tches raliser par notre package....................................................................................................9
Stockage.............................................................................................................................................9
La copie du fichier................................................................................................................................10
Traitement du fichier de log.................................................................................................................13
Lecture du fichier de log...................................................................................................................13
La connexion au fichier de log......................................................................................................14
Flat File Source.............................................................................................................................19
Cration de la colonne DateTime.....................................................................................................21
Conversion des donnes...................................................................................................................24
Ecriture en base................................................................................................................................27
Une connexion la base...............................................................................................................28
Liaison de nos donnes la base..................................................................................................30
Premire tentative dexcution du Data Flow.......................................................................................32
Dernier ajustement sur le Control Flow................................................................................................37
Dploiement du package......................................................................................................................38
Vrification du dploiement et excution............................................................................................43
Conclusion............................................................................................................................................47
Olivier Delmotte
http://odelmotte.developpez.com Page 1 sur 47
Copyright 2007
Olivier Delmotte
http://odelmotte.developpez.com Page 2 sur 47
Copyright 2007
Prsentation gnrale
Tout dabord, pour pouvoir disposer de SSIS, vous devez utiliser SQL Server 2005 Standard ou
Entreprise Edition (Developper Edition aussi, mais pour le dveloppement). Les versions Express et
autres Standard et Workgroup Edition ne sont malheureusement pas dotes de cette fonctionnalit.

Seules les versions Entreprise et Developper proposent toutes les fonctionnalits de SSIS.

Reportez-vous cette page pour plus de dtails sur les possibilits offertes par chaque version :
http://msdn2.microsoft.com/en-us/library/ms143761.aspx

Maintenant que nous avons vu quelles versions permettent dexploiter SSIS, voyons maintenant
quoi peut servir cette nouvelle fonctionnalit.

On ne va pas faire trs compliqu, mais en gros, SSIS vous permet de transformer vos donner, de les
importer ou de les exporter vers ou depuis SQL Server.

Prenons un exemple concret. Vous avez un serveur Web, au hasard Internet Information Service (IIS)
et vous voulez pouvoir obtenir des statistiques de son utilisation. Si vous connaissez un peu IIS, vous
savez sans doute quil ne permet de ne gnrer quun fichier de log au format texte.

#Software: Microsoft Internet Information Services 5.1


#Version: 1.0
#Date: 2007-05-21 17:03:20
#Fields: time c-ip cs-method cs-uri-stem sc-status
17:03:20 127.0.0.1 GET /EspacePerso/~/images/baniereperso.png 404
17:06:52 127.0.0.1 GET /EspacePerso/net/test/Default.aspx 404
17:08:07 127.0.0.1 DEBUG /EspacePerso/ViewArticle.aspx 401
17:08:13 127.0.0.1 DEBUG /EspacePerso/ViewArticle.aspx 200
17:08:17 127.0.0.1 GET /EspacePerso/ViewArticle.aspx 200
Exemple de fichier de log IIS

Pour raliser des statistiques, avec Sql Server Reporting Services par exemple, ce nest pas ce quil y a
de plus efficace. La solution est de transformer ce fichier de log et den intgrer les donnes en base.
Cest la que SSIS intervient. Il est capable de traiter se fichier de log et den transformer le contenu
pour lintgrer en base.

Figure 1:Procssus de traitement des fichiers de log IIS

Olivier Delmotte
http://odelmotte.developpez.com Page 3 sur 47
Copyright 2007
Ce que va faire SSIS, cest ouvrir le fichier de log, le dcouper comme il faut, et insrer en base.

Nous nous servirons de cet exemple pour mieux comprendre un peu mieux comment SSIS
fonctionne.

Comment travailler avec SSIS ?


Comme pour tout ce qui touche au dveloppement pour SQL Server, cest Visual Studio qui sera
utilis.

Figure 2:Intgration de SSIS Visual Studio

Pour travailler avec SSIS, il vous faut crer un projet Integration Services Project class dans la
catgorie Business Intelligence Projects.

Olivier Delmotte
http://odelmotte.developpez.com Page 4 sur 47
Copyright 2007
Figure 3:Cration du projet SSIS

Tout dabord, que contient le projet.

Figure 4:Apperu du Solution Explorer

A sa cration, le projet ne contient quun package : Package.dtsx. Un package est, si on peut dire, un
script pour SSIS. Il contient une liste dactions effectuer par SSIS.

Les actions disponibles se situent au niveau de la Toolbox :

Olivier Delmotte
http://odelmotte.developpez.com Page 5 sur 47
Copyright 2007
Les actions disponibles se situent au niveau de la Toolbox :

Figure 5:Toolbox de Visual Studio pour un package

Si vous regardez toute la liste, vous verrez que les possibilits offertes par SSIS sont dj trs
nombreuses. Je ne vais pas les dtailler toutes, juste celles que nous utiliserons, la liste serait
beaucoup trop longue.

Enfin, le dernier lment, lespace ddition du package :

Figure 6:Espace de travail d'un Package

Il se divise en 4 parties :

ControlFlow
DataFlow
Event Handlers
Package Explorer
Olivier Delmotte
http://odelmotte.developpez.com Page 6 sur 47
Copyright 2007
ControlFlow
Comme tout programme ou script, un package SSIS doit suivre une certaine logique de
fonctionnement. Le package doit avoir un dbut et une fin, excuter des tches dans un ordre bien
particulier (lire les donnes avant de les traiter par exemple, a peut aider).

Cest donc dans le ControlFlow que nous allons dcrire les diffrentes tches dun package. Il est
possible de ne pas attribuer un ordre prcis tous les travaux, mais il est quand mme bon de garder
une certaine logique.

DataFlow
Le DataFlow est comme le ControlFlow, mais il est ddi aux donnes. Typiquement, dans un
DataFlow, nous retrouverons, dans cet ordre, des tapes de lecture, de modification et enfin
dcriture des donnes. Je ne vous en dis pas plus, nous verrons cela plus en dtail plus loin.

Event Handlers
Il est possible de grer des vnements qui peuvent survenir dans les diffrents composants qui
constituent un package SSIS et deffectuer des actions en fonction de leur nature. Cest via le panneau
Event Handlers que nous grerons ces vnements.

Package Explorer
Le Package Explorer est comme le Solution Explorer. Il dcrit, sous forme darborescence, tous les
lments qui constituent le package et nous permet daccder en quelques clics tous les lments
du package et leurs proprits.

Prsentation de lexemple
Comme je vous lai dit plus haut, nous allons automatiser lanalyse des fichiers de log de IIS
(seulement la partie serveur http, ce sera largement suffisant).

Structure dun fichier de log de IIS


#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2007-05-27 07:38:39
#Fields: date time c-ip cs-username s-sitename s-computername s-ip
s-port cs-method cs-uri-stem cs-uri-query sc-status sc-win32-status
sc-bytes cs-bytes time-taken cs-version cs-host cs(User-Agent)
cs(Cookie) cs(Referer)
2007-05-27 07:38:39 127.0.0.1 - W3SVC1 DTCBPXP 127.0.0.1 80 GET
/EspacePerso/~/images/baniereperso.png - 404 3 4383 305 300 HTTP/1.1
localhost Mozilla/4.0+(compatible;
+MSIE+7.0;+Windows+NT+5.1;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.N
ET+CLR+3.0.04506.30) - -
2007-05-27 07:40:26 127.0.0.1 - W3SVC1 DTCBPXP 127.0.0.1 80 DEBUG
/EspacePerso/DebugAttach.aspx - 401 0 351 406 3675 HTTP/1.1
localhost - - -

Voici un fichier extrait de fichier de log IIS, le tout dbut pour tre exact.

Olivier Delmotte
http://odelmotte.developpez.com Page 7 sur 47
Copyright 2007
Ce petit exemple va nous servir comprendre sa structure. Tout dabord, vous remarquerez les 4
premires lignes qui sont un peu particulires. Elles sont ici titre dinformation.

La premire ligne nous donne des informations sur la version de IIS que nous utilisons. Je suis sous
Windows XP, jai donc IIS 5.1.

La deuxime la version de quoi je ne sais pas, mais de toutes faons, elle ne nous intresse pas ici.

La troisime ligne nous donne la date et lheure de cration du fichier. Elle na pas une grande utilit
ici, passons.

La quatrime ligne, contrairement aux 3 prcdentes, est une source dinformation vitale pour le
travail que nous allons raliser. Elle contient en effet une description de la formation des lignes de log.
Une ligne de log proprement parler contient toutes les valeurs que nous souhaitons tracer spares
par des espaces. IIS nous offre la possibilit, via la console dadministration, de choisir les
informations sur lactivit du serveur Web que nous souhaitons conserver.

Comme vous pouvez le constater, ces informations sont trs compltes.

Dans notre exemple, elles seront toutes utilises.

Pourquoi cette ligne est-elle si importante ? Comme vous laurez sans doute compris, il est possible
que le log de lactivit de IIS ne nous renvoie pas toujours les mmes informations, selon lhumeur et
les besoin de ladministrateur. Il est donc important de savoir ce que nous allons rcuprer comme
informations.

Olivier Delmotte
http://odelmotte.developpez.com Page 8 sur 47
Copyright 2007
Il faut savoir aussi que cette section de 4 lignes den-ttes peut se rpter plusieurs fois dans un
mme fichier (changements de configuration, redmarrage).

Donc, la suite de ces 4 lignes, nous rcuprons les lignes de donnes qui nous intressent
rellement. Dans ce tutoriel, je ferais comme si la structure du fichier de log ntait pas modifiable et
quil ny avait quune seule section den-tte par fichier afin de ne pas rentrer dans les dtails, ce nest
quune introduction. Afin aussi de ne pas compliquer trop les choses, nous utiliserons un unique
fichier, dont nous connaissons le nom lavance.

Tches raliser par notre package


Notre package dexemple ne sera pas trs compliqu.

Il package effectuera les actions suivantes :

1. Copier le fichier de log dans un dossier temporaire


2. Lire le contenu du fichier
3. Effectuer quelques oprations de transformation sur les donnes rcupres
4. Ecrire ces donnes en base

Stockage
Pour stocker les informations de notre fichier de log, nous utiliserons une table SQL Server 2005 dont
voici le script de cration :

CREATE TABLE [dbo].[logiis](


[id] [int] IDENTITY(1,1) NOT NULL,
[dateandtime] [datetime] NULL,
[ipclient] [nvarchar](15) NULL,
[username] [nvarchar](50) NULL,
[sitename] [nvarchar](50) NULL,
[computername] [nvarchar](50) NULL,
[ipserver] [nvarchar](15) NULL,
[portserver] [int] NULL,
[cliservmethod] [nvarchar](5) NULL,
[cliservuristem] [nvarchar](512) NULL,
[cliservuriquery] [nvarchar](512) NULL,
[servclistatus] [int] NULL,
[servcliwinstatus] [int] NULL,
[servclibytes] [int] NULL,
[cliservbytes] [int] NULL,
[timetaken] [int] NULL,
[cliservversion] [nvarchar](50) NULL,
[cliservhost] [nvarchar](512) NULL,
[cliservuseragent] [nvarchar](512) NULL,
[cliservcookie] [nvarchar](512) NULL,
[cliservreferer] [nvarchar](512) NULL
) ON [PRIMARY]

La copie du fichier
La premire tape est donc la copie du fichier.

Pour venir bout de cette premire tche, nous allons logiquement utiliser le panneau Control Flow.
Olivier Delmotte
http://odelmotte.developpez.com Page 9 sur 47
Copyright 2007
Dans la bote outils, vous verrez un composant nomm File System Task. Glissez-le sur lespace de
travail.

Dtaillons un peu ce composant.

Tout dabord, la petite croix blanche sur fond rouge, bien connue de tous, est synonyme derreur.
Cest normal, notre composant nest pas configur correctement (ici pas de source, ni de destination).
Elle disparait une fois le travail bien fait.

La petite flche verte. Elle permet de relier le composant lopration suivante.

Si vous ouvrez le menu contextuel du composant et choisissez de lditer, vous obtiendrez lcran
suivant :

Olivier Delmotte
http://odelmotte.developpez.com Page 10 sur 47
Copyright 2007
La section General vous permet de rendre le nom et la description du composant un peu plus
explicite.

Dans notre cas, les proprits qui nous intressent rellement sont les autres.

Tout dabord, Operation. On peut effectuer diffrentes oprations sur le systme de fichier (copie de
fichiers, suppression, copie de dossier, cration, ). Celle par dfaut nous convient trs bien.

Vient ensuite SourceConnection. Comme vous le constaterez tout au long de ce tutoriel, SSIS travaille
normment avec ce quil appelle des connexions. Une connexion est un lien entre un support (Base
de donnes, fichier, ) et le package SSIS. Cest elle qui fera physiquement les accs aux donnes.
Nous nen avons pas notre disposition, nous allons donc en crer une. Dpliez la liste qui apparait
pour la proprit SourceConnection et choisissez loption Nouvelle Connection, lcran suivant
apparat :

Olivier Delmotte
http://odelmotte.developpez.com Page 11 sur 47
Copyright 2007
Ici, vous navez qu spcifier le fichier utiliser. Pour information, le mien est le suivant :
C:\WINDOWS\system32\Logfiles\W3SVC1\ex070526.log

Il faut raliser la mme opration pour le fichier de destination, avec une nouvelle connexion, sauf
que cette fois-ci vous prciserez quil sagit dun dossier existant et vous slectionnerez le dossier de
destination de la copie (pour moi c:\temp).

Pour loption OverwriteDestination, vous pouvez mettre True afin de ne pas tre embt par plusieurs
excutions du package.

Si vous avez tout fait correctement, le composant File System Task doit avoir la tte suivante :

Plus de croix blanche sur fond blanc.

Pour vrifier, fates comme pour une application classique dans Visual Studio, F5 pour lancer son
excution.

Le package est excut. La couleur du composant doit changer jaune, je ne sais pas si vous aurez le
temps de le voir si le fichier est petit, a veut dire que la tche est en cours dexcution.

Si vous avez bien travaill, elle doit ensuite passer au vert une fois termine pour dire que tout sest
bien droul. Sinon, vous obtiendrez un joli rectangle rouge synonyme derreur.

Passons maintenant au gros du travail, lanalyse et linsertion en base du fichier de log.

Traitement du fichier de log


Le traitement du fichier de log se fera dans un composant particulier, que vous trouverez ct du
composant File System Task dans la boite outils : le Data Flow Task.
Olivier Delmotte
http://odelmotte.developpez.com Page 12 sur 47
Copyright 2007
Dposez-en un sur lespace de travail du panneau Control Flow :

Vous remarquerez sans doute que lui na pas le droit la petite croix blanche. Lexplication est simple.

Un composant Data Flow Task est un container, un peu comme le panel en WinForms, donc sil est
vide, aucune action raliser, pas trs utile, mais aucun risque derreur.

Double cliquez dessus pour lditer. Visual Studio bascule automatiquement sur longlet Data Flow du
package. Cest la que nous allons spcifier les tches que devra accomplir notre composant Data Flow
Task. La boite outils change, et laisse apparatre 3 catgories de composants :

Les sources
Les transformations
Les destinations

Je ne vais pas entrer dans les dtails, mais dans Data Flow Sources et Data Flow Destination vous
retrouverez les composants permettant respectivement dobtenir et de sauvegarder les donnes.

Dans transformations vous retrouverez les composants pour manipuler les donnes : conversions,
fusion,

Passons maintenant la premire tape, la lecture des donnes de notre fichier de log

Lecture du fichier de log


Comme je vous en ai dj parl pour la copie du fichier, SSIS travaille avec des connexions pour
accder aux supports physiques . La premire chose faire est donc dajouter une connexion
notre fichier de log.

La connexion au fichier de log


Si vous jetez un il en bas du panneau Data Flow, vous verrez un espace nomm Connection
Managers dans lequel vous retrouverez les deux connections utilises pour la copie du fichier de log :

Olivier Delmotte
http://odelmotte.developpez.com Page 13 sur 47
Copyright 2007
Un petit clic droit laissera apparatre le menu suivant dans lequel vous choisirez New Flat File
Connection :

Lcran suivant apparat dans lequel nous allons configurer notre connection :

Olivier Delmotte
http://odelmotte.developpez.com Page 14 sur 47
Copyright 2007
Je ne vais pas tout dtailler, je pense que lcran est assez clair pour que vous puissiez le remplir seul.
Voici quand mme quoi il doit ressembler :

Olivier Delmotte
http://odelmotte.developpez.com Page 15 sur 47
Copyright 2007
Passez maintenant la section Columns, cest la que nous allons enfin voir le contenu de notre fichier
de log en le configurant comme suit :

Olivier Delmotte
http://odelmotte.developpez.com Page 16 sur 47
Copyright 2007
Pour Column Delimiter, spcifiez bien un espace (dsol, cest pas trs visible sur la capture :p).

Dans la section Advanced, il est possible de dfinir les options avances des colonnes que nous
venons de voir :

Olivier Delmotte
http://odelmotte.developpez.com Page 17 sur 47
Copyright 2007
Il est donc possible de modifier chaque colonne, de lui donner un nom comprhensible par la suite,
vous verrez que a peut se rvler trs utile, sont type de sortie, trs pratique. Voici quoi cette
section ressemble aprs configuration :

Olivier Delmotte
http://odelmotte.developpez.com Page 18 sur 47
Copyright 2007
Pour la taille des colonnes de sortie, donnez la mme taille de sortie que pour la taille du champ
correspondant en base. Validez, notre connexion est prte, il ne nous reste plus qu exposer nos
donnes dans le Data Flow.

Flat File Source


Maintenant que nous avons configur notre connexion au fichier de log, il faut exposer ses donnes
au package. Cest la quintervient le composant Flat File Source.

Comme son nom lindique, cest une source de donnes.

Olivier Delmotte
http://odelmotte.developpez.com Page 19 sur 47
Copyright 2007
Comme vous pouvez le constater, il est en erreur. Si on y rflchi deux secondes, cest logique. Son
rle est dexposer des donnes au reste des composants du Data Flow. Mais quelles donnes ?
Comme il nest pas configur, il ne sait pas lui-mme o sont les donnes quil doit exposer.

Un double clic sur le composant vous permettra daccder son cran de configuration :

Lassistant dtecte automatiquement la connexion appropri au type de notre composant. Un


composant Flat File Source prend logiquement une connexion de type Flat File. Si vous regardez la
section colonnes de cet cran de configuration, vous verrez quil expose bien les colonnes dfinies
dans la connexion :

Olivier Delmotte
http://odelmotte.developpez.com Page 20 sur 47
Copyright 2007
Terminons la configuration, sans rien faire du tout :p, en cliquant sur OK.

Hop, notre composant nest plus en erreur, passons la suite.

Cration de la colonne DateTime


Si vous avez t bien attentif, vous avez sans doute remarqu que pour les informations de date et
dheure, la structure du fichier de log nous renvoie 2 colonnes et que la structure de notre table nous
propose une unique colonne de type DateTime.

Olivier Delmotte
http://odelmotte.developpez.com Page 21 sur 47
Copyright 2007
Nous allons donc devoir transformer les informations fournies pas notre source afin de crer une
nouvelle colonne de type DateTime partir de deux colonnes de type Texte.

Lopration est la suivante :

Concatner jj/mm/aaaa et hh :mm :ss en une chaine jj/mm/aaaa hh :mm :ss et la convertir
en date.

Rassurez-vous, rien de bien compliquer la dedans.

Ce genre dopration est ralis par un composant de type Data Flow Transformation : Derived
Column.

Dposez donc un composant Derived Column sur lespace de travail.

Pour pouvoir crer une colonne partir dun autre, il faut bien sur quil sache les colonnes quil a sa
disposition. Pour cela, nous allons relier notre composant Flat File Source notre composant Derived
Column.

Cette opration est trs simple et valable pour tous les composants quutilise SSIS, aussi bien dans un
Control Flow que dans un Data Flow.

Commencez par slectionner le composant Flat File Source. Un flche verte apparat en dessous, cest
celle la qui nous intresse. Elle reprsente le flux de donnes. La rouge reprsente le flux derreur.
Nous ne nous en servirons pas ici. Pour connecter deux composants donc, il faut faire glisser la flche
verte du composant source sur le composant de destination. Vous devriez obtenir quelque chose qui
ressemble ceci dans notre cas :

Dans un Data Flow, cette flche signifie que le composant do part la flche fournit des donnes au
composant point par la flche.

Olivier Delmotte
http://odelmotte.developpez.com Page 22 sur 47
Copyright 2007
Aprs ces quelques petites prcisions, voyons maintenant comment crer notre date pour lexploiter
par la suite. Double cliquez sur le composant Derived Column. Lcran de configuration suivant
apparat :

Il se divise en trois parties :

Les sources de donnes (nous mettrons de ct Variables qui dpassent le cadre de ce


tutoriel)
Les oprations : mathmatiques, sur les dates et oh ben tiens, de conversion
Les colonnes drives

Donc ce que nous allons faire, cest crer une colonne drive, qui sera le rsultat de Expression.
Notez que vous pouvez crer plusieurs colonnes drives en une seule fois.

Ici nous allons crer la colonne drive dateandtime qui sera le rsultat de lexpression
suivante (DT_DBTIMESTAMP)(DT_DATE)(date + " " + time)

Olivier Delmotte
http://odelmotte.developpez.com Page 23 sur 47
Copyright 2007
Lexpression reprend la syntaxe du C#, on concatne les colonnes date et time avec un espace entre
les deux, et on converti successivement le rsultat en type DT_DATE puis DT_DBTIMESTAMP.

Voila, nous disposons maintenant dune colonne supplmentaire dans nos donnes, appele
dateandtime et de type DT_DBTIMESTAMP qui sera parfaite pour la colonne dateandtime de notre
table en base.

Passons la conversion des donnes.

Conversion des donnes


Pourquoi convertir les donnes ?

Si vous regardez bien la connexion au fichier de log, vous apercevrez une option Unicode, qui est
dcoche.

Si maintenant vous regardez bien la structure de notre table, vous verrez que les champs de type text
sont de type nvarchar, donc Unicode.

Comme monsieur SSIS est assez pointilleux au niveau des types de donnes, nous allons devoir
convertir les donnes non Unicodes de notre fichier texte en donnes Unicodes pour pouvoir les
insrer en base.

Olivier Delmotte
http://odelmotte.developpez.com Page 24 sur 47
Copyright 2007
Mais encore une fois, SSIS nous propose un composant qui va se charger de raliser la conversion
pour nous, cest le composant Data Conversion qui intervient :

Comme pour le composant Derived Column, pour savoir ce quil peut convertir, nous devons lui
fournir des donnes. Nous allons donc relier la sortie de notre composant Derived Columns (flche
verte) notre composant Data Conversion :

Comme dhabitude maintenant, ouvrez lditeur du composant Data Conversion :

Olivier Delmotte
http://odelmotte.developpez.com Page 25 sur 47
Copyright 2007
Toutes les colonnes qui seront affectes par cette conversion sont les colonnes de type texte.
Slectionnez-les dans les colonnes Available Input Columns. Elles apparatront dans la liste en
dessous. Modifiez le Data Type en Unicode String [DT_WSTR]. Fates bien attention que la longueur
de la chane corresponde bien la taille du champ en base.

Une fois termin, vous devriez obtenir ceci :

Olivier Delmotte
http://odelmotte.developpez.com Page 26 sur 47
Copyright 2007
Terminez ldition en validant, nous allons maintenant passer linsertion en base.

Ecriture en base
Comme nous utilisons une base SQL Server, nous utiliserons le composant SQL Server Destination,
quelle surprise. Vous pouvez bien sur utiliser dautres destinations, comme un fichier texte, ou un
autre SGBD, enfin bref, nous cest SQL Server.

Le composant est en erreur, normal, il ne sait pas ou il doit se connecter pour crire. Qu cela ne
tienne, on va lui fournir une connexion. Mais avant, nous allons quand mme lui fournir les colonnes
de sortie du composant de conversion :

Olivier Delmotte
http://odelmotte.developpez.com Page 27 sur 47
Copyright 2007
Une connexion la base
Dans le Connexion Manager que nous avons vu tout lheure, ajoutez une nouvelle connexion
ADO.Net.

Olivier Delmotte
http://odelmotte.developpez.com Page 28 sur 47
Copyright 2007
Lassistant vous propose une liste des connexions disponibles. Si vous nen avez pas, ce qui est
surement le cas, crez-en une nouvelle :

Olivier Delmotte
http://odelmotte.developpez.com Page 29 sur 47
Copyright 2007
Validez le tout. Nous avons donc maintenant notre connexion notre serveur SQL Server.

Liaison de nos donnes la base


Maintenant que nous avons tout prpar, nous allons associer notre connexion notre composant et
vrifier que tout est bon.

Double cliquez sur le composant SQL Server Destination :

Olivier Delmotte
http://odelmotte.developpez.com Page 30 sur 47
Copyright 2007
Si vous avez plusieurs connexions, choisissez celle qui correspond. Spcifiez ensuite la table de
destination, ici logiis. Nous allons maintenant mapper les colonnes fournies depuis le fichier avec les
colonnes de la table :

Olivier Delmotte
http://odelmotte.developpez.com Page 31 sur 47
Copyright 2007
Lassistant est un minimum intelligent. Il associe par dfaut les colonnes sources et les colonnes de
destination aillant le mme nom. A nous de faire le reste.

Id nest associ aucune colonne source puisque cest une colonne auto-incrmente.

Attention aussi bien utiliser les colonnes rsultant de la conversion de donnes et non pas celles
dorigine, leur format nest pas correct.

Une fois le mapping ralis sur toutes les colonnes de destination on va tenter dexcuter notre
Data Flow.

Premire tentative dexcution du Data Flow


Cette tape va nous permettre de faire une petite analyse de notre Data Flow et de voir si tout se
droule correctement.

Olivier Delmotte
http://odelmotte.developpez.com Page 32 sur 47
Copyright 2007
Toujours dans le panneau de travail du Data Flow, ouvrez le menu contextuel du Data Flow et
choisissez la commande Execute Task.

Et l, drame. Erreur ds la premire tape. Ne vous inquitez pas, cest normal. Quand je vous disais
que SSIS tait pointilleux

Si vous regardez dans longlet Progress, vous obtiendrez une liste trs dtaille de ce qu fait SSIS lors
de lexcution du package et surtout les erreurs quil a rencontr :

Vous voyez quil y a quelques erreurs. Rien de dramatique, et surtout pas rellement une erreur.

Le souci est que lors de la lecture du fichier, SSIS suspecte un troncage des donnes. Comme nous
avons bien tudi la question avant, nous savons que cest peu probable. Nous allons donc forcer SSIS
passer outre cette erreur.

Editez le composant Flat File Source (double clic), et rendez-vous dans la section Error Output :

Olivier Delmotte
http://odelmotte.developpez.com Page 33 sur 47
Copyright 2007
Cette section de configuration va spcifier le comportement du composant en cas derreur. Ici, vous
voyez quen cas de tentative de troncage des donnes, SSIS considre que le composant est en erreur
et que donc lexcution ne peut pas continuer. Nous allons donc dire SSIS dignore lerreur dans ce
cas et pour toutes les colonnes :

Olivier Delmotte
http://odelmotte.developpez.com Page 34 sur 47
Copyright 2007
Validez et retentez dexcuter le Data Flow.

Cette fois-ci une erreur lors de la cration de la colonne dateandtime dans le composant Derived
Column.

Mme opration que pour le Flat File Source. Nous allons ignorer lerreur.

Cette fois-ci, tout se passe bien :

Olivier Delmotte
http://odelmotte.developpez.com Page 35 sur 47
Copyright 2007
Nous avons lu et crit 472 lignes de log. Petite vrification des donnes dans la table :

Olivier Delmotte
http://odelmotte.developpez.com Page 36 sur 47
Copyright 2007
Notre Data Flow est maintenant prt, il ne nous reste plus qu terminer notre Control Flow.

Dernier ajustement sur le Control Flow


Ce dernier ajustement dans le Control Flow est lordre dexcution des tches.

Rappelez-vous que nous devons dabord copier le fichier avant de travailler dessus. Cest ce que nous
allons faire. En plus, maintenant que vous connaissez la petite flche verte, ca va aller tout seul. Je ne
vous explique pas comment faire, je vous montre juste le rsultat :

Lancez lexcution du package comme une application standard (F5) :

Olivier Delmotte
http://odelmotte.developpez.com Page 37 sur 47
Copyright 2007
Tout sest bien droul, nous avons bien travaill.

Dploiement du package
Nous avons vu quil tait possible dexcuter le package depuis Visual Studio. Cest bien, mais ce nest
pas trs pratique de devoir lancer Visual Studio pour lancer notre traitement. Il nous faut donc
maintenant dployer notre package dans SQL Server.

Ne vous faites pas de soucis, cest encore Visual Studio qui va travailler pour nous et va tout faire tout
seul ou presque.

La premire tape du dploiement est dactiver la cration de lutilitaire de dploiement du package.


Allez dans les proprits du projet, onglet Deployment Utility :

Vous devez activer loption CreateDeploymentUtility. Validez et re gnrez le projet.

Si vous vous rendez dans le dossier de sortie du projet, vous devriez avoir quelque chose comme a :
Olivier Delmotte
http://odelmotte.developpez.com Page 38 sur 47
Copyright 2007
Il y a bien notre package, IISLogImport.dtsx. Le deuxime est le Manifest de dploiement,
IISStatistics.SSISDeploymentManifest. Ouvrez-le, un assistant de dploiement se lance.

Comme beaucoup dassistants chez Microsoft, il y a une petite page daccueil, passons.

Olivier Delmotte
http://odelmotte.developpez.com Page 39 sur 47
Copyright 2007
Lassistant nous propose deux mode dinstallation pour notre package. Si vous regardez la description
de chacun des modes, vous comprendrez que pour notre exemple, le dploiement dans le systme
de fichier est bien suffisant.

Olivier Delmotte
http://odelmotte.developpez.com Page 40 sur 47
Copyright 2007
Choisissez lendroit o sera copi le package. Lemplacement par dfaut ira trs bien dans notre cas.

Olivier Delmotte
http://odelmotte.developpez.com Page 41 sur 47
Copyright 2007
Petit confirmation avant linstallation, suivant.

Olivier Delmotte
http://odelmotte.developpez.com Page 42 sur 47
Copyright 2007
Le dploiement sest bien pass, nous avons fini. Vrifions maintenant notre travail.

Vrification du dploiement et excution


Pour vrifier notre travail, lancez SQL Server Management Studio et connectez vous Integration
Services, pas au serveur de base de donnes comme vous le fate sans doute dhabitude :

Olivier Delmotte
http://odelmotte.developpez.com Page 43 sur 47
Copyright 2007
Si vous dveloppez larborescence du serveur, vous retrouverez bien notre package.

Nous allons maintenant le lancer :

Olivier Delmotte
http://odelmotte.developpez.com Page 44 sur 47
Copyright 2007
Un petit tour dans le menu contextuel du package, choisissez la commande Run Package.

Olivier Delmotte
http://odelmotte.developpez.com Page 45 sur 47
Copyright 2007
Lassistant qui souvre nous propose diffrentes options. Je ne dtaillerais rien, les options par dfaut
sont correctes, nous allons nous contenter de lancer lexcution du package. La fentre suivante
souvre et vous pouvez suivre lexcution du package :

Olivier Delmotte
http://odelmotte.developpez.com Page 46 sur 47
Copyright 2007
Vous pouvez voir que 472 lignes de log ont t crites en base. Notre excution sest bien droule.

Conclusion
Je ne vous ai montr ici que quelques une des nombreuses, je dirais presque infinies, possibilits
offertes par SSIS.

Comme vous avez pu le constater, la prise en main de ce puissant outil est relativement aise et
rapide. Les tches que vous pouvez automatiser peuvent aller de la plus simple la plus complexe.

Il est mme possible dautomatiser se traitement via les autres fonctionnalits de SQL Server, mais je
garde a pour plus tard.

Merci de votre attention

Olivier Delmotte
http://odelmotte.developpez.com Page 47 sur 47
Copyright 2007

Anda mungkin juga menyukai