Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de...

143
Entrepôts de données Deuxième partie Thierry Hamon Bureau H202 Institut Galilée - Université Paris 13 & LIMSI-CNRS [email protected] https://perso.limsi.fr/hamon/Teaching/P13/DWH-AIR3-2018-2019/ AIR3 – DWH 1/143

Transcript of Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de...

Page 1: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Entrepôts de donnéesDeuxième partie

Thierry Hamon

Bureau H202Institut Galilée - Université Paris 13

&LIMSI-CNRS

[email protected]://perso.limsi.fr/hamon/Teaching/P13/DWH-AIR3-2018-2019/

AIR3 – DWH

1/143

Page 2: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

IntroductionEntrepôt de données : stockage de données volumineuses,homogènes, exploitables, multidimensionnelles, consolidéesComment exploiter et analyser ces données ?Processus standard

Exécution des requêtes OLTP sur les données sourcesMise à jour régulière de l’entrepôtExécution des requêtes OLAP pour analyser les données del’entrepôt

RésumerConsoliderObserverAppliquer des formules statistiquesSynthétiser des données selon plusieurs dimensions

2/143

Page 3: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

OLTP vs. OLAPRappel

OLTP (On Line Transaction Processing)Applications: Applications opérationnellesTraitements factuels sur les produits, les ressources ou lesclientsExécution sur les données sources

OLAP (On Line Analytical Processing)Applications : Applications d’aide à la décisionTraitements ensemblistes, réduction d’une population à unevaleur ou un comportementExécution sur les données consolidées, agrégées

3/143

Page 4: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

OLAPRemarques

OLAP : ensemble des moyens et techniques utilisés dans lessystèmes d’aide à la décision efficacesRéalisation de traitements semi-automatiques définis et mis enœuvre par les décideurs

InterrogationSynthèse des donnéesVisualisation

On-Line : la réponse doit être obtenue quasi-instantanément

4/143

Page 5: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

OLTP vs. OLAPCaractéristiques OLTP OLAP

Conception Orientation Transaction AnalyseConception Entité-Relation Etoile/flocon

Données Granularité Détail Résumées, agrégéesNature Relationnelle Multidimentionnelle

Actualisation Actualisées, Historisées,mises à jour recalculées

Taille 100 Mo/Go 100 Go/ToTraitements Unité de travail Transaction Requête complexe

simpleAccés Lecture/écriture Lecture

Nb de tuples accédés Dizaines MillionsMétrique Débit de Temps de réponse

transactionsUtilisateurs Utilisateur Agent Analyste/décideur

opérationnelNombre d’utilisateurs Milliers Centaines

5/143

Page 6: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

Analyse des donnéesExemple

Structure de l’Entrepôt :table de faits

ventes ( codeProduit , date , vendeur , montant )

tables de dimensionprodu i t s ( codeProduit , modèle , cou leur )vendeurs (nom, v i l l e , département , état , pays )temps ( jour , semaine , mois , t r imes t r e , année )

Analyse des ventes de divers produitsQuels sont les produits dont les ventes ont chuté l’an dernier ?Quelles sont les quinze meilleures ventes par magasin et par semaine durant lepremier trimestre de l’année 2001 ?Quelle est la tendance des chiffres d’affaire (CA) par magasin depuis 3 ans ?Quelles prévisions peut-on faire sur les ventes d’une catégorie de produits dansles 6 mois à venir ?

6/143

Page 7: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

Problématique de l’OLAPExécution de requêtes sur des BD de plusieurs GoBesoins spécifiques

Langages de manipulationOrganisation des donnéesFonctions d’agrégation...

Organiser les données de manière similaire aux abstractions del’analyste

Plusieurs dimensionsDifférents niveaux de détailVue d’ensembleLa donnée : point dans l’espace associé à des valeurs (cubeOLAP)

7/143

Page 8: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

OLAP

Exemple de cube des ventes

Donnée : quantité de vente d’une pièces, pendant une année, dansune région donnée

8/143

Page 9: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations élémentaires OLAPDifférents catégories d’opérations OLAP :

Opérations de restructuration : rotate, switch, split,nest, push, pullOpérations de granularité : roll-up, drill-downOpérations ensemblistes : slide, dice,jointure(drill-across), data cube

Manipulations OLAP :Modèles et langages pour l’OLAPLes règles de Codd pour les produits OLAPProblématique de la modélisation logique d’un ED

9/143

Page 10: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Catégories d’opérations OLAP

Opérations de restructurationManipulation de la représentation, changement de points devue (dimension)Opérations sur le cube liées :

Structure : Rotate/pivotManipulation : SwitchVisualisation : Split, nest, push,pull

10/143

Page 11: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Catégories d’opérations OLAP

Opérations de granularitéChangement de niveau de détailOpérations liées aux hiérarchies des données :

roll-up,drill-down

11/143

Page 12: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Catégories d’opérations OLAP

Opérations ensemblistes :Extraction des données et OLTP classique :

slice, diceselectionprojectionjointure(drill-across)

12/143

Page 13: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations de restructurationObjectifs :

Changement de points de vueRéorientation selon différentes dimensions de la vuemultidimensionnelle

Opérations :Réorientation :

sélection graphiqueflexibilité du schémamembres complexessymétrie membres/mesures

Manipulations :bijectivesrelativesà niveau d’information constant

(Rotate/pivot, Switch, Split, nest, push,pull)

13/143

Page 14: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations de restructuration

rotate/pivot : Sélection de faces (et non des membres)switch/permutation : inter-changer la position des membresd’une dimensionsplit/division : présentation de chaque tranche sous formed’une tablenest/emboîtement : imbrication des membres à partir ducubepush/enfoncement : combiner les membres d’une dimensionaux mesures du cube

14/143

Page 15: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

rotate/pivotrotate/pivot : sélection de faces

Rotation du cube autour d’un de ses 3 axes passant par lecentre de 2 faces opposéesPrésentation d’un ensemble de faces différent

15/143

Page 16: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration switch

switch ou permutation : interchanger la position des membresd’une dimension

16/143

Page 17: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration split

Split ou division :Présentation de chaque tranche du cubePasser d’une présentation tridimensionnelle à une présentationd’un ensemble de tablesGénéralisation : découpage d’un hypercube de dimension 4 encubes (3D)

17/143

Page 18: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration split

ventes est 1999 1998 1997écrous 50 70 100clous 70 70 100vis 10 10

ventes ouest 1999 1998 1997écrous 10 30clous 10 40vis 50 50 50

ventes sud 1999 1998 1997écrous 40 20clous 10vis 50 60 60

ventes nord 1999 1998 1997écrous 10clous 40 20vis 60 30 20

18/143

Page 19: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration nest

nest ou l’emboîtement:Imbrication des membres à partir du cubeRegrouper sur une même représentation bi-dimensionnelle detoutes les informations (mesures et membres) d’un cubeindépendamment du nombre de ses dimensions.

19/143

Page 20: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration nest

20/143

Page 21: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de restructuration pushpush ou l’enfoncement :

Combiner les membres d’une dimension aux mesures du cubePassage de membres comme contenu de cellules

21/143

Page 22: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations de granularitéGranularité : Hiérarchisation de l’information en différents niveauxde détail (niveaux de granularité)

Un niveau : un ensemble nommé de membresNiveau le plus bas : celui de l’entrepôtDéfinition de nouveaux points de vue

de moins en moins d’informations détaillés (niveaux supérieurs)par des opérations d’agrégation

Navigation entre les niveaux : roll-up et drill-downgroupementsagrégation

Manipulations :relativesbesoin d’informations non présentes dans le cube initial

22/143

Page 23: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations de granularitéAction sur la granularité d’observation des donnéesNavigation entre les différents niveaux

roll-up/forage vers le haut :Représentation des données du cube à un niveau de granularitésupérieur dans la hiérarchie de la dimension concernéeIl faut spécifier une fonction d’agrégation pour indiquercomment calculer les valeurs du niveau supérieur à partir decelles du niveau inférieur

drill-down/forage vers le bas :Représentation les données du cube à un niveau de granularitéde niveau inférieur dans la hiérarchie de la dimension concernéeDonnées présentées sous une forme plus détaillée (en fonctionde la hiérarchie de la dimension)

23/143

Page 24: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de granularité Roll-Uproll-up(annees)

24/143

Page 25: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de granularité roll-Up/CubeOpération CUBE :

Représentation cubique généralisée du roll-upCalcul de tous les agrégats suivant tous les niveaux de toutesles dimensionsUnion de plusieurs group-by : nouveau cubes e l e c t ALL , ALL , ALL , Sum( quant i t e ) from VENTES

unions e l e c t p ieces , ALL , ALL , Sum( quant i t e )From VENTES group−by p i e c e s ;

unions e l e c t p ieces , annees , ALL , Sum( quant i t e )from VENTES group−by p ieces , annees ;

unions e l e c t p ieces , annees , reg ions , Sum( quant i t e )from VENTES group−by p ieces , annees , r eg i on s ;

25/143

Page 26: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de granularité roll-Up/Cube

Opérateur cubeGénéralisation N-dimensionnelle de fonctions d’agrégationssimplesOpérateur relationnel :s e l e c t p ieces , annees , reg ions , Sum( quant i t e Ventes )from VENTESgroup−by cube p ieces , annees , r eg i on s ;

26/143

Page 27: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de granularité Drill downDrill-down ou forage vers le bas :

Représentation des données du cube à un niveau degranularité de niveau inférieurDonnées sous une forme plus détailléeRéciproque de roll-upRécupération des détails sur un résultat en affinant ou enajoutant une dimensionOpération coûteuse si pas intégrée dans le systèmeExemple : un chiffre d’affaire suspect pour un produit donné :

Ajout de la dimension temps : impact du week-endAjout de la dimension magasin : prise en compte du lieugéographique

27/143

Page 28: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opération de granularité Drill downdrill-down(regions)

Drill-down du niveau des régions au niveau villes :

28/143

Page 29: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations ensemblistesObjectifs :

Extraction d’informationManipulations classiquesExtension à plusieurs dimensions

Opérations OLAP ensemblistes :slice : projection selon une dimension du cubedice : sélection du cubedrill-across (forage transversal - jointure)drill-through (accès aux données détaillées/source,lorsqu’on ne dispose que des données agrégées)

29/143

Page 30: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations ensemblistesExemple

slide : projection selon une dimension du cube

30/143

Page 31: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Opérations ensemblistesExemples

dice : sélection du cubeVentes ≥ 50 Ventes des écrous ou des

clous, en 1998 ou 1999, dansles régions nord ou sud

31/143

Page 32: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Drill-across (jointure)

Combinaison de 2 cubes :Corrélation/divergence entre les ventes prévues et les venteseffectives

Ventes 97-99 ⋊⋉ VentesPrévues 97-99Popularité d’un produit en sommant le cube des ventes(Année, Produit, Région) et le cube des ventes (Année,Produit, ClientEnligne)On obtient : les ventes totale (par région et en ligne) desProduits par AnnéeVentes 97-99 + VentesEnligne 97-99 = VentesTotales(Année, Produits)

32/143

Page 33: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Problème des opérateurs ensemblistes

Exemple : ∪prix 1997-1999

écrous 1clous 0,7vis 0,8

∪prix 1997-1999

boulons 0,8forets 1,1

vis 0,7Quelle(s) valeur(s) utiliser ?

33/143

Page 34: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Opérations élémentaires OLAP

Exemples de traitement typique

Quels sont les 10 produits les plus performants ?Calculer la moyenne glissante des ventes par région et parpièces, pour une fenêtre de 2 annéesCalculer les prévisions de ventes pour les années 2000 à 2002avec comme hypothèse un accroissement annuel des ventes de10%

34/143

Page 35: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Règles de Codd pour les produits OLAPEdgar F. Codd (1993) : définition des bases du modèle OLAP12 règles de Codd définissant l’évaluation des produits OLAP :

1 Vue multidimensionnelle des données dans une base OLAP2 Transparence : éléments techniques invisibles pour l’utilisateur3 Accessibilité : complexité et l’hétérogénéité des données masquées par les outils

OLAP4 Stabilité : performances stables indépendamment du contexte d’analyse5 Architecture Client/Serveur : le serveur homogénéise les données, les clients se

connectent simplement au serveur6 Traitement générique des dimensions : une seule structure logique pour toutes

les dimensions. Tout calcul effectué sur une dimension peut l’être sur les autres7 Gestion dynamique des matrices creuses : gestion dynamique de la mémoire

physique nécessaire pour stocker les données non nulles8 Support multi-utilisateurs : gestion des accès concurrents aux données9 Croisement des dimensions10 Manipulation intuitive des données11 Flexibilité des restitutions12 Nombre illimité de niveaux d’agrégations et de dimensions

35/143

Page 36: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Caractéristiques des produits OLAPFASMI – Fast Analysis of Shared Multidimensional Information

(Pendse 2005) : 18 règles (extension de Codd 1993)

Fast : temps de réponse aux demandes des utilisateurs entre 1 et 20secondesutilisation de pré-calculs pour réduire les durées des requêtesAnalysis :

Prendre en compte à toutes les logiques d’affaire et de statistiquesfournir la possibilité aux utilisateurs de construire leurs calculs et leursanalyses sans avoir à programmer

Shared :Possibilité de préservation de la confidentialitéGestion des cas où plusieurs utilisateurs ont des droits en écritures

Multidimensional :Production de vues conceptuelles multidimensionnelles des donnéesPossibilité de hiérarchies de dimensions

Informations : ensemble des données et les informations nécessaires

36/143

Page 37: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

3 principaux types de système OLAP1 Utilisation d’un SGBD Relationnel (systèmes ROLAP)

SGBDR : Nécessité des adaptations pour répondre aux besoins des EDStockage des données dans un SGBDRUtilisation d’un middle-ware implémentant les opérations OLAPLents et peu performants mais sans limites de taille

2 Utilisation d’un SGBD Multidimensionnel (systèmes MOLAP)SGBD capable de stocker et traiter des données multidimensionnellesBasé sur un stockage par tableaux (techniques des matrices creuses)Indexation rapide des données calculéesTrès rapides et performants mais limité au gigaoctet

3 Utilisation d’un SGBD Hybride (systèmes HOLAP)Tirer profit des avantages des technologies ROLAP et MOLAP :

un ROLAP pour stocker, gérer les données détailléesun MOLAP pour stocker, gérer les données agrégées

Autres : DOLAP, OOLAP, WOLAP, SOLAP, Mobile OLAP

37/143

Page 38: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques solution commerciales

DB2 UDB Server : ROLAPOracle : ROLAPSQL Server 2000 : ROLAPSAS OLAP Server : MOLAPSQL Server : HOLAPOracle Express-server : MOLAP/ROLAPDB2 OLAP Server : MOLAP/ROLAP

38/143

Page 39: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

ROLAP

39/143

Page 40: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Stratégie ROLAP d’implantation d’un EDSGBD relationnels : plus de 80% des SGBDStratégie la plus couramment pour implanter un EDNécessité d’adaptation des SGBDR pour répondre aux besoinsdes ED :

Extensions du langage SQL à de nouveaux opérateursUsage de vues matérialiséesIndexation binaire pour améliorer les performances

Réalisation de calculs dérivés et agrégations à différentsniveauxGénération de requêtes adaptées au schéma relationnel del’EDExploitation des vues matérialisées existantes (facteurprincipal de performance)

40/143

Page 41: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Modèles logiques d’un ED « ROLAP »

Modèle multidimensionnel :Chaque fait correspond à une table, appelée table de faitconstituée

d’attributs représentant les mesures d’activitédes attributs clés étrangères de chacune des tables dedimension

Chaque dimension correspond à une table, appelée table dedimension constituée :

les paramètresune clé primaire permettant de réaliser des jointures avec latable de fait

41/143

Page 42: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Modèles logiques d’un ED « ROLAP »Soit le schéma en étoile :

Modélisation logique ROLAP :VENTE( CleTps#, CleGeo#, CleCat#, Quantite , Montant ) − tab le des f a i t sTEMPS( CleTps , Annee , Trimestre , Saison , Mois , Jour ) ) − tab le de dimensionGEOGRAPHIE( CleGeo , Region , Departement , V i l l e ) − tab le de dimensionCATEGORIE( CleCat , TypeProd , Gamme, NomProd , Couleur ) − tab le de dimension

42/143

Page 43: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie ROLAPUtilisation d’un SGBR relationnel pour stocker l’ED (structureen étoile ou flocon)Moteur OLAP : élément complémentaire pourFournir une vision multidimensionnelle de l’EDRéaliser des calculs de données dérivés et des agrégations àdifférents niveauxGénèrer des requêtes SQL adaptées au schéma relationnelle del’ED (grâce aux vues matérialisées existantes)

43/143

Page 44: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie ROLAP

Systèmes ROLAP : technologie de stockage relationnelleExtension du modèle relationnel pour supporter les requêtesd’analyses multidimensionnelles du niveau d’application

Nouveaux opérateurs comme cubeNouvelles fonctions : rank, percentile pour complèter lesfonctions classiques de SQL (count, sum et avg)

44/143

Page 45: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie ROLAPRôle du moteur OLAP :

Traduction dynamique du modèle logique de donnéesmultidimensionnel M en modèle de stockage relationnel R (enétoile ou en flocon)En fait, transformation d’une requête multidimensionnelle msur M en une requête relationnelle r sur R

Efficacité de la requête : performance et passage à l’échelleglobal du système→ Importance des techniques et des stratégies d’optimisationdans les produits ROLAP :

1 Techniques d’indexation spécifiques2 Sélection et matérialisation de vues3 Fragmentation des tables de l’entrepôt

45/143

Page 46: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAP

Listes inversées (inverted lists)Indexation binaire (index de vecteurs de bits - bitmap) :(oracle, DB2, microsoft SQL server, sybase IQ)Index de jointure (join indexing)(oracle 9i)

46/143

Page 47: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPListes inversées

Exemple d’utilisation :Requête :GET peop l e WITH age = 20 AND name = ’ ’ Fred ’ ’

Soit L1 : liste pour attribut age = 20 :{r4, r18, r34, r35}Soit L2 : liste pour attribut name = Fred : {r18, r52}

Réponse à la requête : intersection de L1 avec L2L1 ∩ L2 = {r4, r18, r34, r35} ∩ {r18, r52} = {r18} = r18

47/143

Page 48: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPindexation binaire/bitmap index

Index de vecteurs de bitsPrincipe général :

Dans une table, pour un attribut donné : association de laliste des tuples dont l’attribut contient la valeuridem pour un groupe d’attributIndex binaire : Représentation de la liste à l’aide d’un vecteurde bits

1 si le tuple associé fait partie de la liste0 dans le cas contraire

Stockage en mémoire centrale car structure de taille réduiteIndexation adaptée si peu de valeurs pour un attribut

48/143

Page 49: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPAvantages de l’indexation binaire :

Opérations sur les bits très rapides (AND, OR, XOR, NOT)Optimisation de requêtes de types sélection, comparaison,jointure, agrégation ...Un vecteur de bits pour chaque valeur d’attributLongueur du vecteur de bits = nombre de tuples de la tablePlus compact que les B-arbres

Inconvénients de l’indexation binaire :Coût de maintenance important : tous les index binaires d’unetable doivent être actualisés lors de l’insertion d’un nouveautuple dans la tableEspace important pour leur stockage.Utilisation de technique de compression pour réduire ce coût

49/143

Page 50: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPIndexation de jointure

Pré-calcul de jointure binaireUtilisation dans les schéma en étoileObjectif : éviter de calculer la jointureMaintenance des relations entre :

une clé étrangèreles clés primaires qui la contienne

Remarque : les techniques bitmap index et join index peuvent êtrecombinées

50/143

Page 51: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPIndexation de jointure

(d’après H. Garcia-Molina)

51/143

Page 52: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Techniques d’indexation ROLAPIndexation de jointure

(d’après H. Garcia-Molina)

52/143

Page 53: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPrappels

Entrepôt : modèle multidimensionnel où les données sont vuescomme des cubes de données (data cubes)Exemple : cube Ventes, vision des données selon plusieursdimensions

Tables de dimensionP rodu i t ( nom_produit , marque , type )Date ( j ou r , semaine , mois , t r i m e s t r e , annee )Table de faits

des mesures (unites_vendues)clés externes : référence à chaque table de dimension

Cube de dimension n : cuboïdeTreillis des cuboïdes d’un entrepôt : data cube

53/143

Page 54: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPCube Ventes avec tous les agrégats possibles :

54/143

Page 55: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPCube: treillis de cuboïdes

55/143

Page 56: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPPré-calcul d’agrégats

3 possibilités :1 pas stockage d’agrégat (coûteux en temps)2 stockage tous les agrégats (coûteux en espace)3 stockage d’une partie des agrégats : nécessite de déterminer

lesquels stockerDatacube : faits + tous les cuboïdes possibles

cube dense : taille du datacube = taille de la table de faitscube creux : chaque cuboïde = taille de la table de faits

Choix de la matérialisation des cuboïdes en fonction :du grain (niveau d’agrégation) : le grain doit êtresuffisamment fin pour pouvoir répondre aux requêtesdes requêtes utilisateurs

→ Matérialisation des cuboïdes grâce à des vues matérialisées

56/143

Page 57: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPVues matérialisées

Résultat du calcul d’une vue stockée sur disqueReprésentation des agrégations des tables d’un schéma en étoileUtilisation de ces vues par les requêtes (données pré-agrégées) :amélioration les performancesPossibilité de construction d’une vue matérialisée à partir d’uneautreMatérialisation de toutes les vues souvent impossible→ Sélection des vues à matérialiser en fonction :

du coût d’exécution des requêtesdu coût de maintenance (rafraîchissement)du coût de calculde l’espace disque requis

Réécriture des requêtes pour utiliser les vues matérialisées→ Réécriture parfois difficile

57/143

Page 58: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPExemple

Exemple de cubeVentes ( modele , couleur , date , vendeur , p r i x , quant i t e )

Vue matérialisée des agrégats par modèle, couleur, mois, ville :INSERT INTO ventesVue1SELECT modele , couleur , mois , v i l l e ,SUM( p r i x ) as pr ix , SUM( quant i t e ) as quant i t eFROM ventes , vendeur , tempsWHERE ventes . vendeur = vendeur .nomAND ventes . date = temps . j ou rGROUP BY modele , couleur , mois , v i l l e

58/143

Page 59: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPExemple

Vue matérialisée des agrégats par modèle, semaine, département :INSERT INTO ventesVue2SELECT modele , semaine , departementSUM( p r i x ) as pr ix , SUM( quant i t e ) as quant i t eFROM ventes , vendeur , tempsWHERE ventes . vendeur = vendeur .nomAND ventes . date = temps . j ou rGROUP BY modele , semaine , departement

59/143

Page 60: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPExemple

Vente par modèle :SELECT modele , SUM( p r i x ) FROM ventes GROUP BY modele

peut être traitée par :SELECT modele , SUM( p r i x ) FROM ventesVue1 GROUP BY modele

ouSELECT modele , SUM( p r i x ) FROM ventesVue2 GROUP BY modele

60/143

Page 61: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPExemple

Vente par modèle, par année, par département :SELECT modele , annee , departement , SUM( p r i x )FROM ventes , vendeur , tempsWHERE ventes . vendeur = vendeur .nomAND ventes . date = temps . j ou rGROUP BY modele , annee , departement

peut être traitée par :SELECT modele , annee , departement , SUM( p r i x )FROM ventesVue1 , vendeur , tempsWHERE ventesVue1 . v i l l e = vendeur . v i l l eAND ventesVue1 . mois = temps . moisGROUP BY modele , annee , departement

61/143

Page 62: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Sélection et matérialisation des vues en ROLAPExemple

Vente par modèle, par couleur, par dateSELECT modele , couleur , date , SUM( p r i x )FROM ventesGROUP BY modele , couleur , date

ne peut être traitée grâce à ventesVue1 ou ventesVue2 :grain des vues trop grosventesVue2 ne regroupe pas par couleur

62/143

Page 63: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Fragmentation des tablestables schéma en étoile

Objectif : optimisation des requêtesDécoupage des tables du schéma en étoile :

fragmentation horizontale : sélectionfragmentation verticale : projection

Evaluation des requêtes sur chaque fragmentRéponse complète : besoin d’une requête de reconstruction

fragmentation horizontale : unionfragmentation verticale : jointure

63/143

Page 64: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Forces et faiblesses de la technologie ROLAPAvantages :

Technologie relationnelle mureStokage de très grands volumes de donnéesPossibilité de définition de données complexes etmultidimensionnelles en utilisant un modèle relativementsimpleRéduction du nombre de jointures à réaliser dans l’exécutiond’une requête

Faiblesses :Temps de réponses potentiellement élevés : manque d’efficitéde la génération de SQLPas de possibilité de réaliser des requêtes OLAP avec descalculs complexesStructure de l’entrepôt en étoile ou flocon seulement

64/143

Page 65: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie ROLAP

IBM DB2 UDB:SGBD disponible sur de nombreuses plate-formespossibilité de fédération de bases de données relationnelles(shared nothing database)Ensemble de produits :

DB2 Performance Expert : création de rapports, d’analyses etrecommande des changements pour améliorer la performanceDB2 Data Joiner: optimisation des requêtes SQL.DB2 Integrated Cluster Environnement : passage à l’échelle

65/143

Page 66: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie ROLAP

Oracle :SGBD disponible sur de nombreuses plate-formesPossibilité de partitions de hash, range et list, et consolidationsur une base de données centralisée (shared disk data base)Ensemble de produits :

Real Application Clusters : affectation de certains processeurscomme processeurs OLAP et d’autres comme processeurs derequêtesOptimiseur : basé sur les coûts ou sur les règles

66/143

Page 67: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie ROLAPSQL Server 2000 :

Possibilité de fédération de bases de données relationnelles(shared nothing database) e la liaison entre bases de donnéesdistribuées et hétérogènesEnsemble d’outils :

Optimiseur de SQL Server : basé sur les coûts avec créationautomatique de statistiques et leur rafraîchissementQuery Processor : possibilité des requêtesmultidimensionnelles, et des index composites et semi-jointuresSQL Query Analyzer : suggestions par rapport à l’implantationdes index additionnels et des statistiques complémentairesMicrosoft DTS (Data Transformation Services) : outil ETLintégré dans Microsoft SQL Server.

Autres produits :Sybase IQ, DSS Agents de MicroStrategy, MetaCube deInformix, ...

67/143

Page 68: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

MOLAP

68/143

Page 69: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Stratégie MOLAP d’implémentation d’un entrepôtUtilisation un SGBD Multidimensionnel (SGBDM)avec capacité de stockage et de traitement des données multidimensionnelles

Cadre technologique commun pour ces systèmes :Version du modèle multidimensionnel et stratégies de stockage différentes enfonction du produit

Bonnes performancescar pré-agrégation et pré-calcul des données sur tous les niveaux des hiérarchiesdu modèle de l’entrepôt

Génération de très grands volumes d’informationTechniques incrémentales de rafraîchissement encore limitéesnécessite de reconstruire périodiquement l’entrepôt

Adapter pour de petits ED (quelques Go) et lorsque le modèlemultidimensionnel ne change pas beaucoup

69/143

Page 70: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie MOLAP

Stockage les données de manière multidimensionnelle(+) Calcul des agrégats dans des tables : en colonne ou enlignedonc très rapide car pas de jointure à faireTaille limitée(-) Pas de langage d’interrogation des données :nécessite une redéfinition des opérations de manipulation desstructures multidimensionnelles

70/143

Page 71: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie MOLAPTechnologie des bases de données multidimensionnelles :

Structure de stockage : tableauxCorrespondance directe avec la vue multidimensionnelleLes membres sont implicites :

correspond à l’adresse de la cellulesont normalisés (vis = 0, clous = 1, ...)

Gestion de la faible densité (sparsity) :Techniques de compression spécifiquesStructure d’index spécifiquesSi le tableau est dense, la mémoire ne contiendra que lesmesures

71/143

Page 72: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie MOLAPExemple de tableau MOLAP

Données :1460 jours200 000 produits (2 × 105)300 magasins (3 × 102 )promotion : 1 valeur booléenne (2)

Nombres de cellules du cube :

1460 × 2x105 × 3 × 102 × 2 = 1, 75 × 1011 cellulesDensité du cube :

seulement 10% de produits vendu par jour :densité = 1, 75 × 1010/1, 7511 × 10 = 0, 1

72/143

Page 73: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Densité/compression et indexation

CompressionTypiquement, jusqu’à 90 % de cellules vides(D’après P. Marcel)Stockage des données en blocs densesutilisation de techniques de compression (similaires pourcertaines à celles utilisées en relationnel)Mais ces techniques fonctionnant bien pour 2 ou 3 dimensionséchouent en 20 dimensions

Techniques d’indexation spécifiques

73/143

Page 74: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Agréger : parcourt et application de la fonction d’agrégat surdes lignes du tableau

Calcul des agrégats à la demandePrécalcul et stockage des agrégats comme des lignes dutableauExemple naïf : cube c de dimension A,B,C group by A,C

for(a=0;a<a max;a++)for(b=0;b<b max;b++)

for(c=0;c<c max;c++)res[a][c] += c[a][b][c]

74/143

Page 75: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Calcul des agrégats en MOLAP :1 Partitionnement du tableau physique de n dimensions en

sous-cubes (chunks)de n dimensionsstockés en mémoire principalecompressés pour gérer la faible densité

2 Calcul des agrégats :visiter chaque cellule de chaque sous-cubecalculer l’agrégat partiel impliquant cette cellule

75/143

Page 76: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

(D’après P. Marcel)

76/143

Page 77: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Objectif : minimiser le nombre de visite par cellule dans lecalcul d’agrégatsExploitation de l’ordre de visite pour calculer simultanémentdes agrégats partiels (réduction des accès mémoire et descoûts de stockage)

77/143

Page 78: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Exemple :cube à 3 dimension A, B, C

tailles :

tailleA 40B 400C 4000

BC 1600000AC 160000AB 16000

Dimensions partitionnées en 4 sous-cubes de même taillescan dans l’ordre : 1, 2, 3, ..., 64(BC,AC,AB)le calcul de b0c0 demande 4 scans (1, 2, 3, 4)

le calcul de a0c0 demande 13 scans (1, 5, 9, 13)le calcul de a0b0 demande 49 scans (1, 17, 33, 49)

78/143

Page 79: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

(D’après P. Marcel)

79/143

Page 80: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

(D’après P. Marcel)

80/143

Page 81: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Occupation mémoire minimum :AB + Une colonne de AC + un sous-cube de BC

16000 + 10 × 4000 + 100 × 1000 = 156000Scan dans l’ordre 1, 17, 33, 49, 5, 21, ...(AB,AC,BC)le calcul de b0c0 demande 49 scansle calcul de a0c0 demande 13 scansle calcul de a0b0 demande 4 scansOccupation mémoire minimum :BC + une colonne de AC + un sous-cube de AB

1600000 + 10 × 4000 + 10 × 100 = 1641000

81/143

Page 82: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégatsCoût MOLAP de opération

Méthode (valable pour un petit nombre de dimensions) :Les cuboïdes doivent être calculés par taille croissanteOn garde le plus petit cuboïdes en mémoire principaleOn recherche et on calcule seulement un sous-cube à la foispour le plus grand cuboïde

82/143

Page 83: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Agrégation et calcul des agrégats

Coût MOLAP des opérations typiques :Opération coûtroll-up dépend de l’utilisation d’un cachedrill-down

rotate élévé : accès au cubeslice/dice

(D’après P. Marcel)

83/143

Page 84: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Forces et faiblesses de la technologie MOLAPAvantages :

Très bonnes performances grâce àLa réalisation de nombreuses pré-agrégations et de pré-calculsde données sur tous les niveaux de hiérarchies des dimensionsde l’EDUn accès rapide à une position d’un tableau (par son indice)

Inconvénients :Pré-agrégations et les pré-calculs de données : génération detrès importants volumes de donnéesDégradation rapide des performances quand la taille de l’EDdépasse quelques Go et que le modèle multidimensionnel évolueTechniques incrémentales de rafraîchissement limitées :nécessité de reconstruire périodiquement l’entrepôt

84/143

Page 85: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie MOLAP

Essbase (Arbor Software) :SGBD multidimensionnel et multi-utilisateursEnsemble d’outils :

Hyperion Essbase Application Manager : outils graphiques,des modules pour la construction et le chargement desstructures OLAP, pour le chargement des données, pour ladéfinition des processus de calcul, pour la gestion despartitions de la base de données,...

Hyperion Essbase Query Designer : navigation des utilisateursfinaux facilitéeHyperion Essbase Partition Option : création logique etphysique de sous-ensembles des bases de données2 types de partitions sont supportés : transparente et liée.

85/143

Page 86: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie MOLAP

Informix MetaCube (Informix) :SGBD multidimensionnelensemble d’outils :

MetaCube Analysis Engine : interface multidimensionnel etextension de la fonctionnalité d’analyse de la base de donnéesavec l’incorporation des opérations OLAP (opération rotate).MetaCube Explorer : interface graphique permettant auxutilisateurs d’exécuter des requêtes au travers du MetaCubeAnalysis EngineMetaCube Warehouse Manager : interface graphique pourcréer une description multidimensionnelle des tables et descolonnes dans l’entrepôt de donnéesMetaCube Analysis Engine : stockage de la descriptionmultidimensionnelle comme un ensemble de tables

86/143

Page 87: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie MOLAP

SAS OLAP Server (SAS) :SGBD multidimensionnelensemble d’outils :

SAS OLAP Cube Studio : construction des cubes et utilisablefacilement pour la définition des mesures, des dimensions etdes agrégationsSAS Metadata Server : conteneur des métadonnées

Autres systèmes MOLAP :Pilot (Pilot Software)TMI (Applix)

87/143

Page 88: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Systèmes HOLAP

88/143

Page 89: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Stratégie HOLAP d’implémentation d’un entrepôt

Constat :dans l’approche relationnelle (ROLAP)30% du temps est consacré aux entrées/sortiesDans l’approche multidimensionnelle (MOLAP) :20% du temps est consacré aux entrées/sorties(70% calculs et 10% décompression)

Approche HOLAP (Hybride OLAP)Utilisation des tables comme structure permanente destockage des donnéesDes tableaux comme structure pour les requêtes

89/143

Page 90: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie HOLAP

Tentative de combiner les bons cotés des systèmes ROLAP etMOLAP :

Stockage des données détaillées (granularité fine) de l’ED dansun SGBD Relationnel - ROLAPStockage les données agrégées, souvent des magasins dedonnées (data marts) de l’ED dans un SGBDMultidimensionnel - MOLAP (granularité moins fine, index enmémoire centrale, ...)

→ Possibilité d’avoir des ED de taille importante tout enayant des temps de réponse satisfaisantsProduits : Express d’Oracle, Media/MR de Speedware, Holosde Seagate Technology, ...

90/143

Page 91: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Introduction à la technologie HOLAPDe nombreux systèmes commerciaux utilisent l’approcheHOLAP :

manipulation des informations de l’entrepôt de données avecun moteur ROLAPexploitation des data marts avec une approchemultidimensionnelle MOLAP

Architecture générale de ces systèmes :

91/143

Page 92: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie HOLAP

DB2 OLAP Server :Calcul, de consolidation et acces à l’information à partir desbases de données multidimensionnelles, relationnelles ou lesdeuxComposants :

DB2 OLAP Integration Server : Utilisation d’outils graphiqueset des services pour l’intégration des donnéesDB2 OLAP Server Administration Services : outils pouraméliorer et faciliter des tâches d’administration

92/143

Page 93: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Manipulations/Systèmes OLAP

Quelques produits de technologie HOLAP

Oracle Express Server :SGBD exploitant un modèle de données multidimensionnelGestion d’un ensemble d’indicateurs à n dimensions (valeurssont stockées ou calculées dynamiquement)Stockage des données dans BD multidimensionnelle ourelationnelle

base Oracle Express Server :Stockage les agrégats multidimensionnelsStockage des données de détail dans la base relationnelle4GL Express Server : fonctions avancées pour la présentationet l’analyse des résultats

Autres produits HOLAP : Media/MR (Speedware), Hollos(Seagate), ...

93/143

Page 94: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Evolution de la norme SQLSQL/86SQL/89 (FIPS 127-1)SQL/89 avec améliration de l’intégritéSQL/92 (Juillet 92)

Début (FIPS 127-2)PartielTotal

SQL CLI (Septembre 95)SQL PSM (Novembre 96)SQL/3 (SQL 99)

SQL Framework : Juillet 99SQL Foundation : Juillet 99SQL Call Level Interface (CLI) : Septembre 99SQL Persistent Stored Modules (PSM) : Juillet 99SQL Language Bindings : annuléSQL Gestion de données externes : Décembre 2000SQL Object Language Bindings Août 2000

94/143

Page 95: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

SQL99Sur-ensemble de SQL/92 : totalement compatible (SQL orientéobjet)Significantivement plus large que SQL/92Extensions Objet-Relationnel extensions :

Type de donnnées définis par l’utilisateurTypes RéférenceTypes Collection (e.g., arrays)Prise en compte de grands objets (Large object support - LOBs)Hiérarchies de Tables

TriggersProcédures Stokées et fonctions définies par l’utilisateurRequêtes récursivesExtensions OLAP (CUBE, ROLLUP, expressions en ORDER BY)Constructeurs de SQL proceduralExpressions en ORDER BYSavepointsMises à jour à travers les unions et les jointures

95/143

Page 96: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonction SQL d’agrégationNouvelles fonctions SQL d’agrégation:

N_tilerank, dense_rankeveryanysome

Nouvelles fonctions de la clause GROUP BY :ROLLUPCUBEGROUPINGGROUPING SETS

Fenêtre glissante :WINDOWS/OVER/PARTITION, ...

96/143

Page 97: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions de la clause GROUP BY

Fonctions classiques d’agrégation de SQL : count, max, min,sum, avgAjout de nouvelles fonctions pour faire des calculs commec’est possible dans les tableurs : N_tile(expression, n)

Calcul du domaine de l’expression en fonction des valeurs quiapparaissent dans la colonneDivision du domaine en n intervalles de taillesapproximativement égalesLa fonction retourne alors le numéro de l’intervalle qui contientla valeur de l’expression

97/143

Page 98: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions de la clause GROUP BY

Exemples d’utilisationsi le solde du compte est parmi les 10% les plus élevésN_t i l e ( compte . so l d e , 10) r e t o u r n e 10Trouver le min, le max et la moyenne des températures parmiles 10% les plus élevéesSELECT Percen t i l e , MIN(Temp) , AVG(Temp) , MAX(Temp)FROM WeatherGROUP BY N_ti le (Temp,10) as P e r c e n t i l eHAVING P e r c e n t i l e = 10;

98/143

Page 99: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions SQL de classementrank(expression) : rang de l’expression dans l’ensemble detoutes les valeurs du domaine (colonne)Exemples : la table population(country, number)

Trouver le classement de chaque paysSELECT country , rank ()OVER (ORDER BY number DESC) AS n_rankFROM popu lat ion

Utilisation de la clause ORDER BY pour retourner les résultatstriés :SELECT country , rank ()OVER (ORDER BY number DESC) AS n_rankFROM popu lat ion ORDER BY n_rank

99/143

Page 100: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions SQL de classement

Exemples (suite) : la table population(country, number)trouver les 5 premiers pays les plus peuplés (syntaxe DB2)SELECT country , rank ()OVER (ORDER BY number DESC) AS n_rankFROM popu lat ionORDER BY n_rankFETCH FIRST 5 ROWS ONLY

100/143

Page 101: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Autres nouvelles fonctions SQL

dense_rank(expression): pas de prise en compte des doublonsdans le calcul du rang

avec la fonction rank, s’il y a 2 tuples qui ont les mêmesvaleurs et sont classés de rang n, le tuple suivant est de rangn + 2avec dense_rank, le tuple suivant a le rand n + 1

Exemple : Trouver le classement de chaque paysSELECT country , dense_rank ()OVER (ORDER BY number DESC) AS n_rankFROM popu lat ion

101/143

Page 102: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Autres nouvelles fonctions SQLevery(expression) : vrai ssi la valeur de son argument(expression) est vraie pour tous les tuples, sinon faux (∀)Exemple : table :Film_v(titre, type_film, année, magasin, qté_stock, qté_vendus)Trouver la quantité maxi et mini de films vendus à plus de 10exemplairesSELECT COUNT(∗) , MAX( qté−vendus ) , MIN( qté−vendus ) ,SUM( qté−vendus ) , AVG( qté−vendus )FROMFilm_vGROUP BY magasin Having EVERY( qté−vendus>=10)

any(expression) / some(expression) : vrai ssi la valeurde son argument (expression) est vraie pour au moins untuple, sinon faux (∃)

102/143

Page 103: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions de la clause GROUP BYCUBE, ROLLUP et GROUPING SETS : production d’un ensemble detuples, équivalent à un UNION ALL de tuples groupésdifféremment

ROLLUP : calcul des agrégats (SUM, COUNT, MAX, MIN, AVG) àdifférents niveaux d’agrégationCUBE : similaire à ROLLUP mais calcul toutes les combinaisonsd’agrégationsGROUPING SETS : pas de calcul du cube, quand il n’est pasglobalement nécessaireFonctions GROUPING : désignation du groupe d’appartenancede chaque tuple pour calculer les sous-totaux et les filtres

103/143

Page 104: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Nouvelles fonctions de la clause GROUP BYExemple

Création du cube Sales :CREATE VIEW Sa le s AS(SELECT ds .∗ , YEAR( sa les_date ) AS year , MONTH( sa les_date ) ASmonth , DAY( sa les_date ) AS dayFROM ( Sa l e s NATURAL JOIN Store NATURAL JOIN ProductNATURAL JOIN Period ) ds

104/143

Page 105: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY ROLLUPGROUP BY ROLLUP :

Calcul des agrégats (SUM, COUNT, MAX, MIN, AVG) à tous lesniveaux de totalisation sur une hiérarchie de dimensionscalcul le total général :

Selon l’ordre de gauche à droite dans la clause GROUP BYS’il y a n colonnes de regroupements, GROUP BY ROLLUPgénère n + 1 niveaux de totalisation

Exemples :GROUP BY ROLLUP ( year , month , day )GROUP BY ROLLUP ( country , c i t y )GROUP BY ROLLUP (month , c i t y , producer )

Simplification et accélération de la maintenance des tables desynthèse

105/143

Page 106: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY ROLLUPExemple

SELECT month , c i t y , producer , SUM( u n i t s ) AS sum_unitsFROM Sa le sWHERE year = 2014GROUP BY ROLLUP (month , c i t y , producer ) ;

106/143

Page 107: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY ROLLUPExemple

Total des ventes par pays et responsable des ventes pour chaque mois de 2014,avec sous-totaux pour chaque mois, et grand total

SELECT month , country , sales_mgr , SUM(amount) FROM Sa le sWHERE year = 2014 GROUP BY ROLLUP(month , country , sales_mgr )

Month Country Sales-mgr SUM(amount)April France Martin 25000April France Smith 15000April France - 40000 Total France/AprilApril Germany Smith 15000April Germany - 15000 Total Germany/AprilApril - - 55000 Tot. AprilMay France Martin 25000May France - 25000 Total France/MayMay Germany Smith 15000May Germany - 15000 Total France/MayMay - - 40000 Total May

- - - 95000 Grand Total

107/143

Page 108: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY CUBE

GROUP BY CUBE :Calcul des agrégats (SUM, COUNT, MAX, MIN, AVG) à différentsniveaux d’agrégation comme ROLLUPMais aussi calcul toutes les combinaisons d’agrégations :

Création des sous-totaux pour toutes les combinaisonspossibles d’un ensemble de colonnes de regroupementSi la clause CUBE contient n colonnes, CUBE calcule 2ncombinaisons de totauxIntérêt : lorsque les colonnes représentent des dimensionsappartenant à des hiérarchies différentes

Alternative plus performante à UNION ALL

108/143

Page 109: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY CUBEExemple

Tous les totaux et sous totaux des quantités de produits venduspar ville et produit pour chaque mois de 2014SELECT month , c i t y , product_id , SUM( u n i t s )FROM Sa le sWHERE year = 2014GROUP BY CUBE (month , c i t y , product . i d )

109/143

Page 110: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY CUBE

Tous les totaux et sous totaux des ventes par pays et responsabledes ventes pour chaque mois de 2014SELECT month , country , sales_mgr , SUM(amount)FROM Sa le sWHERE year = 2014GROUP BY CUBE(month , country , sales_mgr )

110/143

Page 111: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY CUBEMonth Country Sales-mgr SUM(amount)April France Martin 25000April France Smith 15000April France - 40000 Total France/AprilApril Germany Smith 15000April Germany - 15000 Total Germany/AprilApril - Martin 25000 Total Martin/AprilApril - Smith 30000 Total Smith/AprilApril - - 55000 Total AprilMay France Martin 25000May France - 25000 Total France/MayMay Germany Smith 15000May Germany - 15000 Total Germany/MayMay - Martin 25000 Total Martin/MayMay - Smith 15000 Total Smith/MayMay - - 40000 Total May

- France Martin 50000 Total Martin/France- France Smith 15000 Total Smith/France- France - 65000 Total France- Germany Smith 30000 Total Smith/Germany- Germany - 30000 Total Germany- - Martin 50000 Total Martin- - Smith 45000 Total Smith- - - 95000 Grand Total

111/143

Page 112: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY GROUPING SETS

Utilisation avec les agrégations usuelles (SUM, COUNT, MAX,MIN, AVG)Groupements multiples (month, country) et(month, sales_mgr)Possibilité de restreindre les résultats par une clause HAVING

112/143

Page 113: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY GROUPING SETSExemple

Total des ventes pour chaque mois de l’année 2014, par pays et parresponsable des ventesSELECT month , country , sales_mgr , SUM(amount)FROM Sa le sWHERE year = 2014GROUP BY GROUPING SETS((month , country ) , ( month , sales_mgr ))

Month Country Sales-mgr SUM(amount)April France - 40000 Total France/AprilApril Germany - 15000 Total Germany/AprilApril - Martin 25000 Total Martin/AprilApril - Smith 30000 Total Smith/AprilMay France - 25000 Total France/MayMay Germany - 15000 Total Germany/MayMay - Martin 25000 Total Martin/MayMay - Smith 15000 Total Smith/May

113/143

Page 114: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

GROUP BY GROUPING SETSInclusion du tuple grand total dans les résultats :

Génération implicite des grands totaux avec ROLLUP et CUBEIci, pas de génération avec un agrégat supplémentaire

Total de ventes par mois, pays, et responsable de vente, et aussi grandtotal de venteSELECT month , country , sales_mgr , SUM(amount)FROM Sa le s WHERE year = 2014GROUP BY GROUPING SETS((month , country ) , ( ) )

Month Country Sales-mgr SUM(amount)April France Martin 25000April France Smith 15000April Germany Smith 15000May France Martin 25000May Germany Smith 15000

- - - 95000

114/143

Page 115: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fonction GROUPINGCréation d’une nouvelle colonne avec des 0 et des 1Détection de tuples de total qui sont générés lors de l’exécution de CUBEou ROLLUP (1 pour les tuples de total et 0 pour les autres)

Tous les totaux et sous totaux des ventes par pays et responsable des ventespour chaque mois de 2014SELECT month , country , sales_mgr , SUM(amount ) , GROUPING( sales_mgr ) FROM Sa le s

WHERE year = 2014 GROUP BY ROLLUP (month , country , sales_mgr )

Month Country Sales-mgr SUM(amount) GROUPEDApril France Martin 25000 0April France Smith 15000 0April France - 40000 1April Germany Smith 15000 0April Germany - 15000 1April - - 55000 1May France Martin 25000 0May France - 25000 1May Germany Smith 15000 0May Germany - 15000 1May - - 40000 1

- - - 95000 1

115/143

Page 116: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissante

Pour répondre à des questions comme :Trouver pour chaque mois, les ventes de chaque magasin enfaisant la moyenne entre le mois courant et les deux moisprécédents : faire la moyenne sur les 3 derniers moisTrouver pour chaque magasin, les ventes cumulées pourchaque mois de l’an dernier, ordonnées par moisComparer les ventes de chaque mois avec la moyenne desventes de chaque magasin pendant les 3 mois précédents

→ Nécessite de définir une fenêtre glissante du temps et yeffectuer des cumuls, moyennes, dérivations, ...

116/143

Page 117: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissante

Notion de fenêtre :Dans une requête, une fenêtre est une sélection de lignes(tuples) utilisée pour un certain calcul par rapport à la lignecouranteLa taille de la fenêtre est un nombre de lignes mais peut êtreexprimée de différentes façons (nombre entier ou par unecondition)Une fenêtre se déclare soit explicitement par une clauseWINDOW ou directement dans le SELECT où elle est utilisée

117/143

Page 118: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissante3 paramètres :

1 Partitionnement PARTITION : Chaque ligne de la partition ades valeurs égales sur un ensemble de colonnes (analogue auGROUP BY)

2 Ordre ORDER : Ordre des lignes dans la partition comme un tripartiel sur 1 ou plusieurs colonnes (attention aux valeursnulles)

3 Cadre FRAMING : Définition de la taille de la fenêtre demanière physique (nombre de lignes – ROWS) ou logique(condition, plage de valeurs – RANGE) -ROWS 2 PRECEDING

118/143

Page 119: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissanteExemple

Trouver les populations de chaque pays et année, calculer lamoyenne du taux de croissance de la population pour chaque payset année, sur la base des années courante, précédente et suivante

Table : population(country, year, number)

SELECT country , year , avg ( popu lat ion )OVER (ORDER BY country , yearROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS p_avgFROM popu lat ionORDER BY country , year , p_avg ;

(source : Adiba & Fauvet, 2005)

119/143

Page 120: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissanteExemple

Calculer pour chaque magasin et pour chaque mois du dernier tiersde 2001 le total des ventes, ainsi que la moyenne glissante desquantités vendues avec les 2 mois précédents

Table Fvm(magasin, anmois, qté_totale)

SELECT h . magasin , h . anmois , h . qté_tota le ,AVG(h . qté_tota le ) OVER w AS moygl i s sFROMFvm hWHERE h . anmois BETWEEN 200109 AND 200112WINDOW w AS(PARTITION BY h . magasin ORDER BY h . anmois ROWS 2 PRECEDING)

(source : Adiba & Fauvet, 2005)

120/143

Page 121: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Evolution de SQL pour OLAP

Fenêtre glissanteExemple (groupe incomplet)

Calculer pour chaque magasin et pour chacun des 4 derniers mois2001, le total des ventes ainsi que la moyenne glissante desquantités vendues sur les 2 mois précédents à condition qu’il y aitbien 2 mois, sinon NULL

Table Fvm(magasin, anmois, qté_totale)

SELECT h . magasin , h . anmois , h . qté_tota le ,CASE WHEN Count (∗) OVER w < 3 THEN NULLELSE AVG(h . qté_tota le ) OVER w End AS moygl i s sFROM Fvm h Where h . anmois BETWEEN 200109 AND 200112WINDOW w AS(PARTITION BY h . magasin ORDER BY h . anmois ROWS 2 PRECEDING)

(source : Adiba & Fauvet, 2005)

121/143

Page 122: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Introduction à MDX

122/143

Page 123: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Origine de MDX

MDX :Multi Dimensional eXpression,Langage de requêtes OLAP pour les bases de donnéesmultidimensionnelles

HistoriqueInventé en 1997 par Mosha Pasumansky au sein de Microsoft,Version commerciale Microsoft OLAP Services 7.0 & AnalysisServices en1998Dernière spécification OLE DB for OLAP (ODBO) en 1999adopté les autres systèmes OLAP → devenu un standard

123/143

Page 124: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Origine de MDX

Objectifs :naviguation dans les bases multidimensionnellesdéfinition des requêtes sur tous leurs objets (dimensions,hiérarchies, niveaux, membres et cellules)

Requête MDX : rapport à plusieurs dimensions consistant enun ou plusieurs tableaux 2DUtilisé par de nombreux outils de BI commerciaux ou nonLangage très complexe et puissant générant des requêtes pluscompacte que les requêtes SQL équivalentes

124/143

Page 125: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

MDX versus SQL

Syntaxe de MDX similaire à celle de SQLMots clé SELECT, FROM, WHERE mais leurs sémantiques sontdifférentes :

SQL : construction de vues relationnellesMDX construction de vues multidimensionnelles des données

125/143

Page 126: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

MDX versus SQL

Analogies entre termes multidimensionnels (MDX) etrelationnels (SQL)

Multidimensionnel (MDX) Relationnel (SQL)Cube TableNiveau (Level) Colonne (chaine de caractère ou

valeur numérique)Dimension plusieurs colonnes liées ou une

table de dimensionMesure (Measure) Colonne (discrète ou numérique)Membre de dimension Valeur dans une colonne et une ligne(Dimension member) particulière de la table

126/143

Page 127: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

MDX versus SQL

Structure générale d’une requête :SQL :SELECT column1, column2, ..., columnn FROM tableMDX :SELECT axis1 ON COLUMNS, axis2 ON ROWS FROM cube

Clause FROM : Spécification de la source de donnéesSQL : une ou plusieurs tablesMDX : un cube

127/143

Page 128: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

MDX versus SQL

Clause SELECT : indication des résultats que l’on souhaiterécupérer par la requête

en SQL :Une vue des données en 2 dimensions : lignes et colonnesLes lignes ont la même structure définie par les colonnes

en MDX :Nombre quelconque de dimensions pour former les résultats dela requêteOn parle axe pour éviter confusion avec les dimensions du cubePas de signification particulière pour les lignes et les colonneMais il faut définir chaque axe : axe1 définit l’axe horizontalet axe2 définit l’axe vertical

128/143

Page 129: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Exemple de requête MDX

SELECT { Par is , B e r l i n } ON ROWS{[Q1] , [Q2 ] . CHILDREN} ON COLUMNS

FROM CubeSalesWHERE (MEASURES. SalesAmount ,

Time . [ 2 0 1 4 ] ,Product . Product )

129/143

Page 130: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Entrepôt de données simplifiésMesures : Unit Price, Quantity, Discount, SalesAmount, FreightDimension : Temps

hiérarchie : Annee > trimestre > Mois >, membres :Annee : 2010, 2011, 2012, 2013, 2014Trimestre : Q1, Q2, Q3, Q4Mois : January, February, March, ...

Dimension : Clienthiérarchie : Continent > Pays > Region > City, membres :

Ville: Paris, Lyon, Berlin, Köln, Marseille, Nantes ...Region: Loire atlantique, Bouches du Rhône, Bas Rhin, Torino...Pays: Austria, Belgium, Danmark, France, ...Continent level: Europe, North America, Sud America, Asia

Dimension : Produithiérarchie : Categorie > Sous − categorie > produit, membres :

Categorie : Food, Drink ...Sous-categorie Food: Baked_food ......

130/143

Page 131: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

ExempleCube Sales :

3 dimensions : Time, Customer, Product1 mesure : SalesAmount

Cellule en haut à gauche : valeur 21, vente de boissons à Paris durant lepremier trimestre (Q1)( Product . Category . Beverage ; Time . Quarter .Q1 ;

Customer . C i ty . Par i s )

(inspired from Vaisman & Zimányi)

131/143

Page 132: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Syntaxe de base de MDX

132/143

Page 133: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Structure générale d’une requête MDXSyntaxe générale d’une requête MDX :SELECT [< s p e c i f i c a t i o n d ’un axe>

[ , <s p é c i f i c a t i o n d ’un axe > . . . ] ]FROM [< s p é c i f i c a t i o n d ’un cube >][WHERE [< s p é c i f i c a t i o n d ’un f i l t r e ( s l i c e r ) >]]

Parenthèses en MDX :{ } : Ensemble des éléments servant à la création d’unedimension du résultat de la requête( ) : Sélection de tuples dans la clause WHERE[ ] : Représentation d’espaces, de caractères spéciaux etd’interprétation non numérique de chiffres.

NB: [ ] : optionnels, sauf si le nom contient des caractèresespace, des chiffres, ou est un mot-clé MDX

133/143

Page 134: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Structure générale d’une requête MDX

SELECT : description des axes du cube résultatChaque dimension du résultat :

est associée à un rôle correspondant à sa représentation dansle tableau retourné par la requête MDX :ON COLUMNS, ON ROWS, ON PAGES, ON SECTIONS, ON CHAPTERS

sur un ou plusieurs niveaux de la hiérarchie :{Paris, Berlin} (dimension Lieu, niveau Ville){[1er trimestre], [2nd trimestre].CHILDREN}(dimension Temps, niveaux trimestre et mois)

134/143

Page 135: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Structure générale d’une requête MDXFROM : Spécification du/des cube/s de départ

Ensemble de cubes nécessaires à la création du cube résultatSi plusieurs cubes nécessaires : jointure multidimensionnellechaque paire de cubes doit alors posséder au moins unedimension concordante

WHERE :Restriction sur le/s cube/s de départRestrictions sur le/s cube/s de départ de la clause FROMSpécification des restrictions par une liste de noeuds de lahiérarchie d’une dimension nommée slicer-dimension

NB : les mesures sont des éléments d’une dimension spécialenommée Measures (utiliséables aussi dans les clauses WHERE etFROM).

135/143

Page 136: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Membres en MDX

membre : une instance d’un niveau d’une dimensiongénéralement spécifié entre crochets [...]Exemple : membres de la dimension ”Products” de niveau 1[Food], [Drink]Membres : éléments accessibles dans les hiérarchies pouvantêtre référencés de différentes façons :[2012][Time].[2012][Product].[Food][Product].[Food].[Baked Goods][Product].[All Products].[Food].[Baked Goods]

136/143

Page 137: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Introduction au langage MDX

Membres en MDX

enfants d’un membre : membres du niveau immédiatement endessous de celui-ciExemple dans des requêtes simples :SELECT [ Time ] . [ 2 0 1 2 ] ON COLUMNS FROM [ Sa l e s ]SELECT [ Product ] . [ Food ] ON COLUMNS FROM [ Sa l e s ]SELECT [ Product ] . [ Food ] . [ Baked Goods ] ON COLUMNS

FROM [ Sa l e s ]

137/143

Page 138: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Conclusion et perspectives

Deux tendances actuellesdatamartsdataweb

construction du Data Warehouse : processus long et difficileConstruction progressive par datamarts

Avantage : rapideInconvénient : risque de cohabitation de datamarts incohérents

DatawebOuverture du data warehouse au web

138/143

Page 139: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Solutions commerciales

Solutions intégréesBusiness ObjectSASOracleIBM DB2SQL Server

139/143

Page 140: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Solutions Open-sources (1)

Composants :ETL : Octopus, Talend, Kettle, CloverETLDWH : MySQL, Postgresql, GreenPlum/BizgresOLAP : Mondrian, PaloReporting : Birt, Open Report, Jasper Report, JFreeReportData Mining : Weka, R, Xelopes

140/143

Page 141: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Solutions Open-sources (2)

Solutions intégrées :Pentaho (Kettle, Mondrian, JFreeReport)SpagoBI

Solutions spécifiques :I2B2 Data WarehouseClinical Research / Hospital data warehouse

141/143

Page 142: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Plus loin...Big data warehouses

VolumeOptimisation/parallélisation des agrégationsOLAP dans un cloud

VariétéNouveaux modèles multidimensionnels et opérateursd’agrégationEntrepôts NoSQL

VélocitéTravailler en mémoire : problème de l’explosion dimensionnelleFonctions d’oubli

VéracitéQualité des données sourcesSécurité des données entreposées

142/143

Page 143: Entrepôts de données - LIMSI · 2019. 3. 8. · OLAP Analyse des données Exemple Structure de l’Entrepôt : table de faits ventes (codeProduit , date , vendeur , montant) tables

Bilan

Plus loin ...

Tableur collaboratifDécisionnel sur mobileUtilisateur non-expertConfidentialité : données décisionnelles partagées dans lenuageEthique : analyse du comportement d’utilisateurs,manipulation de données personnelles

143/143