Data warehouse pour le Data mining

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Optimisation des requêtes
Material/Sources: Daniel Bardou, Julie Dugdale &
Règles d’association.
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Vue d’ensemble du Data warehousing et de la technologie OLAP
Optimisation de Requêtes
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Initiation au système d’information et aux bases de données
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
Contrôles d'accès aux données
L’utilisation des bases de données
Database B2 2 MIP Paris.
Initiation à la conception de systèmes d'information
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.
Chap 4 Les bases de données et le modèle relationnel
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
Systèmes d'information décisionnels
Mise en œuvre du langage MDX
Staf 2x Cours de bases de données
IFT Complexité et NP-complétude
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Évaluation des Requêtes: Survol Chapitre 12.
Universté de la Manouba
Les concepts et les méthodes des bases de données
Vers l'échantillonnage d'un entrepôt de données
OLAP IED Sommaire Introduction Opérations typiques Langages Architectures.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
Principes et mise en œuvre du modèle OLAP
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
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.
ETNA – 1ème année Guillaume Belmas –
GF-11: Tri Interne Efficace et Tri Externe
DOSSIER G10 – La base de données Relationnelle
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
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.
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.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
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.
Initiation aux SGBD Frédéric Gava (MCF)
Data warehouse Motivations et architecture Conception de la BD support
Intégration des Tableaux Multidimensionnels en Pig pour
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Séance /10/2004 SGBD - Approches & Principes.
Gestion des documents internes avec SQL Server 2005 Date de publication : janvier 2006.
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.
Introduction Module 1.
DATA Warehouse Elabore par: Ajlani Wael Karous Nabil Salhi Mahmoud.
Analyse, élaboration et exploitation d’une Base de Données
CONCEPTS BD - Synthèse journée 1 :
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.
PROJET DE SESSION PRÉSENTÉ PAR : Rosemarie McHugh DANS LE CADRE DU COURS : SCG Réalisation d’applications en SIG 16 avril 2007.
Février 2006 M. Fieschi Data mining Master EISIS Entrepôts de données (data warehousing) et technologies pour la fouille de données (data mining) Marius.
SQLSaturday Paris 2015 SSAS et le moteur relationnel Faire son choix.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Transcription de la présentation:

Data warehouse pour le Data mining

Plan Ce qu’est le data warehouse ? Un modèle multidimensionnel Architecture d’un data warehouse Implémentation d’un data warehouse Autres développements de la technologie data cube Data warehousing et data mining

Ce qu’est le data warehouse ? Différentes définitions pas très rigoureuses Une BD d’aide à la décision qui est maintenue séparément de la base opérationnelle de l’organisation “Un data warehouse est une collection de données concernant un sujet particulier, varie dans le temps, non volatile et où les données sont intégrées.”—W. H. Inmon Data warehousing: Le processus qui permet de construire un data warehouse

Sujet Organisée autour d’un sujet bien précis, ex: client, produit, ventes. S’intéresse à la modélisation et l’analyse des données pour aider les décideurs, non pas pour des activités quotidiennes ou traitement transactionnel Fournit une vue simple et concise concernant un sujet particulier en excluant les données qui ne servent pas à la prise de décision

Données intégrées Construite en intégrant plusieurs sources de données possiblement hétérogènes BD’s relationnelles, fichiers plats, … Les techniques d’intégration et de nettoyage des données sont utilisées Garantir la consistance des conventions de nommage (les attributs Nom et Nom_Famille dans BD1 et BD2 désignent la même chose) structures de codage (l’attribut Nom est sur 15 char et 20 char sur BD1 et BD2; NSS est une chaîne dans BD1 et c’est un entier long dans BD2), domaines des attributs (ex: cm vs pouce), etc. C’est au moment où les données sont copiées dans le data warehouse qu’elles sont traduites

Varie dans le temps La portée temporelle des données dans un data warehouse est plus longue que celle des bases opérationnelles Base opérationnelle: valeur courante des données. Data warehouse: fournit des infos sous une perspective historique (ex: 5 à 10 dernières années) Dans un data warehouse, en général, chaque donnée fait référence au temps Mais dans une base opérationnelle les données peuvent ne pas faire référence au temps

Data Warehouse est Non-Volatile Un support de stockage séparé Les mises à jour de la base opérationnelle n’ont pas lieu au niveau de la data warehouse N’a pas besoin de modules de gestion de transactions (concurrence, reprise sur panne …) N’a besoin que de deux opérations pour accéder aux données : Chargement initial des données et interrogation (lecture).

Data Warehouse vs. SGBD hétérogènes Traditionnellement, l’intégration de BD’s hétérogènes se fait par le biais de: Wrappers/mediateurs au dessus des BD’s hétérogènes Approche orientée requête Quand une requête est posée par un site client, un méta-dictionnaire est utilisé pour la traduire en plusieurs requêtes appropriées à chacune des BD’s. Le résultat est l’intégration des réponses partielles. L’exécution des requêtes demande donc beaucoup de ressources Data warehouse: Approche orientée mise à jour Les infos sont intégrées et stockées pour une interrogation directe. Plus efficace en coût d’exécution des requêtes

Data Warehouse vs. BD Opérationnelle OLTP (On-Line Transaction Processing) Exécution en temps réel des transactions, pour l’ enregistrement des opérations quotidiennes: inventaire, commandes, paye, comptabilité Par opposition aux traitements en batch OLAP (On-Line Analytical Processing) Traitement efficace des requêtes d’analyse pour la prise de décision qui sont par défaut assez complexes (bien qu’a priori, elles peuvent être réalisées par les SGBD classiques) OLTP vs. OLAP : Données: courantes, détaillées vs. historiques, consolidées Conception : modèle ER + application vs. Modèle en étoile + sujet Vue : courante, locale vs. évolutive, intégrée Modes d’accès: mise à jour vs. Lecture seule mais requêtes complexes

OLTP vs. OLAP

Pourquoi pas des BD’s pour data warehouses Les 2 systèmes sont performants SGBD— calibrés pour l’OLTP: méthodes d’accès, index, contrôle de concurrence, reprise Warehouse—calibrés pour l’OLAP: requêtes OLAP complexes, vue multidimensionnelle, consolidation. Fonctions et données différentes: Données manquantes: l’aide à la décision a besoin des données historiques qui ne se trouvent pas dans les BD’s opérationnelles Consolidation: l’AD a besoin de données consolidées (agrégats) alors qu’elles sont brutes dans les BD’s opérationnelles

Technologie OLAP Ce qu’est le data warehouse ? Un modèle multidimensionnel Architecture d’un data warehouse Implémentation d’un data warehouse Autres développements de la technologie data cube Data warehousing et data mining

Des Tables aux Data cubes Un data warehouse est basé sur un modèle multidimensionnel où les données sont vues comme des data cubes Un data cube, ex: sales, permet de voir les données selon plusieurs dimensions Les tables de dimension ex: item (nom_item, marque, type), ou temps(jour, semaine, mois, trimestre, année) La table de faits contient des mesures (ex: unités_vendues) et les clés externes faisant référence à chaque table de dimension Dans la littérature du data warehousing, un cube de dimension n est dit un cuboïde. Le treillis des cuboïdes d’un data warehouse forme un data cube.

Cube: Un treillis de cuboïdes tous 0-D cuboïde temps item lieu fournisseur 1-D cuboïdes temps,item temps,lieu item,lieu Lieu, fournisseur 2-D cuboïdes Temps, fournisseur item,fournisseur temps,lieu, fournisseur temps,item,lieu 3-D cuboïdes Temps, item, fournisseur item,lieu, fournisseur 4-D cuboïde Temps, item,lieu,fournisseur

Modélisation Conceptuelle des Data Warehouses Dimensions & mesures Schéma en étoile: Au milieu, une table de faits connectée à un ensemble de tables de dimensions Schéma flocon de neige (snowflake): Un raffinement du précédent où certaines tables de dimensions sont normalisées (donc décomposées) Constellation de faits: Plusieurs tables de faits partagent quelques tables de dimension (constellation d’étoiles)

Exemple de schéma en étoile Id_temps jour Jour_semaine mois trimestre année temps Id_item Nom_item marque type Type_fournisseur item Table de faits “ventes” id_time id_item id_branche Id_branche Nom_branche Type_branche branche Id_lieu rue ville département pays lieu id_lieu unités_vendues montant_ventes moyenne_ventes Mesures

Exemple de schéma Snowflake Id_temps jour Jour_semaine mois trimestre année temps Id_fournisseur Type_fournisseur fournisseur Id_item Nom_item Marque type Id_fournisseur item Table de faits “Vente” Id_temps Id_item Id-branch Id_lieu rue Id_ville lieu Id_branche Nom_branche Type_branche branche Id_lieu unités_vendues Id_ville ville département pays montant_vente moyenne_vente Mesures

Exemple de Constellation de faits Id_temps jour Jour_semaine mois trimestre année temps Table de faits Transport Id_item Nom_item marque type Id_fourniseur item Table de faits Vente Id_temps Id_temps Id_item Id_transporteur Id_item Id-branche id_départ Id_lieu id_arrivée Id_lieu rue ville département pays lieu Id_branche Nom_branche Type_branche branche coût unités_vendues Unités_transportées montant_vente moyenne_vente Id_Transporteur Nom_transporteur Id_lieu Type_transporteur transporteur Meesures

DMQL: un langage pour le data mining Définition d’un cube (table de faits) define cube <nom_cube> [<liste_dimensions>]: <liste_mesures> Définition d’une dimension ( table de dimensions ) define dimension <nom_dimension> as (<liste_attributs_ou_sous-dimensions>) Cas particulier (tables de dimensions partagées) La première fois comme la définition d’un cube define dimension <nom_dimension> as <1er_nom_dimension> in cube <1er_nom_cube>

Définition d’un schéma en étoile avec DMDL define cube ventes_star [temps, item, branche, lieu]: Montant_vente = sum(somme), moyenne_vente = avg(somme), unités_vendues = count(*) define dimension temps as (Id_temps, jour, jour_semaine, mois, trimestre, année) define dimension item as (Id_item, nom_item, marque, type, type_fournisseur) define dimension branche as (Id_branche, nom_branche, type_branche) define dimension lieu as (Id_lieu, rue, ville, département, pays)

Définition d’un schéma snowflake avec DMQL define cube ventes_snowflake [temps, item, branche, lieu]: Montant_vente = sum(somme), moyenne_vente = avg(somme), unités_vendues = count(*) define dimension temps as (Id_temps, jour, jour_semaine, mois, trimestre, année) define dimension item as (Id_item, nom_item, marque, type, fournisseur(Id_fournisseur, type_fournisseur)) define dimension branche as (Id_branche, nom_branche, type_branche) define dimension lieu as (Id_lieu, rue, ville(Id_ville, département, pays))

Définition d’une constellation avec DMQL define cube ventes [temps, item, branche, lieu]: Montant_vente =sum(somme), moyenne_vente = avg(somme), unités_vendues = count(*) define dimension temps as (Id_temps,jour,jour_semaine,mois,trimestre,année) define dimension item as (Id_item, nom_item, brand, type, type_fournisseur) define dimension branche as (Id_branche, nom_branche, type_branche) define dimension lieu as (Id_lieu, rue, ville, département,pays) define cube transport [temps, item, transporteur, départ, arrivée]: coût = sum(frais), unités_transportées = count(*) define dimension temps as temps in cube ventes define dimension item as item in cube ventes define dimension transporteur as (Id_transporteur, nom_transporteur, lieu as lieu in cube ventes, type_transporteur) define dimension départ as lieu in cube ventes define dimension arrivée as lieu in cube ventes

Mesures: Trois Catégories distributives: si le résultat obtenu par une fonction à n valeurs calculées est le même que le résultat de la fonction sur toutes les valeurs. E.g., count(), sum(), min(), max(). algébriques: si elle peut être calculée par une fonction à M arguments chacun obtenu par une fonction distributive. Ex., avg(), min_N(), standard_deviation(). holistique: if there is no constant bound on the storage size needed to describe a subaggregate. Ex., median(), mode(), rank().

Hiérarchie de la Dimension Lieu all tous Europe ... Amérique continent Allemagne ... Espagne Canada ... Mexico pays Vancouver ... ville Frankfurt ... Toronto L. Chan ... M. Wind magasin

Une vue d’une warehouse et ses hiérarchies Specification des hiérarchies Hiérarchie dans le schéma jour < {mois < semestre; semaine} < année Hiérarchie d’ensembles {1..10} < pas_chère

Données multidimensionnelles Montant des ventes comme une fonction des paramètres produit, mois, région Dimensions: Produit, Lieu, Temps Chemins de consolidation hiérarchiques Région Industrie Région Année Catégorie Pays Trimestre Produit Ville Mois Semaine Magasin Jour Produit Mois

Total annuel des ventes Un exemple de Data Cube Total annuel des ventes de TV in U.S.A. Date Product Pays All, All, All sum TV DVD PC 1Trim 2Trim 3Trim 4Trim U.S.A Canada Mexique 100 200 300 100 700

Cuboïdes Correspondants au Cube all Cuboïde 0-D(apex) pays produit date Cuboïde 1-D produit,date produit,pays date, pays Cuboïde 2-D cuboïde3-D(base) produit, date, pays

Opérations typiques de l’OLAP Roll up : consolider (résumer) les données Passer à un niveau supérieur dans la hiérarchie d’une dimension Drill down : l’inverse du Roll-up descendre dans la hiérarchie d’une dimension Slice et Dice: Projection et sélection du modèle relationnel Pivot (rotate): Réoriente le cube pour visualisation

Un Modèle pour représenter les requêtes COMMANDES CLIENTS MODE TRANSPORT CLIENT Contrats AIR-EXPRESS Commande Camion Catégorie Groupe TEMPS Année Trimestre Jour Item PRODUIT Ville Vendeur Pays Rayon Contient Magasin LIEU ORGANISME

Ce qu’est le data warehouse ? Un modèle multidimensionnel Architecture d’un data warehouse Implémentation d’un data warehouse Autres développements de la technologie data cube Data warehousing et data mining

Trois modèles de data warehouse Entreprise warehouse Collecte de toutes les informations concernant les sujets traités au niveau de l’organisation Data Mart Un sous ensemble d’un entreprise warehouse. Il est spécifique à un groupe d’utilisateurs (ex: data mart du marketing) Data warehouse virtuel Un ensemble de vues définies à partir de la base opérationnelle Seulement un sous ensemble des vues sont matérialisées

Architecture des serveurs OLAP Relational OLAP (ROLAP) Utilise un SGBD relationnel pour stocker les données ainsi qu’un middle-ware pour implémenter les opérations spécifiques de l’OLAP Multidimensional OLAP (MOLAP) Basé sur un stockage par tableaux (techniques des matrices creuses) Indexation rapide de données calculées

Ce qu’est le data warehouse ? Un modèle multidimensionnel Architecture d’un data warehouse Implémentation d’un data warehouse Autres développements de la technologie data cube Data warehousing et data mining

Calcul efficace d’un data cube Un data cube peut être vu comme un treillis de cuboïdes Le plus bas dans la hiérarchie est le cuboïde de base Le plus haut contient qu’une seule cellule (appelé apex) Combien de cuboïdes y-a-il dans un cube à n dimensions avec L niveaux ? Matérialisation du data cube Matérialiser chaque cuboïde (matérialisation totale), aucun , ou quelques (matérialisation partielle) Sélection des cuboïdes à matérialiser Basé sur la taille, partage, fréquence d’accès, etc.

Opérations sur les cubes Définition et calcul d’un cube dans DMQL define cube ventes[item, ville, année]: sum(montant) compute cube sales Le transformer avec un langage à la SQL (ajout de l’opérateur cube by) SELECT item, ville, année, SUM (montant) FROM VENTES CUBE BY item, ville, année C’est équivalent aux Group-By suivants (item, ville, année), (item, ville),(item, année), (ville, année), (item), (ville), (année) () () (item) (ville) (année) (item,ville) (item, année) (ville, année) (item, ville, année)

Exemple: Matérialisation partielle Comme données de base, nous avons des informations sur des produits proposés par des fournisseurs et vendus à des clients à un prix PV. Les informations s’étalent sur 10 ans. Les analystes voudraient poser des requêtes sur une table où chaque (p,f,c) est associé à une mesure TV (total ventes) Le produit p proposé par f a été vendu à c pour un montant global TV (sur les 10 ans)

Exemple On considère un ensemble de requêtes, un ensemble de vues possibles. La question: quelles vues matérialiser pour répondre à toutes les requêtes, si le nombre de vues ne doit pas dépasser un certain seuil Les requêtes considérées sont de la forme SELECT <g-attributs>, SUM (<mesure>) FROM <la table de base> WHERE <attribut = valeur> GROUP BY <g-attributs> SELECT Produit, Client, SUM(TV) FROM Table WHERE Client=‘Toto’ GROUP BY (Produit, Client)

Exemple Les vues considérées sont de la forme SELECT <g-attributs>, SUM(<mesure>) FROM Table GROUP BY <g-attributs> Dans l’exemple, il y a 8 vues: Produit, fournisseur, client (6M tuples) Produit, client (6M) Produit, fournisseur (0,8M) Fournisseur, Client (6M) Produit (0,2M) Fournisseur (0,01) Client (0,1M) Ø (1)

Exemple PFC 6M PF 0,8M PC 6M FC 6M P 0,2 M F 0,01 C 0,1 Ø

Exemple V l’ensemble des vues et Vk ={W de 2V : |W| = k } Trouver W tel que Gain(W) = Max (Gains Wi avec |Wi |=k) On définit un pré-ordre sur les vues: v  w si v peut être calculée à partir de w A chaque fois que l’on décide de matérialiser une vue w, les vues v telles v  w ont un bénéfice B Bénéfice(v, S) = somme B(w,v,S) avec w v avec B(w,v,S)=le gain qu’on aura pour calculer w en rajoutant v à S Gain (W)=somme(Bénéfice(v): v élément de W) Si n est le nombre total de vues, alors on a n! / (n-k)!k! ensembles de vues à k éléments qu’il faut tester. L’algorithme de recherche de la solution optimal est en temps exponentiel Algorithme approchée S= {top view} For i=1 to k S=S union {v} t.q Bénéfice (v,S) soit maximale Return s

Exemple a 100 b 50 c 75 d 20 e 30 f 40 g 1 h 10 Initialisation : S={a} Étape 1: Bénéfice(b,S)=50*5=250 Bénéfice(c,S)=25*5=125 Bénéfice(d,S)=80*2=160 Bénéfice(e,S)=70*3=210 Bénéfice(f,S)=60*2=120 Bénéfice(g,S)=99*1=99 Bénéfice(h,S)=90*1=90 S=S+={b}

Exemple a 100 b 50 c 75 d 20 e 30 f 40 g 1 h 10 Initialisation : S={a,b} Étape 2: Bénéfice(c,S)=25*2=50 Bénéfice(d,S)=30*2=60 Bénéfice(e,S)=20*3=60 Bénéfice(f,S)=60+10=70 Bénéfice(g,S)=49*1=49 Bénéfice(h,S)=40*1=40 S=S+={f}

Exemple a 100 b 50 c 75 d 20 e 30 f 40 g 1 h 10 Initialisation : S={a,b,f} Étape 3: Bénéfice(c,S)=25*1=50 Bénéfice(d,S)=30*2=60 Bénéfice(e,S)=20+20+10=50 Bénéfice(g,S)=49*1=49 Bénéfice(h,S)=30*1=30 c,d,f c=50 d=135 f=70 S=S+={d}

Exemple S={a,b,d,f} Bénéfice(b,S)=50*2=100 Bénéfice(d,S)=30*2=60 Bénéfice(f,S)=60+10=70 Gain(S)=230 S*={a,c,d,f } Bénéfice(c,S*)=50 Bénéfice(d,S*)=135 Bénéfice(f,S*)=70 Gain(S*)=255 Théorème : Soit S* la solution optimale et S la solution retournée par l’algorithme. Alors, Gain(S)  63% de Gain(S*) (e-1)/e

Matérialisation totale: Multi-way Array Aggregation for Cube Computation Partitionner les tableaux en des portions (chunk : un petit sous-cube qui peut être chargé en mémoire) Adressage de tableaux creux compressés : (chunk_id, offset) Calculer les agrégats en “multiway” en visitant les cellules du cube de sorte à (i) minimiser le # de fois que chaque cellule est visitée et (ii) réduire les coûts d’accès et de stockage A B 29 30 31 32 1 2 3 4 5 9 13 14 15 16 64 63 62 61 48 47 46 45 a1 a0 c3 c2 c1 c 0 b3 b2 b1 b0 a2 a3 C 44 28 56 40 24 52 36 20 60 Quel est l’ordre préférentiel pour parcourir le cube dans le cadre d’une agrégation?

Exemple On a les cuboïdes A, B, C, AB, BC, AC, ABC et Ø Supposons que les dimensions A,B et C ont les tailles 40, 400, 4000. La taille de chaque partition de A,B et C est 10, 100 et 1000. Ex: A:magasins, B: Date,C: Produit et la mesure: #produits vendus Supposons que l’on veuille calculer le cuboïde BC. Ceci peut se faire en calculant les cuboïdes bicj . Pour calculer b0c0, il faut parcourir les portions 1,2,3,4. Au total, on doit scanner les 64 portions. Pour calculer les cuboïdes AC et AB, faut-il rescanner les 64? NON Quand la portion 1 (a0b0c0) est scanné, on peut calculer a0b0 et a0c0) d’où le terme Multi-way aggregation. Donc, en scannant les 64 portions une seule fois chacun, on peut calculer les 3 cuboïdes AB, AC et BC

Exemple Les tailles de AB, AC et BC sont resp. 16.103, 16.104 et 16.105 En parcourant les portions de 1 à 64 dans cet ordre, b0c0 est calculé en lisant 1,2,3,4 ; b1c0 calculé en lisant 5,6,7,8 … a0b0 est calculé en utilisant 1, 17, 33 et 49 (49 portions) a0c0 est calculé en utilisant 1, 5, 9 et 13 (13 portions) Pour éviter qu’une portion ne soit chargée plus d’une fois, l’espace tampon minimum doit être: 40*400 (plan AB)+10*4000 (une ligne du plan AC) + 100*1000(une portion de BC)=156 000 Supposons que l’ordre de parcours est 1, 17, 33, 5, 21, 37, 53, … agrégation selon AB, puis AC puis BC. L’espace mémoire requis est 400*4000(plan BC)+40*4000(une ligne de AC)+10*100(portion de AB)=1 641 000 Conclusion: L’ordre de prise en compte des dimensions est important. Il faut trier les plans dans l’ordre croissant de leur taille puis les parcourir en tenant compte de cet ordre.

Multi-way Array Aggregation for Cube Computation 29 30 31 32 1 2 3 4 5 9 13 14 15 16 64 63 62 61 48 47 46 45 a1 a0 c3 c2 c1 c 0 b3 b2 b1 b0 a2 a3 C 44 28 56 40 24 52 36 20 60 B

Multi-way Array Aggregation for Cube Computation 61 62 63 64 c2 45 46 47 48 c1 29 30 31 32 c 0 B 13 14 15 16 60 b3 44 B 28 b2 9 56 40 24 b1 5 52 36 20 b0 1 2 3 4 a0 a1 a2 a3 A

Pas de matérialisation: Indexation de données OLAP: Index Bitmap Index sur une colonne particulière Chaque valeur dans la colonne a un vecteur de bits : opérations sur les bits sont rapides La longueur du vecteur de bits: # de la table de base Le i-ème bit=1 si la i-ème ligne de la table de base possède la valeur de la colonne indexée Ne convient que pour les domaines de cardinalité pas très grande Table de base Index sur Région Index sur Type

Indexing OLAP Data: Index de jointure Index de jointure : JI(R-id, S-id) où R (R-id, …)  S (S-id, …) En général, un index associe une valeur à une liste d’Id d’enregistrements matérialise la jointure dans un fichier JI pour accélérer l’exécution de la jointure Dans les data warehouses, un index de jointure relie des valeurs de dimensions à des lignes de la table de faits. Ex. Table de faits: Sales et 2 dimensions ville et produit Un index de jointure sur ville maintient pour chaque ville une liste de ID-enreg’s de tuples concernant des ventes dans la ville en question Les index de jointure peuvent être partagés par plusieurs dimensions

Traitement efficace des requêtes OLAP Déterminer quelles sont les opérations à effectuer sur les cuboïdes disponibles : transformer drill, roll, etc. en des requêtes SQL et/ou opérations OLAP, ex, dice = sélection + projection Déterminer sur quel cuboïde matérialisé l’opération doit être exécutée. Exploiter les structures d’index disponibles

Data Warehouse : Utilitaires Extraction : Récupérer les données à partir des sources Nettoyage : détecter les erreurs et les corriger si possible Transformation : Convertir les formats Charger: Trier, consolider, calculer des vues, vérifier des contraintes, construire des index, vérifier des contraintes Rafraîchir Propager les mises à jour des sources sur le data warehouse

An OLAM Architecture Mining query Mining result OLAM Engine OLAP Layer4 User Interface User GUI API OLAM Engine OLAP Engine Layer3 OLAP/OLAM Data Cube API Layer2 MDDB MDDB Meta Data Database API Filtering&Integration Filtering Layer1 Data Repository Data cleaning Data Warehouse Databases Data integration

Résumé Data warehouse Données orientées sujet, intégrées, dépendant du temps, et non-volatiles pour la prise de décision Un modèle multidimensionnel pour les data warehouses Schéma en étoile, schéma snowflake, constellation Un data cube est decrit par des dimensions et des mesures Opérations OLAP : drilling, rolling, slicing, dicing and pivoting OLAP servers: ROLAP, MOLAP, HOLAP Implémentation des data cubes Matérialisation Partielle vs. totale vs. nulle Sélection des cuboïdes à matérialiser Multiway array aggregation Implémentation avec Bitmap index et join index