Data warehouse
Motivations etClick
architecture
to add Text
Conception de la BD support
Alimentation du DW
Exploitation OLAP
Conclusion
1. OLTP et OLAP
Reports
&
Appli. Analysis
Appli.
Appli.
OLAP
ETL
OLTP
DW
DM Aides à
la décision
Introduction DW
Explosion de l ’OLAP
Facteurs économiques & technologiques
18
16
14
CA en Milliards de $
12
10
8
6
4
2
0
1994 1995 1996 1997 1998 1999 2000 2001
Années
Introduction DW
Motivations des entreprises
Besoin des entreprises
accéder à toutes les données de l’entreprise
regrouper les informations disséminées
analyser et prendre des décisions rapidement (OLAP)
Exemples d'applications concernées
Grande distribution : marketing, maintenance, ...
produits à succès, modes, habitudes d’achat
préférences par secteurs géographiques
Bancaire : suivi des clients, gestion de portefeuilles
mailing ciblés pour le marketing
Télécommunications : pannes, fraudes, mobiles, ...
classification des clients, détection fraudes, fuites de clients
Introduction DW
Datawarehouse : définition
Entrepôt de données
Ensemble de données historisées variant dans le temps,
organisé par sujets, consolidé dans une base de données
unique, géré dans un environnement de stockage
particulier, aidant à la prise de décision dans l’entreprise.
Trois fonctions essentielles :
collecte de données de bases existantes et chargement
gestion des données dans l’entrepôt
analyse de données pour la prise de décision
Introduction DW
Architecture type
Introduction DW
2. Concevoir le DW
Export de données des sources
Hétérogènes et variées
Fichiers, BD patrimoniales, Web, …
Définition des vues exportées
Définition d'un schéma global
Intègre les données utiles
S'appuie sur le modèle relationnel
Nécessité d'une gestion de méta-données
Description des sources
Description des vues exportées
Description du schéma global
Conception DW
Organisation par sujet
Les données sont organisées par sujets majeurs:
Clients, produits, ventes, …
Sujet = faits + dimensions
Collecte les données utiles sur un sujet
Exemple: ventes
Synthétise une vue simple des événements à analyser
Exemple: Ventes (N°, produit, période, magasin, )
Détaille la vue selon les dimensions
Exemple: Produits(IDprod, description, couleur, taille, …)
Magasins(IDmag, nom, ville, dept, pays)
Periodes(IDper, année, trimestre, mois, jour)
Conception DW
Schémas en étoile
Une table de faits encadrées par N tables de dimensions
Produits
IDprod
Periodes Table de faits “ventes” description
couleur
IDper taille
année periode
fournisseur
trimestre produit
mois magasin Magasins
jour
IDmag
unités_vendues nom
montant_ventes ville
département
taxes_ventes pays
Conception DW
Schémas en flocons
Raffinement du schéma étoile avec des tables normalisées
par dimensions
Produits Fournisseurs
IDprod IDfour
description description
couleur type
taille Adresse
Ventes IDfour
Avantages
Évite les redondances
Conduit aux constellations (plusieurs tables de faits à dimensions
partagées)
Conception DW
Conception du schéma intégré
Isoler les faits à étudier
Schéma des tables de faits
Définir les dimensions
Axes d'analyse
Normaliser les dimensions
Éclater en plusieurs tables liés par contraintes référentielles
Intégrer l'ensemble
Plusieurs tables de faits partagent quelques tables de dimension
(constellation d’étoiles)
Conception DW
Bilan conception
Le datawarehouse regroupe,
historise, résume les données
de l'entreprise
Le concepteur définit schéma
exportés et intégrés
des choix fondamentaux !
Ciblage essentiel !
Le datamart c’est plus ciblé et
plus petit.
Questions ?
Peut-on ajouter des données au
niveau de l ’entrepôt ?
Conception DW
3. Alimenter le DW
ETL = Extracteur+Intégrateur
Extract + Transform + Load
Extraction
Depuis les bases sources ou les journaux
Différentes techniques
Push = règles (triggers)
Pull = requêtes (queries)
Périodique et répétée
Dater ou marquer les données envoyées
Difficulté
Ne pas perturber les applications OLTP
L'alimentation
Transformation
Accès unifiés aux données
Unification des modèles
Traduction de fichiers, BD réseaux, annuaires en tables
Evolution vers XML (modèle d'échange) plus riche
Unification des accès
Rowset, SQL limité, SQL complet, …
Mapping plus ou moins sophistiqué
Unification des noms
Appeler pareil les mêmes choses et différemment les choses différentes
Application des "business rules"
Elimination des doubles
Jointure, projection, agrégation (SUM, AVG)
Cleaning des données
L'alimentation
Data Cleaning
Valeurs manquantes (nulles)
Ignorer le tuple
Remplacer par une valeur fixe ou par la moyenne
Valeurs erronées ou inconsistantes
Générées en présence de bruits
Détecter par une analyse de voisinage
Écart par rapport à la moyenne
Factorisation en groupes (outliers)
Remplacer par une valeur fixe ou par la moyenne
Inspection manuelle de certaines données possible
L'alimentation
Chargement
Pas de mise à jour
Insertion de nouvelles données
Archivage de données anciennes
De gros volumes
Périodicité parfois longue
Chargement en blocs (bulk load)
Mise à jour des index et résumés
Problèmes
Cohabitation avec l'OLAP ?
Procédures de reprises ?
L'alimentation
4. Gérer l'entrepôt
Base relationnelle
Support de larges volumes (qq 100 gigas à qq téras)
Historisation des données (fenêtres)
Importance des agrégats et chargements en blocs
Base spécialisée
Base multidimensionnelle
Combinaison des deux
Machine support parallèle
Multiprocesseurs
Mémoire partagée, cluster, bus partagé, etc.
Le multidimensionnel
Le multidimensionnel
Dimensions: Indicateurs:
Temps Nombre d’unités vendues
Géographie CA
Produits Coût
Clients Marge.....
Canaux de ventes.....
Le multidimensionnel
Cube de données
Date
NumFou 2002 350 600 300
2001 300 500 400
NumPro 2000 250 200 F2
F1
P1 P2 P3
Le multidimensionnel
Le data cube et les dimensions
Axe d'analyse: La géographie
(Pays - région - ville)
Variables analysées:
Nb unités, CA, marge...
Axe d'analyse: Les produits
(classe, produit)
Axes d'analyse: dimensions
Axe d'analyse: Le temps Variables analysées: indicateurs
(Année, trimestre, mois, semaine)
Le multidimensionnel
La granularité des dimensions
Temps Jours Mois Trimestres Années
Géographie Villes Régions Pays
Produits Numéros Types Gammes Marques
Le multidimensionnel
Exemple
Montant des ventes fonction de (Mois, région, Produit)
Granularité des dimensions :
Type Région Année
Catégorie Pays Trimestre
Produit
Produit Ville Mois Semaine
Magasin Jour
Mois
Le multidimensionnel
La navigation multidimensionnelle
Projection en 2 dimensions Coupe d ’un cube
Produits Produits
pour une région donnée
CA CA
Région
Temps en semaines
Réduction selon 1 dimension
Produits Zoom selon une dimension
Cameroun
CA Est Sud Ouest
Temps en mois Bertoua Ebolowa Dschang
Le multidimensionnel
L'algèbre des cubes
Roll up :
Agréger selon une dimension
Semaine Mois
Drill down :
Détailler selon une dimension
Mois Semaine
Slice et Dice:
Sélection et projection selon 1 axe
Mois = 04-2003 ; Projeter(Région, Produit)
Pivot :
Tourne le cube pour visualiser une face
(Région,Produit)(Région, Mois)
Le multidimensionnel
Les vues d'un cube
Partant d'un cube 3D, il est possible d'agréger selon une
dimension tournante
On obtient un treillis de vues (calculable en SQL)
NumPro, NumFou, Date
NumPro, NumFouNumPro, DateNumFou, Date
NumPro NumFou Date
Le multidimensionnel
Extension de SQL
ROLLUP: CUBE:
SELECT <column list> SELECT <column list>
FROM <table…> FROM <table…>
GROUP BY
GROUP BY
ROLLUP(column_list);
CUBE(column_list);
Crée des agrégats à
n+1 niveaux, n étant le Crée 2n combinaisons
nombre de colonne de d'agrégats, n étant le
groupage nombre de colonne de
n, n-1, n-2,…0 colonnes groupage
Implémentation
Exemple CUBE
Animal Lieu Quantite Animal Lieu Quantite
Chien Paris 12 Chat Paris 18
Chat Paris 18 Chat Naples 9
Tortue Rome 4 Chat - 27
Chien Rome 14 Chien Paris 12
Chat Naples 9 Chien Naples 5
Chien Naples 5 Chien Rome 14
Tortue Naples 1 Chien - 31
Tortue Naples 1
SELECT Animal, Lieu, Tortue Rome 4
SUM(Quantite) as Quantite Tortue - 5
- - 63
FROM Animaux
- Paris 30
GROUP BY Animal, Magasin - Naples 15
WITH CUBE - Rome 18
Implémentation
Exemple ROLLUP
Animal Lieu Quantite Animal Lieu Quantite
Chien Paris 12 Chat Paris 18
Chat Paris 18 Chat Naples 9
Tortue Rome 4
Chat - 27
Chien Rome 14
Chat Naples 9
Chien Paris 12
Chien Naples 5 Chien Naples 5
Tortue Naples 1 Chien Rome 14
Chien - 31
Tortue Naples 1
SELECT Animal, Lieu, Tortue Rome 4
SUM(Quantite) as Quantite Tortue - 5
FROM Animaux - - 63
GROUP BY Animal,Magasin
WITH ROLLUP
Implémentation
Quelques outils OLAP
Oracle Cognos
OLAP API = Datacube Impromptu = Reporting
Express = Analyse Powerplay = Datacube
Report = Reporting Query = Requêtage
Business Object Hyperion
BusinessQuery = Requêtage ESS Base = Base MOLAP
BusinessObject = Requêtage ESS Analysis= Analyse +
+ Analyse + Reporting Datacube
WebIntelligence = Datacube
Implémentation
6. Le marché du BI
BI= Business Intelligence
Data PRO Users Survey
Conclusion
Les Data Trucs
Datawarehouse
entrepôt des données historisées de l'entreprise
Datamart
magasin de données ciblé sur un sujet précis
Datamining
exploration des données afin de découvrir des connaissances
Datacube
cube de présentation d'unités selon 3 dimensions
Datawebhouse
entrepôt des données collectées sur le web
Conclusion