Power BI va bien au-dela du rapport statique. En entretien Senior, on evalue la capacite a deployer de maniere reproducible, a versionner et a automatiser le cycle de vie des rapports.
Un Data Analyst qui deploie manuellement ses rapports Power BI en production cree du risque. Le CI/CD Power BI permet de tester, versionner et deployer de maniere reproductible — c est ce qu on attend d un profil Senior en 2025.
1Deployment Pipelines : DEV / TEST / PROD
Question discriminante
Comment mettez-vous en place un pipeline DEV → TEST → PROD pour vos rapports Power BI ?
- Deployment Pipelines — fonctionnalite native Power BI Service (Premium / Fabric). 3 etapes : developpement, test, production
- Promotion — deployer d une etape a l autre en un clic ou via API REST. Les connexions de donnees sont automatiquement remappees
- Rules — configurer des regles de deploiement pour adapter automatiquement les parametres (URL de datasource, workspace ID) selon l environnement
- Comparaison — comparer les changements entre etapes avant de promouvoir
2XMLA Endpoint : connexion programmable au modele semantique
Question discriminante
Qu est-ce que l XMLA Endpoint ? Dans quel cas l utilisez-vous ?
- XMLA Endpoint — interface programmatique au modele semantique Power BI (anciennement dataset). Compatible avec SSAS (Analysis Services)
- Tabular Editor — outil gratuit pour modifier le modele semantique via XMLA : creer des mesures DAX, des hierarchies, des tables calculees sans ouvrir Power BI Desktop
- BISM Normalizer — comparer et synchroniser deux modeles semantiques via XMLA
- Cas d usage — migration de modeles, scripting de la creation de mesures en masse, review de code du modele dans Git
3API REST Power BI : automatisation complete
import requests
import json
# Authentification via Service Principal
def get_token(tenant_id, client_id, client_secret):
url = f'https://login.microsoftonline.com/{tenant_id}/oauth2/token'
data = {
'grant_type': 'client_credentials',
'client_id': client_id,
'client_secret': client_secret,
'resource': 'https://analysis.windows.net/powerbi/api'
}
return requests.post(url, data=data).json()['access_token']
token = get_token(TENANT_ID, CLIENT_ID, CLIENT_SECRET)
headers = {'Authorization': f'Bearer {token}'}
# Declencher un refresh
requests.post(
f'https://api.powerbi.com/v1.0/myorg/groups/{WORKSPACE_ID}/datasets/{DATASET_ID}/refreshes',
headers=headers
)
- Service Principal — authentification non interactive pour les pipelines CI/CD. Jamais de compte utilisateur dans les scripts
- Operations disponibles — refresh de dataset, deploiement de rapport, gestion des espaces de travail, permissions
4Git et versioning des rapports Power BI
- PBIP format — Power BI Project : format source-control friendly (JSON/YAML) introduit en 2023. Remplace le .pbix binaire dans Git
- Git integration — Power BI Service peut se connecter a Azure DevOps ou GitHub pour le versioning automatique des workspaces
- Workflow — developpeur travaille en local → commit sur branche feature → PR → review → merge sur main → deploiement automatique via pipeline CI/CD
5Tests automatises sur les rapports
- Tests de donnees — verifier via l API REST que les valeurs cles n ont pas change de maniere inattendue apres un deploiement
- DAX tests — librairie PyDAX pour tester les mesures DAX de maniere automatisee
- Screenshotting — capturer les visuels avant/apres deploiement et comparer les differences (PowerBI-Automation)
6Power BI et Microsoft Fabric
- Microsoft Fabric — plateforme unifiee Microsoft qui englobe Power BI, Synapse, Data Factory. Partage la meme couche de stockage (OneLake)
- Direct Lake — connexion Zero-Copy entre les modeles semantiques Power BI et les tables Delta dans OneLake. Performances en temps reel sans Import ni DirectQuery
- Fabric Workspaces — les deployment pipelines fonctionnent avec les workspaces Fabric pour tous les artefacts (notebooks, dataflows, semantic models)
7Grille par niveau
| Niveau | Maitrise | Signal GO | NO-GO |
|---|
| Confirme | Deployment Pipelines, API REST basique, PBIP format | A configure un pipeline DEV/TEST/PROD, connait le format PBIP | Deploie toujours manuellement en production |
| Senior | Service Principal, CI/CD complet, Git integration, tests automatises | A integre Power BI dans un pipeline GitHub Actions, utilise un Service Principal | N a jamais automatise de deploiement Power BI |
| Lead | Architecture Fabric, standards de gouvernance, XMLA avance | A migre vers Fabric, a defini les standards CI/CD Power BI de son equipe | Ne connait pas Microsoft Fabric ni l XMLA Endpoint |