Power BI : l’outil de Dataviz en vogue

Aujourd’hui, en entreprise, la visualisation de données occupe une position de plus en plus essentielle. Dans un environnement où la prise de décision se doit d’être rapide et éclairée, la dataviz permet de rendre les données accessibles et compréhensibles au plus grand nombre. Dans d’autres cas, elle permet de surveiller efficacement et en temps réel des KPIs importants pour l’entreprise. La visualisation de tendances invisibles à l'œil nu peut générer des opportunités. En résumé, la dataviz est motrice dans la compréhension et l'interprétation des données pour agir au mieux en fonction. Power BI est à l’heure actuelle le leader dans ce secteur et je vous propose de découvrir cette solution à travers cet article.

Les chiffres clés de Power BI

Power BI est un outil de Business Intelligence développé par Microsoft. Il permet de créer des dashboards et de les déployer pour qu'ils soient consommés par les utilisateurs métiers. Créé en 2015, Power BI est hébergé par la plateforme cloud Microsoft Azure.

Il fournit trois outils pour la création d’un projet :

  • Un outil Desktop permettant la conception des rapports en local.
  • Un outil de partage sur un portail web en mode SaaS : PowerBI Service. Ce service cloud permet de centraliser la diffusion et la sécurisation des rapports partagés.
  • Une application mobile App Power BI qui permet, entre autres, de visualiser les rapports poussés. Nous n’allons pas l’aborder dans cet article.

Il existe trois types d’offres pour profiter de Power BI.

Dans un premier temps, il est possible d’utiliser le logiciel Power BI Desktop de manière gratuite. Cela permet de se connecter à plus d’une soixantaines de sources de données différentes et d’utiliser les visuels de bases pour analyser ces données afin de, soit les publier sur le web, soit de les exporter vers Excel. En résumé, il est possible d’utiliser les fonctionnalités de base gratuitement, ce qui peut convenir aux professionnels individuels ou aux petites entreprises voulant analyser leurs données sans déployer en production.

Une deuxième solution qui s’offre aux utilisateurs est la licence Power BI Pro. Il s’agit d’une version bien plus complète que Power BI Free. La principale différence est qu’une dimension collaborative est ajoutée. En effet, il est possible de partager ses données ou ses rapports sur Power BI Service. Ils peuvent être consommés par tous ceux ayant une licence Pro et il est bien sûr possible de consulter d’autres rapports partagés. Compte tenu de son prix qui est d’environ 10 euros par mois par utilisateur, l’offre Power BI Pro n’est adaptée que pour un nombre réduit d'utilisateurs. Si une entreprise a besoin d’un nombre élevé de licences, l’offre Power BI Premium, que l’on va aborder juste après, peut être moins coûteuse. De plus, la limite de stockage de données s’étend à 10 Go par utilisateur.

Le coût de l’offre Premium peut être soit par utilisateur (20 euros/mois), soit dédié à l’ensemble des utilisateurs d’une organisation (5000 euros/mois). A noter que ce coût n'inclut pas les licences Pro requises pour chaque utilisateur créateur de rapport. L’offre Premium inclut un serveur cloud avec les ressources de stockage et de calcul dédiées. Le workspace Premium peut héberger des datasets allant jusqu’à 50 Go et son espace de stockage total est de 100 To. Il existe 3 tailles de capacité Premium selon le nombre de v-cores alloués et la mémoire. Il est donc nécessaire de déterminer la capacité d’utilisation pour la dimensionner correctement.

Pricing des licences Pro et Premium

Pricing des licences Pro et Premium

La création d’un rapport

Source de données

La création d’un rapport passe donc par l’outil Power BI Desktop, il existe plus d’une soixantaine de sources de données afin de constituer un dataset. Il est possible de se connecter à différents moteurs de bases de données relationnelles telles que SQL Server, MySQL et Oracle. Power BI est aussi capable d'importer des données non relationnelles telles que des fichiers Excel, CSV ainsi que des données provenant de services en ligne comme SharePoint et OneDrive. Il peut également se connecter à des services Azure tels que Azure SQL Database, Azure Data Lake Storage mais aussi à d’autres plateformes cloud comme Amazon Athena ou Google Big Query. De plus, les API REST et les services web permettent d'intégrer des données provenant d'applications et de services tiers. Cette polyvalence dans les sources de données confère à Power BI la capacité d'agréger et d'analyser des données provenant de diverses origines.

Dataflows vs Datasets vs Datamarts

Power BI propose trois composants différents : les dataflows, les datasets et les datamarts.

Les dataflows

Les dataflows permettent aux utilisateurs de créer des flux de données ETL au sein de Power BI. L’ETL est mis en place via la fonctionnalité Microsoft dédiée : Power Query online. Les dataflows peuvent être une source de données pour les datasets sur Power BI Desktop. L’avantage est que chaque dataflow peut être source de données pour différents rapports Power BI. La création d’un dataflow se fait via la compute de Power BI Service dans un workspace dédié et stocké dans le cloud d’Azure. A noter que l’utilisation de Power BI Service nécessite une licence Pro ou Premium.

Chez mon client, les dataflows étaient pour la plupart du temps des ensembles de vues regroupées par domaine, mais cela peut être directement des tables ou des fonctions ayant pour output des tables.

Un des points importants est que ces dataflows étaient stockés dans un workspace précis orienté Self-Service-Analytics. En donnant accès à ce workspace à des utilisateurs non membres de l’équipe Data, il est possible pour eux de se connecter à ces sources de données sans passer par la base.

Les datasets

Les datasets sont le résultat de la modélisation de vos sources de données sous Power BI Desktop. Sont ajoutées aussi les colonnes et les agrégations calculées en DAX (qu’on verra par la suite). Il s’agit de la couche de modélisation. À contrario des dataflows, les datasets ne peuvent pas être source de données mais peuvent être partagés sur Power BI Service afin d’être utilisés à l’identique pour d’autres rapports. C’est utile lorsque plusieurs rapports se basent sur les mêmes calculs DAX.

A noter que, pour ces deux composants, il est possible de rafraîchir les données via un Scheduleur sur Power BI Service.

Architecture Power BI classique

Architecture Power BI classique

Chez mon client, les dataflows et datasets en production sont rafraîchis via l’orchestrateur Azure Data Factory directement après l’ingestion des données.

Les datamarts

Le datamart est un nouveau composant sorti en 2023. Il est plus vu comme un conteneur au sein duquel on y retrouve le dataflow, le dataset et entre les deux un stockage intermédiaire dans une base de données Azure SQL. Je ne vais pas plus développer sur ce nouvel outil car je ne l’ai pas encore utilisé chez mon client.

Architecture Power BI utilisant le datamart

Architecture Power BI utilisant le datamart

Power Query : la fonctionnalité ETL de Microsoft

Une fois les sources choisies, il est nécessaire de les faire passer par une couche ETL Power Query. C’est via l’interface ci-dessous que l’on collecte les données, les transforme (nettoyage, filtrage, suppression de doublons, enrichissement des données, etc…) et que l’on gère les erreurs (suppression ou remplacement des valeurs vides). Il est aussi possible de réaliser du profilage de données grâce à, par exemple, des fonctionnalités d’analyse sur la qualité, les anomalies et la distribution des données. Ces transformations sont réalisées via le langage de Power Query : Power Query M.

Exemple d'interface Power Query

Exemple d'interface Power Query

Différents modes de chargement de données

Une fois les données chargées, il est important de déterminer leur mode de chargement. Il en existe trois, utilisés fréquemment :

  • L’Import Mode
  • Le Mode DirectQuery
  • Le mode Hybrid

Les données sont importées dans Power BI via l’Import Mode. Il offre de bonnes performances lors de l’affichage des visuels. Cependant, ce mode n’est adapté que lorsqu’il n’y a pas besoin d’avoir accès aux données en temps réel ou même de façon régulière, à cause du temps de chargement. A noter que les dataflows sont obligatoirement chargés en Import Mode.

Avec DirectQuery, les données ne sont pas importées dans Power BI mais sont requêtées en temps réel. Au fur et à mesure que l’utilisateur consomme le rapport, les données et les visualisations changent. Cependant, les performances de visualisation peuvent varier en fonction de la quantité de données envoyée par la source et de la complexité du modèle.

Le mode Chargement Hybrid est la combinaison entre les deux modes de chargements précédents afin de profiter de leurs avantages. Vous l’aurez compris : grâce à un certain paramétrage, une partie des données jugées statiques sera importée, tandis que l’autre sera requêtée en direct. Il s’agit d’un bon compromis entre performance du rapport et fraîcheur des données.

Ça y est ! Vos données sont définitivement chargées dans Power BI Desktop.

L’interface Power BI

Maintenant, il en va de savoir quoi faire des données. L’interface de Power BI Desktop est composée de trois onglets : Rapport, Tables et Modèle.

L’onglet modèle, là où tout commence

Power BI est principalement utilisé pour consommer des données structurées. C’est donc via cet onglet que sont jointes les différentes tables. Power BI prend en charge plusieurs types de jointures : Inner, Right, Left, Full Outer, Cross join. Il détecte aussi automatiquement les relations entre les tables, s'il y a des noms et types de colonnes similaires.

Exemple d’onglet Modèle

Exemple d’onglet Modèle

L’onglet Tables : l’enrichissement du jeu de données

C’est dans cet onglet que l’on peut visualiser l’ensemble des données du dataset. On y retrouve sur la droite notre liste de tables ainsi que les champs qui les composent.

Exemple d’onglet Tables

Exemple d’onglet Tables

Le langage DAX (Data Analysis Expressions) est utilisé dans Power BI pour effectuer des calculs dans un modèle de données. DAX est donc conçu pour enrichir notre jeu de données en y ajoutant des éléments pouvant s’avérer complexes tels que :

  • des champs calculés : il s’agit de nouvelles colonnes évaluées au chargement des données.
  • des mesures (calculs d'agrégation dynamiques) : celles-ci sont utilisées dans les visuels pour afficher les résultats selon le filtrage du jeu de données.
  • des tables : il peut, par exemple, s’agir de tables d'agrégation.

Les formules DAX sont contextuelles, c'est-à-dire qu’elles utilisent le contexte du jeu de données pour référencer les colonnes, tables et mesures déjà existantes.

Afin d’avoir une bonne performance, il est important de prendre en compte la complexité des formules créées. Une bonne pratique est si possible de créer les champs en amont.

L’onglet Visualisation : la création

Exemple d’onglet Visualisation

Exemple d’onglet Visualisation

L’onglet Visualisation est l’interface utilisée pour créer et personnaliser votre rapport interactif. On retrouve six fenêtres essentielles (sur l’image de la droite vers la gauche) :

  • Données : il s’agit de la même fenêtre que l’onglet précédent, composée des champs, colonnes calculées et mesures du dataset.
  • Visualisations : cette palette regroupe les différentes options de visualisation (carte, graphiques, tableaux, matrices, visuels R ou python customs, etc…).
  • Signets (bookmark) : cette fonctionnalité permet de capturer un état spécifique de la page, y compris les filtres et les sélections. Les signets sont le plus souvent associés à des boutons, ce qui permet à l’utilisateur de passer d’un état à un autre de la page facilement.
  • Sélection : il permet de masquer des visuels et de les grouper.
  • Filtres : cette fenêtre permet de filtrer des éléments du rapport par des colonnes du dataset. Il existe trois niveaux de filtrages différents : le filtrage sur tout le rapport, sur la page et sur le visuel.  
  • Plan de travail : c’est ici que l’on retrouve notre rapport tel qu’il va être vu par les utilisateurs.

C’est par drag and drop que sont déplacés les champs/mesures dans les visuels.

Les bonnes pratiques

Lors de ma mission, j’ai mis en place différentes bonnes pratiques ayant un but simple : optimiser la performance des rapports. En voici quelques unes :

  • Utiliser des dataflows afin d’avoir des données réutilisables dans plusieurs rapports et directement stockées dans le cloud d’Azure. Cela permet d’avoir des données préparées et nettoyées et de limiter au maximum le requêtage sur la base. Les dataflows permettent aussi de conserver de la cohérence de données entre les rapports.
  • Préparer le plus possible les données en amont (création de colonnes, nettoyage, typage). Au mieux, directement dans les dataflows si cela est pertinent pour l’ensemble des rapports, sinon, via l’ETL Power Query et enfin, si cela n’est pas possible autrement, via des champs calculés en DAX.
  • Limiter au maximum les mesures complexes ainsi que les créations de tables en DAX.
  • N’avoir que la taille de dataset nécessaire, c'est-à-dire importer uniquement les champs et lignes nécessaires à la construction du rapport.
  • Utiliser de préférence un modèle en étoile avec des relations 1 to many (limiter les relations many to many).

Publication

Une fois le rapport construit, il suffit de le publier dans le workspace de votre choix et le reste se passe sur Power BI Service !

A noter qu’il existe un équivalent à Power BI Service on premise : Power Bi Report Serveur.

Power BI Service

La publication d’un rapport crée deux entités dans le workspace cible : un rapport et un dataset. Le rapport représente tout simplement le dashboard prêt à être consulté. Le dataset correspond à l’ensemble des sources de données utilisées pour créer le dashboard, il pourra par la suite être réutilisé pour la création de nouveaux rapports, si les données sont similaires.

La gouvernance des données dans Power BI

Au niveau du workspace

Un des éléments central du service Power BI permettant d’avoir une bonne gouvernance de données est le workspace. Un workspace Power BI est un espace collaboratif où ses utilisateurs peuvent créer, modifier et consulter des datasets et des rapports construits via l’outil desktop. Chaque workspace peut être accessible par différents users ou groupes de users issus de l’Active Directory d’Azure. Au sein d’un workspace, il existe différents rôles attribués aux utilisateurs. Voici leurs explications simplifiées :

  • Visionneur : Droit de lecture sur les rapports.
  • Collaborateur : Droit de lecture, de création et de modification sur les rapports.
  • Membre : Droit du Collaborateur ainsi que des droits concernant l’application du workspace et les autorisations des datasets. Un membre peut aussi ajouter d’autres membres au sein du workspace.
  • Administrateur : Responsable de la gestion globale du workspace. Dispose des droits d’un membre ainsi que de la suppression/ajout des utilisateurs dans le workspace, paramétrage du workspace et planification du rafraîchissement des rapports.
  • Invité : Utilisateur extérieur à l’entreprise autorisé à collaborer dans le workspace.

Au niveau d’un rapport

Pour des cas plus spécifiques, il est possible de définir des utilisateurs directement au sein d’un rapport du workspace. Ces utilisateurs pourront avoir quatre types de droits: Read, Build, Reshare et Write. Chaque rôle dispose de ces droits sur les rapports du workspace :

Droits sur les rapports selon les rôles Power BI

Droits sur les rapports selon les rôles Power BI

Au niveau des lignes d’un rapport

Le RLS ou Row Security Level est une fonctionnalité de sécurité permettant de limiter l’accès aux données d’un rapport à un utilisateur selon ses autorisations.

Son fonctionnement est le suivant :

  • Une règle de sécurité est appliquée à certaines tables (communément des tables de dimensions) lors de la phase de création du rapport (Desktop). Cette règle peut être dynamique en utilisant les fonctions DAX username() et userprincipalname() ou figée (ex : practice = ‘Data’). Si vous voulez plus de précision, je vous invite à consulter la documentation.
  • Ensuite, des utilisateurs sont affectés à ces règles via le paramétrage du rapport.
  • Enfin, lorsqu’un utilisateur se connecte à un rapport, Power BI applique le filtrage dynamique des données associées à ses autorisations.

Lorsque le RLS n’est pas défini, tout utilisateur ayant les autorisations de lecture a accès à l'entièreté des données. Lorsque le RLS est activé, les règles de gestion n'impactent pas les utilisateurs ayant des droits d’écriture sur ce rapport.

Le déploiement des rapports

La bonne pratique est, comme pour chaque industrialisation, d’utiliser des workspaces de recette et de production (celui de développement étant le desktop). Pour réaliser le déploiement de différentes entités (rapports ou datasets) d’un workspace vers un autre, il est possible d’utiliser des pipelines de déploiement. Celles-ci prennent en entrée les workspaces de test et production ainsi que les entités à déployer.

Les applications

Pour terminer cet article, on peut aborder ce qui est censé être le produit final de la production Power BI : l’application. L’application est un ensemble de rapports d’un même workspace organisé selon plusieurs onglets représentant des domaines. Il est ensuite possible de partager cette application à différents utilisateurs qui pourront naviguer entre les différents rapports la constituant. C’est un bon moyen de centraliser l’information et de ne pas perdre les consommateurs avec plusieurs rapports.

Il est possible pour des groupes d'utilisateurs de n’avoir accès qu’à certains onglets/rapports de l’application. Pour ce faire, il suffit de créer des audiences spécifiques pour chaque public.

Conclusion

Power BI est l’un des outils de visualisation de données les plus utilisés actuellement, de par sa facilité d’utilisation et son prix attractif dans le marché. Son avantage est qu'il est directement intégré à l’écosystème Azure, ce qui facilite son adoption si l’entreprise est déjà hébergée dans ce cloud. De plus, Power BI peut se brancher sur un grand nombre d’autres sources cloud d’AWS ou GCP. Il dispose d’une interface intuitive où il est possible de créer des rapports pertinents sans nécessairement avoir des compétences de développement si la préparation des données est déjà faite en amont.

Le principal avantage de Power BI réside dans le partage et la collaboration des rapports, ce qui permet aux équipes de collaborer facilement sur un même projet.

Il permet de gérer l'accès aux données à des utilisateurs selon des droits qu’on lui attribue à différents niveaux : Workspace, rapport et lignes (RLS).

Power BI est l’outil de Dataviz en vogue, les mises à jour sont récurrentes, de nouveaux visuels développés par Microsoft ou d’autres entreprises sont ajoutés régulièrement et sa communauté est active. Les produits finis tels que l’application Power BI sont très complets et faciles de partage pour n’importe quels utilisateurs de l’entreprise. Cet outil est très intéressant à mettre en place comme dernière brique d’une Plateforme Data.

Schéma de développement et de publication d’un rapport

Schéma de développement et de publication d’un rapport

Pour aller plus loin :