49
MTI820 Entrepôts de données et intelligence d’affaires Conception physique des données 1 Département de génie logiciel et des TI MTI820 Hiver 2011 – © S. Chafki, C. Desrosiers

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

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

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

MTI820 −Entrepôtsdedonnéesetintelligenced’affaires

Conceptionphysiquedesdonnées

1DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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 … …

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

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

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

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

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

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

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

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

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

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

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

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

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

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]

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

© 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

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

© 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

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

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

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

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$

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

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)

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

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

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

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

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

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

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

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...

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

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

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

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

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

Questions• Qu’est-ceque lepartitionnement (fragmentation)de

tables?• À quoisert cette stratégie?

DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 32

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

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

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

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

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

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)

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

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

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

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

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

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

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

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)

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

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...

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

Question• Commentdécide-t-onlespré-agrégations à faire

(dimensionsetgrain)?

DépartementdegénielogicieletdesTI MTI820Hiver2011– ©S.Chafki,C.Desrosiers 41

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

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

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

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

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

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

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

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

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

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

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

BDmulti-dimensionnelles (MOLAP)• ExempledecubeOLAP:

DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 47

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

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

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

Exemplesdeproduits• BDmultidimensionnelles:

– Cognos (IBM)PowerCubes,TM1;– MicrosoftSQLServerAnalysis Services;– OracleEssbase.

• Stockagevertical:– SybaseIQ;– Vertica.

DépartementdegénielogicieletdesTI MTI820Hiver2011– C.Desrosiers 49