Data warehouse et outils décisionnels · Title: Data warehouse et outils décisionnels Created...

110
Data warehouse stph.scenari-community.org Data warehouse et outils décisionnels Paternité - Partage des Conditions Initiales à l'Identique : http://creativecommons.org/licenses/by-sa/2.0/fr/ STÉPHANE CROZAT 15 septembre 2016 AI07

Transcript of Data warehouse et outils décisionnels · Title: Data warehouse et outils décisionnels Created...

  • Dat

    a w

    areh

    ouse

    stph.scenari-community.org

    Data warehouse et outils dcisionnels

    Paternit - Partage des Conditions Initiales l'Identique : http://creativecommons.org/licenses/by-sa/2.0/fr/

    STPHANE CROZAT

    15 septembre 2016

    AI07

  • Table des matires

    Objectifs 6

    I - Introduction au domaine du dcisionnel et aux data warahouses 7

    A. Le dcisionnel.......................................................................................................................................................7 1. Dcisionnel.........................................................................................................................................................................................................................................7 2. Enjeux du dcisionnel.....................................................................................................................................................................................................................7 3. Exploitation des donnes...............................................................................................................................................................................................................8 4. thique et limites des systmes dcisionnels..........................................................................................................................................................................8 5. Architecture d'un systme dcisionnel......................................................................................................................................................................................9 6. Conception d'un systme dcisionnel.....................................................................................................................................................................................10 7. Quelques exemples d'application.............................................................................................................................................................................................12

    B. Le data warehouse...............................................................................................................................................12 1. Data warehousing.........................................................................................................................................................................................................................12 2. Diffrence entre un DW et un systme transactionnel......................................................................................................................................................13 3. Implmentation du DW avec un SGBDR.............................................................................................................................................................................13 4. Data warehouse et data mart....................................................................................................................................................................................................14

    C. Le modle en toile.............................................................................................................................................14 1. Modlisation logique de donnes en toile.............................................................................................................................................................................14 2. Objectifs du modle dimensionnel............................................................................................................................................................................................15 3. Extraction Transformation Loading.........................................................................................................................................................................................16

    D. Les outils du dcisionnel.....................................................................................................................................16 1. ETL, reporting, exploration, analyse........................................................................................................................................................................................17 2. SGBD orients dcisionnel........................................................................................................................................................................................................20

    II - Bases de la modlisation dimensionnelle 21

    A. Principes de la modlisation dimensionnelle.........................................................................................................21 1. Approche gnrale de modlisation.........................................................................................................................................................................................21 2. Table des faits................................................................................................................................................................................................................................22 3. Table des dimensions..................................................................................................................................................................................................................23

    B. Projet Fantastique : Problme pos......................................................................................................................24

    C. Projet Fantastic : Donnes disponibles.................................................................................................................25

    D. tude des besoins utilisateurs..............................................................................................................................25 1. Requte dcisionnelle...................................................................................................................................................................................................................25 2. Rapport.............................................................................................................................................................................................................................................26 3. Hirarchie........................................................................................................................................................................................................................................26

    E. Projet Fantastique : tude des besoins..................................................................................................................27

    F. tude des donnes...............................................................................................................................................27 1. tude spare des sources donnes.......................................................................................................................................................................................27 2. tude intgre des sources de donnes.................................................................................................................................................................................28

    Stphane Crozat 2

  • G. Projet Fantastique : tude des donnes................................................................................................................28

    H. Modlisation du datawarehouse..........................................................................................................................29 1. Intgration des besoins................................................................................................................................................................................................................29 2. Arbitrages pour le choix des donnes......................................................................................................................................................................................30 3. Mtadonnes..................................................................................................................................................................................................................................31

    I. Projet Fantastique : Modlisation..........................................................................................................................31

    III - Introduction l'ETL et application avec Oracle 32

    A. Principes gnraux d'un processus ETL...............................................................................................................32 1. Principe de l'ETL..........................................................................................................................................................................................................................32 2. ETL ex nihilo ou outil d'ETL.....................................................................................................................................................................................................32 3. ETL en mode batch ou en mode flux.......................................................................................................................................................................................33 4. ETL incrmental............................................................................................................................................................................................................................33

    B. Proposition d'architecture simplifie pour un ETL ex nihilo, batch, non incrmental............................................34 1. Architecture d'ETL trois zones.............................................................................................................................................................................................34 2. Conseils mthodologiques...........................................................................................................................................................................................................35 3. Rsum ETL en image................................................................................................................................................................................................................36 4. Carte des donnes........................................................................................................................................................................................................................36

    C. Implmentation simplifie d'une zone d'extraction avec Oracle.............................................................................37 1. Zone E : Extraction.......................................................................................................................................................................................................................37 2. Sources de donnes......................................................................................................................................................................................................................38 3. Tables externes sous Oracle......................................................................................................................................................................................................38 4. Exemple de chargement de donnes depuis un CSV par une table externe...............................................................................................................41 5. Insertion CSV manuelle avec SQL Developer.....................................................................................................................................................................42

    D. Projet Fantastic : Mise en place de la zone d'extraction.........................................................................................43

    E. Implmentation simplifie d'une zone de transformation avec Oracle....................................................................44 1. Zone T : Transformation..............................................................................................................................................................................................................44 2. Implmentation de la zone T en RO........................................................................................................................................................................................45 3. Dsactivation et ractivation de contraintes..........................................................................................................................................................................46 4. Processus de chargement BDE->BDT..................................................................................................................................................................................47

    F. Projet Fantastic : Mise en place de la zone de traitement.......................................................................................48

    G. Implmentation simplifie d'un data warehouse avec Oracle.................................................................................49 1. Zone L : Loading............................................................................................................................................................................................................................49 2. Implmentation du data warehouse en R..............................................................................................................................................................................49 3. Processus de chargement BDT->DW....................................................................................................................................................................................50

    H. Projet Fantastic : Mise en place de la zone d'exploitation......................................................................................51

    I. Projet Fantastic : Implmentation des transformations...........................................................................................51

    IV - Exploitation mono-dimensionnelle d'un data warehouse en SQL 52

    A. Rappels SQL pour l'tude des donnes................................................................................................................52 1. Fichier CSV....................................................................................................................................................................................................................................52 2. Agrgats...........................................................................................................................................................................................................................................53

    B. Exploration avec l'agrgation...............................................................................................................................54 1. Exploration mono-dimension et mono-niveau avec GROUP BY....................................................................................................................................54 2. Isolation de facteur........................................................................................................................................................................................................................55 3. Sous-requtes dans la clause FROM.....................................................................................................................................................................................55 4. Ajustement des proportions........................................................................................................................................................................................................55

    C. Faciliter l'exploitation avec les vues.....................................................................................................................56 1. Usage des vues..............................................................................................................................................................................................................................56 2. Isolation de facteur........................................................................................................................................................................................................................56 3. Agrgation de faits........................................................................................................................................................................................................................57

    Stphane Crozat 3

  • D. Projet Fantastic : Exploration avec l'agrgation....................................................................................................57

    E. Projet Fantastic : Analyse en proportion..............................................................................................................57

    F. Projet Fantastic : Isolation de facteur...................................................................................................................58

    G. Projet Fantastic : Agrgation de faits...................................................................................................................58

    H. Projet Fantastic : Exploration de donnes libre....................................................................................................58

    V - Modlisation avance 59

    A. Faits...................................................................................................................................................................59 1. Table de faits avec faits et table de faits sans fait..............................................................................................................................................................59 2. Cls artificielles..............................................................................................................................................................................................................................60 3. Exemples de modles dimensionnels......................................................................................................................................................................................61 4. Gestion des valeurs nulles.........................................................................................................................................................................................................63 5. Gestion des erreurs......................................................................................................................................................................................................................63 6. Faits semi-additifs........................................................................................................................................................................................................................64

    B. Dimensions.........................................................................................................................................................65 1. Conception des dimensions........................................................................................................................................................................................................65 2. Dimension dgnre...................................................................................................................................................................................................................65 3. Modlisation en flocon.................................................................................................................................................................................................................66 4. Slow Changing Dimension (SCD)........................................................................................................................................................................................66

    C. Attributs des dimensions.....................................................................................................................................68 1. Attributs d'analyse.......................................................................................................................................................................................................................68 2. Attributs de description...............................................................................................................................................................................................................68 3. Attributs de segmentation...........................................................................................................................................................................................................69 4. Attributs d'agrgation de faits..................................................................................................................................................................................................69 5. La dimension date.........................................................................................................................................................................................................................69

    D. Modlisation avance du data warehouse.............................................................................................................70

    VI - Exploitation multi-hirarchique et multi-dimensionnelle d'un data warehouse 72

    A. Extensions SQL pour l'exploration de donnes....................................................................................................72 1. Exploration multi-niveaux avec GROUP BY ROLLUP....................................................................................................................................................72 2. Exploration multi-dimensions avec GROUP BY CUBE..................................................................................................................................................73

    B. Rappels Oracle pour l'exploration des donnes.....................................................................................................74 1. Sous-requtes dans la clause FROM.....................................................................................................................................................................................74 2. Fentrage des donnes................................................................................................................................................................................................................75 3. SQL*Plus........................................................................................................................................................................................................................................75

    C. Projet Fantastic : Exploitation multi-dimensionnelle de donnes...........................................................................77

    VII - Datamarts orients analyse de panier 78

    A. Analyse de panier...............................................................................................................................................78 1. Dfinition de l'analyse de panier.............................................................................................................................................................................................78 2. Analyse de structure de panier.................................................................................................................................................................................................78 3. Analyse de ventes conjointes.....................................................................................................................................................................................................80

    B. Data mart pour l'analyse de ticket de caisse..........................................................................................................81

    VIII - Complments 82

    A. lments avancs pour l'ETL..............................................................................................................................82 1. Gestion des erreurs......................................................................................................................................................................................................................82 2. Cls artificielles..............................................................................................................................................................................................................................82 3. lments pour l'ETL incrmental............................................................................................................................................................................................83 4. Intgration des dimensions multi-sources..............................................................................................................................................................................84 5. Performance et maintenance......................................................................................................................................................................................................84

    Stphane Crozat 4

  • B. Extensions Oracle pour l'exploration de donnes..................................................................................................85 1. Classements...................................................................................................................................................................................................................................85 2. Totaux cumuls..............................................................................................................................................................................................................................86 3. Cration d'un fichier CSV avec SQL*Plus...........................................................................................................................................................................86 4. Exemple gnral d'analyse de donnes sous Oracle.........................................................................................................................................................87

    C. Utilisation d'un tableur pour l'exploitation de donnes.........................................................................................91 1. Reporting..........................................................................................................................................................................................................................................91 2. Tableaux croiss............................................................................................................................................................................................................................92

    IX - Rappels 93

    A. Prise en main de Oracle SQL Developer.............................................................................................................93 1. Installation de SQL Developer..................................................................................................................................................................................................93 2. Connexion avec SQL Developer...............................................................................................................................................................................................93 3. Naviguer dans le catalogue de SQL Developer...................................................................................................................................................................94 4. Excuter des requtes SQL avec SQL Developer..............................................................................................................................................................95 5. crire du PL/SQL avec SQL Developer...............................................................................................................................................................................97 6. Excution de fichiers SQL..........................................................................................................................................................................................................98

    B. Rappels Oracle pour l'ETL.................................................................................................................................98 1. Excution de fichiers SQL..........................................................................................................................................................................................................98 2. Insertion de dates avec TO_DATE.........................................................................................................................................................................................99 3. Traitement de dates avec TO_CHAR....................................................................................................................................................................................99 4. Affichage l'cran.....................................................................................................................................................................................................................100 5. Transactions en SQL................................................................................................................................................................................................................100

    C. Rappels triggers pour l'ETL.............................................................................................................................101 1. Principes des triggers................................................................................................................................................................................................................101 2. Prdicats d'vnement au sein des triggers......................................................................................................................................................................102 3. Manipulation des anciennes et nouvelles valeurs dans les triggers (:old et :new)...............................................................................................103 4. Quelques rgles respecter pour les triggers....................................................................................................................................................................104

    D. Rappels Oracle RO..........................................................................................................................................104 1. Cration de type en SQL3 sous Oracle (extension au LDD)....................................................................................................................................104 2. Cration de table objet (modles et LDD).......................................................................................................................................................................105 3. Mthodes de table d'objets.....................................................................................................................................................................................................105 4. Mthodes et SELF....................................................................................................................................................................................................................107

    Signification des abrviations 108

    Bibliographie 109

    Webographie 110

    Stphane Crozat 5

  • Objectifs

    Connatre les principaux domaines d'application des data warehouses

    Connatre le paradigme du dcisionnel (et son articulation avec le paradigme transactionnel)

    Connatre les principes, les tapes et les mthodes de la modlisation dimensionnelle

    Savoir faire une tude de besoins

    Savoir faire une tude des donnes existantes

    Savoir faire un modle dimensionnel en toile

    Savoir implmenter un data warehouse avec un SGBD relationnel

    Savoir implmenter un processus ETL vers un data warehouse

    Savoir interroger en SQL un data warehouse en vue d'applications dcisionnelles

    Savoir faire un modle dimensionnel en toile et en flocon

    Savoir grer les dimensions dgnres et attributs de documentation, de segmentation et d'agrgation

    Savoir implmenter un data mart pour l'analyse de tickets de caisse

    Stphane Crozat 6

  • I - Introduction au domaine du dcisionnel et aux data warahouses

    I

    A. Le dcisionnel

    ObjectifsConnatre le paradigme du dcisionnel (et son articulation avec le paradigme transactionnel)Connatre les principaux domaines d'application des data warehouses

    1. Dcisionnel

    Dfi nit ion

    Le systme d'information dcisionnel est un ensemble de donnes organises de faon spcifiques, facilement accessibles et appropries la prise de dcision [...].

    La finalit d'un systme dcisionnel est le pilotage d'entreprise.

    Les systmes de gestion sont ddis aux mtiers de l'entreprise [...].

    Les systmes dcisionnels sont ddis au management de l'entreprise [...].

    (Goglin, 2001, pp21-22)

    Synonymes : informatique dcisionnelle, business intelligence, BI

    2. Enjeux du dcisionnel

    La prise de dcisions stratgiques dans une organisation ncessite le recours et le croisement de multiples informations qui concernent tous les dpartements : production, RH, DAF, achats, ventes, marketing, service aprs-vente, maintenance, R&D...Or ces donnes sont gnralement :

    parpilles au sein des dpartements et non connectes entre elles

    htrognes dans leurs formats techniques et leurs organisations structurelles, voire leurs smantiques

    Stphane Crozat 7

  • implmentes pour l'action (par construction) et non pour l'analyse

    volatiles, au sens o leur mise jour peut conduire oublier des informations obsoltes

    ExempleUn catalogue de produits sera conu pour permettre de trouver facilement un produit en fonction de caractristiques prcises, de faire des mises jour rapides et fiables, de grer des stocks... Mais un systme dcisionnel souhaitera :

    connatre l'organisation des produits selon certaines caractristiques et regroupements qui ne sont pas forcment premiers dans la gestion quotidienne ;

    croiser le catalogue avec les ventes...

    FondamentalL'enjeu des systmes dcisionnels est de donner accs aux donnes existantes dans l'organisation, sous une forme intgre, afin de faciliter leur interrogation croise et massive.

    Complment : Voir aussiDiffrence entre un DW et un systme transactionnel

    3. Exploitation des donnes

    Les donnes agrges dans un systme dcisionnel servent trois grandes catgories d'usage :

    La production de rapport rcurrents (reporting)

    L'exploration manuelle

    L'analyse de donnes (descriptive ou prdictive)

    Dfi nit ion : ReportingLe principe du reporting est d'agrger et de synthtiser des donnes nombreuses et complexes sous forme d'indicateurs, de tableaux, de graphiques permettant d'en avoir une apprhension globale et simplifie.Le reporting s'appuie principalement sur les agrgats (GROUP BY en SQL par exemple) afin de faire apparatre des comptages, sommes ou moyennes en fonction de critres d'analyses.Le reporting est gnralement rcurrent, le mme rapport sera produit intervalles rguliers pour contrler les variations des indicateurs.

    Dfi nit ion : Exploration manuelleUne autre exploitation de donnes en contexte dcisionnel consiste pouvoir explorer les donnes de faon peu dirige (heuristique) afin de trouver des rponses des questions que l'on ne s'est pas poses (srendipit). L'ide gnrale est plutt que les rponses aux premires questions que l'on se posent conduiront se poser de nouvelles questions.L'exploration de donnes s'appuie sur des outils permettant de manipulation (IHM) et de visualiser (infovis) les donnes selon des requtes dynamiquement produites par des utilisateurs experts du domaine.

    Dfi nit ion : Analyse de donnesL'analyse de donnes est une branche de la statistique qui permet de mettre en vidence des tendances des donnes ou corrlations entre les donnes non videntes a priori.

    Dans le cas de l'analyse descriptive, ll s'agit de rechercher une information statistique "cache" que l'on ne connat pas a priori.

    L'approche prdictive consiste raliser un modle statistique des corrlations entre les donnes partir d'chantillons d'apprentissage, puis appliquer le modle des donnes nouvelles pour prdire leur comportement, avec des raisonnements du type "si ... alors" ; ou pour classifier des donnes (tel objet caractris par telles donnes appartient-il telle classe ?). Les rsultats sont gnralement qualifis par une probabilit doccurrence.

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 8

  • 4. thique et limites des systmes dcisionnels

    Rationalisation excessive et processus complexesLes systmes dcisionnels produisent des indicateurs ou s'appuient sur des modles dont l'objectif est de simplifier la ralit pour aider la prise de dcision. Mais la dcision doit bien rintgrer des valuations humaines qui la replacent dans sa ralit, qui est reste complexe.

    Le modle ou l'indicateur n'est pas la ralit, s'en est une reprsentation.

    La dcision ne s'applique pas une reprsentation, mais la ralit.

    Slectivit des donnes et organisations humainesLes systmes dcisionnels s'appuient sur les donnes que l'on est en mesure de produire, mais ces donnes ne peuvent pas intgrer toutes les dimensions d'une organisation et de son environnement, en particulier les dimensions humaines.Or ces dimensions caches au systme dcisionnel dterminent de nombreux fonctionnements de l'organisation, et doivent continuer d'tre prises en compte.

    L'interprtation est humaineUn systme informatique produit des indicateurs qui ncessitent des interprtations humaines, expertes dans le cas du dcisionnel. Un systme informatique ne produit pas des directives qu'une organisation humaine doit suivre !

    L'erreur est informatiqueLes rsultats produits par les systmes dcisionnels sont le rsultat de conceptions informatiques et mathmatiques complexes, qui peuvent receler des erreurs ou des raccourcis, par ailleurs les rsultats sont souvent statistiques, donc non dterministes.La possibilit d'une erreur ou d'une approximation inadapte devra toujours tre prise en compte dans les dcisions.

    CNILLe fait de constituer des fichiers informatiss relatifs des personnes doit gnralement faire l'objet d'une dclaration la CNIL et ncessite le respect de certaines rgles comme le droit de rectification et de radiation.

    5. Architecture d'un systme dcisionnel

    Tout systme dcisionnel est architectur globalement de la mme faon :

    En amont un accs au systme transactionnel en lecture seule

    Un DW fusionnant les donnes requises

    Un ETL permettant d'alimenter le DW partir des donnes existantes

    Des applications d'exploitation de reporting, exploration et/ou prdiction

    D'ventuels DM permettant de simplifier le DW en vue de certaines applications

    DM

    DMETL DW

    Donnes transactionnelles

    Exploitation

    Reporting

    Analyse

    Exploration

    Reporting

    Architecture gnrale d'un systmes dcisionnel

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 9

  • Fondamental : Principe de fonctionnementLe but du systme est globalement d'tre capable de prsenter des tableaux de donnes (fichiers plats) en intrants des applications d'exploitation.

    6. Conception d'un systme dcisionnel

    Un projet de systme dcisionnel se structure selon quatre grands axes : 1. tude des besoins et de l'existant

    - tude des besoins utilisateurs- tude des donnes existantes

    2. Modlisation et conception- Modlisation dimensionnelle- Architecture technique- Spcification des outils d'exploitation

    3. Implmentation du data warehouse- Implmentation du DW et des DM- Mise en place de l'ETL

    4. Implmentation des outils d'exploitation- Implmentation des outils de reporting- Implmentation des outils d'exploration - Implmentation des outils de prdiction

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 10

  • Complment

    Lifecycle approach to DW/BI (Kimball, 2008, p3)

    Complment(Kimball, 2008) [(Kimball et al., 2008)]

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 11

  • 7. Quelques exemples d'application

    Analyse du comportement de consommateurs ou de citoyens, en fonction de leurs caractristiques (sexe, age...), de critres socio-conomiques (profession...), gographiques...

    Analyse de ventes en fonction de l'implantation gographique de magasins (densit, caractristiques des rgions...), de l'organisation de magasins (rayonnage, marketing, RH...)

    Analyse des structures de paniers (quel produit est vendu en mme temps que quel autre quelles conditions ?)

    Prdiction de ventes en fonctions de donnes conjoncturelles, gestion des stocks, des approvisionnements

    Contrle qualit et analyse de dfaut des chanes de production en fonction des centres de production, des organisations, des fournisseurs...

    ...

    B. Le data warehouse

    ObjectifsComprendre ce qu'est et quoi sert un data warehouse.Comprendre les diffrences entre un data warehouse et une base de donnes transactionnelle.

    1. Data warehousing

    Dfi nit ion : Dfinition historique de Inmon

    A data warehouse is a subject-oriented, integrated, nonvolatile, and time-variant collection of data in support of management's decisions. The data warehouse contains granular corporate data.

    (Inmon, 2002, p31)

    Dfi nit ionUn data warehouse (DW) est une base de donnes construite par copie et rorganisation de multiples sources (dont principalement le systme transactionnel de l'entreprise), afin de servir de source de donnes des applications dcisionnelles :

    il agrge de nombreuses donnes de l'entreprise (intgration) ;

    il mmorise les donnes dans le temps (historisation) ;

    il les organise pour faciliter les requtes de prise de dcision (optimisation).(Goglin, 2001, p27) [(Goglin, 2001)]Synonymes : entrept de donnes, base de donnes dcisionnelle

    FondamentalL'objectif du data warehouse est de permettre des requtes sur de grands ensembles des donnes, la plupart du temps sous forme d'agrgats (GROUP BY) afin d'en obtenir une vision synthtique (propre la prise de dcision).RemarqueLe data warehouse ddi au dcisionnel est spar du systme transactionnel ddi la gestion quotidienne.

    Complment : Voir aussiData warehouse et data mart

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 12

  • 2. Diffrence entre un DW et un systme transactionnel

    BD transactionnelleUne base donnes classique est destine assumer des transactions en temps rel :

    Ajout, mise jour suppression de donnes

    Questions sur des donnes identifies ou questions statistiques

    DatawarehouseUn DW est uniquement destin l'excution de questions statistiques sur des donnes statiques (ou faiblement dynamiques).

    Un changement d'approche, extrait de (Inmon, 2002, p15)

    3. Implmentation du DW avec un SGBDR

    FondamentalLes deux problmatiques fondamentales des DW sont l'optimisation et la simplification : comment rester performant et lisible avec de trs gros volumes de donnes et des requtes portant sur de nombreuses tables (impliquant beaucoup de jointures) ?On utilise massivement :

    Les vues concrtes : Un data warehouse procde par copie depuis le ou les systmes transactionnels

    La dnormalisation : Un data warehouse est hautement redondant

    FondamentalLe caractre statique du data warehouse efface les inconvnients de ces techniques lorsqu'elles sont mobilises dans des systmes transactionnels.

    RappelDnormalisationVues concrtes

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 13

  • 4. Data warehouse et data mart

    Un data warehouse et un data mart se distinguent par le spectre qu'il recouvre :

    Le data warehouse recouvre l'ensemble des donnes et problmatiques d'analyse vises par l'entreprise.

    Le data mart recouvre une partie des donnes et problmatiques lies un mtier ou un sujet d'analyse en particulierUn data mart est frquemment un sous-ensemble du data warehouse de l'entreprise, obtenu par extraction et agrgation des donnes de celui-ci.

    datawarehousedatamart1

    datamart2

    Graphique 1 Datawarehouse et datamarts

    Pourquoi des data marts ?Les data marts sont destins pr-agrger des donnes disponibles de faon plus dtaille dans les data warehouse, afin traiter plus facilement certaines questions spcifiques, critiques, etc.

    Exemple : Ticket de caisseSi un data warehouse enregistre un ensemble de ventes d'articles avec un grain trs fin, un data mart peut faciliter une analyse dite de ticket de caisse (co-occurrence de ventes de produits par exemple) en adoptant un grain plus grossier (le ticket plutt que l'article).

    Complment : Ticket de caisseLa lecture de Entrepts de donnes : guide pratique de modlisation dimensionnelle [(Kimbal, Ross, 2003)] est recommande pour la modlisation dimensionnelle des tickets de caisse (en particulier pages 31-60 sur la grande distribution).

    C. Le modle en toile

    ObjectifsConnatre les principes de la modlisation dimensionnelle

    1. Modlisation logique de donnes en toile

    Dfi nit ion : Le modle en toileLe modle en toile est une reprsentation fortement dnormalise qui assure un haut niveau de performance des requtes mme sur de gros volumes de donnes.

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 14

  • Exemple

    QuantitPrixfkLieufkDatefkProduitfkClient

    Achat

    #CodePostalDpartementRgionPays

    Lieu

    #TimestampHeureJourDeSemaineJourDeAnneSemaineMoisTrimestreSemestreAnne

    Date

    #CodeClientAgeGenreCodePostalDpartementRgionPays

    Client

    #RfrencePrixType

    Produit

    CP

    D

    R

    P

    Ref

    Px T

    CC

    A CPG

    S M

    T

    S

    A

    TS

    JdS JdAH

    D

    R

    P

    Exemple de modle dimensionnel en toile

    Complment : Modle en floconLe modle en flocon est aussi un modle dnormalis, mais un peu moins que le modle en toile : il conserve un certain niveau de dcomposition pour chaque dimension prise isolment.

    Complment : Voir aussiModlisation en flocon

    2. Objectifs du modle dimensionnel

    La modlisation par schma en toile, par opposition aux schmas normaliss en 3NF, permet de rpondre deux besoins caractristiques des systmes dcisionnels : la performance et la simplicit des requtes.

    PerformanceEn effet en tant que structures redondantes les schmas en toiles permettent d'agrger la table des faits avec n'importe qu'elle dimension en une seule opration de jointure (deux ou trois pour les schmas en flocons).Ce gain de performance est souvent critique puisque les volumes de donnes sont gnralement d'un ordre de grandeur trs suprieur celui des systmes transactionnels.Cette redondance ne pose pas les mmes problmes que dans les systmes transactionnels, en effet :

    les donnes tant statiques (importes), il n'y a pas de risque de divergence d'information lors de mises jour

    l'usage du datawarehouse tant essentiellement statistique (regroupement), la consquence d'une ventuelle erreur n'est pas du mme ordre que dans un systme transactionnel.

    SimplicitLa prsentation en toile des donnes, avec les faits au centre et les dimensions autour, est particulirement adapte l'criture rapide de requtes simples pour agrger des donnes de la table des faits selon des regroupements sur les tables de dimensions. L'enjeu est de pouvoir rpondre simplement et rapidement une question simple, tandis qu'un modle transactionnel, qui rpond d'autres contraintes, ncessitera souvent un code SQL complexe et des oprations multiples pour rpondre la mme question.

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 15

  • Cela permet notamment aux utilisateurs finaux de construire facilement de nouvelles requtes au fil de leur exploration des donnes.

    Fondamental : Caractristiques d'un bon modle dcisionnel tre performant pour le calcul dagrgats sur de gros volumes de donnes (exploration de donnes, reporting)

    tre apprhendable par un utilisateur final, en particulier pour formuler facilement des requtes (exploration de donnes)

    tre suffisamment performant au chargement pour rpondre aux sollicitations de mise jour (ETL)

    tre volutif en fonction des volutions amont (sources transactionnels) et aval (besoins d'exploitation) (ETL, mtadonnes)

    3. Extraction Transformation Loading

    Dfi nit ion : ETLL'ETL (Extraction Transformation Loading) est le processus de copie des donnes depuis les tables des systmes transactionnels vers les tables du modle en toile du data warehouse.

    Exemple

    RemarqueLes tables du modle dimensionnel peuvent tre vues comme des vues concrtes sur le systmes transactionnel, la nuance que des transformations (correction d'erreur, extrapolation...) peuvent avoir t apportes dans le processus ETL.

    D. Les outils du dcisionnel

    ObjectifsConnatre les grandes classes d'outils du domaine du dcisionnelConnatre quelques outils du march

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 16

  • 1. ETL, reporting, exploration, analyse

    Fondamental : Principaux types d'outils d'une architecture dcisionnel ETL

    Reporting

    Exploration

    Analyse (Smile, 2012) [(Smile, 2012)]

    Exemple : ETLIls permettent de concevoir et d'organiser les processus de migration du systme transactionnel vers le systme dcisionnel.

    Exemple : Outils de reportingIls permettent :

    la cration graphique de rapport

    l'accs aux sources de donnes via des API ddies

    ...

    Exemple : Outils d'explorationIls permettent de manipuler interactivement des cubes multidimensionnels (choix des dimensions croiser et des types d'agrgations effectuer)

    Exemple : Outils d'analyseIls permettent l'analyse statistique de donnes.

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 17

  • Exemples d'outils Open Source

    Outil d'ETL Talend

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 18

  • Outil de reporting Birt

    Outil d'exploration de donnes JPivot

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 19

  • Outil d'analyse statistique Weka

    2. SGBD orients dcisionnel

    Il est possible d'utiliser une base relationnelle classique pour implmenter un entrept de donnes modlis en toile (c'est mme aujourd'hui encore la forme la plus largement mobilise).Il existe galement des technologies ddies (qui peuvent s'appuyer sur des bases relationnelles ou sur des structures de donnes ddies).Le mouvement NoSQL rintgre progressivement des problmatiques dcisionnelles, reconfigurant petit petit les approches technologiques lies ce domaine.

    Exemple : TeradataTeradata est une technologie ddie aux BD massivement parallles, c'est dire capable de faire excuter une requte par plusieurs machines en parallle, afin d'en acclrer le traitement. C'est la fois un SGBD, un OS ddi (Unix) et des machines ddies.

    ComplmentVoir Entrepts de donnes : guide pratique de modlisation dimensionnelle [(Kimbal, Ross, 2003)], p.14.

    Introduction au domaine du dcisionnel et aux data warahouses

    Stphane Crozat 20

  • II - Bases de la modlisation dimensionnelle

    II

    A. Principes de la modlisation dimensionnelle

    ObjectifsConnatre les principes, les tapes et les mthodes de la modlisation dimensionnelle

    1. Approche gnrale de modlisation

    RappelLa modlisation en toile

    FondamentalUn modle dimensionnel est le rsultat :

    d'une analyse des besoins : ce que je souhaite tudier.

    d'une analyse des donnes disponibles : ce que je peux tudier.

    Mthode : Mthode gnrale de modlisation 1. Analyse des donnes

    a. tude des sources de donnes (quantification, analyses gnrales) b. Qualification des donnes (qualit et intrt) c. Intgration logique des donnes (simulation d'un schma relationnel virtuel) d. Normalisation du schma virtuel en 3NF pour en avoir une vue cohrente

    2. Analyse des besoins clients a. Exprimer les besoins sous la forme de requtes dcisionnelles b. Raliser les vues hirarchiques pour chaque requte

    3. Slectionner les requtes qui seront effectivement ralisables en fonction des donnes disponibles 4. Conception du data warehouse et des data marts

    a. Sparer les requtes en fonction de la granularit de la table des faits (grain fin des ventes, grain plus grossier du ticket de caisse, etc.)

    b. Crer un data warehouse intgrant toutes les requtes de grain fin c. Extraire un data mart par niveau de grain suprieur et/ou pour des thmatiques particulires ncessitant par

    exemple une pr-agrgation

    Stphane Crozat 21

  • Analyse des besoins Analyse des donnes

    tat de synthse

    Modle relationnel

    suggestion dedonnes ncessaires

    suggestion de requtes possibles

    Requtescibles

    Modlisation dudatawarehouse

    Modlisation desdatamarts

    NgociationUtilit / Qualit

    Graphique 2 lments mthodologiques pour la modlisation dimensionnelle

    RemarqueIl est gnralement intressant de parallliser les tches d'analyse des besoins et d'analyse des donnes. En particulier il est inutile d'aller trop loin dans l'expression de besoins que l'on sait a priori impossibles satisfaire pour cause d'absence de donne ou d'absence de donne exploitable.

    Rappel : InformationsIl est conseill de conserver certains champs d'information dans le modle dimensionnel, mme s'ils ne seront pas exploits pour les calculs ou les agrgats. Cela permettra par exemple d'identifier des enregistrements, comme les dsignations de produits.On pourra noter en italique ces champs dans le modle dimensionnel.

    2. Table des faits

    Dfi nit ion

    A row in a fact table corresponds to a measurement. A measurement is a row in a fact table. All the measurements in a fact table must be the same grain. (Kimball, Ross, 2008, p.17)

    Fact tables express the many-to-many relationships between dimensions in dimensional models.

    Bases de la modlisation dimensionnelle

    Stphane Crozat 22

  • (Kimball, Ross, 2008, p.19)

    RemarqueLa table des faits est (dans la plupart des cas) la table la plus volumineuse (avec le plus grand nombre de lignes) du modle.

    Exemple

    Exemple de table des faits (Kimball, Ross, 2008, p.17)

    Fondamental : Faits additifs et numriques

    The most useful facts are numeric and additive. (Kimball, Ross, 2008, p.17)

    Mthode : Granularit minimale

    Preferably you should develop dimensional models for the most atomic information captured by a business process. Atomic data is the most detailed information collected; such data cannot be subdivided further. (Kimball, Ross, 2008, p.34)

    Mthode : Granularit des data martsPour un data mart on peut pr-agrger sur un grain plus gros que le data warehouse : des colonnes d'agrgation (somme, moyenne, compte...) peuvent alors apparatre pour rendre compte statistiquement d'informations perdues l'agrgation.

    3. Table des dimensions

    Dfi nit ion

    Dimension tables are the entry points into the fact table. [...] The dimension implement the user interface to the data warehouse. (Kimball, Ross, 2008, p.20)

    Bases de la modlisation dimensionnelle

    Stphane Crozat 23

  • Exemple

    Exemple de table de dimension (Kimball, Ross, 2008, p.20)

    Conseil : Intelligibilit

    The best attributes are textual and discrete. Attributes should consist of real words rather than cryptic abbreviations. (Kimball, Ross, 2008, p.20)

    B. Projet Fantastique : Problme pos

    Vous travaillez en tant qu'ingnieur spcialis dans les systmes dcisionnels au sige de l'entreprise franaise "Fantastique".L'entreprise "Fantastique" vend principalement des ouvrages de divertissement de type science fiction, thriller, policier... Elle dispose pour cela de plusieurs magasins de vente dans les centres des grandes villes en France.La direction de l'entreprise souhaite faire une tude large sur les ventes de l'anne passe afin de prendre des orientations stratgiques nouvelles : ouverture de nouveaux magasins, fermeture ou transfert de magasins mal implants, extension territoriale de nouveaux dpartements franais, rorganisation des directions, rorientation du marketing, largissement ou rduction du catalogue, etc.

    FondamentalLa question pose est donc : quels sont les facteurs sur lesquels l'on pourrait jouer pour augmenter les ventes ?Elle vous charge dans ce cadre de mettre en place une solution logicielle permettant d'intgrer les donnes pertinentes et de pouvoir les interroger efficacement sous des angles divers.Notons que bien entendu, la direction claire de l'entreprise ne compte pas se fier ces seuls facteurs de ventes pour prendre ses dcisions, mais bien privilgier les facteurs sociaux et territoriaux, en dialoguant avec ses salaris et ses clients, pour maintenir sa mission culturelle et son rle d'entreprise citoyenne. Votre posture d'ingnieur est bien entendu de se proccuper de ces dimensions fondamentales, mme si elles seront largement ignores dans le cadre de cet exercice vocation essentiellement technique. Elle pourront nanmoins tre brivement abordes en marge de vos rapports d'analyse.

    Bases de la modlisation dimensionnelle

    Stphane Crozat 24

  • C. Projet Fantastic : Donnes disponibles

    Catalogue des livresUne base Oracle contient le catalogue complet de l'entreprise que chaque magasin a sa disposition.

    Cette base, compose d'une seule table publique catalogue, est disponible sur le serveur Oracle sme-oracle.sme.utc, sous le schma nf26.

    Fichier des ventesUn fichier contient une consolidation de l'ensemble des ventes de l'anne passe ralises dans chaque magasin.

    Ces donnes sont disponibles sous la forme d'un fichier CSV dans un rpertoire du serveur sme-oracle.sme.utc : /home/nf26/data

    La structure du fichier est : Numro de ticket, date de ticket, produit, magasin

    Fichier des magasinsUn fichier ODS gr par la direction marketing contient pour chaque magasin l'organisation des rayonnages : marketing.ods

    Le responsable des ventes de chaque dpartement dcide de l'organisation des rayonnages des magasins de son dpartement.

    Il existe 3 types de rayonnage : par Auteur (A), par Anne (Y), par diteur (E)

    Le fichier est dpos dans un rpertoire du serveur sme-oracle.sme.utc : /home/nf26/fantastic

    Donnes gographique sur les dpartementsUn stagiaire a trouv sur Internet un fichier permettant de connatre la population de chaque dpartement, prsageant que cette information sera utile.

    Le stagiaire parvient trouver une information un peu date qui pourra suffire sous la forme d'un fichier CSV : departementsInsee2003.txt.

    departementsInsee2003.txt.zipDocument 1 departementsInsee2003.txt (population par dpartement)

    MthodeInspecter les donnes pour chaque source :

    1. Se connecter la base Oracle avec SQL Developer et inspecter le schma de la table Oracle. 2. Ouvrir un terminal et se connecter en ssh au serveur.

    Utiliser la commande Unix more pour regarder les premires lignes du fichier data.csv. 3. Rcuprer le fichier CSV departementsInsee2003.txt et l'ouvrir avec un diteur de texte. 4. Rcuprer le fichier ODS et l'ouvrir avec un traitement de texte.

    D. tude des besoins utilisateurs

    ObjectifsSavoir formaliser une tude de besoins sous forme de requtes multidimensionnelles

    1. Requte dcisionnelle

    Dfi nit ion : Requte dcisionnelleUne requte dcisionnelle exprime toujours la mesure d'une quantification de faits par rapport des dimensions, sous une forme du type : "Quelle a t la quantit de ... en fonction de ...".

    Bases de la modlisation dimensionnelle

    Stphane Crozat 25

  • Synonyme : Vue, requte multidimensionnelle

    Fondamental Les faits sont des grandeurs que l'on cherche mesurer (prix, quantit...)

    Les dimensions sont des axes d'analyse (date, lieu, produit, personne...)

    Syntaxe

    1 quantit de faits2 / dimension13 / dimension24 ...

    Exemple"Quelle a t la quantit de produits vendus en fonction des dpartements et des mois de l'anne."

    1 quantit de produits vendus2 / dpartement3 / mois

    2. Rapport

    Dfi nit ion : RapportLa rponse une requte dcisionnelle est un rapport, gnralement sous une forme tabulaire ou graphique.Synonyme : tat

    Exemple

    01 02 03J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D

    04 05 06J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D

    07 08 09J F M A M J J A S O N D J F M A M J J A S O N D J F M A M J J A S O N D

    Exemple de rapport

    MthodeLes besoins des utilisateurs s'expriment en gnral plus facilement sous la forme d'exemples de rapports recherchs.

    3. Hirarchie

    Dfi nit ion : HirarchieUne hirarchie est un ensemble de paramtres d'tude de granularit croissante appartenant une mme dimension au sein d'un modle dcisionnel.

    Exemple

    1 quantit de produits vendus2 / lieu (dpartement, rgion)3 / date (jour, mois, trimestre, semestre)

    RemarqueUne mme dimension peut contenir plusieurs hirarchies.

    Bases de la modlisation dimensionnelle

    Stphane Crozat 26

  • E. Projet Fantastique : tude des besoins

    [30 min] partir de l'tude des besoins sommaire effectue par un de vos collgues, et en fonction des donnes disponibles, exprimer les requtes cibles de votre systme. Le contexte de l'exercice ne permet pas de dialoguer rellement avec des utilisateurs, en situation relle il faudra dvelopper cette phase de recueil des besoins des utilisateurs. Vous pourrez amendez l'indicateur d'utilit des donnes en fonction de cette tude.

    Q u e s t i o n 1

    La direction marketing est en charge de limplantation des magasins dans les dpartements et de l'organisation des rayonnages (type de rangement et prsence de rayons spcifiques pour les best-sellers). Elle cherche savoir si l'organisation du rayonnage des magasins a une influence sur les volumes ventes, et si cela varie en fonction des jours de la semaine ou de certaines priodes de l'anne. Elle voudrait galement savoir si certains magasins ou dpartements sont plus dynamiques que d'autres.

    Q u e s t i o n 2

    La direction ditoriale se demande si certains livres se vendent mieux certaines dates et/ou dans certains magasins ou dpartements. Elle aimerait galement savoir si certains auteurs ou diteurs se vendent mieux, et s'il existe un lien entre l'anciennet des livres et les ventes. Elle se demande aussi si certaines priodes sont plus propices que d'autres l'coulement des livres les plus anciens.

    F. tude des donnes

    ObjectifsSavoir faire une tude des donnes existantes

    1. tude spare des sources donnes

    MthodePour chaque source de donnes identifie on proposera une synthse avec les informations suivantes :

    Nom, origine prcise, nombre de lignes de la source

    Nom, type et description des colonnes

    Qualit - 0 : donnes inexploitables- 1 : donnes peu exploitables (traitements incertains)- 2 : donnes exploitables aprs traitements- 3 : donnes exploitables sans traitement

    Utilit- 0 : donnes sans intrt

    Bases de la modlisation dimensionnelle

    Stphane Crozat 27

  • - 1 : donnes utiles pour la documentation uniquement- 2 : donnes utiles a priori- 3 : donnes utiles avec certitude

    Commentaires.

    Exemple

    Nom Description Type Qualit Utilit Commentaire

    isbn Identifiant international d'un livre publi

    char(3) et char(13)

    3 3 Certaines ISBN ne sont pas corrects (3 caractres au lieu de 13) ; cl de rfrencement dans le fichier de ventes

    titre Titre du livre varchar(255) 2 1

    auteur Auteur(s) du livre

    varchar(255) 1 2 Peut contenir plusieurs auteurs ; certains auteurs sont inscrits diffremment d'un livre l'autre

    ...

    Tableau 1 Table Oracle oracle.utc.fr/schema.table [1000 lignes]

    2. tude intgre des sources de donnes

    MthodeAfin d'avoir une vision globale de l'ensemble des donnes, il est conseill de rtro-concevoir :

    une reprsentation relationnelle des donnes telles qu'elles existent

    une reprsentation relationnelle des donnes idalises (telles qu'elles existeraient si elles taient normalises dans une mme BD)

    une reprsentation conceptuelle en UML

    G. Projet Fantastique : tude des donnes

    [1h]Afin de raliser votre travail, l'entreprise vous met disposition les donnes suivantes.Dans le contexte de cet exercice, les donnes vous sont livres a priori, notez que dans un contexte rel, vous aurez la plupart du temps rechercher vous mme les donnes qui peuvent exister.Donnes disponibles

    Q u e s t i o n 1

    tablissez le modle relationnel sous-jacent aux donnes prsentes.

    Indice :

    Pour initier une connexion ssh : ssh user@serveur

    Q u e s t i o n 2tudiez les donnes dont vous disposez et proposez une synthse des donnes disponibles pour chaque source.

    Indice :

    Pour compter les lignes d'un fichier texte sous Linux, on peut utiliser la commande wc -l

    Bases de la modlisation dimensionnelle

    Stphane Crozat 28

  • Q u e s t i o n 3Afin de clarifier les donnes et leur organisation, rtro-concevez un modle relationnel normalis en troisime forme normale unifiant toutes les donnes grce l'identification de cls primaires et l'expression de cl trangres.

    Q u e s t i o n 4

    Rtro-concevez le modle conceptuel en UML correspondant au modle relationnel normalis (un modle UML peut tre plus facile utiliser ensuite).

    H. Modlisation du datawarehouse

    ObjectifsSavoir faire un modle dimensionnel en toile pour un cas simple

    1. Intgration des besoins

    MthodeLes diffrentes vues formalises lors de l'tude des besoins utilisateurs doivent tre intgres :

    une pour le data warehouse,

    et pour chaque data mart.

    Syntaxe

    Vue intgre

    Bases de la modlisation dimensionnelle

    Stphane Crozat 29

  • Faits

    valeur1valeur2

    ...

    Dim2

    Attribut21...

    Dim1

    Attribut11Attribut12Attribut13

    Modle dimensionnel du data warehouse

    2. Arbitrages pour le choix des donnes

    Conseil : Pilotage par les besoinsUn projet de datawarehouse est destin rpondre des besoins d'analyse, en cela il doit prioritairement prendre en considration les besoins rels d'analyse des utilisateurs. En particulier il est dconseill de travailler uniquement partir des donnes sources existantes, puisque les utilisateurs cherchent justement sortir de la ralit transactionnelle ( Entrepts de donnes : guide pratique de modlisation dimensionnelle [(Kimbal, Ross, 2003)], p.34).Bien entendu, la possibilit de rpondre aux besoins dpend des donnes disponibles et de leur qualit.

    Mthode : Diagramme Utilit / QualitChaque donnes peut tre qualifie selon une utilit (donne intressante ou non) et une qualit (donnes facile exploiter ou coteuse nettoyer).Ces deux paramtres peuvent ensuite servir choisir les donnes que l'on conserve (et que l'on va devoir ventuellement nettoyer) de celle que l'on abandonne.

    Bases de la modlisation dimensionnelle

    Stphane Crozat 30

  • Utilit

    Qualit

    valuer(cot de

    traitement)Conserver

    Abandonnervaluer

    (bruit dans le modle)

    Graphique 3 Diagramme Utilit / Qualit

    3. Mtadonnes

    MthodeDocumentez la table des faits ainsi que chaque dimension de votre data warehouse, avec pour chaque attribut :

    Le nom

    Le type prcis

    Une descriptionOn identifiera les cls candidates et la cl primaire de chaque dimension, les informations uniquement descriptives.On pourra prciser lorsque ce n'est pas vident le mode de calcul des attributs en fonction des sources.

    I. Projet Fantastique : Modlisation

    partir de l'tude des donnes et des besoins utilisateurs, proposez un modle dimensionnel pour un data warehouse permettant de traiter la question gnrale qui a t pose.

    Q u e s t i o n 1Proposez une modlisation dimensionnelle en toile pour chaque contexte d'usage (directions marketing et ditoriale) :

    1. identifiez la table des faits 2. identifiez les dimensions en intgrant les vues exprimes (utilisez le rapport qualit/utilit pour dcider des donnes que

    vous souhaitez conserver)

    Q u e s t i o n 2

    Intgrer vos deux sous-modles pour proposer le modle de votre data warehouse.Vous pourrez augmenter vos dimensions de donnes disponibles bien que non identifies a priori lors de l'analyse des besoins.

    Q u e s t i o n 3

    tablissez les mtadonnes du modle dimensionnel : dcrivez chaque donnes (type prcis, description...) ; identifiez la cl primaire de chaque dimension, ainsi que les informations descriptives.

    Bases de la modlisation dimensionnelle

    Stphane Crozat 31

  • III - Introduction l'ETL et application avec Oracle III

    A. Principes gnraux d'un processus ETL

    1. Principe de l'ETL

    Dfi nit ion : Processus "Extraction, Transformation, Load"L'ETL est le processus qui permet de charger un data warehouse partir de donnes externes gnralement issues de bases transactionnelles. Son rle est de rcuprer ces donnes et de les traiter pour qu'elles correspondent aux besoins du modle dimensionnel.En gnral les donnes sources doivent tre "nettoyes" et amnages pour tre exploitables par les outils dcisionnels.

    Fondamental

    You get the data out of its original source location (E), you do something to it (T), and then you load it (L) into a final set of tables for the users to query.

    (Kimball et al., 2008, p369)

    FondamentalSelon Kimball (2004, p.xxi) [(Kimball, Caserta, 2004)] 70% de l'effort consacr un projet de BI est dpens dans l'ETL.

    2. ETL ex nihilo ou outil d'ETL

    Un ETL peut tre :

    dvelopp ex nihilo pour un projet directement dans un langage bas niveau (Java, SQL, PL/SQL...) ;

    ou s'appuyer sur un outil d'ETL (Talend Open Studio, Pentaho Data Integration, Informatica PowerCenter, ...).

    Fondamental

    ETL Tool versus Hand Coding (Buy a Tool Suite or Roll Your Own?)

    The answer is, It depends.

    (Kimball, Caserta, 2004, pp10-13)

    Stphane Crozat 32

  • Mthode : ETL bass sur un outilLes avantages offerts par l'outil ETL sont :

    De structurer et de rassembler l'ensemble des morceaux de code ncessaire aux transferts et aux transformations des donnes

    D'offrir une reprsentation graphique des flux et oprations

    De faciliter la maintenance et l'volution de l'ETL

    D'intgrer la gestion des mtadonnes

    D'intgrer la gestion des erreurs

    De disposer d'API ddies (connexion, import/export...) d'accs aux donnes (CSV, BD, XML...)

    ...

    Mthode : ETL ex nihiloLes avantages offerts par une approche manuelle sont :

    L'homognit technologique et la disponibilit interne des comptences : les quipes utilisent les langages qu'elles matrisent sans apprentissage et mdiation d'un outil tiers.

    La flexibilit : tout est possible.

    Le traitement des fichiers plats (hors BD) peut tre plus simples et plus performant avec des langages proches des systmes.

    ...

    3. ETL en mode batch ou en mode flux

    Fondamental : ETL en mode batch

    The standard architecture for an ETL system is based on periodic batch extracts from the source data, which then flows through the system, resulting in a batch update of the final end user tables.

    (Kimball, Caserta, 2004, p13)

    Un ETL alimente en gnral un data warehouse par des processus batch priodiques.

    Remarque : ETL en mode fluxIl existe nanmoins des applications ncessitant des data warehouses aliments en temps rel en mode flux (qui ne sont pas abords dans le cadre de ce cours).

    4. ETL incrmental

    Dfi nit ion : ETL non incrmentalUn ETL non incrmental est :

    soit un ETL qui ne sert qu'une seule fois (one shot) ;

    soit un ETL qui refait 100% du processus de migration chaque fois que l'on souhaite une mise jour (le data warehouse est vid puis rempli nouveau avec les donnes actuelles)On notera qu'un tel ETL ne gre pas d'historisation.

    Dfi nit ion : ETL incrmentalUn ETL instrumente normalement un processus incrmental.

    1. Les donnes sont modifies dans les systmes transactionnels :- mise jour des dimensions ;- ou ajouts de nouveaux faits.

    2. L'ETL rpercute les mises jour dans le data warehouse.

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 33

  • Attention: Accumulation des faitsClassiquement les faits s'accumulent dans le data warehouse, il n'y a jamais ni suppression ni mise jour (croissance monotone).

    Attention: Historisation des dimensionsLorsqu'une dimension est mise jour, l'ETL doit garder la mmoire des anciennes valeurs afin que les anciens faits restent bien relis aux anciennes valeurs.Ils existent plusieurs stratgies pour grer l'historique des valeurs des dimensions dans le DW :

    associer des dates aux dimensions et aux faits afin de savoir quelle valeur de dimension est valide pour quel fait ;

    crer de nouvelles entres dans les dimensions (ne pas faire de mise jour au sens d'UPDATE) ;

    ...

    Mthode : Stratgies de mise jour Rafrachissement priodique

    Rafrachissement manuel

    Rafrachissement vnementiel

    ...

    B. Proposition d'architecture simplifie pour un ETL ex nihilo, batch, non incrmental

    Nous proposons un exemple d'architecture simplifie pour la mise en place d'un ETL ex nihilo, en mode batch, sans gestion du caractre incrmental.Cette architecture est assez gnrale et pourra tre une base pour de nombreux cas, mais elle devra :

    tre adapte nanmoins en fonctions des spcificits propres chaque contexte.

    tre complte (gestion incrmentale, gestion des rejets, audits...)

    1. Architecture d'ETL trois zones

    MthodeNous proposons une architecture d'ETL organise avec trois zones composes chacune d'une base de donnes distincte :

    Zone d'extraction Une base de donnes destine unifier les sources de donnes et offrir un point d'accs unique.

    Zone de transformation Une base de donnes destine traiter les sources et offrir une interface d'accs aux donnes transformes (API).

    Zone d'exploitation Une base de donnes destine implmenter le data warehouse et les data marts.

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 34

  • Fondamental

    2. Conseils mthodologiques

    Mthode : ETL multi-schmaDans la mesure du possible, utiliser un schma de base de donnes pour chaque zone de l'ETL (BDE, BDT, DW).

    Mthode : ETL mono-schma (contraintes de nommage)Si tout doit tre ralis au sein d'un seul schma, utiliser un systme de pr-fixage des noms : bde_table, bdt_table, dw_table.

    RappelAccs inter-schmas sous Oracle

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 35

  • 3. Rsum ETL en image

    Image 1 Processus ETL

    4. Carte des donnes

    Dfi nit ion : Carte des donnes.La carte des donnes (logical data map) est un inventaire et une mise en correspondance des donnes prsentes dans chaque zone.

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 36

  • Exemple

    DW T EFact/Dim Table Column Data type Function Table Column Data type Table Column Data type Source

    Dim dDate date YYYY-MM-DD date() tDate date char(10) eData date varchar(10)Dim dDate jds 1..7 jds() tDate dateDim dDate month 1..7 month() tDate date

    Dim dBook isbn char(13) isbn() tDate isbn varchar(255) eCat isbn varchar(255)Dim dBook author varchar(25) author() tDate author text eCat auteurs text

    serveur.utc.fr/share/data/

    data.csv

    serveur-oracle.utcschema.catalogue

    Exemple de cartographie des donnes

    Complment(Kimball, Caserta, 2004, p56-59) [(Kimball, Caserta, 2004)]

    C. Implmentation simplifie d'une zone d'extraction avec Oracle

    Dans cette partie nous prcisons comment implmenter pratiquement la zone E d'un processus ETL simple, ex nihilo, batch, non incrmental avec une base Oracle RO (version 9i ou postrieure).

    1. Zone E : Extraction

    Dfi nit ion : Base de donnes d'extractionLa BDE est une BD relationnelle destine implmenter la zone d'extraction d'un ETL, pour offrir un unique point d'accs l'ensemble des sources de donnes.La BD est compose de :

    tables permettant de rapatrier les donnes importer depuis des sources externes ;

    et de vues pour se connecter des sources dynamiques situes dans la mme BD.

    Mthode : Les fichiers CSVLes donnes situes dans des fichiers CSV doivent :

    1. tre rapatries sur un ou des serveurs accessibles depuis la BDE ; 2. importes dans la BDE : une table pour chaque fichier.

    Il faudra automatiser le processus de copie des fichiers si les donnes sont susceptibles d'tre mises jour.

    Remarque : Tables externesCertains SGBD, comme Oracle, propose une alternative l'import, grce un concept de table externe qui permet de lier dynamiquement une dfinition de table un fichier CSV.

    Mthode : Les autres fichiers : tableurs, XML...Pour les fichiers autres que CSV, deux solutions sont tudier :

    soit votre BDE offre une API d'accs direct ces formats ;

    soit le fichier est transform en CSV.Dans le second cas, il faudra automatiser la transformation si le fichier est susceptible de mises jour.

    Mthode : Les donnes stockes en BDPour les donnes stockes en BD, trois solutions sont tudier :

    si la BDE et la BD source sont sur le mme SGBD, on cr simplement une vue ;

    sinon, lorsque c'est possible on tablit un lien dynamique entre la BDE et les tables sources (propritaire, ODBC ou JDBC) ;

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 37

  • sinon, on fait un export de la BD source dans un fichier CSV (en grant l'automatisation de l'export lorsque la base est vivante).

    Mthode : Gestion des contraintesLes contraintes doivent tre relches au maximum dans la BDE pour assurer que les donnes sources seront toutes correctement accessibles.On veillera avoir correctement document les contraintes connues, notamment pour les donnes provenant de SGBD dans lesquels ces contraintes sont formalises dans le schma.

    2. Sources de donnes

    Mthode : Donnes sur le mme serveur OracleRaliser des vues pour accder dynamiquement aux donnes sources.

    Mthode : Donnes dynamiques en fichier CSVCrer une table externe Oracle pour accder dynamiquement ce fichier.Si le fichier n'est pas accessible directement depuis le serveur Oracle, procder une copie (automatise par script).

    Mthode : Donnes statiquesPour les donnes ne demandant aucune mise jour, ou des mises jour trs ponctuelles :

    faire un export depuis la source en CSV ;

    crer une table Oracle dans la BDE ;

    importer manuellement le CSV avec SQL Developer.

    3. Tables externes sous Oracle

    Dfi nit ion : Table externeUne table externe sous Oracle est une mthode d'accs sans copie des fichiers CSV dynamiques exactement comme s'il s'agissait d'une table de la BD.

    Syntaxe : Prambule : Dclaration des rpertoires de travail

    1 CREATE OR REPLACE DIRECTORY AS '';

    2 CREATE OR REPLACE DIRECTORY AS '';

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 38

  • Exemple de rpertoire de travail

    Attention: Accs aux rpertoire de travailLe rpertoire de la source et le fichier source doivent tre accessibles en lecture pour le processus Oracle.Le rpertoire des fichiers de log doit tre accessible en lecture et criture pour le processus Oracle.

    Attention All directories are created in a single namespace and are not owned by an individual schema http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5007.htm1

    Syntaxe : Cration d'une table externe

    1 CREATE TABLE (2 3 )4 ORGANIZATION EXTERNAL5 (TYPE ORACLE_LOADER6 DEFAULT DIRECTORY 7 ACCESS PARAMETERS 8 (9 RECORDS DELIMITED BY ''

    10 SKIP 11 CHARACTERSET 12 BADFILE :''13 LOGFILE :''14 FIELDS TERMINATED BY ''15 OPTIONALLY ENCLOSED BY ''

    1 - http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5007.htm

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 39

    http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5007.htm

  • 16 )17 LOCATION (''))18 REJECT LIMIT UNLIMITED;

    Attention: Ne pas utiliser de commentaire au sein la dclaration des paramtres d'accs One important point to remember is that comments must be placed before any access parameters. If you include comments in the access parameter sections, Oracle will throw an error when you query the external table but not when you are creating it. https://oracleappsnotes.wordpress.com/2012/02/10/oracle-external-tables-a-few-examples/2

    Exemple

    1 CREATE OR REPLACE DIRECTORY monRepertoireSrc AS '/user1c/nf26/nf26/projet/csv/';2 CREATE OR REPLACE DIRECTORY monRepertoireLog AS

    '/volsme/user1x/uvs/nf26/nf26p099/test/';3 /

    1 CREATE TABLE tImport (2 a VARCHAR(50),3 b NUMBER(10)4 )5 ORGANIZATION EXTERNAL6 (TYPE ORACLE_LOADER7 DEFAULT DIRECTORY monRepertoireSrc8 ACCESS PARAMETERS9 (

    10 RECORDS DELIMITED BY newline11 SKIP 112 CHARACTERSET UTF813 BADFILE monRepertoireLog:'import.bad'14 LOGFILE monRepertoireLog:'import.log'15 FIELDS TERMINATED BY ';'16 OPTIONALLY ENCLOSED BY '"'17 )18 LOCATION ('sources.csv'))19 REJECT LIMIT UNLIMITED;

    Description des paramtres DEFAULT DIRECTORY : Le rpertoire o se trouvent le fichier source RECORDS DELIMITED BY : Sparateur d'enregistrements (newline est le caractre de fin de ligne standard du

    systme)

    SKIP 1 : permet d'ignorer la premire ligne d'un fichier CSV lorsque celui-ci contient les enttes de colonnes CHARACTERSET : permet de spcifier l'encodage des caractres (UTF8...) BADFILE : Fichier contenant les enregistrements rejets l'import (rcr chaque excution) LOGFILE : Fichier contenant les traces d'excution (traces ajoutes chaque excution) FIELDS TERMINATED BY : Sparateur de champs (en gnral ; dans un CSV) OPTIONALLY ENCLOSED BY : Sparateur de chanes (en gnral " dans un CSV) LOCATION : Nom du fichier dans le rpertoire slectionn REJECT LIMIT : Nombre d'enregistrements pouvant tre rejets avant interruption de la requte (un entier ou

    UNLIMITED)

    Syntaxe : Vrification de la dclaration de la table externe

    1 DESCRIBE Timport;2 SELECT TABLE_NAME, TYPE_NAME, DEFAULT_DIRECTORY_NAME FROM USER_EXTERNAL_TABLES;

    2 - https://oracleappsnotes.wordpress.com/2012/02/10/oracle-external-tables-a-few-examples/

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 40

    https://oracleappsnotes.wordpress.com/2012/02/10/oracle-external-tables-a-few-examples/

  • Attention: AccsL'accs la source externe CSV par Oracle ne se fait en fait qu' la premire interrogation (SELECT), donc il est ncessaire d'excuter un appel la table pour valider cet accs (seule une vrification syntaxique est faite au moment du CREATE TABLE, le fichier CSV peut mme ne pas exister). En pratique si les donnes comportent des erreurs, les problmes se dclareront ce moment l. On consultera le fichiers de log et des enregistrements rejets pour le savoir.

    1 SELECT * FROM Timport;

    Attention: Gros fichiersSi les volumes de donne sont importants (s'il y a beaucoup de lignes), privilgiez l'usage de la clause ROWNUM pour viter de faire transiter des mga-octets de donnes entre le serveur et le client. Les dlais de raction en seront amliors.Vous pouvez aussi utiliser des SUM, MIN, MAX, etc. pour tre sr que toutes les lignes et colonnes sont correctement lues.

    Conseil : Tout recompterUne fois la procdure termine effectuer un count(*) pour dterminer si l'import a bien trait toutes les lignes du fichier source.

    Remarque : NUMBER(X)Pour spcifier des entiers dans les tables externes, utiliser NUMBER(X), avec le (X) obligatoire.

    Remarque : Caractre de fin de ligneRECORDS DELIMITED BY newline signifie que le caractre standard du systme est utilis comme caractre de fin de ligne. Or :

    sous Unix le caractre de fin de ligne est "\n"

    sous Windows il est "\r\n"Donc, si un fichier CSV est encod sous un systme et lu sous un autre, il y aura un problme. Par exemple si le fichier est encod sous Windows il aura "\r\n" la fin de chaque ligne, et s'il est lu sous Linux, Oracle cherchera uniquement un "\n", d'o un "\r" rsiduel sera considr comme faisant partie du dernier champ.La solution la plus robuste est de spcifier en dur le caractre de fin de ligne :

    Si le fichier source a t encod sous Unix : RECORDS DELIMITED BY '\n'

    Si le fichier source a t encod sous Windows : RECORDS DELIMITED BY '\r\n'

    ConseilPenser grer les fichiers de rejet et de log. Le plus simple est de les supprimer aprs une excution incorrecte.

    Les fichiers de rejet ne sont pas crs si l'excution est correcte (et donc un ventuel fichier existant n'est pas modifie par une excution correcte)

    Les fichiers de log grossissent chaque excution

    4. Exemple de chargement de donnes depuis un CSV par une table externe

    Il est possible d'utiliser les tables externes pour charger des donnes issues d'un fichier CSV dans une table existante.

    ExempleSoit la table tTypeDefaut charger avec un fichier tTypdeDefaut.txt.

    1 tTypeDefaut (#pkTypeDefaut:number(4), libelle:varchar(50), fkFamilleDefaut:char(1)=>tFamilleDefaut)

    On peut utiliser une table externe :

    1 CREATE TABLE tTypeDefautLoad (

    Introduction l'ETL et application avec Oracle

    Stphane Crozat 41

  • 2 pkTypeDefaut number(4),3 libelle varchar(50),4 fkFamilleDefaut char(1)5 )6 ORGANIZATION EXTERNAL7 (TYPE ORACLE_LOADER8 DEFAULT DIRECTORY srcDir9 ACCESS PARAMETERS

    10 (11 RECORDS DELIMITED BY NEWLINE12 BADFILE logDir:'import.bad'13 LOGFILE logDir:'import.log'14 FIELDS TERMINATED BY ';'15 OPTIONALLY ENCLOSED BY '"')16 LOCATION ('tTypeDefaut.txt'))17 REJECT LIMIT UNLIMITED;

    1 INSERT INTO tTypeDefaut2 SELECT * FROM tTypeDefautLoad;

    5. Insertion CSV manuelle avec SQL Developer

    Effectuer un clic droit