Microsoft Power BI est aujourd’hui largement reconnu comme l’outil de visualisation par excellence. Sa facilité d’utilisation amène de nombreux utilisateurs à le considérer comme un simple outil de bureau, au même titre que Word, Excel ou PowerPoint. Cependant, cette perception peut conduire à l’utiliser de manière pas très optimale.
Dans cette story, nous souhaitons présenter Power BI tel qu’il est en réalité. Cela, en mettant en avant le fait qu’ il permet de faire bien plus que ce que beaucoup imaginent. Pour illustrer ce point, nous aborderons, dans ce qui suit 👇, un aspect très important de Power BI, souvent négligé lors du développement de rapport : l’optimisation du modèle de données.
Déjà, c’est quoi un modèle de données? 😉
Le modèle de données
Le modèle de données représente la structure de nos tables et les relations entre celles-ci. D’ailleurs, Russo et Ferrari, dans la deuxième édition de leur ouvrage The Definitive Guide to DAX [1], le décrivent comme étant “un ensemble de tables liées par des relations”. Ce modèle renferme non seulement la configuration des relations entre les tables, mais aussi les définitions des hiérarchies et des calculs métier.

Afin que le modèle de données soit compréhensible à d’autres utilisateurs, il est essentiel de concevoir celui-ci de manière à présenter les données dans un format familier aux utilisateurs métier, en évitant les noms des tables étranges ou les champs difficiles à comprendre
Dans la section suivante, nous entrons dans le vif du sujet en commençant par expliquer les raisons fondamentales justifiant la nécessité d’optimiser son modèle de données.
Pourquoi optimiser son modèle de données ?
Le modèle de données est le support sur lequel s’appuie nos visuels. Par conséquent, la qualité de l’expérience utilisateur est directement liée à la performance du modèle. Il est dès lors clair que le besoin d’optimiser le modèle de données est justifié par son impact sur l’expérience utilisateur. De plus, des contraintes de taille imposées par les différentes licences de Microsoft Power BI sont également à considérer. Il s’agit notamment :
- les contraintes de l’éditeur Microsoft en termes de taille du modèle selon le type de licence que nous détenons.
La figure ci-dessous illustre le fait que la taille autorisée du modèle varie en fonction du type de licence utilisé, que ce soit une licence Free, Pro ou Premium. Pour un compte Pro, la limite est fixée à 1 Go. En revanche, avec un abonnement Premium, cette limite peut s’étendre jusqu’à 100 Go pour le Premium par utilisateur, voir même atteindre 400 Go pour le Premium par capacité.

- le processus de traitement des requêtes sous Power BI
L’approche sémantique utilisée dans la représentation des données sur Power BI est le modèle tabulaire. Pour ce faire, Microsoft s’est appuyé sur le moteur Analysis Services Tabular (et non le multidimensionnel) pour la modélisation des données. Les modèles de données créés dans Power BI font appel à ce moteur en arrière-plan dans l’exécution des opérations.
Dans le modèle tabulaire, l’interrogation des données se fait à l’aide de requêtes DAX (Data Analysis eXpressions). Ces requêtes sont traitées au niveau de deux moteurs distincts :
- le moteur des formules (Formula Engine) en charge de l’évaluation des expressions
- le moteur de stockage (Storage Engine) responsable notamment de la récupération des données, de la compression.
Bien que ce découpage facilite l’exécution des requêtes, notons que le moteur des formules fonctionne sur un seul thread à la fois (monothread), ce qui signifie qu’il ne peut effectuer qu’une seule opération à un instant donné. En revanche, cette limitation ne s’applique pas au moteur de stockage qui a la capacité d’opérer sur plusieurs threads simultanément, offrant ainsi une fonctionnalité multithread.
La figure suivante montre le processus de traitement des requêtes sous Power BI.

- Améliorer de la lisibilité des calculs métier et faciliter la collaboration
Comprendre la nécessité de l’optimisation est une première étape, mais savoir comment s’y prendre en est une autre. Nous vous partageons la façon dont nous nous y prenons dans la section à venir.
Comment optimiser son modèle ?
Dans Power BI, optimiser le modèle de données consiste à réduire de sa taille. En effet, un modèle de petite taille nécessite moins de ressources, favorisant ainsi des actualisations plus rapides des données et des visuels. Pour y parvenir, plusieurs actions peuvent être envisagées :
- Lors de la récupération des données, s’assurer de ne prendre les éléments essentiels;
- S’assurer que les types de données adéquats sont utilisés;
- Éviter le plus possible les colonnes calculées et utiliser à la place des mesures;
- Réduire les cardinalités;
- Utiliser les variables dans les calculs notamment pour ceux complexes
La prise en compte des recommandations ci-dessous est nécessaire pour un modèle performant. Aussi, il existe des solutions pour identifier les aspects de notre modèle de données susceptibles de causer des problèmes de performance. Parmi ces solutions peut citer :
- Performance Analyzer (Analyseur de Performance)
- DAX Studio
- SQL Server Profiler
- Tabular Editor
L’optimisation en pratique
Dans cette section, nous allons explorer concrètement l’utilisation du Performance Analyzer et de DAX Studio.
Performance Analyzer (Analyseur de performance)
Le Performance Analyzer est une fonctionnalité intégrée à Power BI Desktop qui permet d’évaluer le temps nécessaire lors des interactions entre les utilisateurs et les visualisations des rapports.
Pour utiliser l’Analyseur de Performance, il est nécessaire de vider le cache au préalable. Pour ce faire, la manière la plus simple est de redémarrer Power BI Desktop.
Une fois le cache vidé, l’accès à l’Analyseur de Performance se fait via l’onglet “Affichage” (ou “View” dans la version anglaise) du ruban. Dans cette section, tout à droite, vous trouverez notre Analyseur de Performance (voir la figure ci-dessous).

En cliquant sur “Analyseur de Performance”, cela ouvre le volet correspondant.

Les analyses peuvent alors commencer. Ci-dessous, une image montrant les résultats obtenus avec l’outil. On peut y observer, pour chaque visualisation, le temps mis à s’exécuter. De plus, au niveau de chacune des visualisations, il est possible de déplier pour obtenir plus de détails. En outre, il est possible de copier la requête ayant été exécutée pour obtenir le résultat d’une visualisation spécifique.

DAX Studio
DAX Studio est un outil externe indépendant de Power BI, conçu pour interroger les modèles tabulaires. Une fois installé, il est accessible dans la section “Outils Externes” de Power BI Desktop.
Nous ne détaillerons pas ici l’installation de DAX Studio. Cependant, soyez rassuré, la procédure est très simple comme pour tout outil Windows d’ailleurs😉. Vous pouvez le téléchargé à l’adresse suivante DAX Studio | DAX Studio.
Une fois installé, DAX Studio peut être démarré soit directement, soit via Power BI Desktop depuis l’onglet “Outils Externes” (voir figure ci-dessous).

Les fonctionnalités de DAX Studio sont nombreuses et très utiles dans le cadre d’un travail d’optimisation. Nous n’allons pas toutes les aborder ici (peut-être dans un autre article). Notre discussion se concentrera principalement sur le VertiPaq Analyzer et le suivi des temps d’exécution via le Server Timing.
En effet, pour évaluer la durée du traitement d’une requête, il suffit d’activer l’option “Server Timings” de DAX Studio. Cette fonctionnalité présente de manière détaillée le temps d’exécution au niveau du moteur de formules (Formula Engine), du moteur de stockage (Storage Engine), ainsi que la quantité d’unités de calcul sollicitées pour le traitement. De plus, des informations sur la requête exécutée sont aussi disponibles.

En se basant sur ces données, des ajustements de la requête peuvent être envisagés afin de réduire le temps de traitement et par conséquent faciliter l’interrogation du modèle de données.
Une autre fonctionnalité puissante de DAX Studio est le VertiPaq Analyzer, permettant d’obtenir des métriques détaillées concernant le modèle de données.
La consultation des métriques s’effectue via le menu “Avancé”. À cet endroit, il est possible d’accéder à l’option “Voir les métriques” (“View Metrics”). L’image ci-dessous illustre cette procédure.

Lorsqu’on lance “View Metrics”, le résultat obtenu est remarquable. Le VertiPaq Analyzer offre une évaluation détaillée des tables, des colonnes, des relations et des partitions. Ainsi, il est possible de déterminer, par exemple, le nombre de lignes d‘une table de données, sa taille, et même d’analyser individuellement chaque colonne pour évaluer son empreinte en termes d’espace.

Ces informations peuvent parfois être particulièrement surprenantes. Elles mettent souvent en lumière les éléments du modèle, que l’on pourrait négliger, et qui occupent en réalité une quantité significative d’espace. Ainsi, cela permet de prendre des décisions avisées concernant l’ajustement du modèle de données
Conclusion
L’optimisation du modèle de données revêt une importance capitale. C’est un processus continu indispensable pour assurer en permanence une bonne expérience utilisateur. À travers cette story, nous avons voulu mettre en lumière l’importance de cette pratique, tout en soulignant le fait que Power BI regorge de puissantes fonctionnalités capables de faire une réelle différence en entreprise.
À bientôt pour une nouvelle story.
PS: N’hésitez pas à nous partager vos impressions en commentaire.