ssis - implémenter un flux.pdf

Upload: abdelfettah-gasmi

Post on 10-Feb-2018

234 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    1/63

    SSIS

    Implmenter un fluxVersion 1.0

    Z

    Thibault Denizet

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    2/63

    Dotnet France Association

    2 SSIS Implmenter un flux

    Sommaire

    1 Introduction 4

    2 Contraintes de prcdence 5

    3 Implmenter un flux de contrle 8

    3.1 Conteneurs du flux de contrle 8

    3.1.1 Conteneur de boucle For 8

    3.1.2 Conteneur de boucle Foreach 10

    3.1.3 Conteneur de squence 10

    3.2 Elments du flux de contrle 11

    3.2.1 Tche de flux de donnes 11

    3.2.2 Tches de prparation des donnes 11

    3.2.3 Tches de flux de travail 17

    3.2.4 Tches SQL Server 22

    3.2.5 Tches de script 24

    3.2.6 Tches Analysis Services 25

    3.2.7 Tches de compatibilit descendante 28

    3.3 Tches du plan de maintenance 30

    3.3.1 Tche Sauvegarder la base de donnes 30

    3.3.2 Tche Vrifier lintgrit de la base de donnes 31

    3.3.3 Tche Excuter le travail de lAgent SQL Server 32

    3.3.4 Tche Excuter linstruction T-SQL 32

    3.3.5 Tche de nettoyage dhistorique 33

    3.3.6 Tche de nettoyage de maintenance 33

    3.3.7 Tche Notifier loprateur 34

    3.3.8 Tche Reconstruire lindex 35

    3.3.9 Tche Rorganiser lindex 36

    3.3.10 Tche Rduire la base de donnes 37

    3.3.11 Tche Mettre jour les statistiques 37

    4 Implmenter un flux de donnes 38

    4.1 Source de flux de donnes 38

    4.1.1 Source ADO.net 38

    4.1.2 Source Excel 40

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    3/63

    Dotnet France Association

    3 SSIS Implmenter un flux

    4.1.3 Source de fichier plat 41

    4.1.4 Source OLE DB 44

    4.1.5 Source de fichier brut 45

    4.1.6 Source XML 45

    4.2 Transformation du flux de donnes 47

    4.2.1 Transformations Business Intelligence 47

    4.2.2 Transformations de lignes 48

    4.2.3 Transformations densemble de lignes 54

    4.2.4 Transformations de fractionnement et de jointure 56

    4.2.5 Audit de transformation 59

    4.3 Destinations du flux de donnes 60

    4.3.1 Destination ADO.NET 60

    4.3.2 Destination dapprentissage du modle dexploration de donnes 61

    4.3.3 Destination DataReader 61

    4.3.4 Destination de traitement de dimension 61

    4.3.5 Destination Excel 61

    4.3.6 Destination de fichier plat 61

    4.3.7 Destination OLE DB 61

    4.3.8 Destination de traitement de partition 61

    4.3.9 Destination de fichier brut 61

    4.3.10 Destination de lensemble denregistrements 61

    4.3.11 Destination SQL Server Compact Edition 61

    4.3.12 Destination SQL Server 62

    5 Conclusion 63

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    4/63

    Dotnet France Association

    4 SSIS Implmenter un flux

    1 IntroductionCe 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 deprcdence afin dapprendre lier nos tches.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    5/63

    Dotnet France Association

    5 SSIS Implmenter un flux

    2 Contraintes de prcdenceSSIS 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 enpremier, puis trois autres tches qui lui sont lies par des flches de diffrentes couleurs.

    Si nous faisons un clic droit sur la flche bleue on obtient le

    menu ci-contre :

    Chaque couleur correspond en fait une contrainte,

    la tche Script (flche verte) sexcutera uniquement si

    lexcution de la tche Data Flow sest bien droul.

    La tche Script 1 (flche bleue) sexcutera aprs la tche

    Data Flow peu importe le succs ou lchec de lexcution de

    celle-ci.

    Enfin, la tche Send Mail (flche rouge) sexcutera si

    lexcution de la tche Data Flow a chou.

    Plus simplement :

    Flche verte = succs

    Flche rouge = chec

    Flche bleue = Dernire tape (Completion en anglais)

    Si ces trois options ne suffisent pas, il est possible de rajouter des restrictions grce aux

    expressions et aux options de lditeur de contrainte de prcdence :

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    6/63

    Dotnet France Association

    6 SSIS Implmenter un flux

    Nous allons maintenant dtailler le contenu de ce menu :

    La premire chose choisir est lopration dvaluation (Evaluation operation), quatre choixsoffrent nous :

    - Contrainte (Constraint) : Cest loption par dfaut, on choisit simplement lune des troisoptions vues plus haut (Succs, chec, dernire tape)

    - Expression : On rentre une expression et lexcution de la tche lie ne se fera que sile contenu de lexpression est valu true(vrai).

    - Expression et Contrainte : Pour que lexcution de la tche lie se produise, il faut queloption 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 estrenvoye (succs, chec ou dernire tape) OU si le contenu de lexpression est valu

    True(vrai).

    Le menu Multiple constraints en bas de la capture dcran permet de dterminer le

    comportement de la tche si cette dernire plusieurs flches de prcdence connectes :

    Deux options sont disponibles :

    - ET logique : Toutes les flches de prcdence doivent

    sexcuter avec succs.

    - OU logique : Au moins une des flches de prcdence doit

    sexcuter avec succs.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    7/63

    Dotnet France Association

    7 SSIS Implmenter un flux

    Il est possible de mettre des tches de flux de contrle sans les raccorder dautres tches, ces

    dernires ne sont donc pas lies lvolution du reste du package et ne sont pas soumises un ordre

    dexcution particulier.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    8/63

    Dotnet France Association

    8 SSIS Implmenter un flux

    3 Implmenter un flux de contrleIl existe deux types de tches dans SSIS :

    - Les tches du flux de contrles qui sont le squelette de notre package. Ces tches permettentde 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 Conteneurs du flux de contrleLes 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 Conteneur de boucle For

    Le conteneur de boucle For permet la rptition des tches

    quil contient. Ce conteneur est proche dune boucle For en C# ou en

    C.

    Voici une capture dcran dune boucle For contenant deux tches,

    une tche SQL et une tche flux de donnes.

    Le conteneur va permettre de rpter plusieurs fois ces deux tches.

    Afin de comprendre la configuration de ce conteneur, nous allons nous intresser une capture

    dcran :

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    9/63

    Dotnet France Association

    9 SSIS Implmenter un flux

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    10/63

    Dotnet France Association

    10 SSIS Implmenter un flux

    3.1.2 Conteneur de boucle ForeachComme la boucle For, la boucle Foreach fournit un moyen de rpter une partie dun flux de

    contrle. Cependant, au lieu davoir une expression pour contrler la sortie de la boucle, la boucle

    Foreach utilise un systme ditration pour chaque item dune collection. On peut utiliser les

    collections suivantes :

    - Chaque fichier dans un dossier donn correspondant type de fichier spcifi.- Chaque ligne de la premire table dans un recordset ADO ou un dataset ADO.NET.- Chaque ligne de toutes les tables dans un dataset ADO.NET.- Chaque table dans un dataset ADO.NET.- Chaque lment dune variable contenant une collection.- Chaque nud (node) dans une liste de nud (nodelist) XML.- Chaque objet dans une collection SMO (SQL Server Management Objects).On peut par exemple utiliser une boucle Foreach afin duploader tous les fichiers dun rpertoire

    sur un serveur FTP.

    3.1.3 Conteneur de squenceContrairement 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    11/63

    Dotnet France Association

    11 SSIS Implmenter un flux

    3.2 Elments du flux de contrleMaintenant que nous avons vu les diffrents conteneurs prsents, nous allons tudier toutes

    les tches du flux de contrle en commenant par les lments du flux de contrles, suivies des

    tches du plan de maintenance.

    3.2.1

    Tche de flux de donnes

    3.2.1.1 Tche de flux de donnesLa tche de flux de donnes comprend toutes les tches pour la transformation des donnes.

    Elle se configure dans longlet Flux de donnes, la partie suivante sera centre sur ces tches et leurs

    utilisations. Un flux de donnes reprsente les colonnes dune table ou dune vue. Il peut y avoir

    plusieurs flux de donnes dans un mme package.

    3.2.2 Tches de prparation des donnes3.2.2.1 Tche de systme de fichiersLa tche de systme de fichiers nous permet deffectuer les actions suivantes :

    - 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).

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    12/63

    Dotnet France Association

    12 SSIS Implmenter un flux

    Ci-dessus lditeur de la tche de systme de fichiers.

    3.2.2.2 Tche FTPLa tche FTP nous permet deffectuer les actions suivantes sur un domaine FTP :

    - Envoyer des fichiers- Recevoir des fichiers- Crer un rpertoire local- Crer un rpertoire distant- Supprimer un rpertoire local- Supprimer un rpertoire distant- Supprimer des fichiers locaux- Supprimer des fichiers distants

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    13/63

    Dotnet France Association

    13 SSIS Implmenter un flux

    Les tapes de la configuration sont :

    - Dans le menu gnral de lditeur, dfinir la connexion FTP grce ladresse de votredomaine FTP, votre login et votre mot de passe.

    - Dans le menu Transfert de fichier (File Transfer), le LocalPath dfinit le fichier copierlorsquon 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    14/63

    Dotnet France Association

    14 SSIS Implmenter un flux

    3.2.2.3 Tche de service WebLa tche de service Web nous permet dexcuter un service Web lintrieur de notre

    package. Il faut pour cela crer une connexion http. Ensuite nous slectionnons la mthode web que

    lon souhaite utiliser.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    15/63

    Dotnet France Association

    15 SSIS Implmenter un flux

    3.2.2.4 Tche XMLLa tche XML nous permet de manipuler des documents XML. Grce cette tche, il est possible

    deffectuer les actions suivantes :

    - Valider un document XML en utilisant un XSD (XML Schema Document) ou un DTD(Document Type Definition).

    - Appliquer une XSL Transformation (XSLT)- Appliquer une requte XPath- Fusionner deux documents XML- Trouver les diffrences entre deux documents XML (Diff Operation)- Appliquer sortie dune opration Diff

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    16/63

    Dotnet France Association

    16 SSIS Implmenter un flux

    3.2.2.5 Tche de profilage des donnesCette tche calcule diffrents profils en rcoltant les informations dun ensemble de

    donnes. Nous pouvons ainsi dtecter tout problme au sein de ces donnes.

    Nous pouvons effectuer les oprations de profilage suivantes :

    - Profil de cl candidate : Dtermine si une colonne ou un ensemble de colonnes est unidentifiant unique pour la table slectionne.

    - Profil de distribution de longueurs de colonne : Fournit une liste des diffrentes longueursdes chanes de caractres prsentes dans une colonne.

    - Profil de ratio de colonne Null : Rapporte le nombre de NULLs dans une colonne.- Profil de modle de colonne : Dtermine un ensemble dexpressions rgulires qui sont

    valides pour un pourcentage spcifi de valeurs dans une colonne de chane.

    - Profil de statistiques de colonnes : Trouver la valeur maximale et minimale, la moyenne etlcart type pour des colonnes numriques, ainsi que la valeur maximale et minimale pour

    des colonnes Datetime.

    - Profil de distribution de valeurs de colonne : Renvoie les diffrents ensembles de valeursdans une colonne et le pourcentage doccurrence de chaque valeur.

    - Profil de dpendance fonctionnelle : Signale le degr de dpendance entre les valeurs dunecolonne et une autre colonne ou un ensemble de colonnes.

    - Profil dinclusion de valeur : Calcule le nombre de valeurs communes entre une ou plusieurscolonnes.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    17/63

    Dotnet France Association

    17 SSIS Implmenter un flux

    3.2.3 Tches de flux de travail3.2.3.1 Tche dexcution de package

    Cette tche nous permet dinclure un package Integration Services lintrieur dun autre.

    Nous disons alors que le package qui contient la tche dexcution de package est le package pre, et

    celui qui est li la tche est le package fils.

    Nous pouvons voir ci-dessous lditeur de la tche dexcution de package, nous pouvons y

    rentrer plusieurs paramtres : Une connexion vers le package fils, le nom du package, le password, et

    la dernire option, ExecuteOutOfProcess permet de dissocier le processus dexcution du package fils

    et du package pre. Ainsi, si nous mettons cette option True, le package fils ne sexcutera pas dans

    le mme processus que le package pre et les erreurs du package fils nont pas dinfluence sur le

    package pre et son bon droulement.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    18/63

    Dotnet France Association

    18 SSIS Implmenter un flux

    3.2.3.2 Tche dexcution de processusLa tche dexcution de processus permet lexcution dun programme ou dun fichier batch.

    Nous pouvons par exemple utiliser cette tche pour dzipper des fichiers compresss, excuter des

    applications de gestions, etc.

    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 delapplication.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    19/63

    Dotnet France Association

    19 SSIS Implmenter un flux

    StandardErrorVariable: Option permettant de dfinir des variables pour exploiter la sortie derreur

    de lapplication.

    Nous pouvons aussi spcifier un dlai dattente ou une valeur pour sassurer que lexcution sest

    bien passe.

    3.2.3.3 Tche MSMQLa tche MSMQ (MicroSoft Message Queue) nous permet dutiliser Message Queuing pour

    envoyer ou recevoir des messages entre diffrents packages SSIS ou pour envoyer des messages

    une file dattente traite par une autre application. Lutilisation de MSMQ permet de coordonner

    toute une entreprise en retardant par exemple lexcution dune tche tant que toutes les tches

    ncessaires son excution ne sont pas termines.

    Un message peut tre un fichier de donnes, une ou plusieurs variables ainsi que leur contenu, ou

    encore une chane de caractres.

    Pour la configuration, il suffit de crer une connexion vers une file dattente de la manire suivante :

    \ ou encore .\ si la file dattente est sur

    lordinateur local. Ensuite, nous rajoutons le type du message et le message.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    20/63

    Dotnet France Association

    20 SSIS Implmenter un flux

    3.2.3.4 Tche Envoyer un messageLa tche Envoyer un message permet lenvoi dun message depuis notre package, il est ainsi

    possible de signaler les erreurs ladministrateur pour que celui-ci y remdie rapidement.

    La configuration se fait en quelques tapes :

    - Crer la connexion vers le serveur SMTP- Dfinir lmetteur ainsi que le destinataire- Rentrer un sujet- Taper notre message- Choisir la priorit et joindre des fichiers si ncessaire

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    21/63

    Dotnet France Association

    21 SSIS Implmenter un flux

    3.2.3.5 Tche Lecteur de donnes WMILa tche Lecteur de donnes WMI permet lexcution dune requte WMI (Windows

    Management Instrumentation) pour obtenir les informations dun ordinateur spcifi. Cela peut-tre

    une liste des applications installes, les composants matriels de lordinateur, etc. Pour configurer

    cette tche, nous crons une connexion vers lordinateur dont ou souhaite obtenir des informations,

    puis on rentre la requte et enfin la destination des donnes renvoys.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    22/63

    Dotnet France Association

    22 SSIS Implmenter un flux

    3.2.3.6 Tche Observateur dvnement WMILa tche Observateur dvnements WMI (Windows Management Instrumentation) observe

    les vnements en utilisant une requte dvnements WQL (Management Instrumentation Query

    Language) pour dfinir quels sont ceux qui peuvent tre intressants. Nous pouvons par exemple

    attendre quun fichier ait fini dtre dplac pour poursuivre lexcution du package, ou bien

    attendre la fin de linstallation dune application.

    3.2.4 Tches SQL Server3.2.4.1 Tche dinsertion en bloc

    Cette tche nous permet de copier rapidement des donnes dun fichier texte dans une table

    ou un vue SQL Server. Nous spcifions pour cela la base de donnes de destination (connection) ainsi

    que la table(DestinationTable), puis nous ajoutons le fichier qui contient les donnes transfrer

    (File). Attention, pour cette tche, le ficher source est toujours un fichier texte.

    Ci-dessus, le menu Connexion de la tche dinsertion en bloc.

    3.2.4.2 Tche dexcution de requtes SQLLa tche dexcution de requtes SQL permet lexcution dinstructions ou de procdures

    SQL. La tche peut contenir une seule ou plusieurs instructions SQL (lexcution se fait alors de

    manire squentielle).

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    23/63

    Dotnet France Association

    23 SSIS Implmenter un flux

    Cette tche peut tre utilise pour :

    - Tronquer une table ou une vue pour la prparer linsertion de donnes.- Crer, modifier et supprimer des objets de base de donnes (tables ou vues).- Recrer des tables de faits et de dimensions avant dy charger des donnes.- Excuter des procdures stockes.- Enregistrer dans une variable lensemble de lignes retourn par une requte.

    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 basede 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

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    24/63

    Dotnet France Association

    24 SSIS Implmenter un flux

    3.2.4.3 Tche de transfert de bases de donnesLa tche de transfert de bases de donnes permet de copier ou dplacer une base de

    donnes entre deux instances SQL Server.

    3.2.4.4 Tche de transfert de messages derreurCette tche transmet des messages derreurs entre des instances de SQL Server.

    3.2.4.5 Tche de transfert de travauxLa tche de transfert de travaux transfert des travaux d'agent SQL Server entre des instances

    de SQL Server.

    3.2.4.6 Tche de transfert de connexionsCette tche permet de transfrer une ou plusieurs connexions entre des instances de SQL

    Server.

    3.2.4.7 Tche de transfert de procdures stockes de masterCette tche transfert des procdures stockes de master entre des bases de donnes master

    sur des instances de SQL Server.

    3.2.4.8 Tche de transfert dobjets SQL ServerCette tche transfert un ou plusieurs types dobjets dune base de donnes SQL Serveur

    entre des instances SQL Server. On peut par exemple copier des tables ou des vues.

    3.2.5 Tches de script3.2.5.1 Tche de script

    La tche de script permet dintgrer du code .NET dans notre package SSIS. Cette tche est

    similaire la tche de script ActiveX, en effet, ces deux tches peuvent effectuer des

    transformations, faire des calculs complexes et implmenter une logique mtier qui ne peuvent tre

    cres en utilisant dautres tches SSIS. Cependant, la tche de script est suprieur la tche de script

    ActiveX, le codage se fait plus simplement et la code est prcompil ds que le script est enregistr,

    ce qui augmente les performances lors de lexcution du package.

    La configuration de cette tche est assez simple, il suffit de spcifier quel langage nous

    souhaitons utiliser (C# ou VB), les variables que nous ne pouvons pas modifier(ReadOnlyVariables) et

    les variables que nous pouvons modifier(ReadWriteVariables). Il faut ensuite taper le code en

    cliquant sur Edit Script .

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    25/63

    Dotnet France Association

    25 SSIS Implmenter un flux

    3.2.6 Tches Analysis Services3.2.6.1 Tche DDL dexcution de SQL Server Analysis Services

    Cette tche nous permet dintervenir sur un serveur Analysis Services en modifiant ou en

    supprimant les objets multidimensionnels comme les cubes et les dimensions. Pour cela, la tche

    utilise des requtes DDL (Data Definition Language) qui sont crites en AASL (Analysis Services

    Scripting Language) puis insres dans une commande XMLA (XML for Analysis Services).

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    26/63

    Dotnet France Association

    26 SSIS Implmenter un flux

    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.

    3.2.6.2 Tche de traitement dAnalysis ServicesLa tche de traitement dAnalysis Services nous permet de traiter les objets Analysis Services,

    comme les cubes, les dimensions et les modles dexploration de donnes (Datamining). Nous

    lutilisonsen gnral lorsquun grand nombre de changement ont t fait dans la base de donnes.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    27/63

    Dotnet France Association

    27 SSIS Implmenter un flux

    3.2.6.3 Tche de requte dexploration de donnesCette tche fournit des prdictions grce lutilisation de requtes de prdictions bases sur

    les modles dexploration de donnes intgrs Analysis Services. Les requtes sont crites en DMX

    (Data Mining Extensions) qui est une extension du langage SQL prenant en charge lutilisation de

    modles dexploration de donnes. Le DataMining sera dtaill dans le cours Analysis Services.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    28/63

    Dotnet France Association

    28 SSIS Implmenter un flux

    Ci-dessus, le menu principal de la tche de requte dexploration de donnes.

    3.2.7 Tches de compatibilit descendante3.2.7.1

    Tches de script ActiveXLes tches de script ActiveX permettent de dfinir des scripts en VBScript ou en Javascript.

    Cette tche est fournie uniquement des fins de compatibilit avec le composant DTS (Data

    Transformation Services, lanctre de SSIS). En effet, cette tche prsente des dsavantages par

    rapport une tche de script, elle est interprte lors de lexcution du package contrairement une

    tche de script qui est prcompile. De plus, la tche de script ActiveX prsente des problmes de

    scurit en permettant laccs aux serveurs. Pour finir, cette tche ne fournit aucune aide la

    programmation.

    Elle permet cependant deffectuer des calculs complexes, et dintgrer une logique mtier au

    sein du package.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    29/63

    Dotnet France Association

    29 SSIS Implmenter un flux

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    30/63

    Dotnet France Association

    30 SSIS Implmenter un flux

    3.3 Tches du plan de maintenanceEn plus des conteneurs de boucles et outils du flux de contrle, longlet du flux de contrle

    possde galement les tches du plan de maintenance. Comme leur nom lindique ces tches font

    partie du plan de maintenance dune base de donnes. Il est possible de voir sur chaque tche les

    requtes SQL excuts lorsque nous utilisons la tche. Lorsque la configuration nest pas explique,

    cela signifie quelle est similaire la premire explique.

    3.3.1 Tche Sauvegarder la base de donnesCette tche permet lintgration dune sauvegarde de la base de donnes au sein de notre

    package. On lutilise par exemple avant deffectuer de gros changements dans notre base de

    donnes. Grce cette tche, on peut inclure dans le mme package et donc durant la mme

    excution une tche pour sauvegarder les donnes et une autre pour les modifier.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    31/63

    Dotnet France Association

    31 SSIS Implmenter un flux

    Pour configurer cette tche, nous crons dabord une connexion vers le serveur, nous

    pouvons ensuite choisir le nombre que lon souhaite de base de donnes sauveg arder sur cet

    unique serveur. Nous choisissons le type de sauvegarde, Full, Differential ou Transaction Log. La

    sauvegarde peut se composer dun seul fichier ou de plusieurs (Un par base de donnes).

    3.3.2 Tche Vrifier lintgrit de la base de donnesLa tche vrifier lintgrit de la base de donnes vrifie si une ou plusieurs bases de donnes

    sur un mme serveur sont corrompues. Cette tche excute en fait la commande suivante DBCC

    CHECKDB WITH NO_INFOMSGS pour chaque base de donnes spcifie. Cette tche peut tre

    utilise par exemple aprs de grosses modifications dans une base de donnes.

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    32/63

    Dotnet France Association

    32 SSIS Implmenter un flux

    3.3.3 Tche Excuter le travail de lAgent SQL ServerCette tche nous permet deffectuer un travail spcifique lintrieur de notre package. Un

    seul travail peut tre slectionn pour lexcution.

    Il suffit de crer la connexion puis de slectionner le travail.

    3.3.4 Tche Excuter linstruction T-SQLCette tche nous permet dexcuter une ou plusieurs instructions T-SQL

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    33/63

    Dotnet France Association

    33 SSIS Implmenter un flux

    3.3.5 Tche de nettoyage dhistoriqueLa tche de nettoyage permet la suppression des historiques dune base de donnes. Cela

    inclut les historiques de sauvegarde, les historiques de travail de lagent SQL, et les historiques du

    plan de maintenance de base de donnes.

    3.3.6 Tche de nettoyage de maintenanceLa tche de nettoyage de maintenance supprime les fichiers cres par le plan de

    maintenance de base de donnes et les sauvegarde de bases de donnes.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    34/63

    Dotnet France Association

    34 SSIS Implmenter un flux

    3.3.7 Tche Notifier loprateurCette tche envoie un e-mail un ou plusieurs oprateurs SQL Server utilisant SQLiMail. Un

    oprateur doit tre install avec une adresse e-mail in SQL Server avant de pouvoir utiliser cette

    tche. Bien entendu, SQLiMail doit tre install et configur pour cette tche pour fonctionner.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    35/63

    Dotnet France Association

    35 SSIS Implmenter un flux

    3.3.8 Tche Reconstruire lindexLa tche Reconstruire lindex reconstruit les index dune ou plusieurs bases de donnes. Cela

    oblige les serveurs SQL supprimer leurs index pour les reconstruire.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    36/63

    Dotnet France Association

    36 SSIS Implmenter un flux

    3.3.9 Tche Rorganiser lindexLa tche Rorganiser lindex rorganise les index dans une ou plusieurs bases de donnes.

    Rorganiser les index dfragmente les lments des index groups et des index non groups. De

    plus, cela compresse les index.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    37/63

    Dotnet France Association

    37 SSIS Implmenter un flux

    3.3.10 Tche Rduire la base de donnesCette tche permet la rcupration des emplacements des tables non utiliss dans une ou

    plusieurs bases de donnes. Nous pouvons dterminer si cet espace libr est rendu au systme

    dexploitation ou sil est gard par la base de donnes.

    3.3.11 Tche Mettre jour les statistiquesCette tche nous permet de mettre jour les statistiques dans une ou plusieurs bases de

    donnes. Etant donn que les bases de donnes sont utilises par SQL Server pour calculer les plans

    dexcution des requtes, cest important que ces statistiques soient jour.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    38/63

    Dotnet France Association

    38 SSIS Implmenter un flux

    4 Implmenter un flux de donnesNous avons donc vu toutes les tches du flux de contrle, nous allons maintenant tudier les

    tches du flux de donnes qui vont nous permettre de modifier nos donnes. Nous allons

    commencer par voir les tches nous permettant de dfinir les sources de nos donnes. Nous verrons

    ensuite les tches de transformation des donnes, puis enfin, nous analyserons les tches

    permettant de slectionner les destinations de nos donnes.

    4.1 Source de flux de donnes4.1.1 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    39/63

    Dotnet France Association

    39 SSIS Implmenter un flux

    Si nous choisissons le mode SQL Command, nous devons ensuite choisir de quel faon nous

    allons utiliser cette mthode. Tout dabord, nous pouvons rentrer directement notre requte dans

    lespace cet effet, dans ce cas, il nous faut bien connatre la structure de la base de donnes et tre

    laise avec la syntaxe des requtes SQL. Sinon, il est possible dutiliser le SQL Server Management

    Studio puis de sauvegarder la requte. Nous allons ensuite la chercher avec la fonction browse de

    notre tche. Enfin, nous pouvons utiliser le gnrateur de requte (Query Builder). Nous parleronsplus tard du Gnrateur de requte, lorsque nous travaillerons sur la source OLE DB.

    Longlet Colonne ci-dessus, utilise les informations de longlet Connection Manager ds que nouslouvrons. Nous pouvons y voir les colonnes de notre table ou de notre vue.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    40/63

    Dotnet France Association

    40 SSIS Implmenter un flux

    4.1.2 Source ExcelLa 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 Columnsaffiche les colonnes de notre fichier Excel.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    41/63

    Dotnet France Association

    41 SSIS Implmenter un flux

    4.1.3 Source de fichier platCette tche permet lutilisation de fichiers texte comme source de donnes. Comme pour les

    autres tches, nous devons crer une connexion vers le fichier plat utiliser. Nous pouvons indiquer

    la dlimitation des colonnes au sein de notre fichier plat de nombreuses manires.(tab, virgule, etc.).

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    42/63

    Dotnet France Association

    42 SSIS Implmenter un flux

    Nous pouvons voir un aperu de la mise en forme des colonnes dans longlet Column et spcifier

    quelques options supplmentaires.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    43/63

    Dotnet France Association

    43 SSIS Implmenter un flux

    Longlet Advanced nous permet de dfinir les proprits de nos colonnes.

    Enfin longlet Preview offre un aperu du rendu.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    44/63

    Dotnet France Association

    44 SSIS Implmenter un flux

    4.1.4 Source OLE DBLa 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    45/63

    Dotnet France Association

    45 SSIS Implmenter un flux

    4.1.5 Source de fichier brutLa tche Source de fichier brut nous permet dutiliser des donnes stockes dans un fichier

    brut. Le format de fichier brut est le format de base pour Integration Services. En raison de cela,

    laccs ce type de fichiers se fait rapidement par SSIS.

    4.1.6 Source XMLComme 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    46/63

    Dotnet France Association

    46 SSIS Implmenter un flux

    Le reste des onglets fonctionne de la mme faon que prcdemment.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    47/63

    Dotnet France Association

    47 SSIS Implmenter un flux

    4.2 Transformation du flux de donnesA prsent que nous avons vu comment dfinir les sources de nos donnes, nous allons voir

    comment transformer ces donnes. Tout dabord, nous verrons les transformations propres la

    Business Intelligence, puis les transformations de lignes et densemble de lignes. Ensuite, nous

    tudierons les transformations de fractionnement et jointure et nous finirons avec les audits de

    transformation.

    4.2.1 Transformations Business Intelligence4.2.1.1 Transformation de dimension variation lente

    La tche de transformation de dimension variation lente permet de coordonner la mise

    jour et linsertion de donnes dans les tables dun entrept de donnes. Cette tche dispose dun

    assistant pour sa configuration, il suffit de suivre les tapes et de remplir correctement les options.

    4.2.1.2 Transformation de regroupement probableLa transformation de regroupement probable permet de trouver des groupes de lignes du

    flux de donnes bases sur des recherches non-exact. Nous pouvons par exemple lutiliser pour

    trouver des lignes dupliques.

    4.2.1.3 Transformation de recherche floueLa tche de transformation de recherche floue permet deffectuer des recherches en utilisant

    une logique de correspondance floue. Cette tche utilise donc la correspondance floue pour

    renvoyer un ou plusieurs rsultats dont la correspondance est proche de la table de rfrence.

    4.2.1.4 Transformation dextraction de termeLa tche transformation dextraction de terme permet lextraction dune liste de mots et de

    phrases partir dune colonne contenant du texte et en compte galement le nombre doccurrence.

    Cette tche ne peut extraire que deux types dlments : des noms seuls et des expressions

    nominales qui sont composes dau moins deux mots, un nom et un adjectif/un autre nom. De plus,

    elle a deux limitations importantes : Elle ne peut effectuer des extractions que sur les types de

    donnes DT_WSTR et DT_NTEXT et ne fonctionne que sur des textes en anglais.

    Pour configurer cette tche, nous commenons par slectionner la colonne dont nous

    souhaitons extraire des termes. Puis on spcifie le terme rechercher et le nom de la colonne de

    sortie. Longlet dexclusion permet de prciser un nom de table ou de vue qui contient une liste des

    termes ou des phrases exclure. Enfin, le dernier onglet nous permet de configurer le type de terme

    que lon souhaite obtenir (Nom, expression nominale, ou les deux) et les options de frquence.

    Par exemple, si lon spcifie le type de terme nom, nous obtiendrons des noms : maison,

    voiture, etc. Si on spcifie le type expression nominale nous obtiendrons : grosse maison, voiture

    bleu, etc. Enfin si on spcifie nom et expression nominale, nous obtiendrons les deux types

    dexemples du dessus.

    4.2.1.5 Transformation de recherche de termeLa tche transformation de recherche de terme fait une correspondance entre les termes

    dune table et ces mmes termes contenus dans un texte. Elle compte ensuite le nombredoccurrence des termes de la table dans le texte spcifi et les envoie avec le terme correspondant

    dans la colonne de sortie. Pour configurer cette tche, nous crons une connexion vers une base de

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    48/63

    Dotnet France Association

    48 SSIS Implmenter un flux

    donnes, puis nous spcifions la colonne contenant les termes comparer et la colonne contenant le

    texte.

    4.2.1.6 Transformation de requte dexploration de donnesLa tche transformation de requte dexploration de donnes nous permet dexcuter une

    requte DMX (Data Mining Extensions). En utilisant ce type de requte avec un modle dexploration

    de donnes, il est possible de faire des prdictions bases sur les donnes du flux de donnes. Les

    rsultats des requtes sont ajouts en tant que nouvelle colonne dans le flux de donnes.

    4.2.2 Transformations de lignes4.2.2.1 Transformation de la table de caractres

    La tche de transformation de la table de caractres permet deffectuer des modifications

    sur les colonnes contenant des chanes de caractres. La colonne modifie peut soit remplac celle

    utilis avant la transformation soit tre ajoute en tant que nouvelle colonne.

    Nous pouvons effectuer les modifications de chane de caractres suivantes :

    - Lowercase (Minuscule) : Met tous les caractres en minuscule.- Uppercase (Majuscule) : Met tous les caractres en majuscule.- Byte Reversal (Inversion doctet): Inverse lordre des octets de chaque caractre.- Hiragana : Mappe des caractres katakana avec des caractres hiragana.- Katakana : Mappe des caractres hiragana avec des caractres katakana.- Half width (Demi-chasse) : Mappe des caractres pleine chasse avec des caractres demi-

    chasse.

    - Full Width (Pleine chasse) : Mappe des caractres demi-chasse avec des caractres pleinechasse.

    - Linguistic casing (Casse Linguistique) : Applique la casse linguistique la place de la casseSystme.

    - Traditional Chinese (Chinois traditionnel) : Mappe des caractres de chinois simplifi avecdes caractres de chinois traditionnels.

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    49/63

    Dotnet France Association

    49 SSIS Implmenter un flux

    4.2.2.2 Transformation Copie de colonnesLa tche transformation Copie de colonnes cre de nouvelles colonnes en copiant des

    colonnes existantes. Nous pouvons ensuite utiliser ces copies pour des calculs, des transformations

    ou des mappages.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    50/63

    Dotnet France Association

    50 SSIS Implmenter un flux

    Ci-dessus, lditeur de la tche Copie de colonnes, nous avons copi la colonne Nom et avons nomm

    la nouvelle colonne Test.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    51/63

    Dotnet France Association

    51 SSIS Implmenter un flux

    4.2.2.3 Transformation de conversion de donnesLa tche Transformation de conversion de donnes permet de convertir des colonnes dun

    type de donnes un autre. Ci-dessous, un aperu de la transformation de deux colonnes de type

    DT_STR (chane de caractres) en type DT_DATE pour lun et en DT_UI1 pour lautre. Pour rappel, le

    chapitre 2 : Variables et expressions contient une liste de tous les types de donnes de SSIS.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    52/63

    Dotnet France Association

    52 SSIS Implmenter un flux

    4.2.2.4 Transformation de colonne driveLa tche de transformation de colonne drive permet dintgrer des valeurs drives

    obtenues partir dexpressions. Il est possible dutiliser des variables SSIS ou le contenu des colonnes

    du flux de donnes. Les valeurs obtenues peuvent soit remplacer les valeurs utilises soit tre

    ajouts de nouvelles colonnes.

    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.

    4.2.2.5 Transformation dexportation de colonneLa tche Transformation dexploration de colonne peut lire les donnes du flux de donnes

    puis les insrer dans un fichier. Par exemple, si on souhaite une liste dimages de produits, nous

    pouvons utiliser cette tche pour enregistrer les images dans des fichiers. La configuration est trs

    simple, je ne la dtaillerai donc pas.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    53/63

    Dotnet France Association

    53 SSIS Implmenter un flux

    4.2.2.6 Transformation dimportation de colonneLa tche Transformation dimportation de colonne permet dimporter le contenu dun

    ensemble de fichiers et de les insrer dans une colonne dimage ou de texte du flux de donnes.

    Comme pour lexportation, la configuration est simple. Il est cependant ncessaire davoir une

    colonne contenant le nom des fichiers importer au sein de notre flux de donnes.

    4.2.2.7 Composant ScriptLa tche Composant Script nest pas rellement une tche de transformation malgr sa

    position dans SSIS. En effet, elle peut servir de tche de transformation si code comme telle. Mais

    nous pouvons galement nous en servir comme source ou comme destination.

    En tant que source, nous pouvons par exemple lutiliser afin de lire un type de fichier

    support par aucune connexion de SSIS.

    De mme, en tant que destination, elle permet dcrire des donnes sur des formats non-supports par SSIS.

    Et bien entendu, elle peut servir de tche de transformation pour effectuer des actions

    particulirement prcises qui ne sont pas disponibles avec dautres tches.

    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 DBLa 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    54/63

    Dotnet France Association

    54 SSIS Implmenter un flux

    4.2.3 Transformations densemble de lignes4.2.3.1 Transformation dagrgation

    La tche Transformation dagrgation permet de combiner des informations dans une unique

    valeur. Cette tche se rapproche du GROUP BY en SQL. Nous pouvons voir lditeur de cette tche ci-dessous.

    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 :

    - Average : Calcule la moyenne, utilisable uniquement sur des valeurs numriques- Count : Renvoie le nombre dlments contenus dans un groupe.- Count distinct : Renvoie le nombre de valeurs uniques figurant dans un groupe.- Maximum : Renvoie la valeur maximale dun groupe, utilisable uniquement sur des valeurs

    numriques.

    - Minimum : Renvoie la valeur minimale dun groupe, utilisable uniquement sur des valeursnumriques.

    - Sum : Effectue laddition des valeurs dune colonne.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    55/63

    Dotnet France Association

    55 SSIS Implmenter un flux

    4.2.3.2 Transformation de triLa tche de transformation de tri permet de trier les lignes du flux de donnes. Pour

    configurer cette tche, nous devons spcifier les colonnes trier ainsi que leur ordre de tri.

    4.2.3.3 Transformation de lchantillonnage du pourcentageLa tche de transformation de lchantillonnage du pourcentage permet de crer un

    chantillon dun flux de donnes. Cette tche va slectionner alatoirement un pourcentage de

    ranges que nous aurons dtermin du flux de donnes et crer une deuxime flux de donnes.

    Nous aurons ainsi deux flux de donnes, lun tant un exemple chantillon de lautre. Pour configurer

    cette tche, nous dfinissons le pourcentage et les deux sorties des flux de donnes comme nous

    pouvons le voir sur le limage ci-dessous.

    La dernire option permet de rduire la variabilit du random de la tche, elle nest utilis

    que lors de tests.

    4.2.3.4 Transformation dchantillonnage de lignesLa tche de transformation dchantillonnage de lignes est trs similaire la transformation

    dchantillonnage du pourcentage ci-dessus. En effet, la seule diffrence est quau lieu de dfinir un

    pourcentage pour dfinir la taille du flux de donnes chantillonn, nous dterminons un nombre de

    lignes.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    56/63

    Dotnet France Association

    56 SSIS Implmenter un flux

    4.2.3.5 Transformation de tableau crois dynamiqueLa tche de transformation de tableau crois dynamique transforme un ensemble de

    donnes normalises en une version moins normalise mais plus compacte grce un croisement

    dynamique des donnes. Ainsi un flux de donnes entrant contenant de nombreuses lignes ressort

    de cette tche avec beaucoup moins de lignes grce une agrgation des donnes.

    4.2.3.6 Transformation UnpivotLa transformation Unpivot permet de transformer des donnes non normalises en donnes

    normalises. Par exemple, un ensemble de donnes rpertorie des numro de tlphone de clients

    (chaque client une seule ligne contenant tous ses numros de tlphone : travail,maison,cellulaire).

    Aprs la normalisation, nous aurons une ligne par numro de tlphone.

    4.2.4

    Transformations de fractionnement et de jointure

    4.2.4.1 Transformation de fractionnement conditionnelLa tche de transformation de fractionnement conditionnel permet le fractionnement du flux

    de donnes et lenvoi des lignes de donnes dans diffrentes sorties. Dans lditeur de cette tche,

    visible ci-dessous, nous dfinissons des conditions pour chaque branche du fractionnement. Lors de

    lexcution du package, chaque donne est compar avec la condition. Si elle rpond la premire

    condition, elle est envoye dans la sortie correspondante, sinon elle passe aux conditions suivantes.

    Nous allons prendre un exemple pour rendre tout cela plus clair. Nous allons dplacer des

    lves dans trois destinations diffrentes selon leurs notes.

    Voici notre flux de donnes :

    (Jutilise uniquement des fichiers plats dans cet exemple car ce sont les sources et les destinations les

    plus simples configurer.)

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    57/63

    Dotnet France Association

    57 SSIS Implmenter un flux

    Nous avons donc un fichier plat source qui contient tous les lves, leurs notes et leur classe,

    notre transformation de fractionnement conditionnel et trois fichiers plats de destination o seront

    stocks les lves selon leur niveau.

    Voici le contenu de notre fichier plat Source :

    (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 :

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    58/63

    Dotnet France Association

    58 SSIS Implmenter un flux

    Nous voyons donc que les lves ayant une moyenne strictement infrieur 10 seront envoys dans

    le fichier plat Faible, ceux ayant une note suprieur ou gale 10 et infrieur 15 dans le fichier plat

    moyen et enfin ceux ayant une note suprieur ou gale 15 dans le fichier plat Bon.

    Aprs lexcution de nos tches, voici le rsultat :

    4.2.4.2 Transformation multidiffusionLa tche multidiffusion permet dutiliser un unique flux de donnes et de lutiliser comme

    source pour de nombreux autres flux de donnes. Cette tche copie simplement les donnes et

    lenvoie dans plusieurs directions.

    4.2.4.3 Transformation dunion totaleLa tche de transformation dunion totale permet de fusionner autant de flux de donnes

    que lon souhaite. Les donnes nont pas besoin dtre tries, le flux de donnes sortant ne lest donc

    pas non plus. Presque aucune configuration nest ncessaire avec cette tche, il suffit juste de

    mapper les colonnes comme nous le souhaitons.

    4.2.4.4 Transformation de fusionLa transformation de fusion permet de fusionner deux flux de donnes. Pour fusionner

    proprement, il faut que les deux flux de donnes soient tris de la mme manire. Il est donc

    intressant dutiliser des tches de tri afin de fournir la tche de fusion des donnes tries. Si vous

    ne souhaitez pas utiliser de tche de tri, et que vos donnes sont tries de la mme faon, il est

    possible de dfinir loption IsSorted dans le menu avanc des sources.

    4.2.4.5 Transformation de jointure de fusionLa transformation de jointure de fusion permet la fusion de deux flux de donnes ensemble

    en excutant une jointure INNER, LEFT ou FULL. Comme pour la transformation de fusion, les flux de

    donnes doivent tre tris de la mme manire. Pour configurer cette tche, il suffit de choisir le

    type de joint que lon souhaite utiliser puis de slectionner les colonnes fusionner.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    59/63

    Dotnet France Association

    59 SSIS Implmenter un flux

    4.2.4.6 Transformation de rechercheLa transformation de recherche se rapproche de la transformation de recherche floue, il ny a

    que le type de recherche qui change, la transformation de recherche ne prend que les rsultats

    exactes.

    4.2.4.7 Transformation du cacheLa transformation du cache envoie des donnes dans un gestionnaire de connexions du

    cache qui seront utilises par exemple par une transformation de recherche. Nous pouvons aussi

    spcifier un enregistrement des donnes dans un fichier cache .caw.

    4.2.5 Audit de transformation4.2.5.1 Transformation daudit

    La tche transformation daudit nous permet dajouter des colonnes contenant des

    informations propos de lexcution du package au flux de donnes. Ces colonnes daudit peuvent

    tre places dans une destination de donnes et fournir ainsi des informations sur lheure de

    lexcution, sa dure et de nombreux autres lments.

    Nous pouvons placer les informations suivantes dans les colonnes daudit :

    - Un GUID pour lexcution du package.- Lheure du dbut dexcution du package.- Le nom de la machine o le package a t excut.- Un GUID pour le package.- Un GUID pour la tche du flux de donnes.- Le nom de la tche du flux de donnes.- Le nom dutilisateur.- La version du package.

    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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    60/63

    Dotnet France Association

    60 SSIS Implmenter un flux

    4.2.5.2 Transformation de calcul du nombre de lignesLa tche de transformation de calcul du nombre de lignes nous permet de dterminer le

    nombre de lignes contenues dans le flux de donnes. Ce nombre de lignes est ensuite stocke en

    tant que variable du package. Nous pouvons ainsi lutiliser dans des expressions pour modifier le flux

    de contrle ou le flux de donnes.

    4.3 Destinations du flux de donnesMaintenant que nous avons vu les sources et les transformations de SSIS, il ne nous reste plus

    qu nous intresser aux destinations. Cette partie sera courte car les tches destination sont trs

    simples utiliser, il suffit en gnral de crer une connexion vers le fichier o nous souhaitons

    envoyer nos donnes. (Les parties concernant Analysis Services risquent de ne pas tre clair, vous les

    comprendrez plus tard lorsque vous lirez le cours SQL Server Analysis Services.)

    4.3.1 Destination ADO.NETLa 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 versla 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.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    61/63

    Dotnet France Association

    61 SSIS Implmenter un flux

    4.3.2 Destination dapprentissage du modle dexploration de donnesCette tche de destination permet lutilisation dun flux de donnes pour exercer un modle

    dexploration de donnes (datamining). Exercer les modles dexploration permet ensuite de raliser

    des prdictions grce des connaissances provenant dun ensemble de donnes.

    4.3.3 Destination DataReaderLa 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 de traitement de dimensionLa destination de traitement de dimension nous permet denvoyer des donnes une

    dimension SQL Server Analysis Services. Nous pouvons ainsi fournir de nouvelles valeurs dans les

    dimensions dun cube Analysis Services.

    4.3.5 Destination ExcelLa 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 de fichier platLa destination de fichier plat permet lenvoi de donnes dans un fichier texte. Le seul

    lment de configuration diffrent des autres tches de destination est le fait de prciser le

    sparateur de colonnes (, ; tab etc.).

    4.3.7 Destination OLE DBLa destination OLE DB nous permet de charger des donnes dans des bases de donnes

    compatibles avec OLE DB.

    4.3.8 Destination de traitement de partitionLa destination de traitement de partition envoie des donnes dans une partition SQL Server

    Analysis Services. En utilisant cette tche, nous pouvons charger des donnes dans une partition de

    cube Analysis Services.

    4.3.9 Destination de fichier brutLa destination de fichier brut permet lcriture des donnes sur un fichier brut. Le format de

    ces fichiers est le format natif pour SSIS. En raison de cela, ils peuvent tre crits et lus trs

    rapidement par SSIS.

    4.3.10 Destination de lensemble denregistrementsLa destination de lensemble denregistrements envoie un flux de donnes unenregistrement qui est ensuite stock en tant que variable de package. Lenregistrement peut ainsi

    tre utilis dans tout le package.

    4.3.11 Destination SQL Server Compact EditionLa destination SQL Server Compact Edition nous permet denvoyer des donnes dans une

    base de donnes SQL Server Compact. Les bases de donnes SQL Server Compact sont des versions

    allges destines aux Smartphones ou PDA quips de Windows Mobile.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    62/63

    Dotnet France Association

    62 SSIS Implmenter un flux

    4.3.12 Destination SQL ServerLa destination SQL Server permet dinsrer rapidement et en grosse quantit des donnes dans

    une table ou une vue dune base de donnes SQL Server local.

  • 7/22/2019 SSIS - Implmenter un flux.pdf

    63/63

    63 SSIS Implmenter un flux

    5 ConclusionA 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.