OLAP Concepts

Data Warehousing, OLAP, Data Analysis · course

Browse all intelligence artificielle et données documents

Module 4 :

OLAP

▪ Concepts de base

▪ Opérations sur les cubes

▪ Architecture OLAP

▪ Stockage physique

1

Concepts de base

EN TREP ÔT ET OLAP

OLAP VERSU S OLTP

EXEMP LE D 'AN ALYSES D 'U N EN TREP ÔT

I. BEN TARBOUT

2

Entrepôt et OLAP

▪ Un entrepôt de données (ED) contient des données nombreuses, homogènes, exploitables,

multidimensionnelles, consolidées

▪ Comment exploiter ces données à des fins d'analyse ?

▪ Traditionnellement : les requêtes OLTP sont exécutées sur les données sources

▪ LʼED est mis à jour chaque nuit

▪ Les requêtes OLAP sont exécutées sur les données de lʼED

▪ Analyser les données dʼun ED c'est :

▪ résumer

▪ consolider

▪ observer

▪ appliquer des formules statistiques

▪ synthétiser des données selon plusieurs dimensions

▪ …

I.BEN TARBOUT

3

OLAP versus OLTP

▪ OLTP (On Line Transaction Processing) :

▪ Les applications OLTP sont des applications opérationnelles (de production), constituées de traitements

factuels concernant les produits, les ressources ou les clients de l'entreprise

▪ Les requêtes OLTP sont exécutées sur les données sources

▪ OLAP (On Line Analytical Processing) :

▪ Les applications OLAP sont des applications d'aide à la décision

▪ Elles sont constituées de traitements ensemblistes réduisant une population à une valeur/un comportement.

▪ Les requêtes OLAP sont exécutées sur lʼED

▪ Le terme OLAP désigne :

▪ L'ensemble des moyens et techniques à mettre en œuvre pour réaliser des SIAD efficaces

▪ Des traitements semi-automatiques visant à interroger, visualiser et synthétiser les données, traitements

définis et mis en œuvre par les décideurs

▪ On-Line :signifie que le processus se fait en ligne, l'utilisateur doit avoir la réponse de façon quasi-instantanée

I.BEN TARBOUT

4

OLAP versus OLTP (suite)

I.BEN TARBOUT

5

Exemple de cas d’analyse

▪ ventes(codeProduit, date, vendeur, montant) (table faits)

▪ produits(codeProduit, modèle, couleur) (table dimension)

▪ vendeurs(nom, ville, département, état, pays) (table dimension)

▪ temps(jour, semaine, mois, trimestre, année) (table dimension)

I.BEN TARBOUT

6

Exemple d’analyse d’un entrepôt

▪ Hiérarchies:

▪ Selon la notation de Golfarelli (1998) :

I.BEN TARBOUT

7

Besoins d’analyse

Analyse des ventes de divers produits - Exemple de questions associées :

▪ Quels sont les produits dont les ventes ont chuté l'an dernier?

▪ Quelles sont les quinze meilleures ventes par magasin et par semaine

durant le premier trimestre de l'année 2001?

▪ Quelle est la tendance des chiffres d'affaires (CA) par magasin depuis 3

ans?

▪ Quelles prévisions peut-on faire sur les ventes d’une catégorie de

produits dans les 6 mois à venir ?

I.BEN TARBOUT

8

Exemple d’analyse 1

▪ Analyse des ventes de divers produits :

SELECT modele, SUM(montant)

FROM ventes, produits

WHERE ventes.codeProduit = produits.codeProduit GROUP BY modele ;

I.BEN TARBOUT

9

Exemple d’analyse 2

▪ Les ventes de vis sont plus faibles que prévu... quelles couleurs sont responsables ?

SELECT couleur, SUM(montant)

FROM ventes, produits

WHERE ventes.codeProduit = produits.codeProduit AND modele = “vis” GROUP BY couleur ;

Advertisement

I.BEN TARBOUT

10

Exemple d’analyse 3

▪ Les ventes de vis sont plus faibles que prévu... quelles années sont responsables ?

SELECT couleur, annees, SUM(montant)

FROM ventes, produits, temps

WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND

modele = “vis” GROUP BY couleur, annees ;

I.BEN TARBOUT

11

Exemple d’analyse 4

▪ Les ventes de vis sont plus faibles que prévu... Quels trimestres sont responsables ?

SELECT couleur, trimestre, SUM(montant)

FROM ventes, produits, temps

WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND

modele = “vis” GROUP BY couleur, trimestre ;

I.BEN TARBOUT

12

Exemple d’analyse 5

▪ Les ventes de vis sont plus faibles que prévu... Quels vendeurs sont responsables ?

SELECT vendeur, somme

FROM( SELECT trimestre, vendeur, SUM(montant) as somme FROM ventes, produits, temps,

vendeur

WHERE ventes.codeProduit = produits.codeProduit AND ventes.date =

temps.jour AND ventes.vendeur = vendeurs.nom AND modele = “vis”

GROUP BY trimestre, vendeur)

WHERE trimestre = “jui-sep”;

I.BEN TARBOUT

13

Exemple d’analyse 6

▪ Quels sont les résultats cumulés des vendeurs par mois ?

SELECT vendeur, mois, CSUM(resultat,vendeur,mois) as cumul

FROM ( SELECT vendeur, mois, Sum(montant) as resultat FROM ventes, produits, temps

WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND

modele = “vis” AND couleur = “rose”

GROUP BY mois, vendeurs) ORDER BY mois ;

▪ Quelle est lʼévolution de la moyenne des ventes pour une fenêtre de 2 jours ?

SELECT date, montant, MAVG(montant,2,date) as moy

FROM ventes, temps

WHERE ventes.date = temps.jour AND annee = 2001 ORDER BY date ;

I.BEN TARBOUT

14

Problématique de l’OLAP

▪ Supporter des opérations « tableur » sur des BD de plusieurs Go

▪ Besoins spécifiques :

▪ langages de manipulation

▪ organisation des données

▪ fonctions d'agrégation

▪ …

▪ Organisation des données proche des abstractions de l'analyste :

▪ selon plusieurs dimensions

▪ selon différents niveaux de détail

▪ en ensemble

▪ donnée = point dans l'espace associé à des valeurs

I.BEN TARBOUT

15

De la table au Cube

I.BEN TARBOUT

16

Hiérarchie de granularité

I.BEN TARBOUT

17

Terminologies autour du cube (exemple)

I.BEN TARBOUT

18

Terminologies autour du cube (suite)

▪ Un cube représente un ensemble de mesures organisées selon un ensemble de

dimensions.

▪ Une dimension est un axe d’analyse c’est-à-dire une base sur laquelle seront

analysées les données. Ex : le temps.

▪ Une dimension possède des instances, également appelées membres.

▪ Chaque membre appartient à un niveau hiérarchique.

Il s’agit du principe de

granularité. Ex : «2009» est membre de la dimension «temps» du niveau hiérarchique

« année ».

▪ Une mesure est l’élément de donnée que l’on analysera. Ex : nombre de ventes.

▪ Un fait représente la valeur d’une mesure selon un membre de chacune des

dimensions.

I.BEN TARBOUT

19

Opérations

élémentaires OLAP

C AT É G O R I E S D ' O P É R AT I O N S O L A P

Advertisement

O P É R AT I O N S D E R E S T R U C T U R AT I O N : R O TAT E , S W I T C H , S P L I T, N E S T, P U S H , P U L L

O P É R AT I O N S D E G R A N U L A R I T É : R O L L - U P, D R I L L - D O W N

O P É R AT I O N S E N S E M B L I S T E S : S L I D E , D I C E , J O I N T U R E ( D R I L L - A C R O S S ) , D ATA C U B E

M O D È L E S E T L A N G A G E S P O U R L ʼ O L A P

L E S R È G L E S D E C O D D P O U R L E S P R O D U I T S O L A P

P R O B L É M AT I Q U E D E L A M O D É L I S AT I O N LO G I Q U E D ' U N E D

I. BEN TARBOUT

20

Terminologies autour du cube

3 catégories d'opérations élémentaires :

▪ Restructuration : concerne la représentation, permet un changement de points de vue selon

différentes dimensions-opérations liées à la structure, manipulation et visualisation du cube :

▪ Rotate/pivot

▪ Switch

▪ Split, nest, push, pull

▪ Granularité : concerne un changement de niveau de détail; opérations liées au niveau de

granularité des données :

▪ roll-up,

▪ drill-down

▪ Ensembliste : concerne lʼextraction et lʼOLTP classique :

▪ slice, dice

▪ selection

▪ projection

▪ jointure (drill-across)

I.BEN TARBOUT

21

Opérations de restructuration

▪ Permettent un changement de points de vue, une réorientation selon

différentes dimensions de la vue multidimensionnelle

▪ Opérations liées à la structure, la manipulation et la visualisation du cube

▪ Opérations de restructuration :

▪ rotate/pivot,

▪ switch,

▪ split, nest, push, pull

I.BEN TARBOUT

22

Opérations de restructuration (suite)

▪ Rotate ou Pivot :

▪ effectuer à un cube une rotation autour dʼun de ses trois axes passant par le centre de 2 faces opposées, de

façon à présenter un ensemble de faces différent

▪ une sorte de sélection de faces et non des membres.

▪ Switch ou permutation : consiste à inter-changer la position des membres dʼune dimension.

▪ Split ou division :

▪ consiste à présenter chaque tranche du cube et de passer dʼune présentation tridimensionnelle d'un cube à sa

présentation sous la forme dʼun ensemble de tables

▪ sa généralisation permet de découper un hypercube de dimension 4 en cubes.

▪ Nest ou l'emboîtement : imbrication des membres à partir du cube; permet de grouper sur une

même représentation bidimensionnelle toutes les informations (mesures et membres) dʼun cube

quelque soit le nombre de ses dimensions.

▪ Push ou l'enfoncement : consiste à combiner les membres dʼune dimension aux mesures du cube, i.e.

de faire passer des membres comme contenu de cellules

I.BEN TARBOUT

23

Opérations de restructuration (Rotate/Pivot)

▪ Rotate/pivot : effectue au cube une rotation autour dʼun de ses 3 axes passant par le

centre de 2 faces opposées, de façon à présenter un ensemble de faces différent

(sélection de faces)

▪ la visualisation résultante est souvent 2D :

I.BEN TARBOUT

24

Opérations de restructuration (Switch)

▪ Switch ou permutation : consiste à interchanger la position des membres dʼune

dimension :

▪ la visualisation résultante est souvent 2D :

I.BEN TARBOUT

25

Opérations de restructuration (Split)

▪ Split ou division : consiste à présenter chaque tranche du cube et de passer de sa

présentation tridimensionnelle à sa présentation sous la forme dʼun ensemble de

tables.

▪ ici un split(region) du cube Ventes conduit aux 4 tables

suivantes :

I.BEN TARBOUT

26

Opérations de restructuration (Nest)

▪ Nest ou l'emboîtement: permet d'imbriquer des membres à partir du cube. L'intérêt

de cette est qu'elle permet de grouper

sur une même représentation

bidimensionnelle toutes les informations (mesures et membres) dʼun cube quelque

soit le nombre de ses dimensions. nest(pièces, région) :

I.BEN TARBOUT

27

Opérations de restructuration (Push)

Advertisement

▪ Push ou l'enfoncement: consiste à combiner les membres dʼune dimension aux

mesures du cube, i.e. de faire passer des membres comme contenu de cellules.

I.BEN TARBOUT

28

Opérations de granularité

▪ Granularité :

▪ hiérarchisation de l'information en différents niveaux de détails

appelés niveaux de granularité.

▪ un niveau est un ensemble nommé de membres

▪ le niveau le plus bas est celui de l'entrepôt

▪ Opérations de granularité :

▪ roll-up,

▪ drill-down

I.BEN TARBOUT

29

Opérations de granularité (suite)

▪ Roll-up ou forage vers le haut :

▪ consiste à représenter les données du cube à un niveau de granularité supérieur

conformément à la hiérarchie définie sur la dimension.

▪ une fonction d'agrégation (somme, moyenne, etc) en paramètre de l'opération

indique comment sont calculés les valeurs du niveau supérieur à partir de celles du

niveau inférieur

▪ Drill-down ou forage vers le bas :

▪ consiste à représenter les données du cube à un niveau de granularité de niveau

inférieur, donc sous une forme plus détaillée (selon la hiérarchie définie de la

dimension)

I.BEN TARBOUT

30

Opérations de granularité: Roll-up

▪ Roll-up ou forage vers le haut: consiste à représenter les données du cube à un

niveau de granularité supérieur conformément à la hiérarchie définie sur la

dimension. Soit :

I.BEN TARBOUT

31

Opérations de granularité: Roll-up

▪ roll-up(annee) : Ventes 97-99

▪ roll-up(annees, pieces) : la visualisation est

souvent 2D

▪ Remarque : une fonction d'agrégation (somme, moyenne, …) en paramètre de

l'opération indique comment sont calculés les valeurs du niveau supérieur à partir de

celles du niveau inférieur

I.BEN TARBOUT

32

Opérations de granularité: Roll-up/Cube

L'opération CUBE (représentation cubique généralisée du roll-up) consiste à calculer tous les agrégats

suivant tous les niveaux de toutes les dimensions :

▪ L'union de plusieurs group-by donne naissance à un cube :

▪ L'opérateur cube est une généralisation N-dimensionnelle de fonctions d'agrégations simples. C'est un

opérateur relationnel :

I.BEN TARBOUT

33

Opérations de granularité: Drill-Down

▪ Drill-down ou forage vers le bas : consiste à représenter les données du

cube à un niveau de granularité de niveau inférieur, donc sous une forme

plus détaillée.

▪ opération réciproque de roll-up, drill-down permet d'obtenir des détails sur la

signification dʼun résultat en affinant une dimension ou en ajoutant une dimension

▪ opération coûteuse dʼoù son intégration dans le système

▪ Exemple : un chiffre d'affaires suspect pour un produit donné :

▪ ajouter la dimension temps : envisager l'effet week-end

▪ ajouter la dimension magasin: envisager l'effet géographique

I.BEN TARBOUT

34

Opérations de granularité: Drill-Down (suite)

▪ Drill-down du niveau des régions au niveau villes : Drill-down(regions) :

I.BEN TARBOUT

35

Opérations ensemblistes

▪ slice et dice (sélection et projection)

▪ drill-across (jointure)

I.BEN TARBOUT

36

Opérations ensemblistes: Slide et Dice

▪ slide : correspond à une projection selon une dimension du cube :

▪ dice : correspond à une sélection du cube :

I.BEN TARBOUT

37

Opérations ensemblistes: Slide (projection)

I.BEN TARBOUT

38

Opérations ensemblistes: Dice (sélection)

I.BEN TARBOUT

39

Advertisement

Opérations ensemblistes: Jointure (Drill-

across)

I.BEN TARBOUT

40

Architecture OLAP

EN TREP ÔT ET OLAP

OLAP VERSU S OLTP

EXEMP LE D 'AN ALYSES D 'U N EN TREP ÔT

I. BEN TARBOUT

41

Architecture OLAP

Elle est constituée de trois parties qui s’emboitent:

▪ La base de données

▪ Le serveur OLAP

▪ Le module client

I.BEN TARBOUT

42

Architecture OLAP(suite)

La base de données:

▪ Constitue un support de données agrégées ou résumées (notion de niveaux

hiérarchiques).

▪ Les données qu’elle contient peuvent provenir d’un entrepôt de données.

▪ Elle possède une structure multidimensionnelle c’est-à-dire basée sur un SGDB

multidimensionnel ou relationnel.

I.BEN TARBOUT

43

Architecture OLAP (suite)

Le serveur OLAP permet

▪ la gestion de la structure multidimensionnelle dans le SGDB.

▪ la gestion de l’accès aux données de la part des utilisateurs.

Le module client permet

▪ à l’utilisateur de manipuler et d’explorer les données.

▪ l’affichage des données sous formes de graphiques ou de tableaux.

▪ En ce qui concerne la base de données, il existe plusieurs configurations possibles.

I.BEN TARBOUT

44

Stockage physique

• ROLAP

• MOLAP

• HOLAP

I. BEN TARBOUT

45

Stockage physique

Le principal problème posé pour le stockage des cubes de données est leur nature peu

dense, éparse (sparsity), de très nombreuses cellules étant vides. Il existe trois

stratégies de stockage physique :

▪ le stockage sous la forme relationnelle (ROLAP),

▪ sous la forme multidimensionnelle (MOLAP)

▪ ou une solution hybride (HOLAP) combinant ces deux première approches.

I.BEN TARBOUT

46

Stockage physique: ROLAP

On nomme ROLAP l’approche Relationnel OLAP:

▪ Les données sont stockées sous la forme de tables relationnelles.

▪ Elles sont modélisées sous la forme de schémas en étoile ou flocon.

▪ Les requêtes multidimensionnelles doivent alors être traduites en requêtes

relationnelles (SQL).

▪ Ce modèle est excellent vis à vis de la capacité de stockage, mais les requêtes sont

difficiles à définir et à mettre en œuvre et sont coûteuses.

I.BEN TARBOUT

47

Stockage physique: MOLAP

On nomme MOLAP l’approche Multidimensionnelle OLAP: La technologie de stockage

est multidimensionnelle.

▪ Les données sont stockées sous la forme de tableaux multidimensionnels, des index

multidimensionnels sont définis.

▪ Cette technologie de stockage nécessite donc des techniques de compression face à

la faible densité des données (sparsity).

▪ La taille des données pouvant être ainsi stockées est faible par rapport à la solution

ROLAP.

▪ Cependant, les requêtes sont décrites de manière intuitive et efficace. Toutefois, il

faut redéfinir un langage de manipulation des données alors qu’il n’existe aucun

consensus ni technologie reconnue et vraiment établie.

I.BEN TARBOUT

48

Stockage physique: HOLAP

On nomme HOLAP l’approche Hybride OLAP. Cette technologie combine les deux

solutions précédentes.

▪ Les données détaillées sont stockées dans une base de données relationnelle

▪ Les données agrégées dans une base multidimensionnelle.

I.BEN TARBOUT

49