Vous êtes sur la page 1sur 46

TP Conception de Datawarehouse

Initiation ORACLE WAREHOUSE BUILDER


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