Académique Documents
Professionnel Documents
Culture Documents
MODÉLISATION DIMENSIONNELLE
Le fondement du datawarehouse
2
MODÉLISATION DIMENSIONNELLE
Le fondement du datawarehouse
3
QUI SOMMES NOUS?
• Jean-Pierre Riehl
• Pratice Manager SQL – Azeo
• MVP SQL Server
• 5+ années sur le décisionnel Microsoft
• Blog : http://blog.djeepy1.net
• Florian Eiden
• Architecte Décisionnel - MCNEXT
• 5+ années sur le décisionnel Microsoft
• Blog : http://www.fleid.fr
MCNEXT (ESPACE PARTENAIRE)
• En Bref
o 100% Microsoft
o 150 collaborateurs / 40% de croissance
o 4 pôles : BI, SharePoint, .NET, BizTalk
o Présent à Paris, Lyon et Genève
• Accompagnement global
o Maîtrise d’ouvrage / Maitrise d’œuvre
5
Jean-Pierre Riehl – Responsable Practice SQL
http://blog.djeepy1.net
• MVP SQL Server
• MCITP : Business Intelligence Developer 2008
• MCITP : Database Administrator 2008
• MCPD : Enterprise Application
6
POURQUOI CETTE PRÉSENTATION
Compétences
Finance Métier
SQL RH
Compétences Retail
SSIS
Techniques
SSAS ? BTP
Transport
SSRS
MDX …
…
AGENDA
1. Modélisation 2. Concepts
dimensionnelle avancés
OBJECTIFS DU DÉCISIONNEL
•Tout commence dans le monde applicatif…
1ER BESOIN MÉTIER
BESOIN : HISTORISATION
2ÈME BESOIN MÉTIER
BESOIN : CENTRALISATION
3ÈME BESOIN MÉTIER
BESOIN : ANALYSER
LE DATAWAREHOUSE
5 ÉTAPES POUR 3 BESOINS
•Préparation
• Extraction
• Nettoyage
• Stockage
– Archivage
– Historisation
•Présentation
• Analyse
• Reporting
17
LES ÉTAPES DU DÉCISIONNEL
Extraction
Nettoyage
LES ÉTAPES DU DÉCISIONNEL
Extraction Stockage
Nettoyage Analyse
LES ÉTAPES DU DÉCISIONNEL
Reporting
Extraction Stockage
Nettoyage Analyse
MÉTAPHORE DU RESTAURANT
Préparation : Cuisine
• Objectifs : préparer, transformer
• Caractéristiques : rigueur, constance
• Source :
21
http://www.kimballgroup.com/html/articles_search/articles2004/0401IE.html?TrkID=IE200401
APPROCHES ACADÉMIQUES
LES APPROCHES ACADÉMIQUES
•Les 2 grandes philosophies actuelles
Kimball Inmon
Processus Bottom-Up Top-Down
Organisation Datamarts Datawarehouse
Schématisation Etoile Flocon
Bill Inmon
Corporate Information Factory
www.inmoncif.com
INMON : TOP DOWN
Allez les gars,
focus, on y met
Et hop!
quoi dans ce
machin?
Les ventes!
Le stock!
La RH!
Les achats!
25
KIMBALL: BOTTOM UP
Bon Alfred tu
veux quoi?
Les ventes!
Et hop!
Et toi Bob tu
veux quoi?
Le stock!
Et hop!
26
LE POINT COMMUN?
Bon Alfred tu
Allez les gars, veux quoi?
focus, on y met
quoi dans ce
machin?
Et pas :
Hum, voyons ce
qu’il y a là dedans
ORGANISATION : INMON
Datamarts
Zone de
préparation
(Staging)
Datawarehouse
ORGANISATION : KIMBALL
Datamarts
Zone de
préparation
(Staging)
Bus
Datawarehouse
LA MINUTE HYPE
LES TENDANCES
Big Data
• HADOOP : Framework de stockage parallèle de données
massives et pas forcément structurées
• HIVE : Framework de requêtage SQL sur HADOOP
• Limité, Design to Fail, peu d’outils…
• …Mais des données à prendre en compte
NoSQL
• « Not Only SQL »
• Corollaire du Big Data
1 : La mesure
LE DÉCISIONNEL EN 3 MOTS
2 : Les dimensions
LE DÉCISIONNEL EN 3 MOTS
3 : Les faits
Fact
Table de Faits
Il s'est passé quelque chose
Il s'est passé autre chose
Il s'est passé quelque chose d'autre
ON ORDONNE
Table de Faits
Quand Où
Hier Ici Il s'est passé quelque chose
Hier Là bas Il s'est passé autre chose
Aujourd'hui Ici Il s'est passé quelque chose d'autre
ON COMPTE
Table de Faits
Dimension Produit
PREMIER ÉLÉMENT DE DESIGN
Dimension Temps Dimension Magasin
Id Temps Jour Mois Année Id Magasin Code Magasin Région
20111212 12/12/2011 Décembre 2012 22 AAZ Ile de France
20111213 13/12/2011 Décembre 2012 35 AGY Ile de France
56 BGH Lorraine
Dimension Magasin
Id Produit Code Produit Nom Catégorie
5 Z947342983 Lapin Malin Jouet
8 Z238943135 Saucisson sec Alimentaire
12 E238953123 Parapluie Accessoire
PROBLÉMATIQUE
•Un magasin a des attributs uniques
• Un code
• Un nom
• Une adresse
•…
Table de
Dimension
Table de Table de
Dimension Dimension
Table de Faits
Table de Table de
Dimension Dimension
INMON : SCHÉMA EN FLOCON
Table de Table de
Dimension
Table de Dimension
Dimension
Table de
Dimension
Table de Table de
Dimension Dimension
Table de Faits
Table de
Dimension
Table de Table de
Dimension Dimension
Table de
Dimension Table de
Dimension
SCHÉMATISATION
Etoile Flocon
DimOrganisation DimOrganisationN3
ID Orga Niveau 3 Orga Niveau 2 Orga Niveau 1 ID Orga Niveau 3 ID Orga N2
1 Paris France Europe 1 Paris 26
2 Lyon France Europe 2 Lyon 26
3 Berlin Allemagne Europe 3 Berlin 87
DimOrganisationN2
ID Orga Niveau 2 ID Orga N1
• Avantage : lisibilité et 26
87
France
Allemagne
2
2
performance des requêtes
DimOrganisationN1
SELECT
ID Orga Niveau 1
[Orga Niveau 3]
,[Orga Niveau 2] 2 Europe
,[Orga Niveau 1]
FROM DimOrganisation
Notez la ressemblance
48
QUAND FLOCONNER?
•Si on préfère les flocons aux étoiles
• Mieux vaut jouer avec des outils qu’on aime!
QUAND FLOCONNER?
•Si on est en étoile : Objectifs Régions
Famille
– Hiérarchies de la même
dimension qui peuvent Catégorie Marque
agréger sur des membres
supérieurs différents Produit
Collaborateurs
http://road-blogs.blogspot.com/2011/05/when-and-how-to-snowflake-dimension.html
SCHÉMATISATION
Data Vault
Hubs
Links
Satellites
LE PROCESSUS DE MODÉLISATION
PROCESSUS DE MODÉLISATION
Sponsor 1 2 3 4
•0 : Le sponsor
Identifier l’utilisateur, celui qui sait, celui a le dernier mot,
sinon ça ne sert à rien
53
Sponsor Quoi 2 3 4
•2 : Déclarer le grain
> Que représente la ligne dans la table de
fait?
o 1 ligne d’un ticket de caisse?
o Le total du ticket de caisse?
o Le stock en fin de semaine du magasin?
• Inventaire en Magasin :
o Date
o Produit
o Magasin
Sponsor Quoi Grain Axes Mesures
Dimension Date
Clé Date
Date Instantané de stock
Jour de la semaine Clé Date Dimension
… Clé Produit Dimension
Dimension Magasin
Clé Magasin Dimension
Clé Magasin
Quantité Disponible Mesure
Nom du Magasin
N° du Magasin
Dimension Produit Région Commerciale
Clé Produit …
Description du Produit
Code Produit
Code Marque
Libellé Marque
Taille
Poids
…
58
DEUXIÈME DATAMART
•Ventes dans le magasin
Dimension Date
Clé Date
Date
Jour de la semaine
…
Dimension Magasin
Clé Magasin
Nom du Magasin
N° du Magasin
Dimension Produit Région Commerciale
Clé Produit …
Description du Produit Fait de transaction
Code Produit Clé Date Dimension
Code Marque Clé Produit Dimension Dimension Promotion
Libellé Marque Clé Magasin Dimension Clé Promotion
Taille Clé Promotion Dimension Nom de la Promotion
Poids Numéro de Transaction Dim. Dégénérée Type de Réduction
… Quantité Vendue Mesure Date de début
Prix de Vente Unitaire Mesure Date de fin
Coût Unitaire Mesure Type de Coupon
Marge Brute Totale Mesure …
59
EXEMPLES FONCTIONNELSc’est
Ah ça
bien
Et c’est
propre
rangé! !
•Et hop, un datawarehouse!
Dimension Date
Clé Date
Date Instantané de stock
Jour de la semaine Clé Date Dimension
… Clé Produit Dimension
Dimension Magasin
Clé Magasin Dimension
Clé Magasin
Quantité Disponible Mesure
Nom du Magasin
N° du Magasin
Dimension Produit Région Commerciale
Clé Produit …
Description du Produit Fait de transaction
Code Produit Clé Date Dimension
Code Marque Clé Produit Dimension Dimension Promotion
Libellé Marque Clé Magasin Dimension Clé Promotion
Taille Clé Promotion Dimension Nom de la Promotion
Poids Numéro de Transaction Dim. Dégénérée Type de Réduction
… Quantité Vendue Mesure Date de début
Prix de Vente Unitaire Mesure Date de fin
Coût Unitaire Mesure Type de Coupon
Marge Brute Totale Mesure …
60
IMPLÉMENTATION DANS
SQL SERVER
SQL SERVER 2012
•Trois moteurs pour modéliser
Capacité de modélisation des Etoile Flocon Data Vault
technologies Microsoft
SQL Server
Moteur Relationnel 5/5 5/5 5/5
BISM Multidimensionnel
(SSAS) 5/5 4/5 0/5
BISM Tabular
(PowerPivot) 5/5 4/5 2/5
AGENDA
1. Modélisation 2. Concepts
dimensionnelle avancés
CONCEPTS AVANCÉS
Gestion des NULL
Semi-additivité
Pondération
Distinct Count Gestion des devises
Temporal Snapshot
SCD
Surrogate Keys
Factless Tables Junk Dimension
Ragged Hierarchies
Many-to-Many Sécurité dynamique
SCD : SLOWLY CHANGING DIMENSIONS
• Besoin
• Les dimensions ne sont pas immuables : les attributs peuvent changer
• 2 types de clefs
29 AA-56 Lapin Malin Boucherie
66
SCD : SLOWLY CHANGING DIMENSIONS
67
SCD : SLOWLY CHANGING DIMENSIONS
ETL
Clé Produit Code Produit Nom Rayon Date Début Date Fin
29 AA-56 Lapin Malin Jouet 01/01/2010 31/03/2011
35 AA-56 Lapin Malin Boucherie 01/04/2011 (NULL)
Instantané de stock
Clé Date du Stock Clé Produit Quantité
28/02/2011 29 8
31/03/2011 29 7
30/04/2011 35 6
31/05/2011 35 9
68
SCD : SLOWLY CHANGING DIMENSIONS
Clé Produit Code Produit Nom Rayon Date Début Date Fin
29 AA-56 Lapin Malin Jouet 01/01/2010 31/03/2011
35 AA-56 Lapin Malin Boucherie 01/04/2011 (NULL)
69
SCD : SLOWLY CHANGING DIMENSIONS
o Et les hybrides
Clé Produit Code Produit Nom Rayon Ancien Rayon Date Début Date Fin
29 AA-56 Lapin Malin Jouet (NULL) 01/01/2010 31/03/2011
35 AA-56 Lapin Malin Boucherie Jouet 01/04/2011 (NULL)
• Et l’évolution rapide ? Si la granularité temporelle des changements rejoint celle des tables de fait. Il faut
créer une nouvelle dimension contenant les attributs concernés: tout rentre dans l’ordre!
70
SEMI-ADDITIVITÉ
Problématique : analyse de stock
Toulouse Paris TOTAL
55 30
5 déc. 85
43 32
12 déc. 75
Décembre X
98 X
62
X
160
SEMI-ADDITIVITÉ
Solution :
Problématique :
•Un fait référence un membre de la
dimension qui n’existe pas
• Ex : une vente remonte sur un nouveau produit
• dans la base : NULL ou FK invalide
Solution :
•Mise en place de l’Unknow Member
Alternatives :
•Création de membre « spéciaux »
•Traitement dans l’ETL
Problématique :
•Un fait est rattaché à plusieurs membres
d’une dimension
• Ex : promotion sur une vente (fidélité, remise, etc.)
Pistes :
•En relationnel, on passe par une table
d’association
MANY-TO-MANY
Solution :
•On met une table pour faire le pont entre
les ventes et les promotions
•On la transforme en table de faits
• Bridge-factless-fact-table
•SSAS fait le reste : Many-To-Many relation
Problématique :
•J’ai de nombreux axes d’analyse à faible
cardinalité
• Ex : genre, situation matrimoniale, EstDecideur, etc.
•Ajouter des dimensions pour chaque axe
entraine :
• Une complexité pour le moteur d’agrégation
• Une complexité pour l’utilisateur
JUNK DIMENSIONS
Solutions :
• Ajouter les valeurs dans la table de faits
dimension factuelle (ou dimension dégénérée)
Des questions ?