MTI820 Entrepôts de données et intelligence d’affaires

Preview:

Citation preview

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

Recommended