clement13.net
Photo d’origine : Falaise de roches sédimentaires empilées en couches successives, chaque strate conservant une période.
Description
Falaise de roches sédimentaires empilées en couches successives, chaque strate conservant une période.
Source
DimiTalen · page d’origine
Licence
CC0 Domaine public
Photo d’origine, non retouchée. L’arrière-plan en est une version stylisée par le site.

Versionnement et industrialisation des rapports

Ce thème évalue la façon dont un produit BI est stocké, relu, fusionné, déployé et restauré : projets Power BI Project (PBIP) avec définitions TMDL (modèle) et PBIR (rapport), Git ou TFVC…

Guide≈ 7 min de lectureVérifié en partieContrôle partielLes faits principaux ont été contrôlés par recherche dans des sources citées. Les éléments ci-dessous restent à recontrôler avant de s’y fier.À recontrôler
  • Statut exact (disponibilité générale) de PBIP/PBIR confirmé uniquement par la doc Learn (plus de mention de préversion) et une source tierce, pas par l'annonce officielle (403).
Rédaction assistée par IA ; sources citées en bas de page. Une erreur ? Signalez-la via le site clement13.net.
Lecture
En bref

Ce thème évalue la façon dont un produit BI est stocké, relu, fusionné, déployé et restauré : projets Power BI Project (PBIP) avec définitions TMDL (modèle) et PBIR (rapport), Git ou TFVC, revue de modifications, environnements dev/test/prod, deployment pipelines, règles de paramètres, scripts XMLA/TMDL, retour arrière. Pour les principes de gestion de source, voir GDS et données SQL/BI.

Sur cette page

Niveau : 🟢→🔴 · Code thème : IND

1. Pourquoi ce thème#

Un .pbix est un binaire compressé : impossible à comparer, à fusionner, à relire ligne à ligne. Deux personnes qui modifient le même .pbix se marchent dessus et l'une perd son travail. Le format PBIP (d'abord en préversion, aujourd'hui stabilisé ; à vérifier selon la fonctionnalité) éclate le produit en fichiers texte : *.SemanticModel/definition/*.tmdl (tables, mesures, relations, rôles, cultures) et *.Report/definition/ (pages, visuels au format PBIR en JSON). Le texte se versionne, se diffe, se relit, se fusionne. Sans cela, il n'y a ni revue de code, ni historique, ni déploiement reproductible.

2. Ce que mesure le thème#

  • Axe : du fichier partagé au pipeline de livraison continue avec retour arrière.
  • Indicateurs clés : part des artefacts BI versionnés en format texte ; fréquence de déploiement ; délai de retour arrière ; part des changements passés en revue ; taux d'échec de déploiement.
  • Unités : %, déploiements/mois, minutes.

3. Les 5 niveaux#

Niveau Nom court Promesse Indicateur type (ordre de grandeur)
1 Fichier partagé Le rapport existe quelque part ; une copie de la veille peut être retrouvée si on a de la chance. .pbix sur partage ; versions « v2_final »
2 Dépôt de fichiers Toute version livrée peut être retrouvée, avec qui l'a changée et quand. .pbix en dépôt ; messages de commit
3 Projet texte Deux développeurs travaillent en parallèle sur le même modèle et fusionnent sans perte. PBIP/TMDL en Git ou TFVC ; revue de modification
4 Pipeline Un changement validé arrive en production par un chemin identique à chaque fois, sans manipulation manuelle. Dev → Test → Prod ; règles de paramètres ; 0 publication manuelle
5 Continu Le déploiement est un non-événement : fréquent, vérifié, réversible en minutes. ≥ 1 déploiement/semaine ; retour arrière < 15 min

4. Jalons par niveau#

ID Jalon Preuve vérifiable
BI-IND-1.1 Le rapport de production est identifié et son propriétaire connu Fiche rapport
BI-IND-1.2 Une sauvegarde de la version en production existe Copie datée
BI-IND-1.3 La publication se fait vers un espace de travail identifié (pas « Mon espace ») Espace de travail d'équipe
BI-IND-2.1 Les fichiers sont dans un dépôt de contrôle de source (Git ou TFVC) Dépôt avec historique
BI-IND-2.2 Les messages de commit référencent un élément de travail Lien WI ↔ changeset/commit
BI-IND-2.3 Convention de nommage des fichiers et des versions Règle documentée
BI-IND-2.4 Les fichiers volumineux ou binaires ont une stratégie (cache exclu, .gitignore/.tfignore) Fichier d'exclusion
BI-IND-3.1 Le modèle est en TMDL, le rapport en PBIR ; le .pbix n'est plus la source Dossiers .SemanticModel/.Report en dépôt
BI-IND-3.2 Revue de modification (pull request ou revue de changeset) obligatoire Historique de revues
BI-IND-3.3 Branches ou stratégie de fusion définies pour le modèle Document de stratégie (stratégies de branches)
BI-IND-3.4 Conflits de fusion TMDL traitables (diff lisible) Fusion réussie documentée
BI-IND-3.5 Cache local et paramètres personnels exclus du dépôt Fichiers d'exclusion à jour
BI-IND-4.1 Environnements dev/test/prod séparés (espaces ou capacités distincts) Cartographie des environnements
BI-IND-4.2 Un pipeline de déploiement (service ou CI) déplace les artefacts d'un environnement à l'autre Historique de déploiements
BI-IND-4.3 Règles de paramètres (serveur, base, ID) par environnement ; aucun changement manuel après déploiement Règles posées
BI-IND-4.4 Les tests (TST) s'exécutent avant promotion Étape de test dans le pipeline
BI-IND-4.5 Droits de promotion séparés des droits de développement Rôles distincts
BI-IND-5.1 Déploiement déclenché automatiquement par fusion validée Pipeline CI/CD
BI-IND-5.2 Retour arrière testé : restauration de la version N−1 en < 15 min Exercice documenté
BI-IND-5.3 Les artefacts liés (kits SQL, modèles, rapports) sont déployés ensemble avec compatibilité vérifiée Matrice de compatibilité
BI-IND-5.4 Notes de version générées à partir de l'historique Notes publiées

5. Lecture détaillée par niveau#

🟢 Niveau 1 — Fichier partagé#

  • Signes : Rapport_v3_final_OK.pbix, publication depuis le poste de l'auteur, aucune idée de ce qui a changé.
  • Difficulté : 1/5 · Effort : 1/5.

🟢 Niveau 2 — Dépôt de fichiers#

  • Signes : les .pbix sont dans Git (ou TFVC) avec un historique ; le dépôt gonfle (binaire non delta-compressible), le diff est impossible.
  • Gain : traçabilité, retour à une version.
  • Limite : pas de revue de fond, pas de fusion.
  • Difficulté : 2/5 · Effort : 2/5.
⚠️ Piège

Symptôme : le dépôt TFVC/Git grossit de 50 Mo à chaque commit de .pbix. Cause : binaire entièrement stocké à chaque version. Remède : passer au format PBIP texte ; exclure cache.abf, localSettings.json et le dossier .pbi/ des fichiers locaux.

🟡 Niveau 3 — Projet texte#

Structure typique d'un PBIP :

Rapport Ventes.pbip
Rapport Ventes.SemanticModel/
    definition/
        model.tmdl
        tables/FACT_VISITE.tmdl
        relationships.tmdl
        roles/Perimetre.tmdl
        cultures/en-US.tmdl
Rapport Ventes.Report/
    definition/
        pages/pages.json
        pages/<id>/visuals/<id>/visual.json
  • Signes : on lit un diff de mesure comme du code ; deux développeurs travaillent sur deux tables ; la revue se fait sur le TMDL. Le TMDL a des règles de forme strictes (indentation, une seule colonne clé par table) : un validateur de syntaxe avant ouverture évite de corrompre le projet.
  • Gain : parallélisme, revue, historique fin.
  • Limite : la fusion de fichiers JSON de rapport (PBIR) reste plus délicate ; les identifiants de visuels sont des GUID.
  • Difficulté : 3/5 · Effort : 3/5.
💡 Astuce d'expert

En contrôle de source centralisé (TFVC), le verrouillage ou l'extraction exclusive d'un fichier de rapport évite la fusion JSON hasardeuse ; en Git, préfère des branches courtes et une zone de responsabilité par page.

✅ Bonne pratique

Le BOM et les fins de ligne comptent : les fichiers TMDL écrits par l'outil Power BI sont enregistrés sans BOM ; ne les « corrige » pas, l'outil les réécrit à chaque sauvegarde. Documente l'encodage par type de fichier du dépôt.

🟡 Niveau 4 — Pipeline#

  • Signes : trois espaces (ou trois capacités) ; un pipeline de déploiement du service Power BI, ou un pipeline CI qui publie via les API/outils en ligne de commande (Tabular Editor CLI, fabric-cicd, API REST — outils à vérifier selon version). Les paramètres changent par environnement via règles, pas à la main.
  • Gain : reproductibilité.
  • Limite : tous les objets ne se déploient pas de la même façon (certaines sources, passerelles, droits restent à configurer) ; écart possible entre les environnements.
  • Difficulté : 4/5 · Effort : 4/5.
# Esquisse de pipeline (étapes logiques, indépendantes de l'outil)
stages:
  - validate:   # syntaxe TMDL, BPA, tests de mesures sur le modèle de test
  - deploy_test: # publier dans l'espace Test avec règles de paramètres
  - smoke_test:  # requêtes DAX de référence, rafraîchissement
  - approve:     # validation humaine (métier)
  - deploy_prod
🧪 Exemple

Fil rouge SFA : un rapport lié au datamart est livré avec un kit SQL. La version du rapport exige une version minimale du datamart. La matrice de compatibilité (rapport X.Y ↔ datamart ≥ X.Y.Z) est vérifiée par un test qui lit la version du datamart avant promotion.

🔴 Niveau 5 — Continu#

  • Signes : fusion validée → déploiement vers Test automatique → promotion prod après tests et approbation ; retour arrière exercé ; notes de version générées.
  • Gain : livrer souvent, petit, sûr (voir DL — intégration et livraison continues et CI/CD pour la data).
  • Limite : un changement de modèle (schéma) n'est pas réversible comme un changement de rapport (ex. suppression de colonne, perte du lineage) ; le retour arrière requiert une stratégie de compatibilité ascendante.
  • Difficulté : 5/5 · Effort : 5/5.
🤖 IA

Les assistants génèrent des pipelines YAML plausibles mais sans connaître vos environnements, droits et passerelles ; ils écrivent aussi du TMDL syntaxiquement fautif. Valider avec un contrôleur de syntaxe avant ouverture.

6. Atteinte partielle et notation#

Règle commune. « Un 5 partiel » : le déploiement automatique existe pour le modèle, mais pas pour les rapports (BI-IND-5.1 = 0,5) ; retour arrière jamais exercé (5.2 = 0) ; compatibilité entre kits vérifiée à la main (5.3 = 0,5) ; notes de version rédigées à la main (5.4 = 0,5).

7. Passer au niveau suivant#

Moyens possibles (facultatifs) :

Passage Leviers possibles
1 → 2 Dépôt, conventions, espace de travail d'équipe
2 → 3 Migration PBIP/TMDL/PBIR ; revue obligatoire ; validateurs de syntaxe
3 → 4 Pipeline de déploiement ; règles de paramètres ; séparation des droits
4 → 5 CI/CD complet ; test de retour arrière ; matrice de compatibilité ; notes générées

Pièges :

  • Faux positif : « tout est dans Git » mais le déploiement passe encore par une publication manuelle depuis Desktop.
  • Goodhart : compter les déploiements encourage des micro-déploiements sans valeur ; mesure aussi le taux d'échec et le délai de retour arrière.
  • Renommer un objet publié casse les rapports liés : la livraison d'un modèle est un contrat (MOD, DAX).
  • Écraser le travail d'un collègue : sans fusion lisible, la dernière sauvegarde gagne.

8. Voir aussi#

✻ Rédigé par Claude Sonnet 5.5