Au cours de cette séance, nous allons découvrir le logiciel Power BI pour construire un tableau de bord à partir d'un jeu de données.

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 > cochez Use Map and Filled Map visuals (pour permettre de dessiner des cartes).
  • 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 champ concentration_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’onglet Transform, passez son Data Type de Whole number à Decimal Number. Demandez à remplacer directement le type de la colonne en sélectionnant Replace current.
      • Pour valider, sélectionner l’onglet Home > Close & Apply.

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 champ date_retrait.
  • Dans la nouvelle fenêtre Power Query Editor, sélectionnez la colonne date_retrait, et dans l’onglet Transform, sélectionnez Date 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 sur Load.

Dimension fonction (dim_fonction.csv`)

La dimension fonction est également chargée sans nécessiter de transformation.

  • Importez dim_fonction.csv et cliquez sur Load.

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 et pesticide_key : il s’agit de clefs vers des dimensions, normalement la propriété doit être déjà Don't summarize.
  • respect_norme et annee : il s’agit de dimensions dégénérées, sélectionnez Don't summarize.
  • norme_dce_prelevement, concentration_moyenne, concentration_moyenne_inf_norme et concentration_moyenne_sup_norme : il s’agit de faits non-additifs, sélectionnez Average.

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 sur Advanced.
  • Changez la valeur du champ Summarize by et choisissez None (cela correspond à l’option Don't summarize que l’on trouve dans l’écran Data, 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 dimension dim_pesticide vers celui de la dimension dim_groupe_fonction.
  • Configurez Cross filter direction sur Single (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.

Schéma dimensionnel
Schéma dimensionnel de la base de données dimensionnelle des pesticides dans les eaux souterraines

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 puis Duplicate 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 bouton Format (icône ABC avec un crayon) et sélectionnez Add Prefix.
    • Dans la fenêtre qui s’affiche, tapez FR, dans le champ Value.
  • 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.

Retour à la page principale