Avec la vulgarisation des outils Low code/ No code ces dernières années, Microsoft a mis en place une solution de Business Intelligence (Power BI) permettant de : traiter, analyser, visualiser et partager de grands volumes de données. De plus, la brique Power BI présente de nombreux avantages : elle est intuitive, facile à prendre en main, présente un coût relativement faible par rapport à ses concurrents. Cependant, lors des développements de rapports, la gestion des différentes versions peut être assez contraignante. 

Cet article décrit une méthodologie permettant aux développeurs Power BI d’utiliser les bonnes pratiques du développement logiciel pour non seulement monitorer les versions dans Power BI Desktop mais aussi faciliter le travail collaboratif.

Avant la feature en préversion de Power BI « Power BI Desktop Developer Mode»

Avant la mise à disposition aux utilisateurs de la feature mode développeur « Power BI Desktop Developer Mode » de Power BI Desktop, les fichiers étaient enregistrés au format « .pbix ». Fichier binaire illisible par l’homme avec un éditeur de texte comme illustré sur l’image ci-dessous avec Notepad++.

Figure 1 : Illisibilité du fichier binaire “.pbix” avec éditeur de texte

Beaucoup de développeurs Power BI faisaient donc le suivi de versions en incrémentant manuellement chaque version comme indiqué sur l’image ci-dessous.

Figure 2 : Gestion manuelle incrémentale des versions lors des développements dans Power BI Desktop

Avec une telle gestion du versioning, pour traquer l’historique des changements, il faut soit avoir un fichier annexe de correspondances où sont notés les rajouts des modifications de chaque version, soit ouvrir les rapports un à un pour identifier les différences. Ceci n’est pas sans risque d’erreurs, ne facilite pas la collaboration avec d’autres développeurs, et rend pénibles les montées et restaurations de versions dans le cycle de développement du projet.

Apport de la feature en préversion de Power BI « Power BI Desktop Developer Mode »

L’activation de la feature «Power BI Desktop Developer Mode » dans l’application Power BI Desktop donne la possibilité d’enregistrer son travail non plus comme un « .pbix » mais comme un Power BI Project (« .pbip »). Dans ce nouveau mode d’enregistrement, les définitions des artefacts des rapports et des jeux de données sont enregistrées sous forme de fichiers texte dans une structure de dossiers simple et intuitive. Les avantages liés à ce mode de sauvegarde sont les suivants :

  • Prise en charge de l’éditeur de texte : les fichiers peuvent être lus, édités et documentés par l’homme via des  éditeurs de texte comme Notepad ++, Visual Studio Code (VS Code).
  • Management de version : les rapports et les datasets peuvent être stockés dans un système de contrôle de version comme Git pour suivre l’historique des changements, identifier les différences et revenir si besoin à une version antérieure.
  • Collaboration : le contrôle du code source permet à plusieurs développeurs de travailler simultanément sur le même « .pbip » sans risque de perte de données au travers du répertoire centralisé mis à disposition où chaque développeur peut accéder et contribuer à l’avancement du projet.
  • Intégration continue et livraison continue (CI/CD) : le repository local Git peut être connecté directement à un Repo Git distant comme Azure Devops. Les développeurs peuvent donc être synchronisés sur le même Repo Azure Devops et travailler simultanément sur le même projet « .pbip », ceci en utilisant les bonnes pratiques du développement logiciel pour la mise en place d’un workflow robuste d’intégration continue garantissant la bonne qualité des rapports livrés.

Avant de passer en revue les différentes étapes, commençons par lister les prérequis nécessaires.

Prérequis de l’environnement de travail :

  • Installer Power BI Desktop via Microsoft store pour suivre les mises à jour de l’application : Microsoft apporte des améliorations quasiment tous les mois
  • Avoir accès à un Power BI Service avec la possibilité de créer un espace de travail (workspace) avec une licence premium
  • Installer Git sur le lien
  • Installer Visual Studio Code (VS Code) sur le lien
  • Avoir accès à Repo distant comme Azure Devops, Github, etc… Nous faisons volontairement le choix ici de Azure Devops car il s’intègre facilement avec Power BI Service. Power BI Service est la plateforme Cloud en SaaS (Software as a Service) qui est utilisée pour publier les rapports : ces derniers peuvent être consultés ou mis à disposition d’autres utilisateurs (généralement les consommateurs des rapports ou les utilisateurs métiers).

Différentes étapes pour la mise en place du versioning dans Power BI

Après avoir préparé l’environnement de travail en installant les applications nécessaires telles que listées dans la section précédente, passons maintenant en revue les différentes étapes pour la mise en place du versioning dans Power BI. Commençons par l’activation du mode développeur.

Etape 1 : Activation du mode développeur dans Power BI Desktop et enregistrement au format « .pbip »

Dans Power BI Desktop, activer le mode développeur dans l’onglet des “Fonctionnalités en préversion “:

Fichier>Options et paramètres>Options> Fonctionnalités en préversion, sélectionner « Option d’enregistrement du projet Power BI (.pbip) » et valider sur « OK » comme indiqué sur l’image ci-dessous.

Figure 3 : Activation du mode développeur dans Power BI Desktop

Après avoir validé l’activation de l’« Option d’enregistrement du projet Power BI (.pbip) », depuis le menu Fichier> Enregistrer sous, veillez à bien choisir l’extension « .pbip » comme indiqué sur l’image ci-dessous. Il faudra ensuite redémarrer Power BI Desktop pour que les changements soient pris en compte.

Figure 4 : Enregistrement avec l’extension “.pbip”

Une fois le fichier sauvegardé, Power BI Desktop enregistre le rapport et le jeu de données (dataset) comme deux dossiers, chacun contenant des fichiers texte. Comme illustré sur l’image ci-dessous.

Figure 5 : Dossiers créés lors de l’enregistrement du projet avec l’extension “.pbip”

Le nouveau fichier « Mix_Energetique.pbip » peut maintenant être consulté avec un éditeur de texte. Nous illustrons sur l’image ci-dessous l’ouverture avec les utilitaires Notepad++ (à droite) et VS code (à gauche). Par la suite, nous faisons volontairement le choix d’utiliser VS Code car il s’intègre bien avec Git.

Figure 6 : Lecture et édition du fichier lors de l’enregistrement avec l’extension “.pbip” Notepad++ (à droite) et VS code(à gauche)

Un petit mot sur les données utilisées pour générer le rapport Mix_Energétique.pbip.

Jeu de données utilisé pour illustration dans ce document

Les données proviennent de l’open data eco2mix de RTE en libre accès (lien) . Ces données représentent le mix énergétique de la production électrique France de 2014 à 2023.

Etape 2 : Création d’un Repo Git local en utilisant VS code

Pour créer un Repo local Git, ouvrir le rapport “Mix_Energetique.pbip” avec VS code en cliquant droit sur le nom du fichier comme indiqué sur l’image ci-dessous.

Figure 7 : Ouverture du fichier “.pbip” avec VS Code

Ensuite cliquer sur Source Control pour ouvrir le dossier associé au dossier projet « .pbip» comme indiqué sur l’image ci-dessous.

Figure 8 : Ouverture du dossier “.dataset” avec VS Code

Nous obtenons la figure ci-dessous. Il suffit d’aller dans le menu « Source Control » puis cliquer sur « Initialize Repository » pour initialiser le Repo Git local.

Figure 9 : Initialisation du Repo Git local avec VS Code

Nous obtenons l’image ci-dessous, il suffit de rentrer un message et cliquer sur commit.

Figure 10 : Illustration du commit sur VS Code

Le Repository local Git est initialisé, nous pouvons dès à présent suivre l’historique des changements avec VS Code.

Etape 3 : Suivi des modifications sur le Repo Git local en utilisant VS code

Nous allons maintenant suivre toutes les modifications faites sur le rapport “Mix_Energetique.pbip”. La pertinence des messages mis lors du commit permet de comprendre les modifications ou changements qui ont eu lieu. Chaque développeur peut ainsi créer une branche associée à un ticket ou une demande spécifique ce qui permettra d’avancer le développement sans pour autant compromettre ou casser la version en production. Avant le commit, les modifications peuvent être visibles sur le fichier “model.bim” comme illustré sur l’image ci-dessous.

Figure 11 : Visibilité des modifications avant le commit

VS Code met à disposition une extension Git Graph qui facilite la visualisation du listing des changements et les branches associées. Nous avons installé cette extension pour illustrer le listing des commits à la suite des modifications apportées au rapport comme illustré sur la figure ci-dessous.

Figure 12 : Historique des modifications avec l’extension Git Graph de VS Code

Ces modifications ont permis de passer d’un rapport vide à la page de rapport illustrée sur l’image ci-dessous.

Figure 13 : Illustration du résultat de la page de rapport obtenue avec les changements montrés sur la Figure 12.

Etape 4 : Intégration du Repo Git local a un Git host distant via Azure Devops

Pour permettre à d’autres développeurs BI de pouvoir travailler simultanément sur le même projet, connectons notre repo local Git a un Git host distant : Azure Devops. Illustrons cela par un schéma.

Figure 14 : Illustration de la collaboration pour 2 développeurs

Sur la Figure 14, nous avons illustré pour 2 développeurs la facilité de collaboration en se connectant de façon synchronisée à un Repo distant Git sur Azure Devops. De plus, nous précisons que pour l’illustration de la Figure 14, nous nous sommes inspirés de figure de Learn Microsoft sur le lien auquel nous avons apporté quelques ajustements.

Créer un nouveau projet sur Azure Devops. Nous l’avons appelé dans notre cas sandbox-powerbi. L’idée est de connecter ce host distant Azure Devops à notre Repo Git local. Pour cela, nous avons besoin de faire 3 actions :

Action 1 : Récupérer l’URL de notre Repo

Dans l’onglet Repos > Files, copier l’URL du repo distant comme indiqué sur l’image ci dessous

Figure 15 : Copie de l’URL du Repo distant du projet

Action 2 : Rajout de l’URL dans VS Code

Dans Source Control> Remote>Add Remote comme indiqué sur la figure ci-dessous.

Figure 16 : Ajout de URL du Repo distant dans VS Code

Action 3 : Publication de la branche depuis VS Code

Après avoir publié la branche, VS Code la publiera sur le Repo distant de Azure Devops le projet sandbox-powerbi. Nous obtenons l’image ci-dessous.

Figure 17 : Fichiers du projet présents sur Azure Devops

La publication sur ce host distant permet à d’autres développeurs d’avoir accès aux fichiers présents sur notre Repo Git local facilitant ainsi la collaboration. Ensuite, chaque développeur peut être synchronisé sur le même Repo distant Azure Devops.

Comme mentionné plus haut, le choix d’Azure Devops comme Repo distant vient du fait qu’il s’intègre bien avec Power BI Service.

Etape 5 : Intégration continue via Azure Devops

Power BI Service permet de connecter notre workspace (Versioning Power BI) à Azure Devops. Il faut pour cela avoir un workspace ayant une licence Premium (Microsoft met un cristal après le nom du workspace lors de sa création pour spécifier qu’il est en capacité Premium). Après s’être connecté à Power BI Service (lien), et avoir créé un workspace avec une licence Premium, nous pouvons configurer le workspace pour le connecter à notre host distant du projet sandbox-powerbi sur Power BI Service comme illustré ci-dessous.

Figure 18 : Configuration du workspace pour l’intégration du Repo distant Azure Devops

Après avoir validé la connexion et la synchronisation, Power BI Service nous propose deux options de synchronisation. Pour ce test nous allons choisir de synchroniser le contenu de notre espace de travail à partir de notre Repo Git local comme illustré sur l’image ci-dessous.

Figure 19 : Choix pour la synchronisation du workspace

Nous obtenons, l’image suivante.

Figure 20 : Etat du workspace après synchronisation

Sur l’image précédente tous les fichiers du Git local sont synchronisés avec le workspace du Power BI Service. Si une modification est faite sur le rapport depuis Power BI Desktop, le Repo Git les détecte et ils apparaissent sur le Power BI Service tels que illustrés sur l’image ci-dessous.

Figure 21 : Etat du workspace lorsqu’il y a des modifications en attente

Ces modifications peuvent donc être validées par l’utilisateur ayant les droits adéquats. Ceci permet d’avoir un workspace à jour sur lequel tous les développeurs peuvent être synchronisés. La collaboration est ainsi possible pour plusieurs développeurs travaillant sur le même projet.

On peut envisager de connecter ce workspace mis à jour de Power BI Service à une pipeline de développement comme montré sur l’image ci-dessous.

Figure 22 : Création d’une pipeline de développement et connexion de notre workspace à cette pipeline

Nous obtenons la figure suivante.

Figure 22 : Association de notre workspace de Power BI à une pipeline de développement

Cette méthodologie facilite le suivi de versions et le travail collaboratif de façon agile lors du développement des rapports depuis l’application Power BI Desktop.

Conclusion

La nouvelle feature mode développeur « Power BI Desktop Developer Mode» offre la possibilité d’éditer les fichiers “.pbip” depuis un éditeur de texte (VS Code ou Notepad++). Cette extension “.pbip” permet ainsi comme nous l’avons illustré dans ce document, de tirer profit des bonnes pratiques et outils du développement logiciel tels que Git et Azure Devops pour non seulement améliorer la gestion de versions mais aussi faciliter la collaboration au sein des équipes de développement. Cette forte collaboration notamment avec les équipes métiers (pour les tests) permet de renforcer l’agilité en garantissant un feedback régulier et par conséquent une meilleure qualité des rapports livrés : mieux alignés avec les besoins métier.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *