Académique Documents
Professionnel Documents
Culture Documents
SSIS - Implémenter Un Flux PDF
SSIS - Implémenter Un Flux PDF
Implmenter un flux
Version 1.0
Thibault Denizet
Sommaire
Introduction
Contraintes de prcdence
3.1
3.1.1
3.1.2
10
3.1.3
Conteneur de squence
10
11
3.2
3.2.1
11
3.2.2
11
3.2.3
17
3.2.4
22
3.2.5
Tches de script
24
3.2.6
25
3.2.7
28
3.3
30
3.3.1
30
3.3.2
31
3.3.3
32
3.3.4
32
3.3.5
33
3.3.6
33
3.3.7
34
3.3.8
35
3.3.9
36
3.3.10
37
3.3.11
37
38
38
4.1.1
Source ADO.net
38
4.1.2
Source Excel
40
Dotnet France Association
41
4.1.4
Source OLE DB
44
4.1.5
45
4.1.6
Source XML
45
4.2
47
4.2.1
47
4.2.2
Transformations de lignes
48
4.2.3
54
4.2.4
56
4.2.5
Audit de transformation
59
4.3
60
4.3.1
Destination ADO.NET
60
4.3.2
61
4.3.3
Destination DataReader
61
4.3.4
61
4.3.5
Destination Excel
61
4.3.6
61
4.3.7
Destination OLE DB
61
4.3.8
61
4.3.9
61
4.3.10
61
4.3.11
61
4.3.12
62
Conclusion
63
1 Introduction
Ce chapitre sera consacr aux tches du flux de contrle et du flux de donnes qui sont le cur
de notre package. En effet, ce sont ces tches qui vont permettre le transfert et la transformation de
nos donnes. Elles vont galement nous permettre de nous tenir informer sur lvolution de notre
package. Dans un premier temps, nous allons tudier les tches du flux de contrle puis celles du flux
de donnes. Cependant, il nous est ncessaire tout dabord de nous intresser aux contraintes de
prcdence afin dapprendre lier nos tches.
2 Contraintes de prcdence
SSIS nous propose, pour lier nos tches, des flches. Il suffit de cliquer sur la flche dune tche
et de glisser la souris jusqu une autre tche pour les lier. Lors de lexcution du package, les tches
seront excuts dans lordre de ces flches et selon les conditions que nous auront dtermin.
Dans limage ci-dessous, on remarque quatre tches, notre tche Data Flow qui sera excut en
premier, puis trois autres tches qui lui sont lies par des flches de diffrentes couleurs.
Contrainte (Constraint) : Cest loption par dfaut, on choisit simplement lune des trois
options vues plus haut (Succs, chec, dernire tape)
Expression : On rentre une expression et lexcution de la tche lie ne se fera que si
le contenu de lexpression est valu true(vrai).
Expression et Contrainte : Pour que lexcution de la tche lie se produise, il faut que
loption slectionne soit renvoye (succs, chec ou dernire tape) ET que le contenue de
lexpression soit valu true(vrai).
Expression ou Contrainte : Lexcution de la tche lie se fera si loption slectionne est
renvoye (succs, chec ou dernire tape) OU si le contenu de lexpression est valu
True(vrai).
Les tches du flux de contrles qui sont le squelette de notre package. Ces tches permettent
de traiter toutes les options ne concernant par directement les donnes dplacer et
transformer.
Les tches du flux de donnes reprsentent toutes les tches qui vont dplacer les donnes,
les modifier, les remplacer, etc... La tche Flux de donnes est une tche du flux de contrle
qui va comprendre toutes nos tches du flux de donnes.
Nous allons dans cette premire partie dcrire succinctement la plupart des tches du flux de
contrle en commenant par les conteneurs et en continuant avec les autres tches.
3.1
Les conteneurs sont rangs dans une autre partie que le reste des tches du flux de contrle
car ce sont des tches particulires. Elles contiennent dautres tches du flux de contrle et
permettent divers rsultats que nous allons dtailler.
3.1.1
Afin de comprendre la configuration de ce conteneur, nous allons nous intresser une capture
dcran :
Le nombre de fois o le contenu de la boucle For est excut est dtermin par trois
proprits : InitExpression, EvalExpression et AssignExpression. Nous pouvons voir ces proprits
dans la partie For Loop Properties ci-dessus.
LInitExpression est excut en premier au dbut de la boucle pour initialiser la variable qui
contrle le conteneur. Ensuite lEvalExpression est value, si elle est value True, le contenu de la
boucle est excut. Si elle est value false, lexcuteur quitte la boucle. Aprs chaque excution
du contenu de la boucle, lAssignExpression est value, suivi dune nouvelle valuation de
lEvalExpression.
Dans notre capture dcran, le conteneur de boucle For utilise la variable @Compteur dans
les expressions afin de contrler le nombre dexcution de la boucle. En ralit, il nest pas
ncessaire dutiliser une variable explicite, toute expression value true quand la boucle doit
continuer et false si elle doit sarrter conviendra.
10
On peut par exemple utiliser une boucle Foreach afin duploader tous les fichiers dun rpertoire
sur un serveur FTP.
3.1.3
Conteneur de squence
Contrairement aux deux conteneurs prcdents, le conteneur de squence ne modifie pas la
trame du package, il permet simplement dorganiser les tches de nos packages. Le conteneur de
squence permet par exemple dorganiser un gros package en sections pour faciliter le
dveloppement et le debugging. De plus, il est possible de dfinir des proprits communes pour les
tches appartenant un mme conteneur. Il fournit galement un moyen simple davoir diffrentes
portes au sein de nos packages.
Voici un aperu de trois conteneurs de squence dont deux ayant leur contenu masqu.
11
Copier un rpertoire
Copier un fichier
Crer un rpertoire
Supprimer un rpertoire
Supprimer le contenu dun rpertoire
Supprimer un fichier
Dplacer un rpertoire
Renommer un fichier
Dfinir les attributs dun rpertoire ou dun fichier
Nous devons crer une connexion vers le fichier source ou le rpertoire source avec lequel nous
souhaitons interagir. Il faut galement spcifier une connexion vers la destination si cela est
ncessaire (Copie, dplacement).
12
13
Dans le menu gnral de lditeur, dfinir la connexion FTP grce ladresse de votre
domaine FTP, votre login et votre mot de passe.
Dans le menu Transfert de fichier (File Transfer), le LocalPath dfinit le fichier copier
lorsquon veut envoyer des fichiers (Send Files), dautres options sont disponibles dans la
partie Operation. Il faut galement remplir le RemotePath, qui est le dossier dans lequel vos
fichiers seront uploads sur le serveur FTP.
14
15
Le document XML source peut tre li la tche grce au gestionnaire de connexion, par une
variable du package ou entr directement. Le document XML rsultant dune opration peut tre
sauv dans un fichier texte spcifi ou sauvegard dans une variable du package.
16
17
18
Ci-dessus, lditeur de la tche dexcution de processus. Voici une liste des lments configurer :
Executable : Dfinit le chemin daccs lexcutable.
Arguments : Une des deux mthodes pour fournir une entre lapplication lorsquelle est excute.
Pour passer plusieurs arguments, il faut utiliser des espaces pour les dlimiter. Il est galement
possible dutiliser une expression pour passer une valeur variable en argument.
Exempe : @Var1 + " " + @Var2
Working Directory (Rpertoire de travail) : Dfinit le chemin daccs au rpertoire de travail de
notre application.
StandardInputVariable : La deuxime mthode pour fournir une entre notre application, il faut
pour cela spcifier une variable.
StandardOutputVariable : Option permettant de dfinir des variables pour exploiter la sortie de
lapplication.
19
Pour la configuration, il suffit de crer une connexion vers une file dattente de la manire suivante :
<Nom_ordinateur>\<Nom_File_Attente> ou encore .\<Nom_File_Attente> si la file dattente est sur
lordinateur local. Ensuite, nous rajoutons le type du message et le message.
20
21
22
23
Voici les tapes suivre pour configurer cette tche (Vous pouvez voir lditeur de cette tche plus
bas) :
-
Dfinir le type de gestionnaire de connexions utiliser pour tablir la connexion une base
de donnes.
Prciser le type d'ensemble de rsultats retourn par l'instruction SQL.
Spcifiez un dlai d'expiration pour les instructions SQL.
Dfinir la source de l'instruction SQL.
Indiquez si la tche passe la phase de prparation de l'instruction SQL.
Si nous utilisons le type de connexion ADO, nous devons indiquer si linstruction SQL est une
procdure stocke. Pour les autres types de connexions, le paramtrage est automatique et
en lecture seule
24
Tches de script
25
3.2.6
26
Voici le menu de la tche DDL dexcution de SQL Server Analysis Services, cette tche utilise
un gestionnaire de connections Analysis Services pour se connecter une instance Analysis Services.
Ensuite nous choisissons entre Direct input, o nous tapons directement notre requte, file
connection, qui se connecte un fichier contenant la requte, ou variable, o nous dfinissons la
source par une variable.
27
28
3.2.7
29
Ci-dessus, le menu de script de la tche de script ActiveX, on peut y choisir le langage (Javascript ou
VBScript), entrer un script ou limporter et dterminer le point dentre de notre script.
30
31
3.3.2
La configuration est simple, nous crons la connexion vers le serveur et nous spcifions les
bases de donnes inspecter. Si linspection ne dtecte pas de donnes corrompues, la tche est
considre comme un succs et seules les tches lies avec une contrainte de prcdence succeed
ou completion seront excutes. Si linspection dtecte des donnes corrompues, ce sera les tches
lies par une contrainte dchec.
32
33
3.3.6
34
3.3.7
35
3.3.8
36
3.3.9
37
38
Source ADO.net
La tche Source ADO.net permet lutilisation dADO.NET afin de se connecter une base de
donnes source.
Pour utiliser cette tche, il faut crer une connexion vers les donnes source. Une fois que
cette connexion a t cre, nous avons le choix entre deux types daccs aux donnes. Soit par le
mode Table or view (Table ou vue) soit par le mode SQL command, autrement dit grce une
requte SQL.
Si nous choisissons le mode Table or view, il nous suffira ensuite de slectionner la table ou la vue
utiliser.
39
Longlet Colonne ci-dessus, utilise les informations de longlet Connection Manager ds que nous
louvrons. Nous pouvons y voir les colonnes de notre table ou de notre vue.
40
Source Excel
La tche Source Excel nous permet dutiliser un fichier Excel comme source de donnes. Il
nous faut crer une connexion vers le fichier Excel utiliser. Laccs aux donnes peut se faire selon
les deux mthodes vu dans la tche Source ADO.NET, plus deux autres : Table name or view name
variable (Une table ou une vue spcifie dans une variable.) et SQL Command from variable(Les
rsultats d'une instruction SQL stocke dans une variable). Lorsque cela est fait, longlet Columns
affiche les colonnes de notre fichier Excel.
41
42
43
44
Source OLE DB
La tche Source OLE DB permet lutilisation de donnes de nimporte quelle source qui
supporte lutilisation dOLE DB. Pour rappel, OLE DB est une interface de programmation(API)
dvelopp par Microsoft pour laccs aux donnes. La configuration est trs proche de ce que nous
avons dj vu.
45
4.1.6
Source XML
Comme son nom le laisse supposer, la tche Source XML permet dutiliser les donnes
stockes dans des fichiers XML dans le flux de donnes. Si le XML provient dun fichier, il suffit de
spcifier le chemin daccs ou obtenir le chemin du fichier grce une variable au moment de
lexcution. Il est galement possible de spcifier le chemin daccs dun XSD qui dfinit la structure
de notre XML.
46
47
4.2.1
48
4.2.2
Transformations de lignes
Nous pouvons utiliser plusieurs transformations sur la mme colonne, cependant, certaines
transformations sont exclusives, cela na par exemple aucun sens dappliquer la transformation
Majuscule et la transformation Minuscule la mme colonne.
Longlet Error Outpur de cette tche nous permet de dfinir le comportement de la tche
lorsquil y a une troncation dune chane de caractres au sein dune colonne.
Ci-dessous, lditeur de la tche.
49
50
Ci-dessus, lditeur de la tche Copie de colonnes, nous avons copi la colonne Nom et avons nomm
la nouvelle colonne Test.
51
52
Nous avons ci-dessus lditeur de la transformation de colonne drive, nous avons cre une
nouvelle colonne Exp calculant la fonction exponentielle sur les lments de la colonne Carr qui
contient le carr des lments de la colonne Moyenne.
53
Comme nous pouvons le voir ci-dessus, il est ncessaire de slectionner une de ces trois
options lors de la cration de la tche. Lors de la configuration, il faut galement spcifier les entres
et les sorties de nos tches de script. Ensuite, il suffit de coder le script.
4.2.2.8 Transformation de commande OLE DB
La tche de transformation de commande OLE DB permet lexcution dune requte SQL
pour chaque range dans le flux de donnes. Il ny a que deux choses configurer : dterminer le lieu
dexcution de la requte et dfinir la requte.
Dotnet France Association
54
4.2.3
Pour configurer cette tche, nous commenons par choisir les tches sur lesquelles nous
souhaitons faire une agrgation. Nous choisissons ensuite le type dopration que nous allons
appliquer chacune de nos colonnes. Nous pouvons effectuer les agrgations suivantes :
-
55
La dernire option permet de rduire la variabilit du random de la tche, elle nest utilis
que lors de tests.
56
4.2.4
(Jutilise uniquement des fichiers plats dans cet exemple car ce sont les sources et les destinations les
plus simples configurer.)
57
(Nous utilisons ici des virgules pour sparer nos colonnes, vous pouvez utiliser ce que vous souhaitez
tant que vous dfinissez la bonne option dans la configuration de vos fichiers plats.)
Et voici lditeur de la tche de fractionnement conditionnel :
58
59
4.2.5
Audit de transformation
Ci-dessous, nous pouvons voir lditeur de transformation Audit qui ajoute des colonnes
contenant le nom de la tche du flux de donnes, le GUID du package, le GUID de lexcution du
package et lheure de dbut dexcution du package.
60
Destination ADO.NET
La destination ADO.NET nous permet dutiliser ADO.NET pour nous connecter notre base
de donnes de destination. Comme pour toutes les destinations, il suffit de crer une connexion vers
la destination. Une fois que cest fait, il faut mapper les colonnes et dfinir la structure du flux de
donnes envoyer dans la base de donnes de destination.
Dotnet France Association
61
Destination DataReader
La destination DataReader permet lutilisation ADO.NET pour se connecter une base de
donnes de destination. (Mme fonction que destination ADO.NET)
4.3.4
Destination Excel
La destination Excel permet lenvoi de donnes dans un fichier Excel. Tout ce quil y a faire
est de crer une connexion vers le fichier puis de mapper les colonnes dentre et de sortie.
4.3.6
Destination OLE DB
La destination OLE DB nous permet de charger des donnes dans des bases de donnes
compatibles avec OLE DB.
4.3.8
62
63
5 Conclusion
A prsent, vous avez presque toutes les cls pour le dveloppement de package SQL Server
Integration Services. Nhsitez pas crer des packages pour vous entrainer et apprendre maitriser
chaque tche. Il ne reste quun chapitre dans cette partie, propos de tout ce que nous navous pas
vu propos de SSIS (Debugging, gestionnaire dvnements, historique) puis nous nous intresserons
la maintenance dune solution SSIS.