Mettre en place le modèle de données
Introduction
La structure, le nombre et la disposition des tables des sources de données (qu’elles soient des bases, des fichiers plats ou toute autre source), sont souvent mal adaptés à une utilisation efficace avec Power BI.
Le but de la seconde section de ce chapitre est de proposer un tour d’horizon complet des bonnes pratiques en vue de la mise en place d’un modèle de données parfaitement adapté à l’analyse dans Power BI, tant en termes de facilité et de qualité d’analyse (lors de la création de formules DAX en particulier), qu’en termes de performance.
Ces bonnes pratiques sont le fruit de mon expérience mais aussi la synthèse d’un ensemble de conseils et de propositions extraits des blogs influents dans la sphère Power BI (je pense notamment à SQLBI, Chris Webb, ExceleratorBI, parmi d’autres).
La dernière section de ce chapitre est spécifiquement consacrée aux tables et aux relations entre elles, dans la perspective de la mise en place d’un modèle dit « en étoile ». Ce modèle y est décrit, son rôle expliqué, et sa mise en œuvre détaillée.
État de l’art et bonnes pratiques
Choisir les options
Les options peuvent être activées ou désactivées à l’aide du menu Fichier, puis Options et paramètres, puis Options. Elles sont soit globales, c’est-à-dire qu’elles affectent tous les fichiers construits à partir du poste où se trouve Power BI, soit liées à un rapport en particulier.
Date/Heure automatique
Cette option (activée par défaut), que vous trouverez dans les options du fichier actif (mais aussi dans les options globales), crée automatiquement une table du temps, cachée et non-modifiable, pour chaque date du modèle, et génère pour chaque champ de type Date une hiérarchie automatique (Année, Trimestre, Mois, Jour).
Elle pose deux problèmes :
-
Impossibilité d’ajouter un champ à la table (par exemple, la semaine).
-
Multiplication du nombre de tables du temps, et potentiellement accroissement important de la taille du modèle.
Il est donc fortement recommandé de désactiver cette option (je le fais au niveau GLOBAL - Chargement des données) et de créer soi-même l’axe du temps (voir plus loin dans ce chapitre) :
Autoriser le téléchargement de l’aperçu des données en arrière-plan
Cette option, que vous trouvez dans la section FICHIER ACTIF - Chargement des données, peut dans certains cas ralentir considérablement le fonctionnement de Power Query. C’est le cas lorsque beaucoup de tables sont présentes dans le modèle et qu’une partie d’entre elles ne sont pas chargées dans Power BI.
Certains bloggeurs, notamment Chris Webb et Imke Feldmann (theBiccountant), la désactivent systématiquement :
Imke Feldmann suggère d’ailleurs de désactiver les autres options de cette rubrique liées à la détection du type de colonnes et les relations.
Disposer les tables dans la vue Modèle et mettre en place les relations
Ouvrez le fichier chap2-1_base.pbix.
L’essentiel des manipulations que nous allons voir a lieu dans la vue Modèle, immédiatement après avoir exécuté la requête (Fermer & appliquer dans Power Query).
La première...
Comprendre et appliquer le modèle en étoile
J’ai fait le choix, dans cet ouvrage, de vous proposer un saut qualitatif dans l’utilisation de Power BI.
Si, dans un premier temps, cet outil a pu notamment bâtir son succès auprès des utilisateurs d’Excel, qui voyaient dans Power BI un complément à ce dernier, il est essentiel de sortir de la logique Excel et d’adopter des réflexes de conception qui permettent à Power BI de fonctionner au meilleur de ses capacités.
Ce chapitre est, par conséquent, entièrement consacré au modèle de données - c’est-à-dire à la façon de structurer les tables et leurs relations, en s’appuyant sur Power Query et sur la vue Modèle de Power BI.
Nous verrons pourquoi, par exemple, la grande table importée d’Excel, ou construite à partir d’un fichier .TXT, n’est pas une bonne idée. Mais nous verrons aussi qu’importer telles quelles les tables d’une base de données n’est pas non plus toujours une bonne pratique.
En définitive, Power BI fonctionne de manière optimale en s’appuyant sur une structure de tables bien spécifique - le modèle en étoile, dont nous allons détailler les caractéristiques et voir la mise en œuvre concrète, à partir de différents scénarios.
Description du modèle en étoile et de ses composants
Au cœur du modèle en étoile, il y a la table des transactions où sont enregistrés les évènements (passer une commande, signaler un incident, noter les résultats d’un test, etc.) : elle contient les montants, les quantités, les évènements chiffrés.
Elle contient également un autre type de colonne : des identifiants, c’est-à-dire une valeur (le plus souvent représentée par des chiffres) qui permet d’identifier précisément qui a fait l’achat, pour quel produit, etc. Nous y reviendrons plus tard.
La table des transactions est aussi appelée la table des faits.
Notez qu’un modèle peut contenir plusieurs tables des faits : imaginez, par exemple, un magasin qui propose deux services : la vente, mais aussi...