CI/CD Fabric Power BI avec Azure DevOps et TMDL
Introduction
En raison de l’augmentation des données et des besoins analytiques, les entreprises cherchent des approches collaboratives pour développer et gérer de manière efficace leurs projets Power BI. Cependant, le travail à plusieurs sur un même modèle sémantique peut s’avérer complexe et source d’erreurs.
Avec l’introduction du format Power BI Project (Pbip) et le TMDL (Tabular Model Definition Language), Power BI peut désormais être intégré dans un pipeline CI/CD de manière beaucoup plus simple, permettant ainsi aux équipes de travailler simultanément et en parallèle sur un même projet.
Cet article explore comment Power BI, Fabric, Azure DevOps et Git s’articulent pour transformer la gestion des projets Power BI en un processus structuré et évolutif.
TMDL (Tabular Model Definition Language):
Le TMDL propose une approche alternative pour la modélisation sémantique à l’aide de code. Il offre une approche déclarative pour définir les objets du modèle tels que les tables, mesures et relations.
La vue TMDL présente plusieurs avantages :
Faciliter la collaboration entre les membres de l’équipe en travaillant simultanément sur le même modèle sémantique sans provoquer de conflits.
Amélioration de l’efficacité de développement avec un éditeur de code avancé.
Simplifier la gestion des mesures : visualiser et modifier toutes les mesures à la fois sur un seul écran.
Permettre d’afficher et de modifier les objets et propriétés du modèle sémantique et éléments non disponibles dans l’interface utilisateur de Power BI Desktop.

Activation de la vue TMDL dans Power BI Desktop
Allez dans File > Options and settings > Options > Preview features

Redémarrez Power BI Desktop pour appliquer les changements.
Projet Power BI (PBIP)
Quand vous travaillez sur un projet Power BI Desktop (pbix) existant, vous pouvez enregistrer votre travail sous forme de fichier de projet Power BI (pbip).
Les éléments du rapport et du modèle sémantique seront définis dans des fichiers texte structurés dans des dossiers.

Structure et composition du dossier :
Fichier « .pbip » : il sert de ponteur vers le dossier de rapport.
Dossier du rapport de projet « .Report » : contient des fichiers et des sous dossiers de définitions du rapport.
Dossier du modèle sémantique « .SemanticModel » : Stocke des fichiers de modèle de données à l’aide du langage TMDL.
Fichier « .gitignore » : Spécifie les fichiers à exclure des systèmes de contrôle de version Git.
Lorsque vous enregistrez un projet, le modèle sémantique sera enregistré sous la forme d’un dossier TMDL « définition » que vous trouvez dans le dossier « .SemanticModel » .

L’enregistrement en tant que projet (pbib) offre plusieurs avantages :
– Pouvoir utiliser un éditeur de code tel que VS Code qui offre une expérience d’édition très riche et d’intégration de Git.
– Modifier les éléments du rapport et du modèle sémantique d’une manière programmatique.
– Contrôle de code source avec Git (historique de versions, comparer les révisions « diff »)
– Intégration continue et déploiement continue (CI/CD)
CI/CD pour Power BI
Dans un contexte Power BI, l’enregistrement des projets Power BI dans des fichiers permet leur intégration dans un processus CI/CD :
Intégration continue CI :
– Les développeurs travaillent simultanément sur différentes branches et fusionnent leurs modifications de manière continue.
– Automatisation des tests pour vérifier la qualité des modifications apportées aux modèles sémantiques.
– Les modifications sont suivies dans un système de contrôle de version comme Git permettant la gestion des versions.
Déploiement continu :
– Automatisation des déploiements des rapports et des modèles sémantiques dans les différents environnement (Dev, Test, Prod).
– Gestion des environnements : configuration spécifique à chaque environnement afin d’assurer un déploiement cohérent et fiable.
Configuration du projet Azure DevOps :
Prérequis :
Créer un projet Azure DevOps :
Connectez-vous à Azure DevOps.
Choisissez une organisation existante ou créez-en une nouvelle :


Créez un projet au sein de l’organisation sélectionnée :

Créez un Référentiel :
Allez dans : Repos > Files > Initialiser :

Votre avez maintenant accès à un projet et un référentiel initialisé avec un fichier Readme et configuré avec une branche « main » par défaut.

Clonez le référentiel sur la machine locale :
Accédez au référentiel et cloner le référentiel :

Cliquez ensuite sur « cloner dans VS Code » :

Sélectionnez ensuite un dossier local pour le référentiel :

Ouvrez le référentiel dans VS Code et enregistrez votre projet Power BI dans le dossier sélectionné :

Validez les modifications :

Synchronisez les modifications avec le référentiel distant :

Ouvrez Azure DevOps et vérifiez les modifications :

Exemples de modifications apportées au modèle sémantique :
Ajout d’une nouvelle relation entre deux tables dans le modèle :

Intégration Git à un espace de travail Microsoft Fabric
Prérequis Fabric :
– Avoir une capacité Fabric.
– Activer la création des éléments Fabric pour les utilisateurs.
– Activer la synchronisation des éléments d’un espace de travail avec le référentiel Git pour les utilisateurs.

Prérequis pour Git :
L’intégration Git avec l’espace de travail Fabric prend en charge Azure Devops et GitHub. Dans ce guide, nous utiliserons Azure DevOps. Pour cela, il est nécessaire de disposer de :
– Un compte Azure actif, associé au même utilisateur que celui utilisant l’espace de travail Fabric.
– Un accès à un référentiel existant.
Connecter un espace de travail dans un référentiel Git
Connectez-vous à Fabric > Accéder à l’espace de travail > Accéder aux paramètres de l’espace > Sélectionner « Git integration » > Azure DevOps > Connect

Une fenêtre s’ouvre pour spécifier : l’organisation, le projet, le référentiel Git et la branche.
Un espace de travail ne peut être connecté qu’à une seule branche et un seul dossier à la fois.
Sélectionnez « Connect and Sync »


Configuration du pipeline de déploiement dans Fabric
Prérequis :
– Avoir un abonnement Microsoft Fabric
– Être administrateur d’un espace de travail Fabric
– Avoir trois espaces de travail « Dev – Test – Prod »
Création et configuration du Pipeline :
– Accédez à « Deployment pipelines » dans Fabric
– Ajoutez un Pipeline « + New pipeline »
– Nommez votre pipeline et cliquez sur « Next »

Définissez les étapes à inclure dans votre Pipeline et nommez-les :

Attribuez les espaces « Dev – Test – Prod » créés auparavant aux étapes correspondantes du pipeline.

Déploiement :
A présent on va reprendre le cycle de vie de développement d’un rapport classique :
– Commencez par publier le rapport Power BI dans l’espace de développement.
– Allez dans votre pipeline de déploiement et vérifiez la présence des éléments publiés dans l’espace de développement « un rapport + un modèle sémantique ».
Vous êtes prévenus aussi du changement qui a lieu depuis le dernier déploiement.

Cliquez sur « Deploy » pour déployer depuis l’espace « Développement » vers l’espace « Test »
Vous pouvez aussi déployer entre les deux espace « Test » vers « Prod ».

Règles du déploiement :
Lorsque vous déployez entre les phases du pipeline, certaines règles peuvent être appliquées. Les phases du pipeline peuvent avoir des configurations différentes comme la gestion des sources de données (base de données de Test, Prod).
Afin de garantir la qualité, la sécurité et la fiabilité des rapports Power BI, voici quelques bonnes pratiquesà appliquer au processus de déploiement :
– Gestion des accès aux sources de données (chaque espace de travail doit pointer vers la bonne source de données)
– Gestion des accès aux différents espaces de travail (développeur, testeur, utilisateur final)
– Vérification de la sécurité au niveau des lignes (RLS)
– Test des performances (temps de chargement des visuels, rafraichissement des modèles)
– Vérification des calculs.
Conclusion
L’intégration de CI/CD dans Power BI et Fabric en s’appuyant sur Azure DevOps et TMDL offre de nombreux avantages :
– Faciliter la collaboration et le travail en équipe.
– Permettre le contrôle de version et le suivi des modifications avec Git.
– Minimiser les erreurs et améliorer la qualité des solutions décisionnelles.
– Déploiement plus rapide et plus fiable.
Le TMDL (Tabular Model Definition Language) permet de gérer les modèles sémantiques en code facilitant ainsi l’intégration de Power BI dans un Processus CI/CD.