Data Warehouse - OLAP
Eduardo Almeida
Master Alma – Université de Nantes {eduardo.almeida@univ-nantes.fr}
Objectif
●
Présenter les concepts de base d'un Data Warehouse (DW) et On Line Analytical
Processing (OLAP).
●
Présenter des fonctions et outils pour
construire un environment DW/OLAP.
Bibliographie
• Berson, Alex e Smith, Stephen J.
–Data Warehousing, Data Mining & OLAP
• Kimball, Ralph
–The Data Warehouse Toolkit
• Inmon, Willian H.
–Building the Data Warehouse
• Thomsen, Erik –OLAP Solutions
• www.olapreport.com
• Wu and Alejandro P. Buchmann (1998)
–Encoded Bitmap Indexing for Data Warehouses
• www.dmreview.com
• http://asktom.oracle.com
• Donsez, Didier (présentations) –Université Joseph Fourier
Problèmes typiques
• “Nous avons une grande quantité de données, mais nous ne pouvons pas les utiliser”
• “La pire chose pour un directeur est d'avoir deux personnes présentant le même rapport avec des résultats
différents”
• “Montre-moi juste l'information la plus importante”
• “Nous voulons croiser les informations de toutes les façons possibles”
“The Data Warehouse Toolkit” - Ralph Kimball
• Information correctesInformation correctes
• Format correctFormat correct
• A l'heureA l'heure
Gestionnaires Gestionnaires d'informatique d'informatique Les décideurs
Les décideurs
CoûtCoût
• IntegrationIntegration
• Passage à l'échelle etPassage à l'échelle et performance
performance
• FlexibilitéFlexibilité
ValeurValeur
Défi des entreprises
Comment une entreprise peut atteindre les
deux objectifs?
Définition de Bill Inmon (1996)
«Le Data Warehouse est une collection
de données orientées sujet, intégrées,
non volatiles et historisées, organisées
pour le support d’un processus d’aide à
la décision.»
Data Data Warehouse Warehouse
SQL Server SQL Server™™ Mainframe
Mainframe
DB2 MVS, VSAM, DB2 MVS, VSAM,
CICS/IMS, CICS/IMS, NCR Teradata NCR Teradata OLE DB/ODBC
OLE DB/ODBC OracleOracle
Transformation Transformation
Data Warehousing
CLIENT UNITES
M ARCHE FINANCES
Data Data Warehouse Warehouse
Nous pouvons d velopper des bases de donn es é é cibl es sur quelques sujets limit s é é
Orient sujet é
Data Warehouse est ...
DATADATA
WAREHOUSE WAREHOUSE
Ext ernal files Ext ernal files
SGBDs OLTP SGBDs OLTP
Ext ernal files form at s Ext ernal files form at s
ODBC and API s´ ODBC and API s´
–Int gration S mantiqueé é : les incompatibilit s entre donn es é é –de diff rentes sourcesé
–Sources H t rog nesé é è : il doit tre possible d acc der des ê ’ é à –donn es de plusieurs typesé
Int gr é é Int gr é é
Data Warehouse est ...
Dans un DW les donn es sont stock es en forme é é
d'historique pour permettre une analyse temporelle.
P riode é
P riode é 1 P riodeP riodeéé 2 P riodeP riodeéé 3 P riodeP riodeéé 4
Chargem ent inicial
Chargem ent inicial M ise jourM ise jouràà M ise jourM ise jouràà
Bas sur les t em ps é Bas sur les t em ps é
Data Warehouse est ...
OLTPOLTP
INSERT INSERT INSERT
INSERT
UPDATE UPDATE
UPDATE UPDATE
LOADLOAD
AN LISEÁ AN LISEÁ DE DADOS DE DADOS
AN LISEÁ AN LISEÁ DE DADOS DE DADOS
DWDW
Non volatil signifie que, une fois entr es dans é l'entrep t, les donn es ne doivent pas changer. ô é
Non Volat il Non Volat il
Data Warehouse est ...
Principe
Base de Données utilisée à des fins d’analyse.
Caractéristiques :
●
orientation sujets («métiers»)
●
données intégrées
●
données non volatiles
●
données datées
• Systèmes Opérationnels - OLTP (On Line Transaction Processing) :
–Les bases de données sont mises à jour en transactionnel –SGBD Relationnels
–Centré sur la mise à jour ponctuelle de données –Les transactions échangent de faibles quantités
d’informations avec l’utilisateur et travaillent toujours sur les versions les plus récentes des données.
DW versus OLTP
• Systèmes Tactiques - OLAP (On Line Analysis Processing) –Les bases de données décisionnelles sont consultées en interactif (spreadsheets) pour l'analyse des données (ex:
histogrammes)
–Navigation dans la base selon diverses dimensions constituées par des attributs de tables
–Consultation des versions historiques de la base
–Les données proviennent des differentes sources (sites)
DW versus OLTP
Caractéristiques OLTP DW
Opérations typiques Mise à jour Analyse Type d’accès Lecture et écriture Lecture Niveau d’analyse Élémentaire Global Écrans Fixe Variable Quantité d’info échang. Faible Importante
Orientation Ligne Multidimensions Taille BD au niveau de GB au niveau de TB Ancienneté des données Récente Historique
DW versus OLTP
DW versus OLTP
OLTP DW
structures de données complexes (3FN)
structures de données multidimensionnelles peu
beaucoup
beaucoup quelques unes normalisées
rares
dénormalisées fréquentes indexes
jointure duplication
agrégation
La suite décisionnelle de base
Extract, Transform
and Load (ETL) OLAP
La suite décisionnelle (staging area)
ETL OLAP
La suite décisionnelle
(staging area and data marts)
ETL OLAP
Extract, Transform and Load (ETL)
• Données de production
–SGBD et supports physiques hétérogènes
–Qualité inégale des données –Représentations hétérogènes
Extract, Transform and Load (ETL)
• L'objectif est
l'obtention de données :
–centralisées –fiables
–interprétables
Extract, Transform and Load (ETL)
• Transformation :
–Filtrer –Trier
–Homogénéiser –Nettoyer
–...
Extract, Transform and Load (ETL)
• Chargement :
–Grande quantité
–Différents types de tableaux –Gestion des structures
spécialisées (materialized views and summary tables)
–...
• Banque
–Il est important de pouvoir regrouper les informations concernant un client afin de répondre à ses demandes de crédit
• Grande Distribution
–Il est intéressant de regrouper les informations des ventes pour déterminer les produits à succès, mieux suivre les phénomènes de mode, détecter les habitudes d’achats et les préférences par
secteur géographique.
• Mailing Ciblés
–Doivent être rapidement élaborés à partir de toutes les
informations disponibles sur un client lors de la commercialisation d’un nouveau produit
• Télécommunications
–Analyser le trafic
• Etc…
Exemples d’Applications
Concernées
Exemple pratique (Télécommunications)
• Mis en service d'une enterprise de télécommunication au Brésil
–Constructiuon d'un réseau –Recherche de clients
• Le système de télécommunication au Brésil a été privatisé. Le Brésil a été divisé en 4 parties:
–Région 1 (bleue) –Région 2 (rouge) –Région 3 (jaune)
–Région 4 (long distance)
Exemple pratique (Télécommunications)
• Où devons-nous construire le réseau?
–On a acheté des banques de données (master card, visa, banques, list, etc)
–On a utilisé un DW pour profiter de ses données
Exemple pratique (Télécommunications)
• O
n a généré des données pour les charger dans un système de geoprocessingExemple pratique (Télécommunications)
• La structure du DW
–SGBD : Oracle 8i -> 9i
–OLAP : Business Objects 5.5, Microstrategy 7 –ETL : PowerMart
–OS : HP-UX 11 (sur une machine 32 proc.) –Equipe : 12 personnes
• Chargement
–Tous les jours
–17 systèmes (CRM, billing, traffic, etc)
–Quelques millions de tuples (8 mi dans la table de trafic) –14 heures pour terminer
Exemple pratique (Banque)
• Etude des fermetures de compte.
–7.000 clients par mois
• Comment prévoir la fermeture d'un compte?
–Vérifier les attributs le plus importants –Créer un cycle de vie client
Exemple pratique (Banque)
• Actions de marketing
–Nouveaux produits
–Fidélisation des clients –Vente croisée
• Actions de crédit
–Réévaluation de crédit –Telemarketing
Exemple pratique (Banque)
• La structure du DW
–SGBD : Sybase IQ 11
–OLAP : Business Objects 4
–ETL : Programmes (COBOL, C/C++, Java, etc) –OS : IBM AIX
–Equipe : 30 personnes
• Chargement
–Tous les mois
–67 systèmes (compte, assurances, investissements, etc.) –3 jours pour terminer
Conception du DW
• Logique
–Phase conceptuelle et abstraite (la définition des types d'informations dont vous avez besoin)
–Organise une série de relations (dimensions et tables de fait)
–Schéma multidimensionnel (étoile et flocon)
Conception du DW
• Physique
–Conception physique
–Prise en considération des matériels et des E / S –Parallélisme et de partitionnement
–Materialized Views
Conception du DW
Conception logique
• Logique
–Dimensions et tables de faits
–Identifier les sujets ou domaines de données –Il n'y a pas de règle (par exemple, 3FN)
–Identifier l'information qui appartient à une table de faits et ses dimensions associées
Conception logique
–Les attributs sont normalement descriptifs (valeurs textuelles)
–Ils permettent d'interpréter les faits
–Les dimensions couramment utilisées sont les clients, les produits et le temps.
Table de Dimension
PRODUITS
#id_produit id_fournisseur produit
prix_unitaire stock
FOURNISSEUR
#id_fournisseur fournisseur
adresse ville pays
code_postal CLIENTS
#id_client nom
age ville pays
code_postal
TEMPS
#id_temps jour
moins années
–Une table de faits a généralement deux types de
colonnes: les faits numériques et les clés étrangères des dimensions.
–Une table de faits contient des faits au niveau de détail ou des faits qui ont été agrégés
Table de Faits
APPEL id_client id_temps num_appele debut_appel fin_appel
OPERATION id_client
id_temps id_operation valeur
COMMANDE id_client
id_produit id_temps date_comm date_envoi
• Les tables de faits ont une grande quantité de données
• Les dimensions ont une petite quantité de données
• Les dimensions acceptent la redondance
• Normalement, les dimensions sont chargées dans la mémoire cache
Dimension x Faits
Conception logique
Schéma étoile
COMMANDE id_client
id_produit id_magasin id_temps date_comm date_envoi quantite remise
PRODUITS
#id_produit fournisseur produit
prix_unitaire stock
CLIENTS
#id_client nom
age ville pays
code_postal
TEMPS
#id_temps jour
mois année MAGASIN
#id_magasin addresse
num_tel ville
Table de Faits
Dimension Dimension
Schéma étoile x ER
Etoile ER
Schéma flocon
COMMANDE id_client
id_produit id_magasin id_temps date_comm date_envoi quantite remise
PRODUITS
#id_produit id_fournisseur id_gamme produit
prix_unitaire stock
CLIENTS
#id_client nom
age ville pays
code_postal
TEMPS
#id_temps jour
mois années MAGASIN
#id_magasin addresse
num_tel ville
FOURNISSEUR
#id_fournisseur addresse
ville
num_tel
GAMME
#id_gamme description
Schéma flocon
●
Structure hiérarchique (plusieurs niveaux de dimensions).
●
Plusieurs jointures pour la reconstruire.
●
Dimensions plus petites.
Processus de conception
●
Choisir le processus à modéliser
●
Choisir les grains des faits
–
Niveau de détails (transaction, récapitulatifs mensuels, etc)
●
Choisir les dimensions (temps, clients, produits, etc)
●
Choisir les mesures de faits
–
De préférence des quantité numériques
additives
Processus de conception
D. Donsez, 2006
Conception physique
– Passer de la conception logique à la physique
●
Convertir les données recueillies au cours de la phase de conception logique dans une
description physique
●
Se concentrer sur la performance
●
Les aspects de maintenance de la base de
données
– Passer de la conception logique
à la physique
Structures physiques
●
Tablespaces
●
Tables and Partitioned Tables
●
Views
●
Integrity Constraints
●
Dimensions
●
Structures crées pour l'amélioration de la performance
–
Indexes and Partitioned Indexes
–
Materialized Views
Dimensions
●
Dénormalisé
create dimension fournisseur_dim
LEVEL no_fournisseur IS (fournisseurs.no_fournisseur) LEVEL societe IS (fournisseurs.societe)
LEVEL ville IS (fournisseurs.ville) LEVEL pays IS (fournisseurs.pays) HIERARCHY geog_rollup (
ville CHILD OF pays
);
Dimensions
●
Normalisé
create dimension stock_dim
LEVEL id_produit IS (produits.REF_PRODUIT) LEVEL produit IS (produits.NOM_PRODUIT)
LEVEL fournisseur IS (fournisseurs.NO_FOURNISSEUR) LEVEL fournisseur_name IS (fournisseurs.societe)
HIERARCHY geog_rollup ( produit CHILD OF fournisseur
JOIN KEY (produits.NO_FOURNISSEUR) REFERENCES FOURNISSEUR
);
Indexes and Partitioned Indexes
●
BITMAP index
–Reduced response time for large classes of ad hoc queries
–Reduced storage requirements compared to other indexing techniques
–Dramatic performance gains even on hardware with a relatively small number of CPUs or a small amount of memory
–Efficient maintenance during parallel DML and loads
Indexes and Partitioned Indexes
●
BITMAP index simple
BITMAP
B_nantes B_paris B_rennes
1 0 0
0 1 0
0 0 1
1 0 0
1 0 0
0 1 0
... ... ...
CLIENTS
... Ville ...
Nantes Paris Rennes Nantes Nantes Paris ...
Indexes and Partitioned Indexes
●
BITMAP index encodé (Wu et Buchmann, 1998)
BITMAP ENCODE
B0 B1
0 0
0 1
1 0
0 0
0 0
0 1
... ...
MAPPING
Nantes 00
Paris 01
Rennes 10
... ...
CLIENTS
... Ville ...
Nantes Paris Rennes Nantes Nantes Paris ...
●
Calculé par log
2(n)
–
n = domaine (par exemple, log
2(3)=2)
Indexes and Partitioned Indexes
●
BITMAP
CREATE BITMAP INDEX ville_bm_ix ON fournisseurs(pays);
Ex.
select pays,count(*) from fournisseurs group by pays;
Indexes and Partitioned Indexes
●
Sans BITMAP
Elapsed: 00:00:00.04 Execution Plan
---
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4 Card=16 Bytes=144) 1 0 SORT (GROUP BY) (Cost=4 Card=16 Bytes=144)
2 1 TABLE ACCESS (FULL) OF 'FOURNISSEURS' (TABLE) (Cost=3 Ca rd=29 Bytes=261)
●
Avec BITMAP
Elapsed: 00:00:00.02 Execution Plan
---
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=1 Card=16 Bytes=144) 1 0 SORT (GROUP BY NOSORT) (Cost=1 Card=16 Bytes=144)
2 1 BITMAP CONVERSION (COUNT) (Cost=1 Card=29 Bytes=261) 3 2 BITMAP INDEX (FULL SCAN) OF 'VILLE_BM_IX' (INDEX (BITMAP))
Materialized Views
●
Vue agrégée qui améliore le temps d'exécution des requêtes
●
Pré-calcul des jointures et des opérations d'agrégation antérieures au stockage
●
Souvent appelée “résumé”.
Materialized Views
●
L'optimiseur de requêtes reconnaît automatiquement quand une vue
matérialisée peut et doit être utilisée pour
satisfaire une demande.
Materialized Views
●
Tout d'abord, les logs des vues matérialisées doivent être créés
CREATE MATERIALIZED VIEW LOG ON fournisseurs WITH SEQUENCE, ROWID
(NO_FOURNISSEUR,SOCIETE,VILLE,PAYS) INCLUDING NEW VALUES;
Materialized Views
CREATE MATERIALIZED VIEW fournisseurs_pays BUILD IMMEDIATE
REFRESH FAST
ENABLE QUERY REWRITE AS select pays,count(*) from fournisseurs
group by pays;
Materialized Views
select pays,count(*) from fournisseurs group by pays;
Elapsed: 00:00:00.00 Execution Plan
---
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=16 Bytes=352) 1 0 MAT_VIEW REWRITE ACCESS (FULL) OF 'FOURNISSEURS_PAYS' (MAT _VIEW REWRITE) (Cost=3 Card=16 Bytes=352)