OLAP IED 2006-2007. Sommaire Introduction Opérations typiques Langages Architectures.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Optimisation des requêtes
Bases de Données XML Natives
ACubeOLAP Client Olap en ACube.
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
SQL - Subtilités.
Algèbre relationnelle
Vue d’ensemble du Data warehousing et de la technologie OLAP
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
Optimisation de Requêtes
MDX pour les nuls développeurs
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
Le langage SQL.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
Plan du Cours Définition de la BI Objectif de la BI Fonctionnement d’une plateforme BI Technologies de la BI Composantes de la BI Les caractéristiques.
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
L’utilisation des bases de données
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
Mise en œuvre du langage MDX
Systèmes d'information décisionnels
Mise en œuvre du langage MDX
Principes et mise en œuvre du modèle OLAP -1°ère Partie- La modélisation multidimensionnelle 1.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Universté de la Manouba
Cours de Base de Données & Langage SQL
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Méthode de modélisation multidimensionnelle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Évolution de schémas par classification automatique dans les entrepôts de données 3ème journée francophone sur les Entrepôts de Données et l'Analyse en.
MODELE CONCEPTUEL POUR L’ANALYSE MULTIDIMENSIONELLE DE DOCUMENTS
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Chapitre 5 : Le langage SQL
Mise en œuvre du langage MDX
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
Optimisation de requêtes
Data warehouse Motivations et architecture Conception de la BD support
Principes et mise en œuvre du modèle OLAP
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
P2. Le modèle multidimensionnel est bien adapté pour mesurer des données que l’on peut exprimer comme cela. Le modèle OLAP STD - Notes1.
Sélection de colonnes (la projection)
Ceci est une session expert Cette session est déconseillée aux novices des moteurs Analysis Services 2000 ou 2005 La session « Découverte de Analysis.
LE DATA WAREHOUSE.
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
1 Entreposage de Données et Aide à la Décision Chapitre 25, 25.1 – 25.7.
Data warehouse Motivations et architecture Conception de la BD support
Intégration des Tableaux Multidimensionnels en Pig pour
Des fonctions d’oubli intelligentes dans les entrepôts de données
Data warehouse pour le Data mining
Systèmes d'information décisionnels
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
DATA Warehouse Elabore par: Ajlani Wael Karous Nabil Salhi Mahmoud.
Cours 11 Entrepôts de données
Projet de session Par Eve Grenier Dans le cadre du cours SCG Réalisation d’applications en SIG Jeudi le 20 avril 2006.
SQLSaturday Paris 2015 SSAS et le moteur relationnel Faire son choix.
1 Les entrepôts de données. 2 Modélisation Entité/Association Avantages: Normalisation: Éliminer les redondances Préserver la cohérence des données Optimisation.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Transcription de la présentation:

OLAP IED

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 Semaine 40 Trimestr e 4 Octob re 03/10/20 06 Vi s Crucifor me Ble u Etats- unis CACA San- Jose Bo b Franc e 9595 Cerg y Kat e Total

Modèle conceptuel notation de Golfarelli (1998)

Requête typique simple - Dicing et Slicing SELECTdé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; Group by : Dicing Where : Slicing

Exemple de traitement typique (1)

Exemple de traitement typique (2) SELECT couleur, SUM(montant) FROMventes, produits WHERE ventes.codeProduit = produits.codeProduit AND modèle = 'vis' GROUP BY couleur ; Les ventes de vis sont plus faibles que prévu... Quelles couleurs sont responsables?

Exemple de traitement typique (2)

Exemple de traitement typique (3) 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 ; Quelles années sont responsables?

Exemple de traitement typique (3)

Exemple de traitement typique (4) 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 ; Quels trimestres sont responsables?

Exemple de traitement typique (4)

Exemple de traitement typique (5) 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”; Quels vendeurs sont responsables?

Exemple de traitement typique (5)

Modèle de stockage de données table de données écrous est clous est vis ouest écrous est total écrous total total total total total 1200 ventes piècesrégions années quantités pièce, région, année -> quantité

Modèle de stockage de données cube de données

Granularité

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 Express-server/OLAP Oracle DB2 OLAP Server IBM Metacube Informix SQL Server Microsoft Crystal Business Object Business Information Warehouse SAP PowerPlay Cognos MicroStrategy Essbase Hyperion nom éditeur

Opérations typiques restructuration représentation granulariténiveau de détail ensembliste extraction 3 catégories d’opérations, élémentaires catégorie concerne

Reconstruction Rotation Pivot Switch Split Nest Push Présentations ne sont pas gérées par SQL

Rotation anné e pièce régio n es t oue st su d nor d vi s clou s écrou s

Rotation est ouest sud nord vis clous écrous 10 nord vis

Pivot anné e pièce régio n es t oue st su d nor d vi s clou s écrou s

Pivot nord sud ouest est vis clous écrous 10 nord vis

Switch

vis clous 10 écrous nord vis clous écrous 10 sud

Split, nest, push Split (régions) Nest (pièces, régions) Push(années)

Split (Régions) ventes est écrous vis clous ventes ouest écrous vis clous ventes sud écrous vis clous 10 ventes nord écrous 10 vis clous 40 20

Nest ventes nest est ouest écrousnord 10 sud est ouest visnord sud est ouest clousnord sud 10

Push ventes push est ouest nord sud écrous vis clous

Visualisation (1)

Visualisation (2)

Granularité Roll-up Drill-down Groupements Agrégation

Granularité

Roll-up et Drill-down Drill- down Roll- up

Opérations ensemblistes Dicing Slicing Cube Sélection Projection Manipulations classiques Extraction des informations

Dicing et Slicing Slici ng Dicing : partition

Cube CUBE pièce, année, région BY SUM montant SELECT SUM (montant) FROM Ventes GROUP BYgrouping-list

Sélection ventes >=50 (régions = nord ou régions = sud) et (pièces = clous ou pièces = écrous) et (années = 1998 ou années = 1999)

Projection

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) 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 clause paramètres valeur

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)

Exemple MDX (2) SELECT CROSSJOIN({Venkatrao, Netz}, {USA North.CHILDREN, USA South, Japan}) ON COLUMNS, {Qtr1.CHILDREN, Qtr2, Qtr3, Qtr4.CHILDREN} ON ROWS FROM SalesCube WHERE (Sales, [1991], Products.All)

ANSI SQL-99 Ajouts OLAP par rapport à SQL-92 : - GROUPING SETS : extension de GROUP BY - CUBE, ROLLUP : cas particulier de GROUPING SETS - ranking : extension pour ORDER BY - windowing : cumuls ou moyenne glissante Supporté notamment par DB2

Exemple –SQL99 SELECT jour, ville, SUM(ventes) FROM c1 GROUP BY jour,ville Jour_1 ville_1 v_11 Jour_1 ville_2 v_12 Jour_2 ville_1 v_21... Jour_q ville_pv_qp C1jour ville ventes

Cube –SQL99 (1) calcul de l’UNION de GROUP BY de chaque sous-ensemble des attributs en paramétre SELECT jour, ville, SUM(ventes) FROMc1 GROUP BY CUBE(jour,ville) génère l’union des groupements suivants {(jour,ville),(jour),(ville),vide }

Cube –SQL99 (2) Jour_1 ville_1 v_11 Jour_1 ville_2 v_12 Jour_1 NULL v_1_All Jour_2 ville_1 v_21... Jour_q NULL v_q_ALL NULL ville_1 v_ALL_1... NULL ville_p v_ALL_p NULL NULL v_ALL_ALL jour ville ventes

Roll_up - SQL99 (1) Calcul de l’UNION de GROUP BY de chaque préfixe des attributs en paramètre SELECT jour, ville, SUM(ventes) FROM c1 GROUP BY ROLLUP(jour,ville) génère l’union des groupements suivants {(jour,ville),(jour),vide }

Roll_up - SQL99 (2) Jour_1 ville_1 v_1_1 Jour_1 ville_2 v_1_2 Jour_1NULL v_1_ALL Jour_2 ville_1 v_2_1... NULL NULL v_ALL_ALL jour ville ventes

Roll_up - SQL99 (3) SELECT jour, ville, SUM(ventes) FROM c1 GROUP BY ROLLUP(jour), ROLLUP(ville) génération des agrégats pour les groupements : {(jour ),vide} × {(ville),vide} = {(jour,ville),(jour),(ville),vide}

Grouping Sets - SQL99 (1) Jour_1 ville_1 pièce_1 v_111 Jour_1ville_2 pièce_1 v_121 Jour_2 ville_1 pièce_2 v_ Jour_q ville_p pièce_r v_qpr soient les faits : c1 jour ville pièce ventes

Grouping Sets - SQL99 (2) GROUP BY multiples en précisant quelles UNION sont souhaitées l’imbrication d’attributs permet de séparer les GROUP BY simples de l’UNION de GROUP BY CUBE et ROLLUP sont des cas particulier de GROUPING SETS

Grouping Sets - SQL99 (3) GROUP BY GROUP BY jour, ville, pièce GROUPING SETS ((jour, ville, pièce)) GROUP BY GROUP BY jour GROUPING SETS UNION (jour, ville, pièce) GROUP BY ville UNION GROUP BY pièce GROUP BY GROUP BY jour GROUPING SETS UNION (jour,(ville,pièce)) GROUP BY ville, pièce

Architectures ROLAP MOLAP HOLAP

ROLAP - technologie de stockage relationnelle - star schéma ou snowflake schéma - middleware de traduction dynamique maturité de la technologie relationnelle génération de SQL encore peu efficace

Cuboïdes Cube = Treillis de cuboïdes

Précalcul des agrégats (1) Cube de données = faits = tous les cuboïdes 3 possibilités - ne pas stocker d’agrégat coûteux en temps - stocker tous les agrégats coûteux en espace - ne stocker qu’une partie des agrégats... mais lesquels?

Précalcul des agrégats (2) matérialiser des cuboïdes choisis en fonction - du grain (niveau d’agrégation) - des requêtes utilisateurs le grain doit être suffisamment fin pour pouvoir répondre aux requêtes

Précalcul des agrégats (3) Exemple ventes(produit, vendeur, année, prix) 3 dimensions : produit, vendeur, année 8 possibilités de groupement SELECT SUM(prix) FROM ventes GROUP BY...

Précalcul des agrégats (4) GROUP BY nombre de tuples nom de la vue produit, vendeur, année 6 M pva produit, vendeur 6 M pv produit, année 0.8 M pa vendeur, année 6 M va produit 0.2 M p vendeur 0.1 M v année 0.01 M a Null1 vide

Précalcul des agrégats (5) matérialiser tous les agrégats coûte 19 M matérialiser - vue pva - vue pa - vues p, v et a - vue vide coûte 7,11 M

Notations Q1 < Q2 ssi Q1 peut être traitée via Q2 - ancêtre(x) = {y | x < y} - descendant(x) = {y | y < x} - suivant(x) = {y | x < y, pas de z tel que x < z, z < y} p < pv, ancêtre(pva) = {pva}, descendant(pv) = {pv,p,v,vide}, suivant(p) = {pv,pa}

Stratégie répondre à une requête Q 1. choisir un ancêtre QA matérialisé de Q 2. adapter Q à QA 3. évaluer la requête adaptée sur QA coût de la réponse à Q = nombre de tuples de QA

Techniques d’indexation (ROLAP) listes inversées index de vecteurs de bits (bitmap indexing) index de jointure (join indexing)

MOLAP technologie des bases de données multidimensionnelles - structure de stockage = tableaux - correspondance directe avec la vue multidimensionnelle gestion de la faible densité (sparsity) - techniques de compression spécifiques - structure d’index spécifiques problème d’extensibilité

Stockage MOLAP implantation “row major” A[2][2] A[0][0]

Stockage MOLAP d dimensions, N k membres dans la dimension k la fonction p donne la position dans le tableau en fonction de chaque indice i d Exemple : a[2][3][4] avec 3 dimensions de 10 membres p(2,3,4) = 234