Upload
mamadou-diop-ndiaye
View
6
Download
2
Embed Size (px)
Citation preview
SSIS
Outils complmentaires Version 1.0
Thibault Denizet
Dotnet France Association
2 Outils complmentaires 09/09/2009
Sommaire
1 Introduction ..................................................................................................................................... 3
2 Transactions .................................................................................................................................... 4
2.1 Dfinition ................................................................................................................................. 4
2.2 Configuration ........................................................................................................................... 4
3 Checkpoints ..................................................................................................................................... 6
3.1 Dfinition ................................................................................................................................. 6
3.2 Configuration ........................................................................................................................... 6
4 Statut du package ............................................................................................................................ 7
5 Historique ........................................................................................................................................ 8
5.1 Dfinition ................................................................................................................................. 8
5.2 Configuration ........................................................................................................................... 8
6 Gestionnaire dvnements ............................................................................................................ 9
6.1 Dfinition ................................................................................................................................. 9
6.2 Configuration ........................................................................................................................... 9
7 Debugging ...................................................................................................................................... 10
8 Conclusion ..................................................................................................................................... 11
Dotnet France Association
3 Outils complmentaires 09/09/2009
1 Introduction Maintenant que nous savons crer des packages grce aux diverses tches du chapitre
prcdent, nous allons tudier les outils fournis par SSIS pour rendre notre package plus optimis,
plus fonctionnel et plus autonome. En effet, nous verrons par exemple comment unir les tches de
notre package grce aux transactions, crer des points de sauvegarde grce aux checkpoints, voir le
statut de notre package ou encore crer des historiques de lexcution de nos packages. De plus,
nous allons voir comment grer les erreurs et le debugging.
Dotnet France Association
4 Outils complmentaires 09/09/2009
2 Transactions
2.1 Dfinition Les packages de SQL Server Integration Services effectuent des oprations en units atomiques,
cest--dire, une tche ou une srie de tches est soit russie et affecte les donnes, soit choue et
renvoie les donnes avant lexcution des tches.
Lunit de travail qui doit tre excute avec succs afin daffecter les donnes est appele une
transaction.
2.2 Configuration Nous pouvons dfinir des transactions sur le package entier ou bien sur nimporte quelle tche
individuellement. Les transactions dans SSIS utilisent la ressource Miscrosoft Distributed Transaction
Coordinator (MSDTC). Cette ressource doit tre active pour que les transactions fonctionnent.
Pour utiliser MSDTC dans SSIS, il nous faut mettre la
proprit TransactionOption de Supported (Option par
dfaut) Required.
De plus, tout service ou programme compatible avec MSDTC
peut faire parti dune transaction dans SSIS.
Voici les rgles importantes respecter pour mettre en place des transactions au sein de notre
package.
1. Pour activer les transactions, il faut dmarrer MSDTC (msdtc.exe) et le ou les services, tches
ou programmes doivent tre compatibles avec MSDTC.
2. Si une srie de tches doit tre excut comme une seule unit, il faut placer les tches dans
un conteneur de squence et rgler loption TransactionOption Required.
3. Une tche peut hriter des proprits de transaction de ses parents quand loption
TransactionOption est mise Supported.
4. Il est possible dempcher une tche de participer une transaction en mettant loption
TransactionOption NotSupported.
Dotnet France Association
5 Outils complmentaires 09/09/2009
5. Si nous dfinissons loption TransactionOption dune boucle Foreach ou dune boucle For
Required, une nouvelle transaction sera cre pour chaque itration de la boucle.
6. Les transactions fonctionnent au niveau du flux de contrle mais pas lintrieur du flux de
donnes. Cela a pour effet que nous pouvons sparer des tches dans le flux de contrle
mais pas dans le flux de donnes. Soit le processus du flux de donnes entier sera excut
avec succs soit il sera annul.
Dotnet France Association
6 Outils complmentaires 09/09/2009
3 Checkpoints
3.1 Dfinition Parfois il est intressant de redmarrer un package juste avant quil nchoue au lieu de tout
recommencer au dbut, particulirement lorsque nous travaillons sur des gros projets ayant un
temps dexcution important. Il est possible davoir cette option en activant les checkpoints au sein
de notre package.
3.2 Configuration La premire tape est de permettre notre package dutiliser des checkpoints et la seconde
tape est de spcifier les tches et les conteneurs o placer les checkpoints.
Pour activer les checkpoints, il suffit de suivre les tapes suivantes :
1. Dans notre package, cliquer sur longlet flux de contrle pour obtenir les proprits du
package en bas droite par dfaut.
2. Dfinir la proprit SaveCheckpoints au niveau du package True. Cela permet SSIS de
sauvegarder des checkpoints durant lexcution du package.
3. Au niveau de la proprit CheckpointFileName, nous devons fournir un chemin daccs valide
vers un fichier checkpoint. Les packages utilisent des fichiers pour maintenir les informations
de leur tat. Ainsi si un package choue et redmarre, il peut lire le fichier checkpoint et
dterminer o il doit reprendre lexcution.
4. Dfinir la proprit CheckpointUsage IfExists, qui permet au package de savoir quil doit se
r-excuter depuis le dbut si aucun fichier checkpoint nest prsent et que, dans le cas
contraire, il doit redmarrer lendroit que lui indique le fichier checkpoint. Si la proprit
est mise Always, le package ne pourra dmarrer que si un fichier checkpoint est prsent.
5. Aprs avoir activ les checkpoints, la dernire tape est de placer les checkpoints au sein des
diverses tches de notre package. Pour faire cela, nous devons mettre la proprit
FailPackageOnFailure de chaque tche True.
Une fois que tous ces lments sont configurs, votre package pourra redmarrer depuis le
checkpoint le plus proche de lerreur.
Dotnet France Association
7 Outils complmentaires 09/09/2009
4 Statut du package Lors de lexcution de notre package, SSIS rentre dans lenvironnement de dbogage, nous
pouvons ainsi voir le statut des tches du flux de contrle et du flux de donnes. Dans SSIS, les tches
apparaissent en diffrentes couleurs selon leurs tats.
Les lments qui sont en noir nont pas encore t excuts. Les lments qui apparaissent en
jaune sont en cours dexcution et ceux en rouge sont ceux dont lexcution choue. Enfin, la
couleur verte des lments correspond la russite.
Dotnet France Association
8 Outils complmentaires 09/09/2009
5 Historique
5.1 Dfinition Les informations obtenues dans longlet Progress peuvent tre enregistres dans un fichier
ou une table afin de crer un historique grce aux fonctionnalits prvues cet effet.
5.2 Configuration Pour activer lhistorique (aussi appel Journalisation), il faut tout dabord slectionner Logging
(Enregistrement sur la version franaise) dans le menu SSIS.
Aprs laffichage de lditeur de journalisation, il nous faut slectionner quelles parties de
notre package auront un historique. En gnral, nous souhaitons avoir lhistorique de notre package
entier, nous devrons donc cocher llment tout en haut de larbre de navigation. Mais, nous
pouvons galement ne slectionner que certains lments.
Nous devons ensuite choisir la destination des informations de notre historique. Nous avons le
choix entre Windows Event Log, les fichiers textes, les fichiers XML, les fichiers SQL Server ou encore
les fichiers SQL Profiler. Il nous faut ensuite crer la connexion vers le bon fichier dans la partie
Configuration.
Pour finir, il nous reste slectionner les vnements enregistrer, ci-dessous la liste de ces
vnements.
Chaque vnement possde une description, nous ne les dtaillerons donc pas.
Dotnet France Association
9 Outils complmentaires 09/09/2009
6 Gestionnaire dvnements
6.1 Dfinition SSIS fournit le moyen de surveiller lexcution et le dclenchement de certains vnements afin
dexcuter dautres oprations lorsque ces dclenchements arrivent. Par exemple, si une erreur
apparait, le gestionnaire dvnement Error peut envoyer une alerte ou tenter de fixer lui-mme le
problme.
6.2 Configuration Pour ajouter un vnement, il faut aller dans longlet Event Handlers, choisir lexcutable (la
tche sur laquelle on souhaite appliquer un lvnement) ainsi que lvnement. Il suffit ensuite de
glisser les tches que lon souhaite utiliser.
Nous allons prsent dtailler tous les vnements disponibles :
- OnError : sexcute lorsquune tche ou un conteneur rapporte une erreur.
- OnExecStatusChanged : sexcute pour toutes les tches ou conteneurs quand le statut
dexcution du package passe In process, Success ou Failed.
- OnInformation : sexcute lorsque SSIS envoie des messages dinformation durant
lexcution dune tche ou dun conteneur.
- OnPostExecute : sexcute aprs quune tche ou quun conteneur se soit compltement
excut.
- OnPostValidate : sexcute aprs quune tche ou quun conteneur ait t valid.
- OnPreExecute : sexcute juste avant quun conteneur ou quune tche ne soit excut.
- OnPreValidate : sexcute avant quun conteneur ou quune tche ne soit valid.
- OnProgress : sexcute quand un message davancement est envoy par SSIS, indiquant
lavancement de la tche ou du conteneur.
- OnQueryCancel : est utilis quand une tche Excuter une requte SQL est annule par une
intervention manuelle, comme un arrt du package.
- OnTaskFailed : Similaire OnError, mais sexcute quand une tche choue plutt que
chaque fois quune erreur apparait.
- OnVariableValueChanged : sexcute quand la valeur dune variable change et pour laquelle
la proprit RaiseChangeEvent est mise True.
- OnWarning : sexcute lorsquune tche renvoie un vnement dangereux.
Dotnet France Association
10 Outils complmentaires 09/09/2009
7 Debugging Le debugging des packages permet de savoir ce quil se passe durant lexcution de notre
package, ainsi nous pouvons vrifier que tout se droule bien. De plus, nous pouvons implmenter
des points darrt au sein de notre flux de contrle qui mettront en pause lexcution afin dobserver
son tat. Pour mettre en place des points darrt, soit nous appuyons sur F9 soit menu Debug>Toggle
Breakpoint.
Lors dune pause, il est possible deffectuer des actions telles que voir toutes les variables et la
statut du package. Pour voir ces informations, il faut slectionner Windows dans le menue Debug
puis Locals.
Dotnet France Association
11 Outils complmentaires 09/09/2009
8 Conclusion Vous tes maintenant compltement capable de crer un package fonctionnel rpondant vos
besoins. Vous devriez pouvoir vous plier toutes les contraintes que vous souhaitez imposer votre
package. Dans la suite du cours, nous verrons comment grer notre package une fois que celui-ci est
termin.