860 likes | 1.24k Views
IED 2006-2007. OLAP. Sommaire. Introduction Opérations typiques Langages Architectures. Introduction. Contexte. un entrepôt de données offre des données - nombreuses - homogènes - exploitables - multidimensionnelles - consolidées
E N D
IED 2006-2007 OLAP
Sommaire Introduction Opérations typiques Langages Architectures
Introduction Contexte un entrepôt de données offre des données - nombreuses - homogènes - exploitables - multidimensionnelles - consolidées comment exploiter ces données à des fins d’analyse?
Entrepôts de Données et OLAP Traditionnellement : - les requêtes OLTP sont exécutées sur les données sources - l’entrepôt est mis à jour chaque nuit - les requêtes OLAP sont exécutées sur les données de l’entrepôt
Exemple ventes(pièce, date, vendeur, montant) produits(pièce, modèle, couleur) vendeurs(nom, ville, département, état, pays) temps(jour, semaine, mois, trimestre, année)
Hiérarchies Total Total France Etats-unis 2006 CA Total Trimestre 4 Semaine 40 95 Cruciforme Octobre Bleu Cergy San-Jose 03/10/2006 Vis Kate Bob
Modèle conceptuel notation de Golfarelli (1998)
Requête typique simple- Dicing et Slicing SELECT département, mois, AVG(montant) as moyenne FROM ventes, vendeurs, produits WHERE ventes.vendeur = vendeurs.nom AND ventes.codeProduit = produits.codeProduit AND couleur = ' noir ' GROUP BY département, mois HAVING moyenne > 5000; Where : Slicing Group by : Dicing
Exemple de traitement typique (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 modèle = 'vis' GROUP BY couleur ;
Exemple de traitement typique (3) Quelles années sont responsables? SELECT couleur, années, SUM(montant) FROM ventes, produits, temps WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND modèle = 'vis' GROUP BY couleur, années ;
Exemple de traitement typique (4) Quels trimestres sont responsables? SELECT couleur, trimestre, SUM(montant) FROM ventes, produits, temps WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND modèle = 'vis' GROUP BY couleur, trimestre ;
Exemple de traitement typique (5) Quels vendeurs sont responsables? SELECT vendeur, somme FROM( SELECT vendeur, SUM(montant) as somme FROM ventes, produits, temps WHERE ventes.codeProduit = produits.codeProduit AND ventes.date = temps.jour AND ventes.vendeur = vendeurs.nom AND modèle = 'vis' GROUP BY trimestre, vendeur) WHERE trimestre = “jui-sep”;
Modèle de stockage de donnéestable de données ventes pièces régions années quantités écrous est 1999 50 clous est 1997 100 vis ouest 1998 50 ... ... écrous est total 220 ... ... écrous total total 390 ... ... total total total 1200 pièce, région, année -> quantité
Terminologie cube ventes cellule écrous, est, 1997, 100 référence écrous, est, 1997 mesure 100 dimension lieu niveau régions membre/paramètre est
Exemple d’implémentation Projet T3 de Microsoft, Unisys, EMC, Knosys (2001) DW 7.7 milliards de lignes 8 tables de faits 1.2 To construction d’une architecture MOLAP récupération, agrégations, indexations,compression un cube de 471 Go 53 heures (40000 lignes/seconde)
Quelques solutions nom éditeur Express-server/OLAP Oracle DB2 OLAP Server IBM Metacube Informix SQL Server Microsoft Crystal Business Object Business Information Warehouse SAP PowerPlay Cognos MicroStrategy MicroStrategy Essbase Hyperion
Opérations typiques 3 catégories d’opérations, élémentaires catégorie concerne restructuration représentation granularité niveau de détail ensembliste extraction
Reconstruction Rotation Pivot Switch Split Nest Push Présentations ne sont pas gérées par SQL
Rotation année région pièce écrous clous vis 1999 1998 1997 est ouest sud nord
Rotation nord 1999 1998 1997 vis 60 30 20 clous 40 20 écrous 10 vis 1999 1998 1997 est 10 10 ouest 50 50 50 sud 50 60 60 nord 60 30 20
Pivot nord écrous sud clous ouest vis est 1999 1998 région 1997 année pièce
Pivot nord 1999 1998 1997 vis 60 30 20 clous 40 20 écrous 10 vis 1999 1998 1997 nord 60 30 20 sud 50 60 60 ouest 50 50 50 est 10 10
Switch nord 1999 1998 1997 vis 60 30 20 clous 40 20 écrous 10 sud 1999 1998 1997 vis 50 60 60 clous 10 écrous 40 20
Split, nest, push Split (régions) Nest (pièces, régions) Push(années)
Split (Régions) ventes ouest 1999 1998 1997 écrous 10 30 vis 50 50 50 clous 10 40 ventes est 1999 1998 1997 écrous 50 70 100 vis 10 10 clous 70 70 100 ventes sud 1999 1998 1997 écrous 40 20 vis 50 60 60 clous 10 ventes nord 1999 1998 1997 écrous 10 vis 60 30 20 clous 40 20
Nest ventes nest 1999 1998 1997 est 50 70 100 ouest 10 30 écrous nord 10 sud 40 20 est 10 10 ouest 50 50 50 vis nord 60 30 20 sud 50 60 60 est 70 70 100 ouest 10 40 clous nord 40 20 sud 10
Push ventes push est ouest nord sud 1999 50 1999 40 écrous 1998 70 1998 10 1998 20 1997 100 1997 30 1997 10 1999 50 1999 60 1999 50 vis 1998 10 1998 50 1998 30 1998 60 1997 10 1997 50 1997 20 1997 60 1999 70 1999 40 clous 1998 70 1998 10 1998 20 1998 10 1997 100 1997 40
Granularité Groupements Agrégation Roll-up Drill-down
Roll-up et Drill-down Roll-up Drill-down
Opérations ensemblistes Manipulations classiques Extraction des informations Dicing Slicing Cube Sélection Projection
Dicing et Slicing Slicing Dicing : partition
Cube CUBE pièce, année, région BY SUM montant SELECT SUM (montant) FROM Ventes GROUP BY grouping-list
Sélection (régions = nord ou régions = sud) et (pièces = clous ou pièces = écrous) et (années = 1998 ou années = 1999) ventes >=50
Tables et Cube de données ROLAP : Tables de données/agrégations MOLAP : Cubes de données/agrégations HOLAP : Tables + Cubes
Extensions de SQL MDX de Microsoft ANSI SQL 99
MDX de Microsoft (1) clause paramètres valeur SELECT dimensions avec 1 relation par axe plusieurs membres FROM cube de données 1 nom de cube WHERE dimensions avec 1 tuple 1 seul membre
MDX de Microsoft (2) navigation PARENT le parent d’un membre CHILDREN les enfants d’un membre MEMBERS les membres d’un niveau ou d’une dimension structuration CROSSJOIN imbrication ranking TOPCOUNT les premiers membres
Exemple MDX (1) SalesCube à cinq dimensions : - SalesPerson - Geography (Countries > Regions > States > Cities) - Quarters (Quarters > Months > Days) - Years - Products - Measures (Sales, PercentChange, BudgetedSales)