

- 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
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…
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.
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
.pbixsont 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.
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.
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.
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
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.
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#
- Thèmes voisins : TST · MOD · GOV · OPS
- Autres matrices : DL — gestion de version et branches · DL — déploiement et exploitation · PD — délais et DataOps
- Contenus : Git en profondeur · TFVC en profondeur · GDS et données SQL/BI · CI/CD · Azure DevOps / TFS en profondeur
✻ Rédigé par Claude Sonnet 5.5