Cdric du Mouza Ce TP sappuie sur le tutorial de prise en main de Oracle Warehouse Builder, que vous pouvez trouver en anglais sur le site dOracle. 1 Se connecter La procdure pour lancer oracle warehouse builder (OWB) est la suivante, partir dune station linux: 1. se connecter au serveur kirov soit en le slectionnant dans la liste des serveur si elle apparat sur le terminal, soit en tapant dans une console une fois connect sur nimporte quel serveur: ssh -X kirov En cas dchec vous pouvez aussi essayer depuis une console sous un autre serveur faire:: telnet kirov, puis une fois connect, export DISPLAY=nom_de_votre_terminal:0.0 Cela permet dexporter lafchage et donc dafcher ce que vous lancer sur le serveur kirov sur lcran que vous utilisez. 2. une fois sur kirov, xer le nom de la base que vous souhaiter attaquer en tapant: export ORACLE_SID=NFE115 3. placez vous dans le repertoire de owb avec la commande cd /opt/oracle/product/11.1.0/db_1/owb/bin/unix 4. crer un rfrentiel (a) lancer ./reposinst.sh, puis laisser les valeurs par dfaut (localhost/1521/NFE115); (b) ltape 2 choisir grer les espaces de travail Warehouse Builder; (c) ltape 3, choisir Crer un nouvel espace de travail Warehouse Builder, puis Crer un espace de travail ayant pour propritaire un nouvel utilisateur (tape 4); (d) me demander le mot de passe SYSTEM(ou SYS). Ensuite lcran suivant (tape 6) entrer votre login suivi dun 1 et mot de passe. Choisir comme espace de travail lespace <monLo- gin>Espace (voir gure 1); 1 Figure 1: Cration dun espace de travail Figure 2: Cration dun utilisateur de lespace de travail 2 Figure 3: Accueil de OWB (e) Vous arrivez au choix des utilisateurs du rfrentiel. Faire alors Crer un nouvel utilisateur et crer un utilisateur avec le login VotreLogin2 par exemple et pour mot de passe votre mot de passe (gure 2). Valider. La cration peut prendre un certain temps. 5. une fois le repository cr, lancer loutil partir de la console linux avec la commande: owbclient.sh 6. vous connecter avec votre login suivi de 1 et de votre password habituel lorsque la fentre apparat sur le rfrentiel portant votre nom (ex monnom_c1/P123456C pour le login monnom_c) Vous tes maintenant avec une session de OWB ouverte comme celle de la gure 3 et le TP peut com- mencer. 2 Crer les modules 1. cliquer sur le menu Concevoir et slectionner Nouveau 2. dans la fentre apparaissant, donner au projet le nom votreLogin_REVIEW et appuyer sur OK 3. drouler le projet votreLogin_REVIEW et faire un clic-droit sur Oracledans Bases de Donnes. Slectionner nouveau. 4. Donner au module le nom REVIEW_TGT avec la description Module Cible contenant les objets de review . Il sagira dune cible de data warehouse. Faire Suivant en laissant les options par defaut. 3 Figure 4: Crer le module SRC_FILES 3 Importer des sources Nous allons ici considrer 2 types de sources: des chiers plats de donnes (chiers texte classiques) des bases de donnes, en loccurence ici une base Oracle Comme les donnes et structures existent dj, nous allons regarder comment les importer. 3.1 Importer des mta-donnes dun chier texte La premire tape, an dobtenir les mtadonnes de ce chier texte, est de crer un module dans le projet PRODUCT_REVIEW(celui par dfaut) ou un nouveau que vous auriez cre grce longlet Crer>nouveau projet. Un module est un regroupement logique dun ensemble dobjets. Le module contiendra les mta- datas spciques cet ensemble dobjets et est par consquent situ dans la section Fichier de OWB. Pour crer un module pour un chier plat: 1. drouler le projet votreLogin_REVIEW 2. faire un click-droit sur le nud Fichiers et slectionner Nouveau 3. Utiliser laide pour spcier le nom du module: SRC_FILES (par exemple, cf gure 4) puis passer a la fentre suivante 4. pour cette 2me fentre, cliquer sur modier lemplacement. Vous arrivez une nouvelle fentre. Prciser le chemin o se trouve le chier texte de donnes: /opt/oracle/product/11.1.0/db_1/owb/newowbdemo/sourcefiles (cf gure 5) 5. donner un nom ce nouvel emplacement, par exemple LOC_FILES 6. cliquer sur ok 4 Figure 5: Crer une nouvelle localisation Figure 6: Slectionner les chiers importer 7. cocher la case importer une fois termin puis cliquer sur suivant, puis n. A noter que si vous oubliez de cocher la case importer une fois termin vous pouvez raliser limport ultrieure- ment en faisant un click droit sur le module SRC_FILES et en slectionnant import 8. une fentre pour limport des donnes souvre ensuite. Cliquer sur suivant puis slectionner tous les fichiers de donnes 9. dans la fentre de slection des objets, faire passer les deux chiers expense_categories.csv et export.csv dans la fentre de droite intitule Selectionns. Vous devez tre alors dans la situation de la gure 6. 10. il faut ensuite crer les mtadonnes pour chacun de ces chiers (la croix rouge indique quils nen ont pas). Pour cela surligner dabord le chier expense_categories.csv et appuyer sur le bouton Modlisation. 11. A la nouvelle fentre cliquer sur suivant. Regarder les informations dans la nouvelle fentre sans 5 Figure 7: Informations sur lorganisation du chier Figure 8: Afchage du chier formatt, avec pseudo-noms pour les colonnes modier, puis cliquer sur suivant. Vous arrivez la fentre de la gure 7. 12. Accepter toutes les valeurs par dfaut en appuyant sur suivant jusqu ce que vous arriviez lcran de la gure 8 13. cocher la case utiliser le premier enregistrement comme nom de champ an de donner les noms de colonnes daprs les donnes de la premire ligne. Vous obtenez la gure 9. 14. valider et nir. 15. surligner ensuite le chier export.csv et cliquer sur Modliser 16. avancer sans changer les valeurs jusqua la fentre de la gure 10 17. changer le sparateur par dfaut (,) pour le remplacer par ;, vous obtenez alors la gure 11. Revenir ensuite au bon sparateur avant de continuer; 6 Figure 9: Afchage du chier formatt, avec noms de colonne Figure 10: Informations sur lorganisation du chier: bon sparateur Figure 11: Informations sur lorganisation du chier: mauvais sparateur 7 Figure 12: Modier un attribut 18. la fentre suivant, prciser quil sagit dun chier contenant une seule sorte denregistrements (certains chiers plats peuvent contenir de linformation pour plusieurs tables) puis cliquer sur suivant 19. l encore cocher la case utiliser le premier enregistrement comme nom de champ an de donner les noms de colonnes daprs les donnes de la premire ligne 20. DATE tant un mot rserv, vous ne pouvez le garder comme nom dattribut. Le changer en Expense_Date. Changer le type de Expense_Datede CHAR en DATE(gure 12) avec un masque valant dd-mon-yy 21. les parenthses tant un symbole rserv, renommer Reimbursable_Amount_(USD)en Reimbursable_Am (gure 13; changer le type en DECIMAL_EXTERNAL 22. regarder en scrollant le tableau la colonne Type SQL qui montre les types SQL correspondant aux choix fait pour le type de chaque colonne 23. cliquer sur suivant, puis n. Limport dans le repository seffectue. 24. valider les changements (clic droit dans lexplorateur de projets sur SRC_FILES dans FICHIER, puis slectionner valider. Vous obtenez alors une fentre semblavble la gure 15. 25. aller dans le menu principal et sauvegarder en slectionnant enregistrer tout Avantages de cette mthode Les bnces offerts par ce processus dchantillonage sont: Productivit: lchantillonage interactif des donnes vous permet de dnir et capturer plus rapide- ment les mtadonnes Exactitude: en tant guid travers les structures de donnes souvents longues et complexes, vous diminuez le risque derreurs et fournissez des mtadonnes de grande qualit. 8 Figure 13: Modier un attribut(2) Figure 14: Type SQL 9 Figure 15: Fentre rsultat de la validation Figure 16: Crer le module REVIEW_SRC 3.2 Importer des mtadonnes dune base de donnes De mme que pour les chiers texte, nous devons crer un module pour les mtadonnes de la base de donnes source. Pour importer les mtadonnes de la base de donnes nous procdons comme suit: 1. si ce nest pas fait, ouvrir le projet votreLogin_REVIEW, puis ouvrir le nud Base de donnes 2. surligner le nud ORACLE et faites un clic droit 3. slectionner Nouveau 4. dans la fentre de cration de module, nommer le module REVIEW_SRCet dire que le type du module est source de donnes, comme sur la gure 16 5. cliquer sur Modifier pour lemplacement, et saisir les valeurs comme sur la gure 17 (le nom de service est nfe115, le login password est exemple/exemple et noubliez pas de dire que la base est une 11.1. Le schma utilis sappelle EXEMPLE). 10 Figure 17: Crer un nouvel emplacement 6. valider, une fentre daide limport de mtadonnes va alors souvrir, semblable celle de la g- ure 18 7. cliquer sur suivant 8. dplacer la table voulue (EMPLOYE) dans la partie droite de la fentre pour slectionner les mtadon- nes importer (voir gure 19) 9. cliquer sur suivant, puis la fentre suivante cliquer sur options dimport avances, vous obtenez alors la fentre de limage 20 10. cliquer sur OK puis n, vous obtenez la conrmation de la gure 21 (drouler le champ table pour voir les attributs de la table comme sur la gure). 11. enn en faisant clic droit sur REVIEW_SRC, cliquer sur valider. Avantages de cette mthode Importer des tables et autres objets en provenance dune base de donnes est plus simple que de travailler sur des chiers plats (texte). Cependant ce processus dchantillonage offre quand-mme certains avantages: productivit: comme vous pouvez importer les dnitions il ny a pas besoin de faire les entres des donnes la main, et toutes les cls et contraintes sont maintenues. Dans des sections ultrieures nous verrons comment la cration de ux de donnes bnciera de ceci. productivit (2): une fois que vous avez ces dnitions et la connexion la source dans vos mta- donnes, vous pouvez rafrachir ces dnitions. Warehouse Builder vous montrera les diffrences et vous pourrez choisir de les implanter. Ceci rduit le temps et leffort ncessaire an de dtecter et harmoniser les changements. exactitude: limport laisse peu de place aux erreurs et garantit donc ainsi des mtadonnes de plus grande qualit 11 Figure 18: Fentre daide limport Figure 19: Slection des mtadonnes importer 12 Figure 20: Options dimport disponibles Figure 21: Rsum des mtadonnes importes 13 Figure 22: Cration dun utilisateur cible 4 Concevoir le systme cible OWB fournit des fonctionnalits avances pour la modlisation relationnelle ou multi-dimensionnelle: il permet de dnir des objets relationnels comme des tables, des vues, des vues matrialises, des tables ex- ternes,..., et des objets cibles comme des dimensions et des cubes. OWB spare explicitement la reprsentation dimensionnelle de son implantation. Ainsi la mme conception dimensionnelle peut tre implante comme un entrept relationnel (ROLAP) ou multi-dimensionnel (MO- LAP). Nous allons voir ici pour un entrept cible en ROLAP. En relationnel, OWB supporte la conception et limplantation des schmas toile ou ocon. Nous allons galement modliser un schma en toile simple consistant en un cube avec des cls trangres rfrenant 2 dimensions. 4.1 Crer un utilisateur cible et une cible La cible contient les mtadonnes des objets cibles que lon conoit. Chaque cible doit tre associe un schma utilisateur cible. En tant que propritaire de lespace de travail vous pouvez dnir les stratgies de scurit pour votre implantation. 1. dans la fentre en bas droite (Explorateur Global) drouler longlet Scurit. Faire un clic droit sur Utilisateur et slectionner nouveau. 2. choisir de crer un nouvel utilisateur appel <votreLogin>_EXPENSE_WH de mot de passe votreMotDePasse. Me demander le mot de passe systme. Vrier que le compte cr apparait bien dans la liste. La cration de cet utilisateur permet de crer galement un schma associ pour stocker physiquement les donnes cibles. 3. crer ensuite ladresse (location en anglais) de la cible. Pour cela dans la fentre en haut droite (Explorateur de connexions), drouler Bases de donneset faire clic droit sur Oracle, 14 Figure 23: Cration dun lieu cible choisir nouveau (gure 23). Les paramtres sont: pour le nom utilisateur, LOGIN_EXPENSE_WH, votre mot de passe, pour hte localhost avec port 1521, nom de service nfe115 et schma LOGIN_EXPENSE_WH. 4.2 Crer des tables externes Les tables externes permettent de directement interroger les chiers plats depuis la base de donnes oracle, ainsi que de raliser des jointures, transformations, etc, de ces chiers. Lutilisation de tables externes pour accder aux sources de donnes non-relationnelles offre de multiples avantages, parmi lesquels: gnration de SQL et jointure htrognes: avec les tables externes, vous pouvez interroger et trans- former les donnes contenues dans les chiers plats directement, le code SQL sera gnr par OWB. De plus OWB supporte les jointures entre les chiers plats et les tables relationnelles; performance: interroger les chiers plats via OWBqui les considre comme des tables, permet de faire des accs parallles ces chiers (normalement souvent impossible car verouillage). Par consquent les performances grce aux traitements parallles sont amliores; Passons la cration de 2 tables externes: 1. tout dabord importer des mtadonnes pour la dmo stockes dans un chier dexport avec ex- tension .mdl. Pour cela cliquer dans le menu sur concevoir, choisir importer puis Mtadon- nes Warehouse Builder. Les donnes sont dans le chier OWB_DEMO.mdl situ dans le rpertoire /opt/oracle/product/11.1.0/db_1/owb/newowbdemo. Garder les options par dfaut. Normalement un projet OWB_DEMO doit apparatre. 2. dans le projet OWB_DEMO, drouler Bases de donnes, cliquer sur Oracle avec le bouton droit et choisir nouveau. 15 Figure 24: Cration dun module cible 3. choisir pour nom de module EXPENSE_WH, garder loption dveloppement et vrier que loption cible de datawarehouse est slectionne (gure 24) 4. ensuite choisir la location cre prcdemment comme sur la gure 25 5. drouler le nouveau nud EXPENSE_WHcr, et cliquer avec le bouton droit sur Tables externes, choisir nouveauet donner le nomEXPENSE_CATEGORIES. Slectionner le chier EXPENSE_CATEGORIES_C (gure 26), pour lemplacement choisir celui par dfaut. 6. recommencer ltape prcdente pour crer la table externe de nom EXPENSE_DATA en choisissant cette fois le chier EXPORT_CSV. 7. Vrier que les deux tables externes sont bien cres sous le nud Tables externes. 8. il faut ensuite congurer les dtails du systme de chiers physique pour chacune des 2 tables externes. Pour cela faire un clic droit sur EXPENSE_CATEGORIES et choisir Configure (gure 27) 9. cliquer ensuite sur Fichiers de donnes et choisir Crer (gure 28). 10. garder le nom du nud par dfaut (NEW_FICHIER_DE_DONNEES_1), saisir le nom de chier de donnes expense_categories.csvet choisir pour lemplacement du chier SOURCE_LOCATION (gure 29). 11. faire la mme chose pour la table externe EXPENSE_DATA, en donnant le nom de chier de donnes export.csv. 12. vous avez ni de crer 2 tables externes pointant sur les 2 chiers plats. Sauvegarder. 16 Figure 25: Cration dun module cible (2) Figure 26: Cration dune table externe 17 Figure 27: Conguration du systme de chiers Figure 28: Conguration du systme de chiers (2) 18 Figure 29: Conguration du systme de chiers (3) 4.3 Crer les dimensions Une dimension se constitue dun ensemble de niveaux et de hierarchies dnies en utilisant ces niveaux. Les utilisateurs utilisent ces hierarchies pour faire du roll-up ou drill-down des rsultats. Pour crer une dimension, il faut dnir dans lordre: les attributs des dimensions les niveaux les attributs de niveaux les hierarchies 4.3.1 Examiner la dimension PRODUCT existante 1. dans lexplorateur de projet se placer dans OWB_DEMO > Bases de Donnes > Oracle > SALES_WH > Dimensions. Faire un clic droit sur PRODUCTSet slectionner Ouvrir diteur. 2. vous obtenez une nouvelle fentre semblable la gure 30. Lditeur dobjets de donnes est linterface permettant de facilement concevoir et grer une grande varit dobjets de la base de donnes ou des dimensions. Il permet galement de concevoir et modier diffrents schmas dentrepts via lutilisation de diagrammes et de feuilles de proprits. 3. pour voir les attributs dune dimension, cliquer sur longlet Attributs dans le paneau Dtails de dimension. Observer (au-dessus du tableau) quune squence PROD_DIM_SEQa t assigne 19 Figure 30: Lditeur dobjets de donnes la dimension, an de peupler une cl pour la dimension lorsquon chargera les donnes. Il va servir pour peupler ici lattribut ID qui a t identi comme identicateur substituer. Cela signie que cela va tre la cl de chaque niveau de la dimension, qui sera unique grce la squence. SOURCE_ID est lidenticateur fonctionnel, ce qui signie que cest la cl identie dans la source de donnes. 4. Dans la colonne description, on peut avoir les valeurs par exemple Description abrge et Description longue. Cela peut-tre exploit par les outils de business intelligence qui utilisent tantt des descriptions courtes, tantt des descriptions longues dans leurs afchages. 5. pour voir les niveaux de la dimension et les attributs des niveaux, cliquer sur longlet Niveaux. Remarquer quil y a 4 niveaux et que chacun a un ensemble dattributs possibles. Par exemple le niveau PRODUCT implmente tous les attributs de dimension comme des attributs pour ce niveau (cf. gure 31), alors que CATEGORY nimplmente quun sous-ensemble de ces attributs. Dans une implantation relationnelle, un attribut de niveau devient une colonne dans une table. Les attributs de niveau nont pas, normalement, obligatoirement le mme nom que les attributs de dimension, mais OWBfait ce choix par dfaut. Lors de la dnition des niveaux vous navez pas besoin de vous souciez de lordre dans lequel vous les crez. Les niveaux sont uniquement organiss dans les hirarchies. 6. Pour voir la hirarchie de la dimension, cliquer sur longlet hirarchie (g. 32). Dans cet exemple une seule hirarchie a t dnie PRO_STD avec les niveaux tris suivant un certain ordre. Crer une autre hirarchie de dimensions comme sur la gure 33 (mais laisser PRO_STD comme hirarchie par dfaut). 7. lorsque vous dnissez une dimension (onglet SCD), vous pouvez aussi spcier la stratgie de stock- age lors de changement dans les valeurs de dimensions. Il existe 3 stratgies. Si vous souhaitez stocker lhistorique complet des changements choisir le Type 2. Cliquer sur Paramtres. Vous pouvez alors spcier pour chaque attribut de la dimension loption: dclencher lhistorique: cette option conduit au stockage dune nouvelle version des enregistrements si cet attribut de dimension change; Date de validit: mettre cette option pour lunique attribut qui stocke la date et lheure o lenregistrement est devenu effectif; 20 Figure 31: Visualiser les niveaux et leurs attributs Figure 32: Exemple de hirarchie Figure 33: Crer une nouvelle hirarchie 21 Figure 34: Stratgie de stockage pour changement dans les dimensions Date dexpiration: idem pour lunique attribut stockant la date et heure ou lattribut est devenu non-effectif ou invalide. Ainsi dans notre exemple, on stocke lhistorique des changement chaque fois que LIST_PRICE, NAME ou PACK_SIZE dun produit change. 8. les objets dimensionnels conus en utilisant OWB sont ensuite dploys dans la base soit sous la forme relationnelle soit multi-dimensionnelle. On peut choisir la forme grce longlet stockage. En fonction du choix, OWBgnrera le code correspondant. Pour une implmentation relationnelle on peut choisir le stockage en toile, ocon ou manuel. Lditeur dobjet de donnes fournit galement une interface de visualisation des donnes permettant de faire du drill down pour une dimension. Fermer lditeur et revenir linterface principale. Sauvegarder. 4.3.2 Crer la dimension REL_TIME en utilisant loutil daide pour les dimensions temporelles Les dimensions temporelles sont trs utilises dans les entrepts de donnes et OWB permet de crer facile- ment de telles dimensions mais galement de les peupler. Lorsquon crer une dimension temporelle avec loutil daide, OWB crer automatiquement les mappings pour peupler la dimension temporelle. 1. drouler le module EXPENSE_WH. Faire un clic droit sur Dimensionet slectionner Nouveau>Utilisation de lassistant temporel. 2. entrer comme nom de dimension REL_TIME, puis lcran suivant choisir le stockage ROLLAP. 3. A la page de gnration de donnes, vous spciez lintervalle de temps pour vos donnes. Cette information est utilise pour gnrer un mapping qui peuple la dimension temporelle.Pour la date de 22 Figure 35: Crer une nouvelle dimension temporelle dbut choisir 2003 et un nombre dannes de 3. Vrier que loption calendrier est bien coche. Vous obtenez la gure 35. Si votre dimension temporelle contient des donnes scales, vous devez spcier le mois et le jour de dbut pour lanne scale et le jour de dbut pour la semaine scale. Vous devez galement spcier les conventions pour les limites de mois et trimestre qui peuvent tre 544 ou 445 (pour la signication de ces chiffres je nai aucune ide, je pense que ca veut dire que le trimestre par exemple 3 mois, 1 de 5 semaines et 2 de 4, mais si quelquun une meilleure explication je suis preneur ;-) ). 4. lcran suivant slectionner hirarchie normale et cocher tous les niveaux comme sur la gure 36. 5. faire suivant, observer le dtail des paramtres de cration, faire suivant pour nir. 6. observer que OWB a cr 4 objets ncessaires pour une dimension temporelle: lobjet dimension REL_TIME, la squence REL_TIME_SEQ qui peuple la cl de substitution ID de la dimension tem- porelle, la table REL_TIME pour supporter limplantation relationnelle de la dimension temporelle en stockant physiquement les donnes temporelles, et le plus important le mapping REL_TIME_MAP pour peupler la dimension temporelle (voir image 37. 7. si vous tes curieux de voir quoi ressemble REL_TIME_MAP, double-cliquez sur le nud de map- ping pour lancer lditeur de mapping. En rorganisant un peu les diffrentes tables du mapping et en les agrandissant vous pouvez obtenir une reprsentation semblable la gue 38. Vous pouvez valuer la complexit du mapping et le temps conomis pour la cration dune dimension temporelle, qui, on le rappelle, est trs frquemment utilis. Sauvegarder. 4.3.3 Crer la dimension REL_CATEGORY en utilisant loutil daide 1. dans le module EXPENSE_WH faire un clic droit sur le nud dimension et choisir de crer une nouvelle dimension en utilisant lassistant, lui donner le nom REL_CATEGORY. 2. la page concernant le mode de stockage, choisir ROLAP et cliquer sur suivant. 23 Figure 36: Crer une nouvelle dimension temporelle (2) Figure 37: Crer une nouvelle dimension temporelle (3) 24 Figure 38: Le mapping de la dimension temporelle 25 Figure 39: Attributs de dimension par dfaut Figure 40: Niveaux de la hirarchie 3. la page sur les attributs de dimensions, vous trouvez les 3 attributs par dfaut: ID, NAME et DESCRIPTION. Noter que pour lattribut ID lidenticateur est du type substitution et que Name est une cl fonctionnelle. La cl de substitution doit imprativement tre un nombre. Pour lattribut NAME changer la longueur 30 (gure 39). 4. sur la page des niveaux spcier les niveaux comme sur la gure 40 pour la hirarchie par dfaut de la dimension. 5. sur la page des attributs de niveau, pour chacun des deux niveaux dnis prcdemment slectionner tous les attributs (gure 41). 6. choisir lcran suivant le Type 1 Ne pas conserver dhistorique. Valider tout. Vous pouver vrier quune table et quune squence ont t ajoutes en plus de la dimension. Sauvegarder. 4.4 Crer les cubes Les cubes contiennent des mesures et sont lis une ou plusieurs dimensions. Les axes dun cube contien- nent des valeurs de dimension et le corps du cube contient les valeurs mesures. La plupart des valeurs sont numriques et additives. Par exemple les donnes de vente peuvent tre organises dans un cube dont 26 Figure 41: Attributs pour chaque niveau Figure 42: Schma de conception du cube les axes contiennent des valeurs pour les dimensions TIME, PRODUCT et CUSTOMER et dont le corps con- tient les valeurs pour les mesures de valeurs des ventes. Dans une implantation relationnelle, un cube est li aux tables dimension par des cls trangres et est constitu dun ensemble de mesures. Pour crer un cube il faut dabord dnir les mesures du cube et les dimensions du cube. 4.4.1 Examiner le cube SALES prdni 1. drouler OWB_DEMO>Bases de donnes>Oracle>SALES_WH. Dans le nud Cubes faire un clic droit sur SALES et slectionner Ouvrir diteur. Vous obtenez une fentre comme sur la gure 42 qui reprsente le schma de conception du cube. Remarquer que le cube SALES est reli 5 dimensions: TIMES, PRODUCTS, CHANNELS, PROMOTION et CUSTOMERS (on reconnait les botes de dimension ou de cube au petit logo dans le coin en haut gauche de chaque bote). 2. pour examiner les dimensions du cube SALES, cliquer sur longlet Dimensions dans la fentre Dtails du cube. Observer gure 43 que le cube est lis des niveux appartenant aux 5 di- mensions. Par exemple le cube fait rfrence au niveau PRODUCT de la dimension PRODUCTS. La colonne Role afche les rles des dimensions (si celles-ci ont t prcises ultrieurement). 27 Figure 43: Les dimensions du cube Figure 44: Les indicateurs du cube 3. pour observer les mesures du cube, cliquer sur longlet indicateurs. Noter quil y a 3 mesures et que tous sont numriques. Ces mesures peuvent tre agrges pour dterminer le cot total, la quantit pour une priode, client ou produit, des ventes (gure 44). 4. cliquer sur longlet Agrgations pour voir les agrgations qui doivent tre ralises pour chaque dimension que le cube rfrence. Regarder les diffrentes fonctions dagrgation possibles ainsi que les mthodes de rgnration de rcapitulatif (rafrachissement des valeurs agrges), ainsi que la stratgie de rcapitulatif pour le cube qui permet de dnir les niveaux pour lesquels les donnes doivent tre prcalcules pour chaque dimension. 5. On peut implanter un cube dans une forme relationnelle ou multi-dimensionnelle. Pour limplantation relationnelle une table relationnelle stocke les donnes du cube. Lorsque le cube est implant dans lenvironnement multi-dimensionnel, les donnes du cube sont stockes dans un espace de travail analytique. Pour choisir le stockage, cliquer sur longlet Stockage (gure 45). Pour limplantation relationnelle, vous pouvez choisir de crer des index bitmap an damliorer les performance lors de lvaluation de requtes. 6. comme pour les dimensions, on peut visualiser les donnes du cube galement (onglet Visualiseur de donnes. Fermer la fentre. 4.4.2 Crer le cube REL_EXPENSE en utilisant lassistant On va crer un cube simple avec 2 dimensions REL_TIME et REL_CATEGORY. 28 Figure 45: Choix du stockage du cube Figure 46: Choix des dimensions 1. Aller dans le nud EXPENSE_WHet faire un clic droit sur Cube, choisir nouveauet Utilisation de lassistant. Lui donner le nom REL_EXPENSE. 2. choisir le stockage ROLAP. sur la page des dimensions, slectionner les dimensions de EXPENSE_WH, savoir REL_TIME et REL_CATEGORY, comme dimensions pour notre cube (gure 46). 3. la page des mesures (indicateurs), crer lindicateur EXPENSE et laisser les valeurs par dfaut (gure 47). Achever la cration. 4. ouvrir lditeur du cube (double-clic sur le cube, ou clic droit en choisissant douvrir avec lditeur. Examiner le cube comme le cube prcdent, puis fermer lditeur (gure 48). 5 Concevoir les mappings ETL pour les ux de donnes Le but de cette section est de dcrire comment concevoir et raliser les ux, et les utiliser pour dnir les mouvements et transformations de donnes dans OWB. Il existe un large ensemble doprateurs de mapping disponibles dans lditeur de mapping de OWB. Dans cette section nous allons apprendre crer des mappings pour extraire des donnes depuis des sources, les transformer et les charger dans les cibles. 29 Figure 47: Cration dun indicateur Figure 48: Visualiser le cube cr 30 Figure 49: Exemple de mapping Figure 50: Icne de auto-positionnement 5.1 Concevoir les mappings On va dnir ici les mappings qui extraient les donnes des sources, les transforment and les chargent dans le module cible EXPENSE_WH. 5.1.1 Examiner un mapping pr-dni entre une table relationnelle et une dimension Vous allez examiner le mapping pr-dni LOAD_CHANNEL entre la table relationnelle CHANNELS et la dimension CHANNELS. 1. drouler le module OWB_DEMO>Databases>Oracle>SALES_WH>Mappings. Double-cliquer sur le nud LOAD_CHANNELS. Vous obtenez la fentre de la gure 49. Vous pouvez cliquer sur icne du menu de la gure 50 pour voir tous les objets leur taille originelle disposs au mieux dans la fentre, et le bouton gure 51 pour mettre une fentre doprateur sa taille maximale. 2. sur la gure 49 vous voyez les oprateurs suivants: un oprateur de Table appel CHANNELS_IN Figure 51: Bouton dagrandissement 31 Figure 52: Editeur de loprateur Table un oprateur de Constante appel TOTALS un oprateur de Dimension appel CHANNELS_OUT des lignes de connexions entre les attributs 3. cliquer sur le cadre de CHANNELS_IN pour en faire lobjet slectionn. Faire un clic droit sur le cadre et slectionner Ouvrir dtails pour lancer lditeur de Table. Vous obtenez la fentre de la gure 52. Regarder linformation disponible et modiable en regardant chacun des onglet. Fermer ensuite cette fentre. 4. Pour vrier quelle table est rattach cet oprateur, cliquer sur le cadre de loprateur et regarder les information alors afch dans la colonne proprits de loprateur de table. Vous voyez que loprateur est li la table CHANNELS du schma XSALES. 5. dans le mapping LOAD_CHANNELS loprateur de dimension est nomm CHANNELS_OUT est est li CHANNELS dans le schma cible SALES_WH. 6. toujours dans ce mapping, loprateur constante nous permet de dnir des valeurs constantes qui peuvent tre utilises nimporte quand lors du mapping. Loprateur de constantes produit un seul groupe de sorties qui peut contenir une ou plusieurs attributs pour les constantes. Pour rajouter un oprateur de constante dans la fentre, vous pouvez faire un drag and drop de loprateur partir de la palette. Un exemple dutilisation dun oprateur de constante est de charger la valeur de la date courante du systme dans loprateur de table de sortie. Pour ajouter un attribut lobjet de constante TOTALS, cliquer avec le bouton droit sur le cadre de loprateur de constante TOTALS et slectionner Ouvrir dtails. Cliquer sur longlet Attributs de sortie. en cliquant sur le bouton Ajouter vous pouvez ajouter des attributs lobjet de constante TOTALS. Comme vous voyez (gure 53), 2 attributs ont dj t ajouts. Cliquer sur Annuler pour refermer la fentre. 32 Figure 53: Editeur de la constante TOTAL 7. slectionner lattribut TOT de loprateur de constante TOTALS. Agauche, dans le panneau Proprits dattributregarder en particulier le champ Expression. Cliquer sur ce champ, puis sur licone avec ... pour afcher le constructeur dexpressions comme sur la gure 54. La valeur de lattribut TOT est la chane de caractres Channels Total. Fermer lditeur dexpressions. 8. dans la fentre montrant le mapping sont reprsentes les lignes de connexion des: attributs de loprateur de table CHANNELS_INaux attributs de loprateur de dimension CHANNELS_OUT attributs de loprateur de constante TOTALSaux attributs de loprateur de dimension CHANNELS_OUT Dans cet exemple les oprateurs sont connects en reliant individuellement les attributs des oprateurs entre-eux. Les lignes de connexion reprsentent graphiquement comment les donnes seront extraites depuis une source vers une cible, via des oprateurs. Fermer lditeur de mapping. 5.1.2 Concevoir un mapping entre une table externe et une dimension 1. Dans lexplorateur de projet, drouler OWB_DEMO>Base de donnes>Oracle>EXPENSE_WH. Faire un clic droit sur Mappingset choisir Nouveau. Donner le nom pour le mapping de REL_CATEGORY_MAP. Dans lexplorateur de projet une entre pour le mapping REL_CATEGORY_MAPa t ajoute. Lditeur de mapping se lance. 2. De la palette gauche faire un drag and drop pour dposer un oprateur de dimension dans la fentre de reprsentation du mapping. La fentre dajout dun oprateur de dimension apparat comme sur la gure 55. 3. slectionner dans la fentre dajout la dimension REL_CATEGORY, lobjet dimension est alors ajout dans lespace de reprsentation. 33 Figure 54: Constructeur dexpression Figure 55: Fentre dajout doprateur 34 Figure 56: Ajouter une table externe 4. il est galement possible dajouter des sources et cibles existantes un mapping via le panneau dexploration situ gauche. Vrier que longlet gauche Objets disponibles est cliqu, puis trouver dans lexplorateur Oracle>EXPENSE_WH>Tables externes. Faire un drag and drop de EXPENSE_CATEGORIES dans la zone de reprsentation pour obtenir comme sur la g- ure 56. 5. connecter la source EXPENSE_CATEGORIES (table externe) la cible REL_CATEGORY (la dimen- sion) comme suit: Drag and drop une ligne de connexion de EXPENSE_CATEGORIES.OUTGRP1.EXPENSE_TYPE vers REL_CATEGORY.TYPE.NAME Drag and drop une ligne de connexion de EXPENSE_CATEGORIES.OUTGRP1.EXPENSE_TYPE vers REL_CATEGORY.TYPE.DESCRIPTION Drag and drop une ligne de connexion de EXPENSE_CATEGORIES.OUTGRP1.EXPENSE_CATEGORY vers REL_CATEGORY.CATEGORY.NAME Drag and drop une ligne de connexion de EXPENSE_CATEGORIES.OUTGRP1.EXPENSE_CATEGORY vers REL_CATEGORY.CATEGORY.DESCRIPTION Drag and drop une ligne de connexion de EXPENSE_CATEGORIES.OUTGRP1.EXPENSE_CATEGORY vers REL_CATEGORY.TYPE.CATEGORY_NAME. Vous obtenez la gure 57. Attention davoir bien vri lors des connexions que vous avez bien li vers les attributs du niveau demand car les 2 niveaux (CATEGORY et TYPE ont les mmes attributs. 6. vous avez ni de concevoir le mapping. Maintenant gnrer le code du mapping en slectionnant dans le menu Mapping lentre Gnrer. OWB gnre alors le code permettant dextraire les donnes et peupler la dimension (image 58). Fermer ensuite lditeur de mapping. Sauver. 5.1.3 Concevoir un mapping entre une table externe et un cube 1. se placer dans OWB_DEMO>Bases de donnes>Oracle>EXPENSE_WH. Cliquer sur Mappings et choisir New. Choisir le nom REL_EXPENSE_MAP pour le mapping. 35 Figure 57: Cration des connexions Figure 58: Gnrer le code 36 Figure 59: Ajouter une table externe au mapping Figure 60: Ajouter opratuer dexpression 2. gauche, dans le panneau dexploration, vrier que longlet Objets disponibles est slec- tionn. Drouler Oracle>EXPENSE_WH>Tables externes. Faire un drag and drop de EXPENSE_DATA dans la fentre de prsentation (image 59). 3. faire de mme pour dposer le cube REL_EXPENSEqui se trouve dans Oracle>EXPENSE_WH>Cubes dans la zone de prsentation droite du composant EXPENSE_DATA 4. utiliser lditeur de mapping pour faire un drag and drop dun oprateur dexpression dans la fentre de prsentation comme sur la gure 60. Utiliser les icnes des images 50 et 51 pour agrandir et mieux disposer les fentres des oprateurs. 5. tracer une connexion depuis lattribut EXPENSE_DATA.OUTGRP1.EXPENSE_DATEvers lattribut EXPRESSION.INGRP1 (voir gure 60) 37 Figure 61: Ajouter un attribut de sortie loprateur dexpression 6. faire un clic droit sur le cadre de loprateur dexpression et ouvrir les dtails. Dans lditeur dexpression cliquer sur longlet Attributs de sortie. 7. cliquer sur Ajouter. Renommer OUTPUT1 en EXPENSE_DATE et vrier que le type est bien NUMBER (gure 61). Cliquer OK. 8. cliquer sur le cadre de loprateur dexpression, puis sur lattribut OUTGRP1.EXPENSE_DATE. A gauche vous avez une fentre dditeur dattribut, cliquer sur le champ Expression puis sur .... 9. dans lditeur dexpression taper TO_NUMBER(TO_CHAR(INGRP1.EXPENSE_DATE , YYYYMMDD), 99999999). (voir image 62). Cliquer sur Valider et si ok cliquer sur Ok. 10. Connecter loprateur source loprateur cible comme suit: tracer une ligne de connexion depuis EXPRESSION.OUTGRP1.EXPENSE_DATEversREL_EXPENSE.REL_ tracer une ligne de connexion depuis EXPENSE_DATA.OUTGRP1.EXPENSE_TYPEvers REL_EXPENSE.REL tracer une ligne de connexion depuis EXPENSE_DATA.OUTGRP1.REIMBURSABLE_AMOUNT vers REL_EXPENSE.REL_EXPENSE.EXPENSE Vous obtenez la gure 63. 11. la cration du mapping est termine. On peut gnrer le code correspondant (cliquer sur Gnrer dans le menu Mapping. Sauver. 5.2 Concevoir les process ows (ux de processus) Aprs avoir cr les mappings qui dnissent les oprations pour dplacer les donnes des sources vers les cibles, vous pouvez crer et dnir des process ows. Les process ows mettent en relation les mappings et les activits externes OWB, par exemple des emails. Dans OWB, un process ow est utilis pour 38 Figure 62: Construire une expression Figure 63: Connexions entre oprateurs 39 Figure 64: Crer un compte utilisateur de workow grer lexcution de mappings et les activits lies, telles que le tlchargement de chier sur le serveur de lentrept en utilisant FTP ou en notiant ladministrateur dune erreur dans le processus de chargement. Le scnario que nous allons regarder est classique. La dimension REL_TIME et REL_CATEGORY doivent tre charges aprs le cube REL_EXPENSEparce que le cube rfrences les valeurs des dimensions. Le chargement du cube dbutera seulement aprs que les diffrentes dimensions soient charges. Lditeur de process owinclut une grande varit de dactivits que vous pouvez ajouter et relier ensuite avec des transitions pour concevoir un ow (ux). Une activit reprsente des units de travail dans un process ow. Ces units de travail peuvent impliquer des composants internes ou externes de OWB. Les transitions indiquent la squence et les conditions satisfaire pour pouvoir lancer les activits. 5.2.1 Enregistrer lutilisateur de workow oracle Vous devez donner des rles spciques lutilisateur de workow oracle, le rle owf_mgr de oracle, an quil ait les privilges pour excuter un process ow dans OWB. 1. pour crer un utilisateur et un compte pour le workow, lancer dans la console lassistant avec la commande ../../wf/install/wfinstall.csh 2. saisir les paramtre de la gure 64: pour le compte mettre owb_mge_votreLogin, votre mot de passe, me demander le mot de passe systme, pour le TNS mettre localhost:1521:nfe115. Valider. Attendre que la fentre de la console nafche plus de messages et afche une fentre de succs. 40 Figure 65: Crer un workow (1) 3. se loguer comme propritaire du rfrentiel, se placer dans le nud Scurit, puis Utilisateur. Cliquer et choisir Nouveau. 4. vous pouvez dans la fentre de dialogue de cration dutilisateur slectionner un utilisateur existant ou en crer un nouvel utilisateur. Choisir owb_mge_votreLogin. 5.2.2 Concevoir un process ow 1. avant de pouvoir commencer la conception du process ow, vous devez crer un module de process ow qui inclut un package de process ow. Crer un module de process ow appel MY_PF_MODULE en faisant un clic droit dans OWB_DEMO > Flux de processus > module de flux, puis Nouveau. 2. crer un nouvel emplacement pour le module. Cet emplacement spcie o vous voulez dployer vos process ows. Remarquer que OWBcrer un emplacement avec un nom par dfaut MY_PF_MODULE_LOCATION1 3. cliquer Editerpour spcier les dtails de lemplacement du workow. Changer le nom de lemplacement en WH_OWF_LOCATION. Prciser les valeurs suivantes: ( Password: le votre, Host: localhost, Port: 1521, Service: nfe115, Schema: owf_mgr_dumou_ce, Version: 2.6.4). Cliquer sur Fin. 4. dans la nouvelle fentre Cration de Package de flux de processus saisir le nom PK 5. dans la nouvelle fentre intitule Cration de flux de processusdonner le nomLOAD_EXPENSE_WH 6. OWB lance la fentre de lditeur de processus de la gure 65. Par drag and drop ajouter lactivit Embranchement dans le fentre. Cette activit permet de lancer plusieurs activits concurrentes aprs quune activit se soit achever. Vous obtenez alors la gure 65. 7. dans lditeur de processus, dans le panneau dexploration, cliquer sur longlet Objets disponibles. Dans le module cible EXPENSE_WH prendre REL_CATEGORY_MAP et le dposer dans la fentre comme sur la gure 66. 41 Figure 66: Crer un workow (2) 8. dans lditeur de processus, dans le panneau dexploration, cliquer sur longlet Objets disponibles. Dans le module cible EXPENSE_WH prendre REL_TIME_MAP et le dposer dans la fentre. Rar- ranger pour avoir une disposition comme sur la gure 67. 9. de la palette, faire glisser une activit Et droite de REL_CATEGORY_MAP et REL_TIME_MAP. 10. dans le panneau de lexplorateur, cliquer sur longlet Objets disponibles. Dans le module cible EXPENSE_WH prendre REL_EXPENSE_MAP et le dposer dans la fentre droite de lactivit Et voir image 68. 11. du panneau de la palette, faire glisser une activit Fin avec erreurset Fin avec avertissement comme sur la gure 69. 12. connecter ensuite les diffrentes activits. Pour cela placer la souris sur lactivit start et vrier que la souris se change en . Tracer une ligne depuis lactivit Start1 jusqu Fork. Vous devez tracer en tout les connexions suivantes: de START1 FORK de FORK REL_CATEGORY_MAP de FORK REL_TIME_MAP de REL_CATEGORY_MAP AND1 de REL_TIME_MAP AND1 de AND1 REL_EXPENSE_MAP de REL_EXPENSE_MAP END_ERROR de REL_EXPENSE_MAP END_SUCCESS de REL_EXPENSE_MAP END_WARNING 42 Figure 67: Crer un workow (3) Figure 68: Crer un workow (4) 43 Figure 69: Crer un workow (5) Figure 70: Crer un workow (6) 44 Figure 71: Crer un workow (7) Figure 72: Crer un workow (8) Vous obtenez normalement la gure 70 Les transitions que vous avez ajout sont des transitions sans condition. Par dfaut cest toujours le cas. Le process ow continue aprs que lactivit prcdente sachve quel que soit ltat nal de lactivit prcdente. 13. vous pouvez utiliser une transition pour excuter une activit sappuyant sur ltat nal dune activit prcdente en crant une condition. Pour cela slectionner la transition de REL_EXPENSE_MAP END_SUCCESS. Dans le panneau de dtail de lobjet gauche, cliquer sur : dans la ligne condition. Choisir dans le menu droulant la condition SUCCES (voir gure 71). 14. faire de mme avec la transition de REL_EXPENSE_MAP END_ERROR en choisissant cette fois ERROR comme condition. Cela indique que le process ow continue par cette transition si lactivit prcdente termine avec une erreur. 15. faire de mme avec la transition de REL_EXPENSE_MAP END_WARNING. Vous obtenez la g- ure 72 45 16. gnrer le code de LOAD_EXPENSE_WHen slectionnant Generate dans le menu du process ow. Le code gnr est dans un langage standard de lindustrie appel XML Process Denition Language (XPDL). 17. fermer la fentre en sauvant tout. 46