Business Intelligence Avec SQL Server 2012

Embed Size (px)

Citation preview

  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    1/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 1/42

    Forums Tutoriels Magazine FAQs Blogs Projets Chat Newsletter tudes Emploi Club Contacts

    Solutions d'entreprise Business Intelligence ERP / PGI CRM SAS Cloud Computing SAP Microsoft BizTalk Server Talend

    ACCUEIL BI FORUMS BI TUTORIELS BI LIVRES BI FAQs BI GLOSSAIRE BI SOURCES BI BLOGS BI

    Business Intelligence avec SQL Server 2012

    Table des matires

    d'unedimension enSCD

    3-4. Raliser un fluxpour charger unetable de faits

    4.L'auditdes flux ETL4-1.Les objectifsde l'audit de fluxETL4-2. Conceptiond'un systmed'audit de flux4-3. Exemple deflux avec audit

    5. Gestion desparamtres de flux etmise en production

    5-1. Paramtragedes flux5-2. Cration ducatalogueIntegration

    Ce chapitre est publi dans le cadre du partenariat entre Developpez et les ditions ENI. Commandez le livre entier.

    Ce livre sur la Business Intelligence (BI) avec SQL Server 2012, s'adresse tous les membres d'une quipe dcisionnelle : chef deprojet, architecte, dveloppeur ETL, dveloppeur de rapports, service Aide la Matrise d'Ouvrage (AMO). Du dbutant au technicienexpriment, le lecteur bnficiera d'une approche mtier du dcisionnel.

    Commentez

    Article lu 3835 fois.

    Les deux auteurs

    Sbastien FANTINI

    Franck GAVAND

    L'article

    Publi le 25 dcembre 2012

    Version PDF Version hors-ligne

    ePub, Azw et Mobi

    Liens sociaux

    1. Dcouverte de SSIS

    Au cours des chapitres prcdents, vous avez appris modliser un entrept de donnes. L'idetait de faire abstraction des sources de donnes disponibles dans votre socit. Au cours de cechapitre, vous allez apprendre et comprendre comment va se raliser la remonte des donnesdu systme source vers un entrept de donnes. La principale difficult est que celui-ci dispose

    Accueil ALM Java .NET Dv. Web EDI Programmation SGBD Office Solutions d'entreprise Applications Mobiles Systmes

    http://www.editions-eni.fr/livres-business-intelligence-avec-sql-server-2012-maitrisez-les-concepts-et-realisez-un-systeme-decisionnel/.431b8c96eb6915204216fcb7b67ca51a.jpghttp://www.editions-eni.fr/livres-business-intelligence-avec-sql-server-2012-maitrisez-les-concepts-et-realisez-un-systeme-decisionnel/.431b8c96eb6915204216fcb7b67ca51a.jpghttp://alm.developpez.com/http://java.developpez.com/http://dotnet.developpez.com/http://web.developpez.com/http://edi.developpez.com/http://programmation.developpez.com/http://www.developpez.com/http://ams1.ib.adnxs.com/click?UfUrnQ_PYj-ndoapLXVgP-kmMQisHO4_p3aGqS11YD9R9SudD89iP91cVliiJ-JDRqpft7hlgQmpr1dTAAAAAER8JgBQAwAAywYAAAIAAABPP04AXswFAAAAAQBVU0QAVVNEANgCWgDAiwAAJ8kAAQUCAQIAAI4A7iSswwAAAAA./cnd=%21jQZxPAjs-z8Qz_64AhjemBcgAg../referrer=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F/clickenc=http%3A%2F%2Fwww.videodownloadconverter.com%2Findex.jhtml%3Fpartner%3DHJxdm238http://www.developpez.com/http://ams1.ib.adnxs.com/click?UfUrnQ_PYj-ndoapLXVgP-kmMQisHO4_p3aGqS11YD9R9SudD89iP91cVliiJ-JDRqpft7hlgQmpr1dTAAAAAER8JgBQAwAAywYAAAIAAABPP04AXswFAAAAAQBVU0QAVVNEANgCWgDAiwAAJ8kAAQUCAQIAAI4A7iSswwAAAAA./cnd=%21jQZxPAjs-z8Qz_64AhjemBcgAg../referrer=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F/clickenc=http%3A%2F%2Fwww.videodownloadconverter.com%2Findex.jhtml%3Fpartner%3DHJxdm238http://www.developpez.com/http://magazine.developpez.com/http://general.developpez.com/faq/http://blog.developpez.com/http://projets.developpez.com/http://systeme.developpez.com/http://mobiles.developpez.com/http://applications.developpez.com/http://solutions-entreprise.developpez.com/http://office.developpez.com/http://sgbd.developpez.com/http://programmation.developpez.com/http://edi.developpez.com/http://web.developpez.com/http://dotnet.developpez.com/http://java.developpez.com/http://alm.developpez.com/http://www.developpez.com/http://business-intelligence.developpez.com/index/rsshttp://twitter.com/BI_DVPhttp://www.facebook.com/pages/Business-Intelligence/108537925849662http://ams1.ib.adnxs.com/click?UfUrnQ_PYj-ndoapLXVgP-kmMQisHO4_p3aGqS11YD9R9SudD89iP91cVliiJ-JDRqpft7hlgQmpr1dTAAAAAER8JgBQAwAAywYAAAIAAABPP04AXswFAAAAAQBVU0QAVVNEANgCWgDAiwAAJ8kAAQUCAQIAAI4A7iSswwAAAAA./cnd=%21jQZxPAjs-z8Qz_64AhjemBcgAg../referrer=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F/clickenc=http%3A%2F%2Fwww.videodownloadconverter.com%2Findex.jhtml%3Fpartner%3DHJxdm238http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/bi.mobihttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/bi.azwhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/bi.epubhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/bi.ziphttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/bi.pdfhttp://www.editions-eni.fr/livres/franck-gavand/.73a05a01fb2f86f9fbac0b2beaa3614a.htmlhttp://www.editions-eni.fr/livres/sebastien-fantini/.9bd05e7de94a288f9d498913703a63b8.htmlhttp://www.developpez.net/forums/showthread.php?t=1388302&nojs=1#goto_threadratinghttp://www.developpez.net/forums/showthread.php?t=1388302http://www.editions-eni.fr/livres/business-intelligence-avec-sql-server-2012-maitrisez-les-concepts-et-realisez-un-systeme-decisionnel/.2c357e0b67cb4ecbbdc97d49b0705cc1.htmlhttp://www.editions-eni.fr/livres-business-intelligence-avec-sql-server-2012-maitrisez-les-concepts-et-realisez-un-systeme-decisionnel/.431b8c96eb6915204216fcb7b67ca51a.jpghttp://www.developpez.com/http://club.developpez.com/contacts/http://club.developpez.com/http://emploi.developpez.com/http://etudes.developpez.com/http://www.developpez.com/newsletter/http://chat.developpez.com/http://projets.developpez.com/http://blog.developpez.com/http://general.developpez.com/faq/http://magazine.developpez.com/http://general.developpez.com/cours/http://www.developpez.net/forums/http://business-intelligence.developpez.com/blogs/http://business-intelligence.developpez.com/telecharger/http://dico.developpez.com/html/theme19.phphttp://business-intelligence.developpez.com/faq/http://business-intelligence.developpez.com/livres/http://business-intelligence.developpez.com/cours/http://www.developpez.net/forums/f38/bases-donnees/business-intelligence/http://business-intelligence.developpez.com/http://talend.developpez.com/http://www.developpez.net/forums/f1664/systemes/windows/windows-serveur/biztalk-server/http://sap.developpez.com/http://cloud-computing.developpez.com/http://sas.developpez.com/http://crm.developpez.com/http://solutions-entreprise.developpez.com/erp-pgi/presentation-erp-pgi/http://business-intelligence.developpez.com/http://solutions-entreprise.developpez.com/
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    2/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 2/42

    d'une modlisation dimensionnel le conforme, trs loigne de la structure de vos donnesactuelles.

    Dans la gamme SQL Server, l'outil qui va permettre de raliser le chargement de ces donnes estSQL Server Integration Services (SSIS).

    SSIS a deux aspects :

    - Un aspect classique avec une logique de flux de tches, organises par des rgles deprcdence. Cet aspect est appel Flux de contrles .

    - Un aspect plus spcifique au dcisionnel, avec une logique purement E-T-L. Cet aspect estappel Flux de donnes .

    On peut utiliser SSIS sans pour autant faire de l'ETL. Par exemple, vous pouvez vous servir deSSIS pour excuter des tches de maintenance de bases de donnes, pour lancer une suite debatch un peu complexe ou pour raliser de la rplication de donnes.

    Toutefois, SSIS est aussi un ETL. Le monde de l'ETL a ses codes et ses rgles issues de cesquinze dernires annes. L'object if du chapitre, au-del de la comprhension de ce qu'est l'outilSSIS, est de vous faire dcouvrir certaines de ces pratiques bien spcifiques au monde dudcisionnel. Des pratiques auxquelles SSIS est assez bien adapt.

    Un peu comme pour toute la gamme SQL Server, le dveloppement des flux se fera sous SQLServer Data Tools (SSDT). On utilisera en revanche SQL Server Management Studio pourl'administration et l'exploitation. Dcouvrons ensemble ds prsent l'interface dedveloppement :

    - Ouvrez SSDT.

    - Cliquez dans la barre de menu sur Fichier - Nouveau - Projet.

    Dans la fentre Nouveau projet, slectionnez Projet Integration Services, puis saisissez lenom et l'emplacement du projet comme ci-dessous :

    Le projet s'ouvre par dfaut sur l'onglet Flux de contrled'un package vide. Un package est unfichier au format XML l'extension .dtsx .

    Sur le ct gauche, ouvrez la bote outils pour dcouvrir les objets du flux de contrledisponibles.

    Bote outils SSIS

    Les tches disponibles donnent une assez bonne ide du rle que l'on pourrait faire jouer SSISet de ses possibilits : connexion un service web, excution de requte SQL, excutiond'application, criture et excution de scripts, connexion un serveur FTP, tche de traitementde SSAS, tche de sauvegarde de la base de donnes

    Dans un flux dcisionnel, les tches de flux de contrle vont avoir des fonctions de support etd'orchestration, mais ce ne sont pas ces tches qui vont faire proprement parl le chargement

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image2.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image1.PNGhttps://plus.google.com/share?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://www.bookmarks.fr/Connexion/?action=add&address=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://www.stumbleupon.com/submit?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://simpy.com/simpy/LinkAdd.do?note=Business+Intelligence+avec+SQL+Server+2012&href=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://reddit.com/submit?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://www.blinklist.com/index.php?Action=Blink/addblink.php&Url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&Title=Business+Intelligence+avec+SQL+Server+2012http://myweb2.search.yahoo.com/myresults/bookmarklet?t=Business+Intelligence+avec+SQL+Server+2012&u=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://del.icio.us/post?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://digg.com/submit?phase=2&url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://www.facebook.com/sharer.php?u=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://www.google.com/bookmarks/mark?op=edit&bkmk=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&title=Business+Intelligence+avec+SQL+Server+2012http://twitter.com/timeline/home?status=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2Fhttp://www.viadeo.com/shareit/share/?url=http%3A%2F%2Feditions-eni.developpez.com%2Ftutoriels%2Fbusiness-intelligence%2Fbusiness-intelligence-avec-sql-server-2012%2F&Title=Business+Intelligence+avec+SQL+Server+2012
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    3/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 3/42

    des donnes.

    Attention, dans le monde du dcisionnel, un entrept de donnes ne se charge pas avec desimples requtes SQL. Vous verrez que les exigences de traabilit et de maintenance de t elsflux sont trop leves pour que des requtes SQL remplissent c e rle correctement.

    Le chargement de donnes va se raliser avec la tche de flux de donnes. Dcouvrons cetaspect du produit :

    Glissez et posez la tche de flux de donnes dans la zone de travail centrale.

    Ajout d'une tche de flux de donnes

    Puis double c liquez sur la tche de flux de donnes pour acc der l'onglet Flux de donnes.

    Vous noterez que la barre d'outils propose main tenant de nouvelles t ches organises autour detrois thmatiques :

    - Les tc hes Sources

    - Les tches de transformation

    - Les tches Destinations

    La bote outils de l'interface de flux de donnes de SSIS

    En faisant glisser la tche de flux de donnes, vous avez bascul l'interface en modevritablement ETL. L'acronyme ETL signifie que le flux va tre organis en trois grandes phases :

    - La phase Esignifie qu'une tche va se connecter une source, pour en Extrairedes lignes dedonnes.

    - La phase Tsignifie que ces lignes vont passer par des tches de Transformation pour subirdes tests, des validations ou des modifications.

    - La phase Lsignifie que ces lignes, une fois traites et transformes, vont tre charges ( Loaden anglais) dans la base de donnes dest ination.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image4.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image3.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    4/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 4/42

    Reprsentation schmatique du droulement d'un flux ETL

    L'ensemble de ces phases va se drouler uniquement en mmoire, d'o des gains de performancequi peuvent tre substantiels par rapport au SQL, si on exploite correctement l'outil.

    La barre d'outils gauche organise les tches disponibles dans SSIS par ces t rois grandesphases ETL.

    Dans la partie suivante, nous raliserons un premier flux ETL pour comprendre le fonctionnementde SSIS.

    2. Raliser son premier flux SSIS

    2-1. Raliser le chargement du budget d'un seul site

    Pour continuer dcouvrir l'outil SSIS, nous allons raliser le flux qui va permettre de charger lesbudgets de vente dans l'entrept de donnes.

    Chez Distrisys, les budgets des ventes sont saisis par chaque site directement dans Excel, puisdposs dans un rpertoire accessible par l'quipe informatique.

    Ces fichiers budgets de ventes sont disponibles en t lchargement sur le site des ditions ENI.

    Tlchargez les fichiers et dposez-les dans un rpertoire sur votre disque dur. Vous devriezalors disposer de cinq fichiers au format .csv et portant chacun le nom du code du site auquelleurs prvisions sont destines.

    ans SSIS, au niveau de l'onglet Flux de donnes, glissez cinq nouvelles tches :

    - E : Source de fichier Plat(class dans Autres sources) renommer Extraction FichierBudget par Site.

    - T : Colonne driveafin d'obtenir le SiteCode renommer Obtenir SiteCode.

    - T : Rechercheafin d'obtenir le Site_FK renommerRecherche Site_ID.

    - T : Recherche afin d'obtenir le Produit_FK renommer Recherche Produit_ID.

    - L : Destination OLE DB(class dans Autres destinations) renommer ChargerFactBudgetVente.

    Les cinq nouvelles tch es du flux de donnes

    Pour renommer une tche, cliquez dessus avec le bouton droit et slectionnez RenommerLes croix rouges au niveau de chaque tche signalent des erreurs. C'est normal ce stade,car nous devons les configurer

    Nous allons ensuite configurer chacune de ces tches une une :

    Double cliquez sur la tche Extraction Fichier Budget par Site af in d'entrer dans le

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image6.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image6.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    5/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 5/42

    configurateur de la tche.Au niveau du Gestionnaire de connexions de fichiers plats, cliquez sur le bouton Nouveau.

    diteur de source de f ichier plat

    -L'diteur du gestionnaire de connexions de fichiers platss'ouvre. Nommez la connexionFichierPlatBudget.

    Au niveau de Nom de fichier, l'aide du bouton Parcourir, slectionnez le fichier D001.csv. Lefichier source c ontenant une ligne d'entit, c liquez sur l'option Noms de colonne dans la

    premire ligne de donnes. Puis continuez la configuration comme l'indique la copie d'cran ci-dessous :

    cran de configuration de la connexion un fichier plat

    Une alerte apparat. N'y faites pas at tention, car elle disparatra lorsque vous aurez entirementralis toute la procdure qui suit.

    Toujours dans l'diteur, cliquez sur l'onglet Colonnes. Au niveau du champ Sparateur delignes, slectionnez {CR}{LF}. Au niveau du champ Sparateur de colonnes, slectionnezPoint-virgule {;}.

    Onglet Colonnes du gestionnaire de connexions

    Toujours dans l'diteur, cliquez sur l'onglet Avanc. Pour chaque colonne, configurez la propritDataTypecorrespondant au type de c hamp. Configurez les colonnes de la manire suivante :

    Date en entier sign (4bits) [DT_I4]Produit en chaine [DT_STR]

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image9.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image8.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image7.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    6/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 6/42

    CA en entier sign (4bits) [DT_I4]Marge en entier sign (4bits) [DT_I4]

    Configuration avance des types des colonnes

    SSIS utilise des types de champs universels ne correspondant pas exactement ceux de SQLServer. La configuration de ces types de champs est extrmement importante dans SSIS, celui-ci y tant trs sensible.

    Le tableau suivant vous donne un aperu non exhaustif des correspondances les plus courantes

    :

    Type SQL Server Type SSIS

    Int [DT_I4]

    Numeric(9,2) [DT_NUMERIC]

    Varchar [DT_STR] (page de code 1252)

    SmallDateTime [DT_DATE]

    Terminez la configuration de la connexion fichiers plats en cliquant sur OK.

    Vous revenez alors la configuration de la tche Extraction Fichier Budget par Site. Cliquezsur l'onglet Colonnes, slec tionnez et renommez les colonnes de sortie Dateen Date_IDetProduiten ProduitCode.

    Cliquez ensuite sur OK.

    Vous venez de configurer la premire tche : Extract ion Fichier Budget par Site. L'alerted'avertissement rouge devrait disparatre

    - Tirez le bout de la flche bleue vers la tche suivante Obtenir SiteCode.

    Liaison entre deux tches

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image11.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image10.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    7/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 7/42

    La flche bleue (dans les flux de donnes, verte dans les flux de contrle) est la flche dessuccs et la flche rouge, celle des checs. En glissant la flche bleue vers une autre tche,vous indiquez o dverser les lignes de donnes en succs.

    - Double cliquez sur la tche Obtenir SiteCodepour ouvrir l'diteur de configuration de la tche.La colonne drive est une des tches les plus courantes du Flux de donnes. Cette tchepermet de modifier une colonne l'aide d'une expression ou d'ajouter une nouvelle colonne auflux. La zone en haut gauche vous permet de slectionner une colonne du flux courant, unevariable ou un paramtre. Ces notions seront abordes plus loin dans le chapitre.

    La zone en haut droite liste l'ensemble des fonctions disponibles au niveau de cette tche.Vous y trouverez les fonctions les plus courantes : conversion de donnes, fonctionsmathmatiques, oprateurs d'oprations et de conditions, fonctions de chane de caractres, dedate et du traitement de la valeur Null.

    Nous allons crer une rgle qui gnre une nouvelle colonne SiteCodeet lui affectemanuellement la valeur "D001"(correspondant au SiteCode du sige social de Distrisys).

    Configurez la tche comme ci-dessous :

    Vous avez d remarquer que le type de donnes d'une chane de caractres est par dfaut untype [DT_WSTR], quivalent au type SQL Server nvarchar . Or, dans la table DimSite, SiteCodeest de type varchar, quivalent au type [DT_STR]de SSIS.

    Pour convertir SiteCode en [DT_STR], glissez partir des fonctions de conversion Cast de typesla fonction (DT_STR, Length, code_page) dans Expression. En remplaant Lengthpar unevaleur, vous spcifiez la longueur de la chane de caractres.

    En remplaant Code_pagepar 1252 , vous spc ifiez la page de code 1252 (ANSI-Latin I).

    Au final, vous devriez avoir dans la colonne Expression:

    (DT_STR,10,1252)"D001"

    En sortie de l'diteur de tche, l'alerte d'avertissement rouge disparat. Tirez le bout de la flchebleue vers la tche suivante Recherche Site ID

    Maintenant, nous allons nous atteler configurer la prochaine tche : la tche de Recherche.

    La tche de Recherche (ou Lookup en anglais) est une tche essentielle et trs caractristiquedes processus ETL. Cette tche va tablir une correspondance entre un ou plusieurs champs duflux courant avec des champs d'une table de rfrence. En sortie, nous pourrons en dduire unou plusieurs champs de cette mme table de rfrence.

    Pour configurer les dernires tches de Recherche et de chargement de donnes, nous avons

    besoin de crer une connexion DistrisysDW.

    Pour cela, faites un clic droit dans la zone du Gestionnaire de connexions, situ en bas del'cran. Slectionnez Nouvelle connexion OLE DB.

    Cliquez sur Nouveau. Configurez la connexion pour vous connecter votre entrept dedonnes, comme le montre la copie d'cran ci-dessous. Au niveau du champ Nom du serveurspcifiez le nom de votre instance SQL Server et dans Slect ionner ou entrer un nom de base dedonnes, slectionnez dans le menu droulant DistrisysDW:

    Cliquez sur OK.

    - Renommez cette nouvelle connexion DistrisysDW.

    Cette connexion est dfinie pour le package courant. Mais nous aurons besoin dans d'autrespackages du projet d'une mme connexion sur la base DistrisysDW. SSIS permet de dfinir desconnexions au niveau du projet, afin qu'elles soient disponibles dans tous les packages du projet.

    Cliquez avec le bouton droit sur la connexion DistrisysDW, et slectionnez Convertir enconnexion de projet.

    La connexion apparat maintenant dans l'Explorateur de solutions et elle est disponible pour tousles packages du projet.

    Dans le Gestionnaire de connexions, le nom est maintenant prfix par (projet).

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image13.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    8/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 8/42

    Cette phase prparatoire termine, nous allons pouvoir poursuivre la ralisation de notre flux.

    Double cliquez maintenant sur la tche Recherche Site IDpour afficher l'diteur deTransformation de Recherche.

    Dans l'exemple suivant, nous allons tablir la correspondance entre le SiteCodedu flux courantavec le DimSitede la table DimProduit. En sortie, nous pourrons rcuprer l'identifiant techniqueSite_PK.

    Pour cela, cliquez sur l'onglet Connexion.

    Slectionnez DistrisysDWcomme Gestionnaire de connexions OLE DB.

    Ensuite, spcifiez pour le champ Utiliser une table ou une vue, la table DimSite.

    Puis cliquez sur l'onglet Colonnes. Mappez SiteCodedes Colonnes d'entres disponibles avec lechamp SiteCode des Colonnes de recherche disponibles(table de rfrence). Pour cela,faites un clic droit sur SiteCodede Colonnesd'entre disponibles et slect ionnez modifier lesmappages.

    Ensuite, cliquez sur le champ Site_PKde la table de rfrence pour ajouter cette colonne au fluxde donnes. Renommez ce champ Site_IDau niveau de la colonne Alias de sortie. Puis c liquezsur OK pour sortir et valider les modifications effectues dans l'diteur de tche.

    L'alerte d'avertissement rouge disparat. Tirez alors le bout de la flche bleue vers la tchesuivante Recherche Produit ID . Slectionnez la sortie avec correspondance .

    Comme ralis prcdemment, configurez la tche Recherche Produit ID . Pour cela, slectionnezDimProduit en table de rfrence. Puis faites le lien entre ProduitCode du flux d'entre avecProduitCode de DimProduit et cliquez sur Produit_PK. Renommez la colonne en sortie Produit_ID.

    Tirez le bout de la flche bleue vers la tche suivante Charger FactBudgetVente. Slectionnezla sortie avec correspondance.

    ditez maintenant la tche Charger FactBudgetVente.

    Cette tche a pour objectif de raliser l'insertion des lignes dans la table FactBudgetVente del'entrept de donnes.

    Puis continuez la configuration de la tche comme ci-dessous :

    Un message d'erreur apparat. N'y faites pas attention, car il disparatra lorsque vous aurezentirement ralis toute la procdure qui suit.

    En ce qui concerne le chargement d'une table de faits, le mode d'accs aux donnes doit

    toujours tre en chargement rapide. De mme, pour obtenir de meilleures performances,l'option Vrifier les contraintes doit tre dcoche. Normalement, lors du chargement d'une tablede faits, les tches de type Recherche devraient vous assurer de l'existence des cls techniquespour chaque identifiant de liaison aux tables de dimension.

    Pour finir, dans l'onglet Mappages, ralisez les correspondances suivantes :

    Date_ID avec DateBudget_FK.Produit_ID avec Produit_FK.Site_ID avec Site_FK.

    Il n'y a plus d'alerte rouge au niveau des tches du flux. Au final, vous devriez obtenir le flux dedonnes ci-dessous :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image16.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    9/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 9/42

    Dans l'Explorateur de solutions, renommez votre package DW_BudgetVente.dtsx .

    Pour excuter le flux, faites un clic droit n'importe o dans la zone de travail et cliquez surExcuter la tche.

    Si tout se passe bien, une marque verte apparat dans le coin suprieur droit de la tche et lenombre de lignes transfres chaque tape s'affiche. Dans notre cas, 120 lignes apparaissent.

    Pour sortir du mode excution, cliquez sur le bouton Arrter le mode dbogage dans la barre

    d'outils de dbogage.Un simple traitement du cube vous permet de rendre ces donnes disponibles.

    Dans SSMS, connectez-vous Analysis Services. Traitez le cube et ralisez un tableau croisdynamique avec les donnes nouvellement insres.

    Vous venez de raliser votre premier flux ETL avec SSIS. Dans la prochaine partie, nous allonscharger l'ensemble des budgets pour illustrer l'utilisation de l'onglet Flux de contrle.

    2.2. Charger les donnes de budget partir de plusieursfichiers Excel

    Dans cette partie, nous allons complter le flux prcdent afin d'illustrer l' utilisation de l'ongletet des tches de flux de contrle, et ainsi bien diffrencier l'utilisation de ces deux onglets.

    Tout d'abord, afin de pouvoir lancer le flux plusieurs fois lors du dveloppement, nous allons

    ajouter une tche de flux de contrle qui efface, avant chaque excution, toutes les lignes del'anne 2014 de la table FactBudgetVente.

    - Pour cela, dans SSIS, allez sur l'onglet Flux de contrleet glissez la tche d'Excution derequtes SQL. Renommez la tche Efface les donnes de budget de 2014.

    - ditez la tche. Au niveau de la proprit Connection, slectionnez DistrisysDW. Au niveaude la proprit SQL Statement, tapez la requte suivante :

    Slectionnez

    DELETE FROM FactBudgetVente WHERE DateBudget_FK

    Tirez la flche verte vers la tche de flux de donnesque vous renommerez : Chargement dubudget d'un Site.

    - Excutez le flux en faisant un clic droit sur le package au niveau de l'Explorateur de solutions.Actuellement, le flux ne charge que le budget du site D001 (Sige social). La finalit serait que leflux parcourt le rpertoire, o sont dposs les fichiers de budget, puis de charger ces fichiersles uns aprs les autres. Pour raliser cela, nous allons utiliser la tche Conteneur de boucleForeach.

    - Glissez la tche Conteneur de boucle Foreach, puis renommez-la : Lire les fichiers Sitedans un rpertoire.

    - Supprimez le lien entre les tches Efface les donnes de budget de 2014 et Chargementdu budget d'un Site.

    - Glissez la tche Chargement du budget d'un Sitedans le primtre du For Each.

    - Entrez dans le configurateur de la tche de conteneur de boucle For Each.

    - Configurez les proprits de l'onglet Collection:

    numrateur : Enumrateur Foreach File.Dossier : spcifiez le rpertoire o sont stocks vos fichiers CSV.Fichiers : D*.csv, afin de rcuprer uniquement les f ichiers de site au format .csv.Rcuprez le nom de fichier : Complet, afin de rcuprer le chemin complet d'accs auxfichiers.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image18.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    10/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 10/42

    Configuration de la boucle Foreach dans le cas du parcours de fich iers dans unrpertoire

    Dans l'onglet Mappage de variables, crez une nouvelle variable CheminCompletFichier avec lesproprits suivantes :

    Conteneur : DWBudgetVenteNom : CheminCompletFichierEspace de noms : UserType de valeur : string

    Valeur : c:\SSIS\D001.csv (spcifiez le c hemin complet de votre f ichier csv afin d'initialiserle contenu de la variable).

    - Puis mappez cette variable sur l'index 0, comme c i-dessous :

    chaque itration de la boucle, la variable User::CheminCompletFichierva prendre la valeurdu chemin d'accs au f ichier de budget (nom du fichier avec extension incluse).

    Nous allons donc dynamiser la valeur du chemin d'accs de la connexion FichierPlatBudget l'aidede cette nouvelle variable.

    Pour cela, dans le Gestionnaire de connexions en bas de la zone de travail de SSIS, faites un clicdroit sur FichierPlatBudget af in d'afficher les proprits de la connexion.

    Dans les proprits, cherchez la proprit Expressions puis cliquez sur le bouton pour aff icherl'diteur.

    Dans l'diteur d'expressions de la proprit, affectez la variableUser::CheminCompletFichier la proprit ConnectionString, comme ci-dessous :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image20.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image19.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    11/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 11/42

    Ainsi la proprit ConnectionStringde la connexion FichierPlatBudgetva prendre la valeur dela variable User::CheminCompletFichier chaque itration de la boucle.

    Pour afficher la liste des variables et pour pouvoir les modifier ou en crer d'autres, cliquezdans la barre de menu sur SSIS>>variables.Dans le Gestionnaire de connexions, notez maintenant le signe ct du nom qui signalel'utilisation d'une expression.

    Pour finir, nous devons rcuprer le SiteCode c ontenu dans le nom du fichier, et donc dans le

    nom de la variable.Basculez dans l'onglet Flux de donnes et modifiez la tche Obtenir SiteCode, pour affecter la colonne SiteCodel'expression suivante :

    Slectionnez

    (DT_STR,10,1252)SUBSTRING(RIGHT(@[User::CheminCompletFichier],8),1,4)

    Le flux de contrle au final devrait ressembler cec i :

    Excutez le flux pour vrifier que tout fonctionne correctement. La tche de flux de chargementdu budget va s'excuter autant de fois qu'il y aura de fichiers csv de budget.

    Cet exemple concret de l'utilisation de SSIS vous a permis de comprendre la diffrenced'utilisation des deux facettes de SSIS. En utilisation dcisionnelle :

    - Le flux de contrle permet de piloter l'excution d'un flux de donnes et doit, autant quepossible, ne pas avoir d'influence directe sur les donnes.

    - Le flux de donnes ralise l'extraction, le traitement et le chargement. Il n'a d'influence que surles donnes elles-mmes.

    3. Dvelopper des flux ET L pour le dcisionnel

    3-1. Droulement de l'excution d'un processus ETL

    Dans cette partie, nous allons vous prsenter les diffrents types de flux, que vous serez enmesure de rencontrer pour alimenter votre entrept de donnes.

    Dans les faits, les donnes ne vont pas transiter directement des systmes sources vers

    l'entrept de donnes. Les donnes vont transiter par au moins un palier : le sas de donnes.Dans notre c as, nous appellerons cette base DistrisysSA (SA en anglais signifiant Staging Area ).

    Le chargement va se faire suivant ce schma de principe :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image21.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    12/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 12/42

    Architecture de chargement de donnes

    La base SQL MDS fait rfrence aux bases de donnes de rfrentiel du produit SQL ServerMaster Data Services. Nous prsenterons cet outil dans le chapitre suivant Grer les donnes derfrence avec Master Data Services.

    Le SA a plusieurs rles :

    - Rapatrier les informations manant de sources multiples, en garantissant qu'il n'y ait pas depertes de donnes lors de ce processus.

    La base SQL MDS fait rfrence aux bases de donnes de rfrentiel du produit SQL ServerMaster Data Services. Nous prsenterons cet outil dans le chapitre suivant Grer les donnes derfrence avec Master Data Services.

    Le SA a plusieurs rles :

    - Rapatrier les informations manant de sources multiples, en garantissant qu'il n'y ait pas depertes de donnes lors de ce processus

    - Faire une zone mmoire tampon d'un tat brut de la source un instant pass et ainsi, faciliterla mise en uvre d'un processus de reprise de donnes, que nous verrons dans ce chapitre lasection L'audit des flux ETL.

    La mise en place d'un SA est une tape indispensable la bonne mise en uvre de vos flux ETL.

    Nous rpartirons les rles de la manire suivante :

    - Les flux entre les systmes sources et le SA seront des flux de copie de donnes (EL). Nousviterons donc, dans le SA, toute contrainte d'intgrit, et dans les flux, toute rgle de gestionet autre requte avec jointure interne, qui peut provoquer une dperdition de donnes sources.Les tables du SA ne sont pas soumises une modlisation. Le SA est simplement but pratiqueafin de simplifier la seconde tape.

    - Les flux entre le SA et le DW seront de vritables flux ETL. Nous utiliserons alors pleinementl'onglet Flux de donnesde SSIS ainsi que les tches de transformation. C'est cette tape-ci, que nous raliserons un audit prcis de nos flux.

    Le droulement du flux dcisionnel va donc se drouler ainsi :

    Droulement de l'excution des flux dcisionnels

    En dcisionnel, il existe donc trois sortes de flux diffrents :

    - Les flux de copie des donnes sources vers le SA.

    - Les flux de gestion et de mise jour des dimensions du DW.

    - Les flux de chargement de s tables de faits du DW.

    Dans les parties qui vont suivre, nous allons illustrer la ralisation de chacun de ces flux.

    3-2. Raliser un flux pour charger le sas de donnes

    Lors de cette partie, nous allons tudier un flux permettant de copier des donnes de facturation

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image24.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image23.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    13/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 13/42

    vers une base de donnes DistrisysSA.

    Dans notre tude de cas, Distrisys dispose d'un systme de gestion par site. Pour raliser unecopie complte des donnes, notre flux devra donc se connecter successivement chacun deces sites.

    Afin de raliser, de suivre et d'excuter le flux prsent dans ce chapitre, tlchargez sur le sitedes ditions ENI les lments suivants :

    Les fichiers de sauvegarde de base de donnes :

    DistrisysERP_SiegeSocial.bakDistrisysERP_AgenceSud.bakDistrisysERP_AgenceOuest.bak

    DistrisysSA.bak

    La solution SSIS :

    - Rpertoire DistrisysETL

    Restaurez les trois bases de donnes.

    Vous pouvez vous reporter au chapitre Intallation et dcouverte des outils SQL Server -Restauration d'une base de donnes pour les procdures de restauration d'une base SQL Server.

    Dans SSMS, vous devriez alors avoir les cinq bases de donnes suivantes :

    La base de donnes DistrisysSA contient les trois tables suivantes :

    Facture : le contenu des tables sources, concernant les donnes de facturation, seracopi dans cette table.Produit :le contenu des tables sources, contenant les donnes concernant les produits,sera copi dans cette table.ListeSystemeSource : cette table liste les sites auxquels nous souhaitons nousconnecter, ainsi que les chanes de connexion de chacune des bases de donnes de cessites.

    Par dfaut, les chanes de connexion existantes font rfrence un serveur et une instance SQLServer. Pensez remplacer ces valeurs par le nom de votre instance SQL Server.

    Nous allons maintenant ouvrir le package contenant le flux tudier.

    Dans SSIS, ouvrez la solution DistrisysETL prcdemment tlcharge et ouvrez le packageSA_Facture.dtsx.

    L'onglet Flux de contrle du package SA_Facture.dtsx se prsente ainsi :

    Flux de contrle du flux SA_Facture.dtsx

    Ce package dispose des variables suivantes :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image27.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    14/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 14/42

    Liste des variables du flux SA_Facture.dtsx

    Le flux fonct ionne ainsi :

    La premire tche rinitialise la table Fac ture de la base de donnes DistrisysSA.La seconde tche, Lire la Table DistrisysAuditListeSystemeSource, affecte le contenude la table ListeSystemeSourcedans la variable de type Objet du mme nom

    Pour faire cela, la tche Excution SQL est configure ainsi :

    La requte excute est la suivante :

    Slectionnez

    SELECT [Site],[SiteCode],[ConnexionSource] FROM

    [ListeSystemeSource] Where Valide='O'

    La section Jeu de rsultatsest configure ainsi :

    3. La troisime tc he Pour chaque Site, de type Conteneur de boucle Foreach, parcourt lavariable rcupre prcdemment, pour lancer chaque itration le flux de donnes Copie deFacture de la source.

    La tche Pour chaque Siteest configure ainsi :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image30.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image29.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image28.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    15/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 15/42

    chaque itration, les variables User::SiteNom, User::SiteCode etUser::ChaineConnexionSource viennent rcuprer les valeurs des champs de la lignecourante, parcourues par la boucle. Pour cela, la section Mappage de variablesest configureainsi :

    La colonne Index correspond l'ordre des colonnes dans la requte de la tc he Lire la TableDistrisysAuditListeSystemeSource dfinie prcdemment.

    4. Enfin, la tche de flux de donnes effectue la copie des donnes de facturation du systme

    source courant vers la table Facture de DistrisysSA.

    Le flux de donnes est trs simple, on vite autant que possible toute modificat ion de donnes.La colonne drive Obtenir SiteCode ajoute simplement au flux le contenu de la variableUser::SiteCode identifiant le site courant.

    La connexion la source de donnes se fait par la configuration de la connexion DistrisysERP. chaque itration, DistrisysERP rcupre la valeur de la chane de connexion de la variableUser::ChaineConnexionSource . Cette configuration est du m me ordre que celui ralis dansle flux de chargement du budget.

    Pour que le flux fonctionne, modifiez les chanes de c onnexions spcifies dans la tableListeSystemeSource, ainsi que celles de DistrisysSA, pour les adapter votre environnement

    serveur.Excutez le flux pour suivre et observer le comportement du package. Ce flux n'est qu'uneillustration de flux de rcupration de donnes. Ce type de flux peut prendre des formes assezdiverses. l'oppos, les flux de chargement des dimensions et des tables de faits sont des fluxtrs strotyps. Leurs formes sont assez transposables d'une table une autre, et d'unsystme l'autre.

    3-3. Raliser un flux pour charger une dimension

    3-3-1. Cas d'une dimension standard

    Nous allons prsent tudier un flux de chargement et de mise jour de la table de dimensionProduit. Sauf exception, tous les flux de charge ment et de mise jour des dimensions sontraliss sur le modle standard qui va suivre ou sur celui propos dans la partie suivante. Nousconsidrerons que le flux qui charge la table Produit, partir des systmes sources a t ralis.Nous disposons alors des donnes Produit courantes dans la table Produit de la base de donnes

    DistrisysSA.

    La socit Distrisys prvoit de mettre en place un rfrentiel Produit. Cela sera effectu auchapitre suivant Grer les donnes de rfrence avec Master Data Services. Si ce travail derfrentiel avait t pralablement ralis, cette table Produit de la base DistrisysSA pourraittre avantageusement remplace par une vue de l'entit Produit du Master Data.

    Le flux que nous allons tudier va rcuprer les donnes de c ette table Produit de DistrisysSA.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image33.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image31.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    16/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 16/42

    Puis il va venir comparer ces donnes avec le contenu de DimProduit de DistrisysDW.

    Dans la plupart des cas, les flux de dimensions doivent vrifier :

    - S'il y a un nouveau membre ajouter dans la dimension.

    - S'il y a eu une modification dans une des proprits d'un lment de la dimension. Si c'est lecas, le flux effectue la mise jour.

    - Dans le cas de modification ou d'ajout d'un nouveau membre, le flux doit mettre une alerte.

    Nous verrons cela dans ce chapitre la section L'audit des flux ETL.

    Commenons la procdure.

    Ouvrez le package DW_Dimproduit.dtsx.Le flux de contrle ne contient qu'une tche de flux de donnes. Cliquez sur l'onglet Fluxde donnes.

    Flux ETL de mise jour de la dimension Produit

    Celle de la table Produit de DistrisysSA.Celle de la table DimProduit de DistrisysDW.

    La tche de colonne drive Epurerles chaines de caractres n'est l que pour nettoyer leschanes de caractres de tout caractre d'espacement droite et gauche, pouvant altrer latransformation qui va suivre.

    L'ide du flux est de venir comparer ces deux sources de donnes, en ralisant une jointureexterne gauche en faveur des donnes de Distrisy sSA, la manire d'un LEFT OUTER JOIN enSQL.

    Les tches de tri en entre de la tche de fusion sont ncessaires, d'une part pour desconsidrations de performance, d'autre part parce que c'est l'ordre de tri qui dtermine la cl dejointure de la tche de fusion.

    Nous rcuprons en sortie de la tche de fusion les champs des deux sources de donnes.

    La tche Jointure de fusion externe gauche est configure ainsi :

    En sortie de fusion, la tche Fractionnement conditionnel, nomme Identification desnouveaux produits et des produits mettre jour, permet par des tests simples d'identifierles lignes en ajout, les lignes modifier, les lignes pour lesquelles aucun traitement n'estncessaire.

    S'il s'agit d'une nouvelle ligne, une tche de Destination OLE DB se charge de faire l'ajout dansla table DimProduit de DistrisysDW.

    Il est important de laisser la cl produit_PK tre gre par SQL Server, en vrifiant bien qu'elle

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image36.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image35.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    17/42

  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    18/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 18/42

    Nous ajoutons une colonne valide. La valeur 1 signifie que le produit est en activit. Une valeur 0, signifie qu'il n'est plus en activit.

    Les ventes de cafetires, dans la table de faits des factures, vont tre affectes la cltechnique Produit_PK 8, 10 ou 11.

    Imaginons que nous sommes le 1 er mai. La cration de la nouvelle Famille Cafetire a lieu. Lechamp FamilleCode tant de type 2, nous devrons avoir la nouvelle table DimProduit suivante :

    Les lignes, avec les anciennes cls techniques identifiant les cafetires, les Produit_PK 8,10 et11, ont t invalides.

    En revanche, trois nouvelles lignes sont cres en remplacement des trois prcdentes : il s'agitdes lignes 12, 13 et 14, et ces nouvelles lignes sont valides et contiennent le mme ProduitCodeque les anciennes lignes.

    Ainsi, les ventes de cafetires, compter de cette date, vont tre affectes dans la table defaits des factures aux nouvelles cls Produit_PK 12, 13 et 14.

    Les valeurs passes de la table de faits n'ont de ce fait pas t affectes par ce changement.SSIS nous aide mettre en uvre le SCD. Pour cela, nous disposons d'une tche d'assistance,la tche Dimension variation lente. Ralisons maintenant le flux de chargement des produitsutilisant le SCD.

    - Si vous ne souhaitez pas le raliser vous-mme, le packageDW_DimProduit_Avec_SCD.dtsxest disponible dans la solution DistrisysETL prcdemmenttlcharge.

    Avant toute chose, dans SSMS, modifiez la structure de la table DimProduitenajoutant une nouvelle colonne Validede type bit.

    Spcifiez une valeur par dfautde valide True.

    Modifiez toutes les lignes de DimProduit pour que le champ Validesoit True.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image40.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image39.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image38.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    19/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 19/42

    Dans le projet SSIS, crez un nouveau Package DW_DimProduit_avec_SCD.dtsx.Crez les deux connexions sources DistrisysSAet DistrisysDW.Dans le flux de contrle, glissez une tche de flux de donnes.Puis, dans Flux de donnes, glissez une tche Source OLE DBse connectant DistrisysSAet la table Produit.Vous pouvez galement glisser une tche Colonne drive, pour faire le nettoyage deschamps de type chanes de ca ractres (cela est facultatif).Glissez ensuite la tche Dimension variation lente.Connectez la tche de colonne drive la tche Dimension variation lente.

    Vous avez alors les trois tches suivantes :

    Puis double cliquez pour modifier la tche Dimension variation lente. Un assistants'ouvre, cliquez sur Suivant.Identifiez l'cran Slectionner une table et des cls de dimension, la connexionDistri-sysDW, la table DimProduitet slectionnez ProduitCodecomme tant la cld'entreprise l'aide du menu droulant.Dans la Colonnes d'entre, slectionnez les mmes noms que ceux apparaissant dansColonnes de dimension. Puis cliquez sur le bouton Suivant.

    Le SCD fait apparatre avec vidence la ncessit d'identifier des cls techniques diffrentes descls d'entreprise. Dans notre cas, Produit_PK est une cl technique et ProduitCode est la cld'entreprise.

    Au niveau de l'interface, Colonne de dimensions variation lente, slectionnez le typed'attribut et procdez comme ce qui est indiqu ci-dessous.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image43.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image42.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image41.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    20/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 20/42

    Dans notre cas, nous spcifions les champs SousFamilleCode, SousFamille, FamilleetProduiten attribut de type 1 : Modification d'attribut.

    En revanche, le champ FamilleCodeest en type 2 : attribut d'historique.

    - l'cran Options des attributs fixes et variables, c liquez sur Suivant.

    - l'cran Options des attributs d'historique, slec tionnez l'option Utiliser une seulecolonnepour afficher les enregistrements ac tifs et expirs, puis configurez les champs comme

    ci-dessous :

    SSIS intgre plusieurs modes de gest ion des lignes valides et obsoltes : soit la gest ion par unchamp unique (le champ Valide dans notre cas), soit la gestion par encadrement de dates . Unchamp identifie alors la date de dbut de validit et un autre la date de fin de validit.

    Sur l'cran Membres de la dimension infrs, dcochez la case Ac tiver la prise en charge desmembres infrs.

    La gestion des membres inconnus ou des membres n/a est une gestion que je vous conseille deprendre en charge vous-mme au sein de votre f lux. C'est un aspect pris en c harge dans lagestion d'audit.

    Sur l'cran Fin de l'assistant Dimension variation lente, cliquez sur Terminer.

    En fin d'assistant, SSIS gnre alors les tches correspondantes au comportement attendu parle SCD.

    Pour tester, faites des modifications avec SSMS dans la table Produit de DistrisysSA.

    - Par exemple affec tez les produits de type cafetire une nouvelle FamilleCode Cet FamilleCafetire.

    - Puis excutez le flux.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image45.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image44.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    21/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 21/42

    Fin d'excution d'un flux de mise jo ur d'une dimension variation lente

    Table DimProduit, avant excution du SCD :

    Table DimProduit, aprs excution du SCD :

    Nous obtenons exactement le comportement attendu initialement. Le SCD a fonct ionn en c ranttrois nouveaux membres valides, et en invalidant les trois membres remplacs.

    - Attention, dans la ralit la tche SCD doit tre rflchie au moment de la conception del'entrept de donnes et de la conception des flux. Le SCD doit tre mis en uvre uniquement

    dans le cas de dimension de taille raisonnable, soit environ moins de 20000 lignes et uniquementdans le cas de c hamps ne variant pas beaucoup, ou du moins lentement. Dans le cas dedimensions larges ou de dimensions variation rapide, comme par exemple la dimension Abonnd'un oprateur tlphonique ou la dimension Produit en grande distribution, nous utiliserons pluttle flux prcdent et grerons l'historisation avec un autre procd qui affecte directement lamodlisation du DW : le principe de mini-dimension.

    Nous rappelons que ce flux est incomplet sans la mise en uvre de l'audit.

    3-4. Raliser un flux pour charger une table de faits

    Nous allons prsent raliser le flux de chargement des tables de faits FactFacture etFactFactureEntete de l'entrept de donnes DistrisysDW.

    Dans tous les cas, un flux de chargement de tables de faits a les caractristiques suivantes :

    Il fait suite au chargement et la mise jour de toutes les tables de dimension.

    Il doit s'assurer, avant l'insertion, des contraintes d'intgrit entre la table de faits et sesdimensions.Il se charge uniquement en insertion rapide.Il possde toutes les caractristiques d'un flux ETL : Extraction simple d'une source (pasde grandes requtes SQL), puis passage par des tches de transformations et d'valuationdes donnes, et enfin chargement rapide des donnes.

    Nous ne ferons jamais de mise jour de donnes par requte SQL update sur une table de faits.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image48.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image47.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image46.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    22/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 22/42

    Si vous devez en arriver de telles pratiques, rvisez la stratgie ou la conception de vos flux, ily a forcment une meilleure solution.

    Dcrivons maintenant le flux de chargement des tables de faits FactFactureetFactFactureEntete.

    Le package Dw_FactFacture.dtsx, il lustrant ce processus et dtaill dans cette partie, estdisponible dans la solution Distrisys ETL prcdemment t lcharge. Reportez-vous y pourobtenir des dtails complmentaires.

    - Attention, ce flux est brut, c'est--dire qu'il n'intgre pas encore la gestion des erreurs et desaudits. Ce f lux est donc incomplet mais suff isant pour en comprendre son essence.

    Tout d'abord, ces deux tables de faits disposent en ralit d'une source unique : la table Facture

    du sas de donnes DistrisysSA. Le chargement de ses tables se fera alors partir de la mmeextraction de donnes.

    La tche Nettoyage des chanes de caractres, de type colonne drive, s'assure que desespaces, droite ou gauche de la chane de caractres identifiant notamment un code, neviennent pas polluer la comprhension de la donne.

    Ensuite, le flux va enchaner une chane de tches Recherche, visant traduire la date defacturation ainsi que les codes produit, client et site en cl technique.

    Cette succession de tches Rechercheconstitue la meilleure vrification des contraintesd'intgrit entre tables de faits et de dimensions.

    Au niveau de la tche Recherche DateFacturation_FK, la configuration est la suivante :

    - La table de rfrence est DimTemps.- Le mapping est ralis entre le champ DateFacturationen provenance de la source dedonnes et le champ Date de la table de la dimension DimTemps.- Le champ Temps_PK, renomm Datefacturation_FK, est en sortie de correspondance.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image51.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image50.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image49.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    23/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 23/42

    Ensuite, le flux se divise en deux :

    - Un premier flux va charger la table FactFacture.

    - Un second flux va charger la table FactFactureEntete.

    La division du flux sans condition est assure par la tche Multidiffusion.

    Avant de charger FactFacture, une dernire tche de type Colonne drive Calculer la Margeet le PrixCatalogue, assure la cration de deux champs manquants :

    Puis la tche effectue le chargement rapide vers la destination :

    - L'option Vrifier les contraintesest dsactive, puisque les tches de Recherche s'en sontdj assures. Le chargement n'en sera que plus rapide.

    La disponibilit d'un grand nombre de disques durs est assez primordiale dans une architecturephysique dcisionnelle. Si les filegroup des tables Factfacture et FactFactureEntete taient surdes disques physiques diffrents, le chargement n'en serait que moins risqu et plus rapide. Toutdpend ensuite du volume de donnes et du temps consenti au c hargement ETL...

    Le deuxime flux s'oriente vers une tche de type Agrgationqui joue en fait le rle d'un GroupByen SQL. Cette tche va regrouper les donnes suivant les colonnes DateFacturation_FK,Site_FK et Client_FK et compter le nombre de lignes distinctes Produit_PK, pour en dduire le

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image55.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image54.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image53.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image52.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    24/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 24/42

    nombre d'articles diffrents que comprend la facture.

    La dernire tche de type Destination OLE DB procde au chargement de FactFactureEntete surles mmes bases de configuration que FactFacture : chargement rapide et pas de vrificationsdes contraintes d'intgrit.

    Nous venons de raliser le flux de chargement de nos tables de faits FactFacture etFactFactureEntete. Mais ces flux ne sont pas achevs sans une gestion fine des erreurs et unaudit du droulement du flux.

    la prochaine tape, vous allez dcouvrir les quelques concepts lis l'audit des flux ETL.

    4. L'audit des flux ETL

    4-1. Les objectifs de l'audit de flux ETL

    Les exemples qui ont t prsents prcdemment sont des flux inachevs, dans le sens o sesflux n'intgrent pas la gestion d'erreurs et l'audit du droulement du flux.

    Par exprience, l'audit de processus ETL, souvent appel tort gestion des rejets, gnre soitbeaucoup de fausses croyances, soit beaucoup de faux espoirs. Dans la plupart des cas, elle estmme mise de ct. Une des principales ides reues consiste faire croire qu'un logiciel ouqu'un package miracle permet de mieux grer la qualit des donnes. Dans les faits, l'audit desprocessus ETL est un travail de finesse du concepteur ETL, traitant un cas ou un contexteparticulier. Si un cas peut difficilement t re retranscrit l'identique pour un autre cas, il en restenanmoins des bonnes pratiques. C'est ce que nous allons voir au cours de cette partie.

    Tout d'abord, nous allons nous poser les questions suivantes : qu'est donc l'audit de f lux ETL ?

    Quel est son objectif ?

    En fait, l'audit de processus ETL poursuit des objectifs multiples et permet de rpondre denombreuses questions. Cela signifie que suivant le contexte, on va rendre plus performant l'auditsur certains points plutt que sur d'autres.

    Les objectifs poursuivis par l'audit des processus ETL sont :

    - L'audit de flux ETL permet d'informer du droulement du processus ETL :

    Le processus ETL a-t-il eu lieu ? Est-il termin ? A-t-il termin avec succs ? Quelle a t sadure ?

    - L'audit de flux ETL permet de traiter et d'alerter sur les erreurs rencontres :

    Quelle est la nature des erreurs rencontres ? Combien y en a-t -il ? Quelles sont-elles ? Quellessont les origines des problmes ? Combien dnombre-t-on d'origines diffrentes ? Quelles sont leslignes concernes ? Combien de lignes sont concernes ?

    - L'audit de flux ETL permet de suivre l'volution de la performance du processus ETL :

    Mon flux se fiabilise-t-il ? Gnre-t-il de moins en moins d'erreurs ? Comment les duresd'excut ion des diffrents f lux voluent-elles ?

    - En cas d'erreur rebours, sur une excution de flux, l'audit de flux ETL doit permettred'identifier les lignes concernes.

    Un bon processus d'audit doit pouvoir rpondre toutes ces questions et peut-tre mme d'autres, plus spcifiques vot re organisation.

    Les matres mots de l'audit ETL sont traabilitet communication :

    Traabilit, vous l'aurez compris, pour rpondre aux questions d'enqutes classiques de

    type Qui ? Quoi ? O ? Quand ? Comment ? Pourquoi ?Communication, car l'audit de processus ETL est intimement li aux problmatiquesdcisionnelles et donc aux prises de dc ision.

    La dlivrance de l'information ne vaut que si on est capable d'en estimer ou d'en valuer sonniveau de fiabilit.

    Le systme d'audit va tre cette source d'informations. Les indicateurs issus du systme d'audit

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image56.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    25/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 25/42

    ont la mme valeur que les indicateurs mtier. Et ces donnes prsentes aux dcideurs vontparticiper directement la prise de dcision.

    4-2. Conception d'un systme d'audit de flux

    Avant de raliser le systme d'au dit de flux, il est ncessaire de penser la stratgie de gestiond'erreurs.

    Notre exprience nous a montr qu'il existe trois grandes stratgies ou scnarios de gestiond'erreurs, qui impliquent chacun des c oncept ions et des approches compltement diffrentes.

    Ces stratgies sont les suivantes :

    La publicat ion garantie des donnes

    La stratgie de chargement de 100 % des donnes, 100 % fiables.

    Cette stratgie suggre que nous prsentons des donnes aux utilisateurs qui sont compltes etqui sont compltement vrifies, sans codification inconnue. Cette stratgie idale implique queles informations fournies ne sont plus forcment de premire fracheur. C'est la stratgie queretiennent le plus souvent les services de pilotage lorsqu'ils ralisent une publication mensuelledes donnes d'act ivit des mois couls; la publication tant ralise plusieurs jours aprs la findu mois.

    L'utilisation d'une base de rejets

    La stratgie de chargement de x% des donnes, 100 % fiables.

    Cette stratgie suggre le rejet des lignes en erreurs et leur rechargement par l'quipeinformatique aprs correction. C'est la stratgie prfre mise en uvre dans les systmesjeunes. Mais c 'est aussi celle qui, au final, est la plus difficile entretenir moyen et long terme,

    car elle implique deux choses : d'une part, que le systme ne rejette que les lignes ayant unproblme technique, ce qui est loin d'tre la totalit des problmes rencontrs et d'autre partparce qu'avec la croissance du systme dcisionnel, le temps pass par l'quipe informatique lalecture des rejets, leurs corrections et leur rechargement prend trop de temps et d'nergie.Au final, elle est trs peu utilise dans les systmes matures.

    Systme avec reprise automatique d'erreurs

    La stratgie de chargement de 100% des donnes, x % fiable.

    Cette stratgie suggre que nous chargions l'ensemble des donnes, sans rejets, mais que nousacc eptions et nous communiquions en consquence sur la fiabilit des donnes qui ont tcharges. Pour tre efficac e, ce systme doit communiquer suffisamment pour rendre lesutilisateurs ac teurs de la correction de leurs donnes. Dans c e systme, l'quipe informatiquedoit dlguer autant que possible cette tche de correction d'erreurs. Leur tche doit secantonner rendre le systme suffisamment lisible pour que ce soit les utilisateurs eux-mmesqui apportent les corrections ncessaires. Enfin le systme doit tre suffisamment intelligent pour

    se reprendre de lui-mme : il doit pouvoir revenir sur les flux prcdemment excuts et donc surles donnes prcdemment charges avec erreurs. En esprant que les donnes ont bienvidemment t corriges dans les systmes oprationnels ou dans les rfrentiels de donnes.

    Nous pouvons faire la synthse de ces diffrentes stratgies dans le tableau ci-dessous :

    Stratgiede

    gestiond'erreurs

    Donnesdu DW

    Fiabilitdes

    donnesdu DW

    Avantages Inconvnients Usages

    Publicationgarantiedesdonnes

    100%(compltes)

    100%(garanties)

    Trs bonnevisibilitpour ledcideurfinal quipeut s'yfier.

    Donnes qui nesontgnralementpas trsfraches. De

    quelques joursau mieux

    Usage rservgnralement des servicesmtier dans lecadre del'utilisation demagasins de

    donnes (horsdu primtrede l'ouvrage).

    Utilisationd'une basede rejets xUtilisationd'une basede rejetsUtilisationd'une basede rejets

    x%(partielles)

    100%(garantiessanserreurstechniques)

    Fracheurdesdonnes.

    Aucunevaluation dela qualit desdonnes. Lesdonnes sontpotentiellementfausses

    Pour une miseen uvrerapide, unedmonstration.

    Stratgiede gestion

    d'erreurs

    Donnesdu DW

    x%Fiabilit

    des

    donnesdu DW

    Avantages Inconvnients Usages

    Fracheurdesdonnes. laplupart desdonnes enerreur sont

    Systme penser et

  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    26/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 26/42

    Stratgie derepriseautomatiqued'erreurs

    100%(compltes)

    x%(partielles)

    visibles, carmarqud'unmembreinconnu. Cesont lesutilisateursquicorrigentleursdonnes etle systmese reprend

    de lui-mme.

    concevoir labase. Pour treefficace lesystme doittrecommuniquantet offrirrellement lapossibilit auxutilisateurs decorriger leursdonnes.

    Usageprfr mettreen placedans lecadred'unentreptdedonnes

    Dans notre cas, nous allons opter pour la stratgie de reprise automatique d'erreurs. Nous allonsvoir dans la suite du chapitre comment mettre en uvre une telle stratgie.

    Concrtement, le systme d'audit va tre organis autour de deux tables principales :

    AuditFlux : cette table va faire le bilan de l'excution d'un flux en particulier.AuditEvenement : cette table va enregistrer les diffrents vnements survenant lors del'excution du flux.

    Le systme de reprise de donnes va tre le suivant :

    - chaque dbut de flux de chargement de tables de faits, le flux va parcourir la table AuditFluxpour identifier les flux reprendre.

    - Pour chaque flux reprendre, il va supprimer les lignes, ajoutes prcdemment par ce flux, etva rejouer le flux sur la mme plage de dates, en esprant que les donnes d'erreursprcdemment remontes auront t alors corriges.

    - Une fois tous les flux rejous, il va ajouter et initialiser une no uvelle ligne dans la tableAuditFlux.

    - Puis le flux du jour va s'excuter normalement en chargeant les donnes de la plage de datesdu jour.

    - Lors de l'excution du flux des vnements vont s'ajouter dans la table AuditEvenement : desvnements d'informations (nb de lignes extraites) et des vnements d'erreurs (code nontrouv, valeur impossible) qui ncessiteront alors peut-tre une reprise du flux.

    - En fin d'excution du flux, la ligne identifiant le flux sera mise jour pour faire le bilan del'excution du flux.

    - Si le flux est identifi comme tant reprendre, il sera alors repris la prochaine excution.

    Attention, le systme de reprise de donnes n'est valable que pour les flux de chargementde tables de faits. Ce systme ne sera donc pas employ dans un flux de chargementd'une table de dimension pour lequel le processus de mise jour est parfaitementacceptable.

    Il s'agit d'une proposition sur la faon de p rocder pour raliser une reprise de donnes. Ilexiste bien d'autres possibilits...

    Un bon systme d'audit doit tre adapt votre contexte. Il doit tre ni trop lourd, ni tropcompliqu mettre en place. Mais il doit cependant dlivrer suffisamment d'informations.

    Dans l'exemple qui va suivre, nous allons complter le systme par une table AuditTraitement,qui va nous permettre de suivre l'ensemble des excutions de flux, flux de reprise inclus. Lestables d'audit seront internes l'entrept de donnes DistrisysDW.

    - Dans la base de donnes DistrisysDW, crez la table AuditFluxavec la structure c i-dessous,activez l'incrmentation automatiquesur le champ AuditFlux_PK :

    Les champs DateDebutPlageDonnees et DateFinPlageDonnees encadreront l'extraction desdonnes source et fixeront donc le primtre du flux.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image57.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    27/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 27/42

    Les champs DateDebutFlux1ereExecutionet DateFinFlux1ereExecutiondterminent la datede dbut et de fin lors de la premire excution. On pourra ainsi en dduire la dure du flux.

    Le flux pouvant se reprendre, les champs DateDebutFluxDerniereExecution etDateFinFluxDerniereExecution dterminent la date de dbut et de fin lors de la dernireexcution du flux. Le champ NbErreurTechniquefait le bilan du nombre d'erreurs techniquessurvenues lors de la dernire excution du flux.

    Le champ NbAvertissementfait le bilan du nombre d'avertissements survenus lors de ladernire excution du flux. Un avertissement identifiant un vnement de vigilance que le flux asu grer.

    En fin d'excution du flux, au moment du bilan, c'est le champ FluxAreprendre qui dterminera sice flux sera rejou lors de la prochaine excution. La valeur de ce champ sera dtermine par lesvnements gnrs dans la table AuditEvenement, au cours de l'excution du flux.

    Le champ NbExecutionindiquera le nombre de fois que le flux a t jou. Les flux pouvant sereprendre, un mme flux peut donc tre excut plusieurs fois. L'administrateur exploitant SSISpourra se baser sur la valeur de ce champ pour dterminer si c'est encore utile de rejouer encoreet encore le f lux sur cette mme plage de donnes.

    Par exemple, un flux identifiant des avertissements depuis plus de 14 mois et jou plus de 40 foismrite-t-il d'tre de nouveau rejou ? Dans ce cas, peut-tre que les fonctionnels, n'ayant paspris la peine de corriger le problme, considrent que le problme n'en vaut pas la peine... Danstous les cas un flux ne pourra pas tre repris indfiniment, soit il faudra corr iger le problme, soitle problme sera considr comme mineur et l'avertissement ignor.

    Puis crez la table AuditEvenementavec la structure ci-dessous et activez l'incrmentationautomatiquesur le champ AuditEvenement_PK:

    Les vnements vont ponctuer le droulement du flux pour raliser la remonte d'informations.

    En fait, il y a trois catgories d'vnements :

    - Les vnements de type comptage. Ils comptabilisent le nombre de lignes. On compteranotamment le nombre de lignes extraites et le nombre de lignes charges.- Les vnements de type erreur technique. Ils remontent le code et la descriptiontechnique de l'erreur due une dfaillance du flux.- Les vnements de type avertissement.Ils correspondent aux alertes remontes parles points de vigilance. Les points de vigilance sont mis en uvre au moment dudveloppement du flux. Ces points de vigilance peuvent tre techniques (non-correspondance d'un code), mais aussi fonctionnels (le CA factur ne correspondant pas celui de la comptabilit, la quantit en stock est ngative, le cot est suprieur au prix devente)

    Les champs principaux sont :

    Evnement: nom de l'vnement. Ce nom est spcifique au flux. Dans notre cas, il s'agitde Nb Lignes Charges FactFacture, Client Inconnu, Produit InconnuEvnement Type: ce sera au concepteur SSIS de faire la liste des types d'vnementsqu'il souhaite rfrencer. Dans notre cas il s'agit de Nb Lignes Source, Nb LignesDestination, Avertissement et Erreur Technique.Tche concerne: nom de la tche sur lequel est intervenu l'vnement.Champ concern: en cas d'avertissement, il s'agit du champ concern par l'alerte.Valeur en erreur: en cas d'avertissement, il s'agit de la valeur du champ qui a gnrl'alerte.Code erreur: c orrespond au message d'erreur technique gnr par SSIS en cas deplantage.Erreur Technique: O pour oui et N pour Non. Permet d'identifier l'vnement comme uneerreur technique.Avertissement: O pour oui et N pour Non. Permet d'identifier l'vnement comme unavertissement.Flux reprendre: O pour oui et N pour Non. Permet d'identifier si l'vnement gnrncessitera une reprise du flux courant sur la mme plage de donne.Nb Lignes Comptabilises: spcifie le nombre de lignes comptes (uniquement en casd'vnement de comptage).

    La comptabilisation des lignes en entre et en sortie est considre comme un vnement.

    En effet dans un flux il y a potentiellement plusieurs sources de donnes, mais aussi

  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    28/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 28/42

    potentiellement plusieurs dest inations. C'est pour ce la que ces champs ne peuvent trespcifis au niveau de la table AuditFlux.

    Crez enfin la table AuditTraitementavec la structure ci-dessous et activez l'incrmentationautomatiquesur le champ AuditTraitement_PK:

    Cette table fera simplement le bilan de toutes les excutions de flux.

    Enfin, pour mettre en place notre systme d'audit, il est ncessaire de mettre jour les tablesde faits et de dimensions alimentes par un flux.

    Au niveau de chaque table de dimension, ajoutez deux nouvelles colonnes d'audit :

    AuditFluxAjout_FK :pour identifier le flux qui a ajout la ligne.

    AuditFluxModification_FK :pour identifier le flux qui a modifi la ligne pour la dernirefois.

    Par exemple, pour DimProduit vous devriez avoir la structure suivante :

    De mme, au niveau de chaque table de faits, ajoutez une nouvelle colonne d'audit :

    AuditFluxAjout_FK, pour identifier le flux qui a ajout la ligne.

    Ajoutez le champ AuditFluxAjout_FKaux tables FactFac ture et FactFactureEntete.Crez les contraintes d'intgrit au niveau de FactFacture comme ci-dessous en crant lesliens suivants :

    - entre AuditFlux AuditFlux_PKet FactFacture AuditFluxAjout_FK.- entre AuditTraitement AuditTraitement_PKet AuditFlux AuditTraitement_FK.- entre AuditFlux AuditFlux_PKet AuditEvenement AuditFluxt_FK.

    Crez ensuite les contraintes d'intgrit suivantes pour DimProduit :

    entre AuditFlux AuditFlux_PKet DimProduitAuditFluxAjout_FK.entre AuditFlux AuditFlux_PKet DimProduit AuditFluxModification_FK.

    Enfin, nous ajouterons un membre inconnu dans chaque dimension. Idalement, il faudrait que lacl technique soit toujours la mme pour en faciliter la gestion.

    Dans notre cas, la cl technique du membre inconnu sera 0.

    Ajoutez une nouvelle ligne da ns chaque dimension avec pour cl technique 0et comme nominconnu.

    Par exemple au niveau de la table DimClient :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image60.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    29/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 29/42

    En fait, le systme ne rejette aucune ligne. Or, il arrive rgulirement qu'un code client,notamment, ne soit pas identifi par le systme : soit cause d'une mauvaise saisie, soit parceque la rplication des bases du CRM a eu une dfaillance l'avant-veille...

    Toujours est-il que mme si ce code est inconnu par notre systme, il faudra tout de mme qu'ilaccepte la ligne. Pour cela nous utiliserons le schma de principe de l'erreur contrle:

    Schma de principe de l'erreur contrle

    La tche 1 de type Rechercheredirige les non-correspondances de code vers la tache 2.

    La tche 2 est un ensemble de tches qui va :

    - Ajouter une nouvelle ligne dans la table AuditEvenementidentifiant le champ et la valeur enerreur.

    Par exemple, le champ peut tre ClientCode et la valeur sans correspondance C11.

    - Attribuer par dfaut la cl 0(membre inconnu) aux lignes avec code sans correspondance. Latche 3, d'union, va rconcilier les lignes avec correspondance et les lignes avec membreinconnu.

    Dans la partie suivante nous allons tudier le flux de chargement intgrant cette fois-c i lesystme d'audit.

    4-3. Exemple de flux avec audit

    Le flux de chargement des factures a t amlior afin d'intgrer le systme d'audit. Le packageDW_FactFacture_Avec_Audit.dtsx, prsent dans ce chapitre est disponible dans la solution

    distrisys ETL en tlchargement sur le site des ditions ENI.

    tudions tout d'abord le flux de contrle ci-dessous :

    Exemple de flux intgrant l'audit de flux

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image63.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image62.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image61.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    30/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 30/42

    Ce flux de contrle s'accompagne de la cration de nouvelles variables :

    La tche Initialisation AuditTraitementva insrer une nouvelle ligne dans la tableAuditTraitement et va rcuprer la valeur AuditTraitement_FKde la ligne gnre dans lavariable du mme nom.

    Pour obtenir ce comportement, configurez la proprit SQL Statementcomme ci-dessous :

    Slectionnez

    INSERT INTO [AuditTraitement]([NomFlux],[DateDebutTraitement])

    VALUES(?,GETDATE())

    SELECT cast(SCOPE_IDENTITY() as int) AS AuditTraitementID

    Le ResultSet doit tre positionn sur Ligne Unique.

    Dans l'onglet Mappage des paramtres, la variable User::NomFluxde direction Input et de

    type Varchar, est mapp avec le nom de paramtre 0.

    Dans l'onglet Jeu de rsultats, la variable User::AuditTraitement_FKest mappe avec le Nomde rsultatsAuditTraitementID ; en rfrence au no m de la colonne ramene par la clauseSELECT de la requte.

    La tche Initialisation AuditFluxva simplement insrer une nouvelle ligne dans la tableAuditFlux.

    Sa proprit SQL Statement est la suivante :

    Slectionnez

    INSERT INTO [AuditFlux]

    ([NomFlux],[AuditTraitement_FK],[DateDebutFlux1ereExecution],

    [DateDebutFluxDerniereExecution],[DateDebutPlageDonnees],

    [DateFinPlageDonnees],[FluxAreprendre],[NbExecution])

    VALUES (?,?,GETDATE(),GETDATE(),(SELECT

    MAX([DateFinPlageDonnees]) FROM [AuditFlux] WHERE

    [NomFlux]='DW_Chargement Facture')

    ,GetDate(),'O',0)

    Cette nouvelle ligne a, comme date de dbut de plage de donnes, la valeur maximum de la plagede donnes de fin des flux de mme nom et comme date de fin de plage de donnes, la dateactuelle. Bien entendu, tout ceci se configure et s'affine suivant les situations.

    Comme nous l'avons dj vu, lors du flux de chargement du SA, la tcheObtenirListeDesFluxAReprendre lit la table AuditFlux pour r cuprer la liste des flux reprendre. Cette liste est rcupre dans la variable ListeDesFluxAreprendre.

    C'est cette mme variable qui est parcourue par la tche Pour chaque AuditFlux.

    chaque itration, les variables AuditFlux_FK, DateDebutPlageDonnees et DateFinPlageDonneessont rinitialises pour prendre la valeur du flux courant.

    De ce fait, pour chaque flux parcouru par la boucle, deux tches vont supprimer les faits et leslignes AuditEvenement prcdemment chargs.

    Puis la tche de flux de donnes va lancer l'extraction des donnes de DistrisysSA, poureffec tuer le chargement dans DistrisysDW.

    Enfin, les tches Bilan AuditFlux et Bilan AuditTraitement font une requte d'update dans leurtable respective, afin de faire le rcapitulatif de l'excution du processus :

    - Bilan AuditFlux fait le bilan partir des donnes de la table AuditEvenement.

    - Bilan AuditTraitement fait le bilan partir des donnes de la table AuditFlux.

    Au final, voici le contenu de la table AuditTraitement :

    Et celui de la table AuditFlux :

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image65.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image64.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    31/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 31/42

    tudions maintenant le contenu du flux de donnes.

    Nous avons simplement ajout de nombreux points de vigilance, afin de faire des remontesd'informations dans la table AuditEvenement.

    La comptabilisation des lignes extraites va se faire avec les tches ci-dessous :

    Le schma de principe de l'erreur contrle est mis en pratique par les tches ci-dessous :

    Enfin, la comptabilisation des lignes charges dans la table FactFacture est ralise par lestches ci-dessous :

    La table AuditEvenementainsi charge est la suivante :

    Nous venons ainsi de raliser un flux de chargement des factures intgrant un systme d'audit etde reprise de donnes en automatique.

    Malgr le systme d'audit, il est conseill d'activer la gest ion des logs de SSIS. Si le systmed'audit vous fournit normment d'informations structures, la gestion de logs SSIS peut vousfournir des informations complmentaires plus techniques.

    Pour activer la gestion des logs, cliquez sur SSISdans la barre de menu, puis surJournalisation.

    http://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image70.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image69.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image68.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image67.PNGhttp://editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/images/image66.PNG
  • 7/22/2019 Business Intelligence Avec SQL Server 2012

    32/42

    23/04/14 Business Intelligence avec SQL Server 2012

    editions-eni.developpez.com/tutoriels/business-intelligence/business-intelligence-avec-sql-server-2012/ 32/42

    Dans le type de fournisseurs, slectionnez Mode fournisseur d'informations pour SQLServer puis cliquez sur Ajouterafin d'crire les logs directement dans une table.L'information sera ainsi plus simple retraiter et exploiter.

    Puis, dans la colonne Configuration, slectionnez la connexion DistrisysDW.Slectionnez tous les conteneursen cochant DW_FactFacture_avec_audit dans lafentreConteneurs et dans l'onglet Dtails , slectionnez tous les types d'vnements.Enfin, dans Slectionner les journaux utiliser pour le conteneur, cochez la casemodule fournisseur.Puis terminez en cliquant surOK.

    cran de configuration des journaux SSIS

    Une nouvelle table sysssislogs, identifie comme table systme, s'ajoute la base de donnesDistrisysDW.

    Ses principaux champs enregistrs par les logs sont les suivants :

    Event :rfrence le type d'vnement l'origine de l'entre de log (OnPreValidate,OnInformation, OnProgress).Computer :le nom du serveur qui a excut le flux.Operator :le compte de service qui a excut le flux.Source :nom de la tche l'origine de la ligne de log.SourceId :identifiant technique SSIS de la t che l'origine de la ligne de log.ExecutionId :identifiant technique du traitement.StartTime :date de dbut de l'vnement.EndTime :date de fin de l'vnement.Message :dcrit le rsultat de l'vnement et af