mti820 entrepôts de données et intelligence d’affaires
TRANSCRIPT
MTI820 −Entrepôtsdedonnéesetintelligenced’affaires
Conceptionphysiquedesdonnées
1DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers
Lecycledevied’unprojetenBI• Diagrammedefluxdetravail:
2
Planificationdeprojet/programme
Définitiondes
besoinsd’affaires
Conceptiondel’architecturetechnique
Modélisationdesdonnées
Conceptiondesapplicationde
BI
Sélectionetinstallationdes
produits
Conceptionphysique
ConceptionetdéveloppementdusystèmeETL
Développementdesapplications
deBI
Déploiement
Croissance
Maintenance
Gestiondeprojet/programme
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers
Question• Quels sont lescritères à considérer lors delaconception
physique?
• Quels sont leschoix à fairelors delaconceptionphysiqueetquel est l’impact deces choix?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 3
Choixdeconception• TailledelaBD:
– Tablesdefaits,index,agrégations,etc.• Stockagedesdonnées:
– Allocationdemémoire,stockagehorizontal/vertical,etc.• Stratégied'indexation:
– Arbre-B,cluster,bitmap,jointureenétoile,etc.
• Stratégiedepartitionnement:– Fragmentation horizontale/verticale,dimensions,intervalles,etc.
• Stratégied'agrégation:– Dimensionsetniveauxd'agrégation,approcheMOLAPouROLAP,etc.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 4
Question• Quels sont lesfacteurs à considérer lors del’estimation
delataille del’entrepôtdedonnées?
• Commentestime-t-onlataille requise?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 5
Estimationdelatailledel'entrepôt• Tailledeslignesdestablesdefaitsetdedimension:
– Considérer lenombreetletypedechaquecolonne.
• Nombredelignesdecestables:– Estimerlenombredelignesajoutéesàchaquechargement(ex:
chaquemoisouannées).
• Stockagedesindexes:– Environégalàlatailledesdonnées.
• Espacetemporaire:– Constructiondesindex,opérationsdetri(ORDERBY,DISTINCT)etde
groupement(GROUPBY),etc.
• Tailledesagrégations:– Tablesd'agrégations,cubesOLAP,etc.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 6
Estimationdelatailledel'entrepôt• Autresconsidérations:
– Tablesdemétadonnées;– ZonedepréparationdedonnéesETL(staging area);– Journaldesopérationsdusystème(system log);– etc.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 7
Questions• Commentlesdonnées sont-elles stockées physiquement
dans l’entrepôt?
• Commentlestockage influence-t-il laperformancedusystème?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 8
Stockagedesdonnées• Fichiersetblocs:
– UneBDestcomposéedeplusieursfichiersdedonnées,renfermantdesblocsdedonnées;
– Unblocrefermeuncertainnombred'enregistrements (lignes)d'unetabledelaBD;
– Unblocconstituel'unitéminimaledetransfertentrelamémoirecentraleetledisquedurdelaBD.
• Principed'optimisation:– L'opérationlapluscoûteuseauniveauduserveurBDestle
transfertdedonnéesentrelamémoire centraleetledisquedur;
– Ilfautdoncminimiser lenombredeblocslusetécritsdanslaBD.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 9
Stockagedesdonnées• Illustration:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 10
0
Numérode bloc
1
2
bloc enregistrement ...
taillecolonne1donnéescolonne1
taillecolonne2
donnéescolonne2
Stockagedesdonnées• Paramètresdestockage(Oracle):
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 11
CREATE TABLE TableExemple(...
)INITRANS 1MAXTRANS 5PCTFREE 10PCTUSED 40TABLESPACE user_dataSTORAGE(
INITIAL 20480NEXT 20480MINEXTENTS 1MAXEXTENTS 10PCTINCREASE 10)
Paramètre Description
INITRANS/MAXTRANS
Espaceinitialetmaximaldublocpourl'informationsurlestransactionsimpliquantlebloc(ex:récupération)
PCTFREE Pourcentaged'espacedansleblocréservépourlesUPDATE
PCTUSED PourcentagedublocdevantêtrelibrepourleretournerdanslaFREELIST
TABLESPACE L'espace mémoiredanslequel latableestcréée
INITIAL/ NEXT Tailleenoctetsdespremieretdeuxièmeextensionsmémoire(EXTENT)delatable
MINEXTENTS/MAXEXTENTS
Nombreminimaletmaximal d'extensionsdemémoirepermisespourlatable
PCTINCREASE Facteurdecroissancedelatailledesextensionsdemémoire(aprèsladeuxième)
Question• L’ordre dans lequel lesdonnées sont stockées a-t-il un
impactsur laperformance?
• L’ordre destockageest-il différentdansunentrepôtdedonnéesquedansune BDtransactionnelle?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 12
Stockagevertical• LaplupartdesRDBMStransactionnelsstockent lesdonnées
horizontalement:– Leslignesd’unetablesontstockéesséquentiellement surdisque:
– Facilitelesrequêtesretournantuneouplusieurslignes.
• Danslesentrepôtsdedonnées, lesrequêtesportentsouventsurlescolonnes(ex:SUM,AVG,MIN,MAX,etc.)– Ilpeutêtreplusefficace(500xplusrapidedanscertainscas)de
stockerlesdonnéesparcolonnes:
DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 13
ligne1 ligne2 ligne3col1 col 2 col3 col1 col2 col3 …
col1 col2 col3ligne1 ligne2 … ligne 1 ligne2 … …
Questions• Commentpeut-onaccélérer lesopérations desélection
etdejointuredans l’entrepôtdedonnées?
• Quels sont lesdifférents typesd’indexetleurs avantagesrespectifs?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 14
Stratégied'indexation• Index:– StructurededonnéesrésidantdanslaBD;– Permetd'améliorerlaperformanced'opérationscommelasélectionetlajointure.
• Typesd'index:– Indexarbre-B(B-tree);
– Indexgroupant(cluster);– Indexbitmap;
– Indexdejointureenétoile(star-join).
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 15
Stratégied'indexation• Considérations:– Stockage:• Peutprendreautantd'espacequelesdonnéesàindexer.
– Miseàjoursuiteàuneinsertion/suppression:• Moinssignificatifdanslesentrepôtsdedonnées.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 16
Indexarbre-B• Indexhiérarchique sous la formed'un arbrebalancé;• Réorganisation dynamique à la suite d'une insertion,
suppressionoumise à jour de la clé;• Sélection d'une ligne en O(log(N)) dans le pire des cas, où
N est le nombrede lignes;• Propriétés:
– Chaqueblocdoitêtrerempliàmoitiéauminimum;– Lescléssonttriéesdansunbloc;– Touteslescléscontenuesdanslesous-arbre d'uneclésontstrictementinférieuresàcetteclé.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 17
Indexarbre-B• Exemple:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 18
Bloc7
50
Bloc2
25 40Bloc6
60
Bloc0
10 20
Bloc3
25 30
Bloc1
40 43 44
Bloc5
50 53
Bloc4
60 70
Blocsdedonnées
Indexarbre-B• RechercheaveccléC dansunarbre-B:
– Bloc interne:• On cherche le plus petit i tel que C < Ci• On suit le pointeur à la gauche de Ci
– Feuille:• On parcourt le bloc jusqu'à ce qu'on trouve la clé ou qu'on dépasse sa valeur
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 19
Exemple:RecherchedeC=43
Bloc7
50
Bloc2
25 40Bloc6
60
Bloc0
10 20
Bloc3
25 30
Bloc1
40 43 44
Bloc5
50 53
Bloc4
60 70
Indexarbre-B• Exempledecréation(Oracle):
• Consignesd'utilisation:– Nepascréerd'indexsiplusde15%delatablepeutêtreretournée(sinonlebalayageestplusefficace);
– Nepascréerd'indexsurlescolonnesdontlavaleurestsouventnulle;
– Créerdesindexsurlescléuniquesousurlescolonnesutiliséepourfiltrer;
– Cléscomposées:mettred'abordlescolonneslesplusutiliséescarl'indexsertégalementpourlespréfixes.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 20
CREATE INDEX nomIndex ON TableExemple(col1, col2, ...)[paramètres de stockage]
© R. Godin, C. Desrosiers - Hiver 2011 21
Organisationparindex(TOI)• Lesdonnées sont stockées physiquementdans l’index
• Leslignes sont physiquementordonnées selon laclé• Accélère lessélections etlesjointures
Bloc7
50
Bloc2
25 40Bloc6
60
Bloc0
10 20
Bloc3
25 30
Bloc1
40 43 44
Bloc5
50 53
Bloc4
60 70
Données
© R. Godin, C. Desrosiers - Hiver 2011 22
Organisationparindex(TOI)
• Exemple(Oracle):
• Lacléprimaireestautomatiquement utiliséecommeclédel’index;
• UnseulTOIpartable,maispeutêtrecombinéavecplusieursindexesarbre-B.
CREATE TABLE ExempleTable(idClePrimaire INTEGER NOT NULL,col1 DATE NOT NULL,col2 VARCHAR NOT NULL,...PRIMARY KEY (idClePrimaire))ORGANIZATION INDEX
Indexgroupant(cluster)• Regroupeleslignesd’uneouplusieurstablesselonune
clé(indexcluster)ouunevaleurdérivéedelaclé(hashcluster);
• Unseulpossiblepartable.• Clustersurplusieurstables:
– Accélèrelajointureenregroupantphysiquement leslignesdeplusieurstablesselonlaclédejointure(pré-jointure);
– Ralentitlebalayaged’unetable(fulltablescan)carleslignesdelatablesontplusdistancées.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 23
Indexgroupant(cluster)• Clustersurdeuxtables:
– Clédel’index:idClient
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 24
ClientidClient nom noTéléphone
1001 'JeanBon' '111-111-1111'
1002 'Charles Latan' '222-222-2222'
1003 'PaulLisse' '333-333-3333'
CompteidCompte idClient montant
1 1001 1,000$
2 1001 100$
3 1002 500$
4 1002 2,000$
5 1003 5,000$
Bloc0 Bloc1 Bloc21003 'PaulLisse' '333-333-3333' 1001 'JeanBon' '111-111-1111' 1002 'Charles Latan' '222-222-2222'
5 1003 5,000$ 1 1001 1,000$ 3 1002 500$
2 1001 100$ 4 1002 2,000$
Indexgroupant(cluster)• Exemple(Oracle):
• Note:peuemployédanslesentrepôtsdedonnées
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 25
CREATE CLUSTER MonCluster(idClient INTEGER)[paramètres de stockage]
CREATE TABLE Client(idClient INTEGER NOT NULL PRIMARY KEY,nom VARCHAR2(50) NOT NULL,noTéléphone VARCHAR2(12) NOT NULL)CLUSTER MonCluster(idClient)
CREATE TABLE Compte(idCompte INTEGER NOT NULL PRIMARY KEY,idClient INTEGER NOT NULL,montant NUMBER(7,2) NOT NULL,FOREIGN KEY (idClient) REFERENCES Client)CLUSTER MonCluster(idClient)
Indexbitmap• Créeunecolonne(bit)pourchaquevaleurpossibledes
colonnesindexées– Ex:colonnesexe{homme,femme}setraduitpardeuxbits;
• Sertàaccélérerlessélectionsayantdescontraintesd'égalitésdevaleursurplusieurscolonnes.
• Consignesd'utilisation:– Lorsqueledomainedelacolonneestréduitetvariepeu;– Pourlessélectionspouvantretournerunpourcentageélevédunombredelignes;
– Exemples:• Colonnesexe estunbon choix;• ColonnenoTéléphone estunmauvais choix.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 26
Indexbitmap• Exempled'utilisation:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 27
ClientidClient nom étatCivil sexe revenuNet
1001 'JeanBon' 'marié' 'H' 55,320
1002 'LucieFer' 'N/A' 'F' 38,145
1003 'Sylvie Agra' 'célibataire' 'F' 152,546
1004 'CharlesLatan' 'N/A' ’H' 25,100
CREATE BITMAP INDEX bitmapEtatCivil ON Client(etatCivil)CREATE BITMAP INDEX bitmapSexe ON Client(sexe)
bitmapEtatCivil bitmapSexe'marié' 'célibataire' 'N/A' 'H' ’F'
1 0 0 1 0
0 0 1 0 1
0 1 0 0 1
0 0 1 1 0
Indexdejointureenétoile• Pré-calculeleslignesdestablesdedimensionpouvant
êtrejointesaveclatabledefaits;• Permetd’utiliserl’informationdestablesdedimensions
sansdevoirjoindrecestablesàlatabledefaits.• Bitmapjoin index (Oracle):
– Calculel’indexbitmapsurlatablerésultantdelajointuredestablesdedimensionsaveclatabledefaits;
– Lescolonnesdestablesdedimensionemployéedansl’indexbitmapdoiventavoirundomainerestreint;
– Peutaccélérerjusqu'à10foislajointure(benchmarksOracle).
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 28
Indexdejointureenétoile• Exemplebitmapjoin index:
– Requêteàoptimiser:
– Indexàcréer:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 29
CREATE BITMAP INDEX indexJointure ON Inventaire(Fournisseur.province, Produit.catégorie)FROM Inventaire, Fournisseur, ProduitWHERE Inventaire.idProduit = Produit.id AND
Inventare.idFournisseur = Fournisseur.id
SELECT SUM(Inventaire.quantité)FROM Inventaire, Produit, FournisseurWHERE Inventaire.idProduit = Produit.id AND
Inventare.idFournisseur = Fournisseur.id ANDProduit.catégorie='moteur_mazda' ANDFournisseur.province='QC'
Inventaire
idFournisseuridProduit...quantité
Fournisseur
idnomvilleprovincenoTéléphone...
Produit
idmodèlecatégoriesous-catégorie...
Recommandations• Tablesdedimension:
– Mettreunindexarbre-Bsurlescolonnesemployées pourfiltreretayantungrand domaine;
– Mettreunindexbitmapsurlescolonnesdontledomaineestrestreintetinvariant,souventutiliséespourfiltrerlessélections(ex:sexe).
• Tablesdefaits:– UtiliseruneTOIsileslignessontsouventaccédéesparintervalle
delacléprimaire(ex:$totalpourtransactions10000à20000);
– Mettreunindexarbre-Bsurlesclésétrangères;
– Créerdesindexdejointureenétoilesurlescombinaisonsd'attributsdedimension lesplussouventutilisées.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 30
Question
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 31
• Proposezdesindexespourleschémasuivant:
id_produit : integer (PK)code_sku : integernom : varchar(50)description : varchar(1000)marque : varchar(50)categorie : varchar(50)poids : numbervolume : number
DimProduit
no_vente : integer (PK)id_produit : integer (FK)id_client : integer (FK)total : numbertaxes : numberrabais : number
FactVentes
id_client : integer (PK)nom : varchar(50)adresse : varchar(100)ville : varchar(50)province : varchar(20)sexe : char(1)groupe_age : integergroupe_salaire : integernb_enfants : integer
DimClient
Questions• Qu’est-ceque lepartitionnement (fragmentation)de
tables?• À quoisert cette stratégie?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 32
Stratégiedepartitionnement• Fragmentationhorizontale:
– Ondécoupeunetableensous-ensemblesdelignes;– Ex:partitionnement delatabledefaitsselonladate(moisouannée);
– Lesfragmentssontsouventphysiquement séparés(ex:disquesdifférents).
• Fragmentationverticale:– Ledécoupaged'unetablesefaitselonlescolonnes;– Ex:stockagedelacolonnesalaired'unetableEmployé surlesitedudépartement decomptabilité;
– Rarementemployée.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 33
Stratégiedepartitionnement• Avantagesdupartitionnement:
– Permetd'accélérerlessélectionsfaitesselonlaclédepartitionnement (ex:date);
– Permetd'accélérerlajointureentredeuxtablessiellessontpartitionnées selonlamêmeclé;
– Permetd'accélérerl'insertiondedonnéesenlot(fastload);
– Facilitelamaintenance:onpeut fairelasauvegarded'unepartitionindépendamment desautres;
– Permetdelocaliserleslignesd'unetableprèsdesapplicationssusceptiblesdelesutiliser(BDréparties).
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 34
Stratégiedepartitionnement• Exempledepartitionnementparintervalle(Oracle):
– Partitionnement destransactionsparannée:
– Sélectiondesventesde1992:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 35
CREATE TABLE Ventes(idDate INTEGER NOT NULL,idClient INTEGER NOT NULL,idProduit INTEGER NOT NULL,...)PARTITION BY RANGE (idDate)( ...
PARTITION P2000 VALUES LESS THAN (20010101) TABLESPACE TS2000PARTITION P2001 VALUES LESS THAN (20020101) TABLESPACE TS2001PARTITION P2002 VALUES LESS THAN (20030101) TABLESPACE TS2002...
)
SELECT * FROM Ventes PARTITION(p2002)
Questions• Qu’est-ceque lapré-agrégation destables?
• À quoisert cette stratégie?
• Commentpeut-onimplémenter concrètement lapré-agrégation?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 36
Stratégied'agrégation• Exempled'agrégation:
– Contexte:• 300magasinset40,000produits;• Environ500produitsparmarque;• Environ1venteàchaquesemaine,pourchaqueproduit,danschaquemagasin.
– Requêtesur1produit,1magasin,1semaine:• Agrégationde1 ligne delatabledefaits.
– Requêtesur1produit,touslesmagasins,1semaine:• Agrégationde300 lignes delatabledefaits.
– Requêtesur1marque,touslesmagasins,1année:• Agrégationde7,800,000 lignes delatablesdefaits.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 37
Tablesdefaitsagrégées• Accélèrentlesrequêtesanalytiquesenpré-calculant
l'agrégationdefaitsàdifférentsniveauxdeshiérarchiesdimensionnelles;
• Dupliquentl'informationcontenuedanslatabledefaitsatomique(niveauleplusgranulaire).
• Exemple(suite):– Tabledefaitsagrégésoùchaque lignedonneletotaldesventesdurantunesemaine,pourunemarquedeproduitsdansuncertainmagasin;
– Requêtesur1marque,touslesmagasins,1année:• Agrégationde15,600lignes (aulieude7millions).
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 38
Niveauxd’agrégation
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 39
MAGASIN
magasinville régionprovincetous
X−−−−
PRODUIT
produitmarquecatégoriedépartementtous
−X−−−
TEMPS
joursemainemoistrimestreannée
X−−−−
MAGASIN
magasinville régionprovincetous
−X−−−
PRODUIT
produitmarquecatégoriedépartementtous
−X−−−
TEMPS
joursemainemoistrimestreannée
X−−−−
MAGASIN
magasinville régionprovincetous
−X−−−
PRODUIT
produitmarquecatégoriedépartementtous
−X−−−
TEMPS
joursemainemoistrimestreannée
−X−−−
Agrégationsuruneseuledimension
(one-way agregate)
Agrégationsurdeuxdimensions
(two-way agregate)
Agrégationsurtroisdimensions
(three-way agregate)
Stratégied'agrégation• Exempled'agrégationsurdeuxdimensions:
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 40
Magasin
idMagasinville régionprovince...
Produit
idProduitmarquecatégoriedépartement...
Date
idDatesemainemoistrimestreannée...
Ventes
idMagasinidProduitidDate...montant
Ventesagrégée
idMagasinidCatégorieidSemaine...montant
Dateagrégée
idSemainemoistrimestreannée...
Produitagrégé
idCatégoriecatégoriedépartement...
Question• Commentdécide-t-onlespré-agrégations à faire
(dimensionsetgrain)?
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 41
Choixd’agrégations• Tenircomptedutypeetdelafréquencedesrequêtes
faitesàl'entrepôt(profilagederequêtes);• Choisirlesdimensionslesplussouventutilisées;• Choisirunniveaudehiérarchieoffrantunbon
compromisentrel'utilitéetlegainenperformance– Ex:l'agrégationdesmagasinsIkea auniveau"ville"n'estpas utilecarilyapeudemagasinsdansuneville(max.3);
• Chaquenouvellelignedoitagrégeraumoins10lignesdelatabledefaitsatomiques.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 42
Approchesd’agrégations• Relational OLAP(ROLAP):– UtiliselesBDrelationnellesstandards(ex:vuesmatérialisées).
• MultidimensionalOLAP(MOLAP):– BDmultidimensionnelles(cubesdedonnées);– TechnologiedifférentedesBDrelationnelles(ex:tableauxcompressés).
• Approchehybride(HOLAP):– CombinelesavantagesduMOLAPetROLAP;– Implémentéedanslaplupartdesproduitscommerciaux.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 43
Agrégationparvuesmatérialisées(ROLAP)• Tablephysiquesynchroniséeaveclesrésultatsd'unerequête;• Synchronisationtemps-réel,enlotousurdemande;• Permet lesindexes, lepartitionnement, contrôled'accès,etc.• Hiérarchied'agrégationspossibleencréantunenouvellevue
àpartird'autresvues.• Exemple(Oracle):
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 44
CREATE MATERIALIZED VIEW TransactionAgrégée REFRESH FORCE ENABLE QUERY REWITE AS SELECT idMagasin,
P.catégorie AS catégorie, D.semaine AS semaine, SUM(T.montant) AS montantAgrégé
FROM Transaction T, Produit P, Date DWHERE T.idProduit = P.id AND T.idDate = D.idGROUP BY idMagasin, P.catégorie, D.semaine
Paramètre Description
REFRESHFORCE
Synchronisationincrémentale lorsquepossible,sinoncomplète
ENABLEQUERYREWRITE
Permetderéécrire larequêtesi celaaméliorelaperformance
Agrégationparvuesmatérialisées(ROLAP)• Avantages:– Utiliselamêmetechnologiequel’entrepôtdedonnées(BDrelationnellestandard);
– Langageétabliderequêtes(SQL).• Inconvénients:– GestiondesagrégationspluscomplexequeMOLAP;– MoinsbonneperformancequeMOLAP,maislatechnologies’améliore.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 45
BDmulti-dimensionnelles (MOLAP)• Représententlesdonnéessouslaformed'untableau
multidimensionnel(cube)où:– Lescoordonnéesd'unecasecorrespondentàunecombinaisondevaleursdesdimensionsducube;
– Lecontenud'unecasecorrespondauxfaits(mesures)pourcesvaleurs;
• Utilisentdestechniquesdecompressionpourgérerlefaitquelaplupartdescasesducubessontvides(sparsearray compression);
• Pré-calculentcertainesagrégations,ensebasantsurleshiérarchiesdimensionnelles.
DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 46
BDmulti-dimensionnelles (MOLAP)• ExempledecubeOLAP:
DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 47
BDmulti-dimensionnelles (MOLAP)• Avantages:– Bonneperformancepourlesopérationsd'analysemulti-dimensionnelle (ex:slicing etdicing);
– Gestionefficacedesagrégations;• Inconvénients:– Demandebeaucoupdemémoire,surtoutsilenombrededimensionsestimportant;
– LesmisesàjourpeuventêtrepluscoûteusesqueROLAP.
DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 48
Exemplesdeproduits• BDmultidimensionnelles:
– Cognos (IBM)PowerCubes,TM1;– MicrosoftSQLServerAnalysis Services;– OracleEssbase.
• Stockagevertical:– SybaseIQ;– Vertica.
DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 49