Objectif
Cette page a pour objectif de décrire étape par étape ce qu’il faut effectuer pour importer dans Power BI des données au format csv
qui sont structurées sous forme d’un schéma dimensionnel (au moins une table de faits et ses dimensions). Cette étape a lieu à la fin de la phase d’Extraction - Transformation - Chargement des données (ETL en anglais) pour importer correctement les différents types de données et paramétrer le schéma dimensionnel sous Power BI.
Cette activité s’intègre dans le TP Power BI mais peut se réaliser indépendemment.
Configuration de votre projet Power BI
Assurez-vous d’effectuer les actions de configuration suivantes avant de débuter :
- Configurez l’anglais pour les paramètres régionaux
File
>Options and settings
>Options
- Dans la rubrique
Global
:- Sous-rubrique
Regional Settings
:Application language
>English (United States)
(pour que votre client soit en anglais et pouvoir suivre ce tutoriel).Model Language
>Use application language
(pour permettre la comparaison de chaînes de caractères et la création de champs date en interne).DAX Separators
>(Recommended) Use Standard DAX separators
(pour la gestion des séparateurs dans les requêtes DAX).
- Sous-rubrique
Security
:Map and Filled Map visuals
> cochezUse Map and Filled Map visuals
(pour permettre de dessiner des cartes).
- Sous-rubrique
- Dans la rubrique
Current File
:Regional Settings
>Locale for import
>English (United States)
(car dans notre contexte nos données sont encodées avec des,
pour séparateur de champs et des.
pour le séparateur décimal).
De retour sur l’écran principal, si un bandeau jaune apparaît cliquez sur Apply changes
. Il vous sera peut-être également demandé de redémarrer votre client.
Import des données sources
Commencez par télécharger le jeu de données Pesticides (1.2 Mo).
Lancez PowerBI. Si l’écran d’accueil (sur fond jaune et noir) s’ouvre, fermez-le. Pour importer les données, vous devrez sélectionner dans les menus Get Data
> Text/CSV
> Connect
à chaque fois que l’on vous demandera d’importer un fichier.
Nous allons importer une table de faits, 3 tables de dimensions et une table passerelle. Certaines tables nécessiteront une modification des paramétres d’importation, notamment lorsque les types de champs sont mals reconnus.
Note : Pour chaque étape d’importation, il est essentiel de sélectionner le fichier approprié, de définir la méthode de détection des types de données, et d’appliquer des transformations si nécessaire. Ces étapes garantissent une importation correcte des données dans Power BI.
Table de faits (facts_prelevements.csv
)
La table de faits contient les mesures principales que nous souhaitons analyser. L’utilisation de Data Type Detection
basé sur les 200 premières lignes est suffisante, car le fichier est volumineux. Cependant, la concentration moyenne supérieure à la norme est mal détectée. Nous devons ajuster manuellement en changeant le type de données de la colonne concentration_moyenne_sup_norme
de Whole number
à Decimal Number
.
- Choisissez le fichier
facts_prelevements.csv
. - Laissez le paramètre
Data Type Detection
àBased on first 200 rows
, car le fichier est très volumineux. - Cliquez sur
Transform Data
car Power BI détecte mal le champconcentration_moyenne_sup_norme
qui est toujours à zéro pour les 200 premières lignes.- Dans la nouvelle fenêtre Power Query Editor, sélectionnez la colonne
concentration_moyenne_sup_norme
et dans l’ongletTransform
, passez sonData Type
deWhole number
àDecimal Number
. Demandez à remplacer directement le type de la colonne en sélectionnantReplace current
.- Pour valider, sélectionner l’onglet
Home
>Close & Apply
.
- Pour valider, sélectionner l’onglet
- Dans la nouvelle fenêtre Power Query Editor, sélectionnez la colonne
Dimension station (dim_station.csv
)
La dimension station représente les informations sur les stations de prélèvement. Étant donné que le fichier n’est pas volumineux, nous utilisons Data Type Detection
basé sur l’ensemble du jeu de données. Aucune transformation n’est nécessaire ici, donc nous pouvons charger les données directement.
- Choisissez le fichier
dim_station.csv
. - Mettez le paramètre
Data Type Detection
àBased on entire dataset
, car le fichier n’est pas de taille importante. - Cliquez sur
Load
pour charger les données.
Dimension pesticides (dim_pesticide.csv
)
Dans la dimension pesticides, le fichier nécessite une détection de type basée sur l’ensemble du jeu de données. De plus, la colonne date_retrait
est mal détectée, donc nous la transformons en type de données Date
.
- Choisissez le fichier
dim_pesticide.csv
. - Mettez le paramètre
Data Type Detection
àBased on entire dataset
, car le fichier n’est pas de taille importante. - Cliquez sur
Transform Data
car Power BI détecte mal le type du champdate_retrait
. - Dans la nouvelle fenêtre Power Query Editor, sélectionnez la colonne
date_retrait
, et dans l’ongletTransform
, sélectionnezDate
comme type de données. Demandez à remplacer directement le type de la colonne. - Pour valider, sélectionner l’onglet
Home
>Close & Apply
.
Table passerelle (dim_groupe_fonction.csv
)
La table passerelle, qui relie les pesticides à leurs groupes de fonctions, est directement chargée sans nécessiter de transformation.
- Importez
dim_groupe_fonction.csv
et cliquez surLoad
.
Dimension fonction (dim_fonction.csv
`)
La dimension fonction est également chargée sans nécessiter de transformation.
- Importez
dim_fonction.csv
et cliquez surLoad
.
Configuration des propriétés d’agrégation
Dans la table de faits (facts_prelevements
), nous devons configurer les propriétés d’agrégation pour assurer une utilisation appropriée dans les visualisations. Les attributs station_key
et pesticide_key
ne doivent pas être agrégés (Don't summarize
), car ce sont des clés vers des dimensions. Les dimensions dégénérées telles que respect_norme
et annee
ne doivent pas être agrégées non plus.
En revanche, les mesures telles que norme_dce_prelevement
, concentration_moyenne
, concentration_moyenne_inf_norme
, et concentration_moyenne_sup_norme
doivent être agrégées en tant que moyenne (Average), car ce sont des faits non-additifs.
Power BI ne peut pas connaître les propriétés d’agrégation des faits de votre table de faits, nous allons donc devoir vérifier et éventuellement corriger ses propositions. Dans l’écran Data
sélectionnez la table de faits facts_prelevements
.
Configurez les propriétés d’agrégation des attributs suivants en modifiant la valeur du champ Summarization
:
station_key
etpesticide_key
: il s’agit de clefs vers des dimensions, normalement la propriété doit être déjàDon't summarize
.respect_norme
etannee
: il s’agit de dimensions dégénérées, sélectionnezDon't summarize
.norme_dce_prelevement
,concentration_moyenne
,concentration_moyenne_inf_norme
etconcentration_moyenne_sup_norme
: il s’agit de faits non-additifs, sélectionnezAverage
.
Dans l’écran Model
, on voit qu’il reste des attributs agrégés (symbole sigma) dans les dimensions ce qui n’a pas lieu d’être. En voici une liste non-exhaustive : groupe_fonction_key
, code_sandre
, norme_dce
. Si ce symbole apparait vous pouvez faire les modifications à partir de l’écran Model
:
- Sélectionnez le champ en cliquant dessus.
- Dans l’onglet
Properties
sur la droite de votre écran cliquez en bas surAdvanced
. - Changez la valeur du champ
Summarize by
et choisissezNone
(cela correspond à l’optionDon't summarize
que l’on trouve dans l’écranData
, l’interface n’est pas cohérente).
Configuration du lien entre les tables
Power BI ne crée pas automatiquement un lien entre les tables dim_pesticides
et dim_groupe_fonction
. Nous devons créer manuellement cette relation en liant l’attribut groupe_fonction_key
de la dimension dim_pesticide
à celui de la dimension dim_groupe_fonction
. Il est important de configurer Cross filter direction
sur Single (dim_groupe_fonction filters dim_pesticides)
pour assurer un filtrage correct.
Cette relation manuelle garantit la cohérence dans le schéma dimensionnel.
Le schéma de données comportant toutes les tables importées se voit dans le 3ème écran Model
. Comme Power BI n’a pas su créer le lien entre les tables dim_pesticides et dim_groupe_fonction, vous allez le faire manuellement :
- Créez une relation en sélectionnant l’attribut
groupe_fonction_key
de la dimensiondim_pesticide
vers celui de la dimensiondim_groupe_fonction
. - Configurez
Cross filter direction
surSingle (dim_groupe_fonction filters dim_pesticides)
Désormais votre schéma de données devrait ressembler à l’image ci-dessous. Nous verrons dans une prochaine activité comme lire et concevoir ce type de schéma de données.
Configuration des données géographiques
Correctif sur les noms de régions
Power BI a des soucis pour reconnaître certaines régions si la syntaxe n’est pas de la forme FR,nom_region
. Pour éviter ce problème, nous allons créer dans la table dim_station
une nouvelle colonne dans laquelle les régions auront la syntaxe nécessaire. Nous allons appliquer cette modification dans la définition de la table en modifiant la requête d’import.
Pour cela, dans l’écran Report
faites un clic-droit sur la table dim_station
et choisissez Edit query
:
- Dupliquez la colonne
nom_region
: clic-droit puisDuplicate column
. - Renommez la colonne dupliquée en
libelle_nom_region
. - Sélectionnez maintenant la colonne
nom_region
:- Dans le ruban allez dans l’onglet
Transform
, cliquez sur le boutonFormat
(icône ABC avec un crayon) et sélectionnezAdd Prefix
. - Dans la fenêtre qui s’affiche, tapez
FR,
dans le champValue
.
- Dans le ruban allez dans l’onglet
- Validez la modification :
File
>Apply & Close
.
Catégorisation des données
Pour que dans les tableaux de bord le nom de région soit considéré comme une région par le logiciel (création automatique de zones sur les cartes), il est nécessaire de définir une catégorie géographique pour cet attribut. Toujours dans l’écran Data
, sélectionnez dans la table dim_station
l’attribut nom_region
nouvellement créé. Dans le menu Column tools, choisissez State or Province
pour la propriété Data category
.
Faites de même avec l’attribut nom_commune
en sélectionnant la catégorie City
et avec les attributs longitude
et latitude
en leur affectant la catégorie qui leur correspond.