SlideShare une entreprise Scribd logo
Les règles d'or du Data
Modeling avec Power BI
Joël Crest
Practice Leader Data & Business Intelligence
Thank you Sponsors
You are Community
#SQLSatParis – SQLSaturday Paris 2018Un événement
Joël Crest
Practice Leader
Data & Business Intelligence
@joelcrest
www.bonjourjoel.com
Speaker
#SQLSatParis – SQLSaturday Paris 2018Un événement
Agenda
1. Comment est stockée la donnée ?
2. Préparation de la donnée
3. Relations
4. Time Intelligence
Comment est stockée la
donnée ?
#SQLSatParis – SQLSaturday Paris 2018Un événement
Qu'est-ce qu'un Data Model ?
• L'ensemble des tables et des relations exposées
dans un outil analytique / BI
• La structure des tables va définir leur rôle
• Les relations entre les données vont définir le
mode de propagation du contexte de filtre
#SQLSatParis – SQLSaturday Paris 2018Un événement
Qu'est-ce qu'un "bon" Data Model ?
• Réutilisable
• Evolutif
• Performant
• Lisible
• Simplifie l'écriture du code DAX
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• Moteur de stockage de SSAS, Power Pivot, Power
BI
• Moteur In-Memory
• Base de données orientée colonnes
• Nom officiel : "xVelocity In-Memory Analytics
Engine"
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• BD orientée lignes
ID Produit Sous-Catégorie Catégorie Couleur Prix
unitaire
Libellé
IPXII Smartphone Technologie Or 10000€ iPhoneXII
MKK Téléviseur Technologie Noir 3000€ Mon4K
PS6 Console de jeux Loisir Bronze 2000€ PS6
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• BD orientée lignes = accès horizontal
IPXII Smartphone Technologie Or 10000€ iPhoneXII
MKK Téléviseur Technologie Noir 3000€ Mon4K
PS6 Console de jeux Loisir Bronze 2000€ PS6
ID Produit Sous-Catégorie Catégorie Couleur Prix
unitaire
Libellé
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• BD orientée lignes = accès horizontal
• Les données d'une même ligne sont stockées
ensemble
• L'accès à la ligne est réalisé via une table d'index
IPXII Smartphone Technologie Or 10000€ iPhoneXII
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
BD orientée colonnes
ID Produit Sous-Catégorie Catégorie Couleur Prix
unitaire
Libellé
IPXII Smartphone Technologie Or 10000€ iPhoneXII
MKK Téléviseur Technologie Noir 3000€ Mon4K
PS6 Console de jeux Loisir Bronze 2000€ PS6
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• BD orientée colonnes = accès vertical
ID Produit
IPXII
MKK
PS6
Sous-Catégorie
Smartphone
Téléviseur
Console de jeux
Catégorie
Technologie
Technologie
Loisir
Couleur
Or
Noir
Bronze
Prix
unitaire
10000€
3000€
2000€
Libellé
iPhoneXII
Mon4K
PS6
#SQLSatParis – SQLSaturday Paris 2018Un événement
VertiPaq
• BD orientée colonnes = accès vertical
• Le stockage des données d'une même
colonne est optimisé
• L'accès aux données d'une même ligne
est plus long
Couleur
Or
Noir
Bronze
#SQLSatParis – SQLSaturday Paris 2018Un événement
Quelle est la ressource la plus précieuse ?
RAM !
#SQLSatParis – SQLSaturday Paris 2018Un événement
Pourquoi optimiser la RAM ?
• Les accès RAM sont plus rapide que I/O sur disque
• On peut appliquer des process de compression /
decompression à la volée
#SQLSatParis – SQLSaturday Paris 2018Un événement
Cardinalité
Taille
XL
L
L
M
M
M
S
L
Order ID
0005210C
0000002M
0002313X
0030187Z
0932104F
1093842X
0000340S
0230293C
#SQLSatParis – SQLSaturday Paris 2018Un événement
Compression de données
• La donnée va être encodée
• Deux techniques d'encodage
• Dictionary Encoding
• RLE = Run Length Encoding (encodage par plage)
#SQLSatParis – SQLSaturday Paris 2018Un événement
Dictionary Encoding
Taille
XL
L
L
M
M
M
S
L
#SQLSatParis – SQLSaturday Paris 2018Un événement
Dictionary Encoding
ID Taille
1 XL
2 L
3 M
4 S
Taille
1
2
2
3
3
3
4
2
#SQLSatParis – SQLSaturday Paris 2018Un événement
Dictionary Encoding
• Le type de données n'est pas important
• La cardinalité est importante
ID Taille
1 XL
2 L
3 M
4 S
#SQLSatParis – SQLSaturday Paris 2018Un événement
Run Length Encoding
Taille Index Longueur
XL 1 1
L 2 2
M 4 3
S 7 1
L 8 1
Taille
XL
L
L
M
M
M
S
L
#SQLSatParis – SQLSaturday Paris 2018Un événement
Run Length Encoding
Taille Index Longueur
XL 1 1
L 2 3
M 5 3
S 8 1
Taille
XL
L
L
L
M
M
M
S
#SQLSatParis – SQLSaturday Paris 2018Un événement
Run Length Encoding
• L'ordre de tri est important
Taille Index Longueur
XL 1 1
L 2 3
M 5 3
S 8 1
Préparation de la
donnée
#SQLSatParis – SQLSaturday Paris 2018Un événement
Rôle des tables
#SQLSatParis – SQLSaturday Paris 2018Un événement
Tables de dimensions
• Ce sont les "lookup tables"
• A "dénormaliser" si possible (produit, catégorie,
sous-catégorie)
#SQLSatParis – SQLSaturday Paris 2018Un événement
Tables de faits
• Contrôler les relations "devinées" par Power BI
#SQLSatParis – SQLSaturday Paris 2018Un événement
Principes
• Tables de dimensions
• Nombre réduit de lignes
• Nombre de colonnes important
• Tables de faits :
• Nombre important de lignes (plusieurs millions)
• Nombre réduit de colonnes
#SQLSatParis – SQLSaturday Paris 2018Un événement
Table de mesure
• Regroupement de mesures dans une ou plusieurs
tables
• Permet d'éviter les aggregations par défaut
• Offre plus de lisibilité à l'utilisateur
• Les mesures n'appartiennent pas à une table précise
#SQLSatParis – SQLSaturday Paris 2018Un événement
Règles d'or à appliquer
• Tables de dimensions
• Dénormaliser les dimensions liées les unes aux autres
• Tables de faits
• Supprimer les colonnes inutiles
• Supprimer les colonnes de grande cardinalité (clés primaires de la table de fait)
• Trier la table
• Toutes les tables
• Supprimer les aggregations par défaut
• Typer la donnée (dans l'éditeur Power Query)
• Donner un nom "métier" aux tables et colonnes
• Créer des tables de mesures
Relations
#SQLSatParis – SQLSaturday Paris 2018Un événement
Relation "one-to-many"
• Le côté "one" est la table de dimension
• Le côté "many" est la table de faits
(ou une table de
dimension dans le cas
d'un modèle en flocon)
#SQLSatParis – SQLSaturday Paris 2018Un événement
Relation "many-to-many" ?
• Livre : un ou plusieurs auteurs
• Auteur : un ou plusieurs livres
#SQLSatParis – SQLSaturday Paris 2018Un événement
Relation "many-to-many" ?
• Non gérée par Power BI
• La solution : utiliser une table intermédiaire
(bridge)
• exemple : auteur / livre
• ID auteur / ID livre
#SQLSatParis – SQLSaturday Paris 2018Un événement
Bi-directional cross-filtering
• Oui mais pas dans tous les cas !
• Plus le modèle est complexe, plus dangereuse est
l'utilisation du bi-directional cross-filtering
• Éviter si relation avec table de dates
• Eviter si relation entre table de faits et table de
dimension liée à une autre table de faits
#SQLSatParis – SQLSaturday Paris 2018Un événement
Bi-directional cross-filtering
• Solution 1 : mesure DAX
Nb livres vendus =
CALCULATE (
COUNT ( Ventes[Livre] );
SUMMARIZE ( 'Livres - Auteurs'; Livres[Titre] )
)
#SQLSatParis – SQLSaturday Paris 2018Un événement
Bi-directional cross-filtering
• Solution 2 : Relation à double sens
Time Intelligence
#SQLSatParis – SQLSaturday Paris 2018Un événement
Table de dates
• Table de dimension particulière
• Dans tout modèle de données, la table Date a une
importance car elle garantit que la période
concernée peut être filtrée sur des dates
adjacentes
#SQLSatParis – SQLSaturday Paris 2018Un événement
Table de dates
• Par défaut, Power BI crée à la volée autant de table
de dates qu'il y a de champs de type date dans le
modèle de données
#SQLSatParis – SQLSaturday Paris 2018Un événement
Table de dates
• Toutes les fonctions Time Intelligence acceptent en
paramètre une table contenant une colonne Date
• Les fonctions Time Intelligence remplacent le filtre de
date existant par la plage de dates calculée
#SQLSatParis – SQLSaturday Paris 2018Un événement
Pourquoi a-t-on besoin d'une table Date ?
• Le premier cas, le résultat est l'intersection de
DATESYTD avec le contexte de filtre
• Dans le second cas (table Date), le contexte de filtre
est redéfini : ALL(Calendrier[Date]) est
automatiquement ajouté
#SQLSatParis – SQLSaturday Paris 2018Un événement
Marquer une table en tant que table Date
• Dans l'interface Power BI
• Sélectionner l'option Marquer comme table de dates
• Choisir une colonne (type Date, valeurs adjacentes)
• La colonne choisie est validée (ou rejetée) lors de la
sélection
Data Modeling Power BI [SqlSat '18]

Contenu connexe

Similaire à Data Modeling Power BI [SqlSat '18]

SQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
SQLSaturday Paris 2014 - Bien choisir sa plate-forme de donnéesSQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
SQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
GUSS
 
SQL Saturday Paris 2018 - DBA Tooling - PGeiger
SQL Saturday Paris 2018 - DBA Tooling - PGeigerSQL Saturday Paris 2018 - DBA Tooling - PGeiger
SQL Saturday Paris 2018 - DBA Tooling - PGeiger
Philippe Geiger
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
Oxalide
 
Le reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usageLe reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usage
Michael Nokhamzon
 
JSS2014 - StreamInsight
JSS2014 - StreamInsightJSS2014 - StreamInsight
JSS2014 - StreamInsight
GUSS
 
Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage
Microsoft Technet France
 
Paris Tug - Session d'octobre
Paris Tug - Session d'octobreParis Tug - Session d'octobre
Paris Tug - Session d'octobre
Geoffrey Felix
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesJean-Marc Dupont
 
Deagital smart data proposal fr
Deagital smart data proposal frDeagital smart data proposal fr
Deagital smart data proposal fr
Jose Torres
 
Big Data & Real Time #JSS2014
Big Data & Real Time #JSS2014Big Data & Real Time #JSS2014
Big Data & Real Time #JSS2014
Romain Casteres
 
Projet Jaspersoft BI pour une société multi-enseignes
Projet Jaspersoft BI pour une société multi-enseignesProjet Jaspersoft BI pour une société multi-enseignes
Projet Jaspersoft BI pour une société multi-enseignes
Audaxis
 
JSS2014 - Big Data et Real Time
JSS2014 - Big Data et Real TimeJSS2014 - Big Data et Real Time
JSS2014 - Big Data et Real Time
GUSS
 
Jss 2015 Stream Analytics
Jss 2015   Stream AnalyticsJss 2015   Stream Analytics
Jss 2015 Stream Analytics
Michel HUBERT
 
Jss 2015 - Microsoft Stream analytics
Jss 2015 -  Microsoft Stream analyticsJss 2015 -  Microsoft Stream analytics
Jss 2015 - Microsoft Stream analytics
Georges Damien
 
[JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics [JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics
GUSS
 
Point de vue expert: la stratégie “ comptoir des données”
Point de vue expert: la stratégie “ comptoir des données”Point de vue expert: la stratégie “ comptoir des données”
Point de vue expert: la stratégie “ comptoir des données”
Denodo
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
Mehdi TAZI
 
Procima deck 7 May 2014
Procima deck 7 May 2014Procima deck 7 May 2014
Procima deck 7 May 2014
Marc-Eric LaRocque
 
J1 T1 5 - Stream Analytics - Cédric Charlier
J1 T1 5 - Stream Analytics - Cédric CharlierJ1 T1 5 - Stream Analytics - Cédric Charlier
J1 T1 5 - Stream Analytics - Cédric Charlier
MS Cloud Summit
 
GraphTour Paris - Cas d'usages populaires Neo4j
GraphTour Paris - Cas d'usages populaires Neo4jGraphTour Paris - Cas d'usages populaires Neo4j
GraphTour Paris - Cas d'usages populaires Neo4j
Neo4j
 

Similaire à Data Modeling Power BI [SqlSat '18] (20)

SQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
SQLSaturday Paris 2014 - Bien choisir sa plate-forme de donnéesSQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
SQLSaturday Paris 2014 - Bien choisir sa plate-forme de données
 
SQL Saturday Paris 2018 - DBA Tooling - PGeiger
SQL Saturday Paris 2018 - DBA Tooling - PGeigerSQL Saturday Paris 2018 - DBA Tooling - PGeiger
SQL Saturday Paris 2018 - DBA Tooling - PGeiger
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
Le reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usageLe reporting bi dans tous ses états quel outil pour quel usage
Le reporting bi dans tous ses états quel outil pour quel usage
 
JSS2014 - StreamInsight
JSS2014 - StreamInsightJSS2014 - StreamInsight
JSS2014 - StreamInsight
 
Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage Le reporting BI dans tous ses états / quel outil pour quel usage
Le reporting BI dans tous ses états / quel outil pour quel usage
 
Paris Tug - Session d'octobre
Paris Tug - Session d'octobreParis Tug - Session d'octobre
Paris Tug - Session d'octobre
 
Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
Deagital smart data proposal fr
Deagital smart data proposal frDeagital smart data proposal fr
Deagital smart data proposal fr
 
Big Data & Real Time #JSS2014
Big Data & Real Time #JSS2014Big Data & Real Time #JSS2014
Big Data & Real Time #JSS2014
 
Projet Jaspersoft BI pour une société multi-enseignes
Projet Jaspersoft BI pour une société multi-enseignesProjet Jaspersoft BI pour une société multi-enseignes
Projet Jaspersoft BI pour une société multi-enseignes
 
JSS2014 - Big Data et Real Time
JSS2014 - Big Data et Real TimeJSS2014 - Big Data et Real Time
JSS2014 - Big Data et Real Time
 
Jss 2015 Stream Analytics
Jss 2015   Stream AnalyticsJss 2015   Stream Analytics
Jss 2015 Stream Analytics
 
Jss 2015 - Microsoft Stream analytics
Jss 2015 -  Microsoft Stream analyticsJss 2015 -  Microsoft Stream analytics
Jss 2015 - Microsoft Stream analytics
 
[JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics [JSS2015] Architectures Lambda avec Azure Stream Analytics
[JSS2015] Architectures Lambda avec Azure Stream Analytics
 
Point de vue expert: la stratégie “ comptoir des données”
Point de vue expert: la stratégie “ comptoir des données”Point de vue expert: la stratégie “ comptoir des données”
Point de vue expert: la stratégie “ comptoir des données”
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
 
Procima deck 7 May 2014
Procima deck 7 May 2014Procima deck 7 May 2014
Procima deck 7 May 2014
 
J1 T1 5 - Stream Analytics - Cédric Charlier
J1 T1 5 - Stream Analytics - Cédric CharlierJ1 T1 5 - Stream Analytics - Cédric Charlier
J1 T1 5 - Stream Analytics - Cédric Charlier
 
GraphTour Paris - Cas d'usages populaires Neo4j
GraphTour Paris - Cas d'usages populaires Neo4jGraphTour Paris - Cas d'usages populaires Neo4j
GraphTour Paris - Cas d'usages populaires Neo4j
 

Plus de Joël Crest

aOS Aix Marseille 2017 IoT
aOS Aix Marseille 2017 IoTaOS Aix Marseille 2017 IoT
aOS Aix Marseille 2017 IoT
Joël Crest
 
Global Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph APIGlobal Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph API
Joël Crest
 
VivaTech 2018 Power BI
VivaTech 2018 Power BIVivaTech 2018 Power BI
VivaTech 2018 Power BI
Joël Crest
 
aOS Aix Marseille 2018 Power BI
aOS Aix Marseille 2018 Power BIaOS Aix Marseille 2018 Power BI
aOS Aix Marseille 2018 Power BI
Joël Crest
 
Power Saturday 2018 - Actionnable BI
Power Saturday 2018 - Actionnable BIPower Saturday 2018 - Actionnable BI
Power Saturday 2018 - Actionnable BI
Joël Crest
 
Power saturday 2019 - Power BI + IA = AutoML
Power saturday 2019 - Power BI + IA = AutoMLPower saturday 2019 - Power BI + IA = AutoML
Power saturday 2019 - Power BI + IA = AutoML
Joël Crest
 
aOS Aix Marseille 2019 Power BI + ML = AutoML
aOS Aix Marseille 2019 Power BI + ML = AutoMLaOS Aix Marseille 2019 Power BI + ML = AutoML
aOS Aix Marseille 2019 Power BI + ML = AutoML
Joël Crest
 
Power BI Premium : pour quels usages ?
Power BI Premium : pour quels usages ?Power BI Premium : pour quels usages ?
Power BI Premium : pour quels usages ?
Joël Crest
 
Monitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BIMonitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BI
Joël Crest
 

Plus de Joël Crest (9)

aOS Aix Marseille 2017 IoT
aOS Aix Marseille 2017 IoTaOS Aix Marseille 2017 IoT
aOS Aix Marseille 2017 IoT
 
Global Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph APIGlobal Azure Bootcamp 2018 Power BI + MS Graph API
Global Azure Bootcamp 2018 Power BI + MS Graph API
 
VivaTech 2018 Power BI
VivaTech 2018 Power BIVivaTech 2018 Power BI
VivaTech 2018 Power BI
 
aOS Aix Marseille 2018 Power BI
aOS Aix Marseille 2018 Power BIaOS Aix Marseille 2018 Power BI
aOS Aix Marseille 2018 Power BI
 
Power Saturday 2018 - Actionnable BI
Power Saturday 2018 - Actionnable BIPower Saturday 2018 - Actionnable BI
Power Saturday 2018 - Actionnable BI
 
Power saturday 2019 - Power BI + IA = AutoML
Power saturday 2019 - Power BI + IA = AutoMLPower saturday 2019 - Power BI + IA = AutoML
Power saturday 2019 - Power BI + IA = AutoML
 
aOS Aix Marseille 2019 Power BI + ML = AutoML
aOS Aix Marseille 2019 Power BI + ML = AutoMLaOS Aix Marseille 2019 Power BI + ML = AutoML
aOS Aix Marseille 2019 Power BI + ML = AutoML
 
Power BI Premium : pour quels usages ?
Power BI Premium : pour quels usages ?Power BI Premium : pour quels usages ?
Power BI Premium : pour quels usages ?
 
Monitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BIMonitorez votre solution IoT avec Stream Analytics et Power BI
Monitorez votre solution IoT avec Stream Analytics et Power BI
 

Dernier

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 

Dernier (9)

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 

Data Modeling Power BI [SqlSat '18]

  • 1. Les règles d'or du Data Modeling avec Power BI Joël Crest Practice Leader Data & Business Intelligence
  • 2. Thank you Sponsors You are Community
  • 3. #SQLSatParis – SQLSaturday Paris 2018Un événement Joël Crest Practice Leader Data & Business Intelligence @joelcrest www.bonjourjoel.com Speaker
  • 4. #SQLSatParis – SQLSaturday Paris 2018Un événement Agenda 1. Comment est stockée la donnée ? 2. Préparation de la donnée 3. Relations 4. Time Intelligence
  • 5. Comment est stockée la donnée ?
  • 6. #SQLSatParis – SQLSaturday Paris 2018Un événement Qu'est-ce qu'un Data Model ? • L'ensemble des tables et des relations exposées dans un outil analytique / BI • La structure des tables va définir leur rôle • Les relations entre les données vont définir le mode de propagation du contexte de filtre
  • 7. #SQLSatParis – SQLSaturday Paris 2018Un événement Qu'est-ce qu'un "bon" Data Model ? • Réutilisable • Evolutif • Performant • Lisible • Simplifie l'écriture du code DAX
  • 8. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • Moteur de stockage de SSAS, Power Pivot, Power BI • Moteur In-Memory • Base de données orientée colonnes • Nom officiel : "xVelocity In-Memory Analytics Engine"
  • 9. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • BD orientée lignes ID Produit Sous-Catégorie Catégorie Couleur Prix unitaire Libellé IPXII Smartphone Technologie Or 10000€ iPhoneXII MKK Téléviseur Technologie Noir 3000€ Mon4K PS6 Console de jeux Loisir Bronze 2000€ PS6
  • 10. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • BD orientée lignes = accès horizontal IPXII Smartphone Technologie Or 10000€ iPhoneXII MKK Téléviseur Technologie Noir 3000€ Mon4K PS6 Console de jeux Loisir Bronze 2000€ PS6 ID Produit Sous-Catégorie Catégorie Couleur Prix unitaire Libellé
  • 11. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • BD orientée lignes = accès horizontal • Les données d'une même ligne sont stockées ensemble • L'accès à la ligne est réalisé via une table d'index IPXII Smartphone Technologie Or 10000€ iPhoneXII
  • 12. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq BD orientée colonnes ID Produit Sous-Catégorie Catégorie Couleur Prix unitaire Libellé IPXII Smartphone Technologie Or 10000€ iPhoneXII MKK Téléviseur Technologie Noir 3000€ Mon4K PS6 Console de jeux Loisir Bronze 2000€ PS6
  • 13. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • BD orientée colonnes = accès vertical ID Produit IPXII MKK PS6 Sous-Catégorie Smartphone Téléviseur Console de jeux Catégorie Technologie Technologie Loisir Couleur Or Noir Bronze Prix unitaire 10000€ 3000€ 2000€ Libellé iPhoneXII Mon4K PS6
  • 14. #SQLSatParis – SQLSaturday Paris 2018Un événement VertiPaq • BD orientée colonnes = accès vertical • Le stockage des données d'une même colonne est optimisé • L'accès aux données d'une même ligne est plus long Couleur Or Noir Bronze
  • 15. #SQLSatParis – SQLSaturday Paris 2018Un événement Quelle est la ressource la plus précieuse ? RAM !
  • 16. #SQLSatParis – SQLSaturday Paris 2018Un événement Pourquoi optimiser la RAM ? • Les accès RAM sont plus rapide que I/O sur disque • On peut appliquer des process de compression / decompression à la volée
  • 17. #SQLSatParis – SQLSaturday Paris 2018Un événement Cardinalité Taille XL L L M M M S L Order ID 0005210C 0000002M 0002313X 0030187Z 0932104F 1093842X 0000340S 0230293C
  • 18. #SQLSatParis – SQLSaturday Paris 2018Un événement Compression de données • La donnée va être encodée • Deux techniques d'encodage • Dictionary Encoding • RLE = Run Length Encoding (encodage par plage)
  • 19. #SQLSatParis – SQLSaturday Paris 2018Un événement Dictionary Encoding Taille XL L L M M M S L
  • 20. #SQLSatParis – SQLSaturday Paris 2018Un événement Dictionary Encoding ID Taille 1 XL 2 L 3 M 4 S Taille 1 2 2 3 3 3 4 2
  • 21. #SQLSatParis – SQLSaturday Paris 2018Un événement Dictionary Encoding • Le type de données n'est pas important • La cardinalité est importante ID Taille 1 XL 2 L 3 M 4 S
  • 22. #SQLSatParis – SQLSaturday Paris 2018Un événement Run Length Encoding Taille Index Longueur XL 1 1 L 2 2 M 4 3 S 7 1 L 8 1 Taille XL L L M M M S L
  • 23. #SQLSatParis – SQLSaturday Paris 2018Un événement Run Length Encoding Taille Index Longueur XL 1 1 L 2 3 M 5 3 S 8 1 Taille XL L L L M M M S
  • 24. #SQLSatParis – SQLSaturday Paris 2018Un événement Run Length Encoding • L'ordre de tri est important Taille Index Longueur XL 1 1 L 2 3 M 5 3 S 8 1
  • 26. #SQLSatParis – SQLSaturday Paris 2018Un événement Rôle des tables
  • 27. #SQLSatParis – SQLSaturday Paris 2018Un événement Tables de dimensions • Ce sont les "lookup tables" • A "dénormaliser" si possible (produit, catégorie, sous-catégorie)
  • 28. #SQLSatParis – SQLSaturday Paris 2018Un événement Tables de faits • Contrôler les relations "devinées" par Power BI
  • 29. #SQLSatParis – SQLSaturday Paris 2018Un événement Principes • Tables de dimensions • Nombre réduit de lignes • Nombre de colonnes important • Tables de faits : • Nombre important de lignes (plusieurs millions) • Nombre réduit de colonnes
  • 30. #SQLSatParis – SQLSaturday Paris 2018Un événement Table de mesure • Regroupement de mesures dans une ou plusieurs tables • Permet d'éviter les aggregations par défaut • Offre plus de lisibilité à l'utilisateur • Les mesures n'appartiennent pas à une table précise
  • 31. #SQLSatParis – SQLSaturday Paris 2018Un événement Règles d'or à appliquer • Tables de dimensions • Dénormaliser les dimensions liées les unes aux autres • Tables de faits • Supprimer les colonnes inutiles • Supprimer les colonnes de grande cardinalité (clés primaires de la table de fait) • Trier la table • Toutes les tables • Supprimer les aggregations par défaut • Typer la donnée (dans l'éditeur Power Query) • Donner un nom "métier" aux tables et colonnes • Créer des tables de mesures
  • 32.
  • 34. #SQLSatParis – SQLSaturday Paris 2018Un événement Relation "one-to-many" • Le côté "one" est la table de dimension • Le côté "many" est la table de faits (ou une table de dimension dans le cas d'un modèle en flocon)
  • 35. #SQLSatParis – SQLSaturday Paris 2018Un événement Relation "many-to-many" ? • Livre : un ou plusieurs auteurs • Auteur : un ou plusieurs livres
  • 36. #SQLSatParis – SQLSaturday Paris 2018Un événement Relation "many-to-many" ? • Non gérée par Power BI • La solution : utiliser une table intermédiaire (bridge) • exemple : auteur / livre • ID auteur / ID livre
  • 37. #SQLSatParis – SQLSaturday Paris 2018Un événement Bi-directional cross-filtering • Oui mais pas dans tous les cas ! • Plus le modèle est complexe, plus dangereuse est l'utilisation du bi-directional cross-filtering • Éviter si relation avec table de dates • Eviter si relation entre table de faits et table de dimension liée à une autre table de faits
  • 38. #SQLSatParis – SQLSaturday Paris 2018Un événement Bi-directional cross-filtering • Solution 1 : mesure DAX Nb livres vendus = CALCULATE ( COUNT ( Ventes[Livre] ); SUMMARIZE ( 'Livres - Auteurs'; Livres[Titre] ) )
  • 39. #SQLSatParis – SQLSaturday Paris 2018Un événement Bi-directional cross-filtering • Solution 2 : Relation à double sens
  • 40.
  • 42. #SQLSatParis – SQLSaturday Paris 2018Un événement Table de dates • Table de dimension particulière • Dans tout modèle de données, la table Date a une importance car elle garantit que la période concernée peut être filtrée sur des dates adjacentes
  • 43. #SQLSatParis – SQLSaturday Paris 2018Un événement Table de dates • Par défaut, Power BI crée à la volée autant de table de dates qu'il y a de champs de type date dans le modèle de données
  • 44. #SQLSatParis – SQLSaturday Paris 2018Un événement Table de dates • Toutes les fonctions Time Intelligence acceptent en paramètre une table contenant une colonne Date • Les fonctions Time Intelligence remplacent le filtre de date existant par la plage de dates calculée
  • 45. #SQLSatParis – SQLSaturday Paris 2018Un événement Pourquoi a-t-on besoin d'une table Date ? • Le premier cas, le résultat est l'intersection de DATESYTD avec le contexte de filtre • Dans le second cas (table Date), le contexte de filtre est redéfini : ALL(Calendrier[Date]) est automatiquement ajouté
  • 46. #SQLSatParis – SQLSaturday Paris 2018Un événement Marquer une table en tant que table Date • Dans l'interface Power BI • Sélectionner l'option Marquer comme table de dates • Choisir une colonne (type Date, valeurs adjacentes) • La colonne choisie est validée (ou rejetée) lors de la sélection