

- Description
- Passerelle de nuit, dont les cadres lumineux décalés forment un tunnel au-dessus d’une vallée enneigée.
- Source
- Tony Webster tonywebster · page d’origine
- Licence
- CC0 Domaine public
Comparatif — OneLake / Fabric contre SQL Server managé pour le reporting Power BI
Vous saurez situer, sur neuf aspects d'architecture, une plateforme Fabric / OneLake (alimentée par des applications mobiles SaaS) face à une base SQL Server managée (Azure SQL Database…
En bref
- Vous saurez situer, sur neuf aspects d'architecture, une plateforme Fabric / OneLake (alimentée par des applications mobiles SaaS) face à une base SQL Server managée (Azure SQL Database, Managed Instance, SQL database in Fabric) comme source Power BI.
- Vous disposerez d'une heatmap notée /5, d'un arbre de décision et de scénarios types pour trancher en réunion, sans dogme.
- Vous saurez chiffrer en ordres de grandeur (signalés comme tels) ce que coûte chaque option, et ce qui fait basculer de l'une à l'autre.
- Vous connaîtrez les trajectoires de coexistence : le plus souvent, la bonne réponse n'est ni l'un ni l'autre, mais SQL managé + mirroring vers Fabric.
- Vous repartirez avec les liens vers les dossiers détaillés (OneLake 01 à 04, SQL Server 05 à 08).
Sur cette page
- 1. Cadre, interprétation et nuance PaaS contre SaaS
- 2. Les options comparées
- 3. Grille de notation et lecture des notes
- 4. Comparatif aspect par aspect
- 5. Heatmap de synthèse
- 6. Coûts comparés en ordres de grandeur
- 7. Arbre de décision
- 8. Scénarios types
- 8.1 Scénario 1 — Force de vente terrain, 150 utilisateurs, datamart SQL existant (le fil rouge)
- 8.2 Scénario 2 — Multi-SaaS (CRM + SFA + support), schémas mouvants, équipe data engineering
- 8.3 Scénario 3 — Grande diffusion (2 000 lecteurs), peu de développeurs
- 8.4 Scénario 4 — Temps réel opérationnel (suivi de tournée, alertes)
- 8.5 Scénario 5 — Petite structure, 15 utilisateurs, budget serré
- 8.6 Scénario 6 — Conformité stricte (secteur régulé)
- 9. Trajectoires de migration et de coexistence
- 10. Ce qui fait basculer
- 11. Pièges de la décision
- 12. Contribution de l'IA à la décision
- 13. Voir aussi
Niveau : 🟢→🔴
1. Cadre, interprétation et nuance PaaS contre SaaS#
Ce document reprend les interprétations retenues pour le dossier (détail dans le README du dossier).
- « OneLake + applications mobiles en SaaS » désigne un reporting Power BI dont la source analytique est Microsoft Fabric / OneLake (lakehouse, warehouse, Direct Lake, mirroring, shortcuts, pipelines, dataflows Gen2, eventstream), alimenté par des applications mobiles SaaS (SFA/CRM terrain, Dynamics 365, Salesforce, Power Apps, applications de collecte). Cela implique des quotas d'API, des schémas qui dérivent, des données synchronisées après un passage hors ligne, de la latence et des questions d'identité.
- « SQL Server en SaaS » désigne une base relationnelle managée en cloud — Azure SQL Database, Azure SQL Managed Instance, SQL database in Fabric ; SQL Server sur machine virtuelle sert de contraste — utilisée comme source Power BI (Import, DirectQuery, composite, ou Direct Lake via mirroring), le service Power BI étant lui-même en SaaS.
Le vocabulaire « SaaS » est trompeur. Azure SQL Database est strictement du PaaS (vous ne gérez ni l'OS ni le moteur, mais vous gérez le schéma, les index, la mise à l'échelle, la sauvegarde logique et les droits). Seuls Power BI (service) et, dans une large mesure, Fabric (SaaS « unifié ») sont du SaaS. SQL database in Fabric est, elle, une base SQL dans le SaaS Fabric. Dire « SQL en SaaS » fait donc croire à tort que personne n'a à l'exploiter.
Les deux options ne sont pas exclusives : le mirroring Fabric de SQL managé (voir § 9) est précisément le pont. Le comparatif sert à choisir un centre de gravité, pas à bannir une brique.
Fil rouge illustratif (anonyme) : un datamart SQL Server alimenté par une application de force de vente terrain, avec des rapports Power BI multilingues, versionné en TFVC et livré en kits d'installation. Il est typiquement le point de départ d'une réflexion « faut-il passer à OneLake ? ».
2. Les options comparées#
🟢 Novice — Quatre architectures de référence#
| Code | Architecture | En une phrase |
|---|---|---|
| A | Fabric / OneLake natif | Les données SaaS atterrissent dans un lakehouse/warehouse (pipelines, dataflows Gen2, mirroring de la source SaaS quand il existe), le modèle sémantique lit en Direct Lake. |
| B | SQL managé + Import | Un datamart dans Azure SQL Database ou Managed Instance ; Power BI importe les données selon un calendrier. |
| C | SQL managé + DirectQuery / composite | Même base, mais Power BI interroge la source à la volée (tout ou partie des tables). |
| D | Hybride : SQL managé + mirroring vers Fabric | Le datamart reste en SQL ; sa réplique Delta vit dans OneLake et alimente Direct Lake, notebooks, IA. |
Pour contraste, E — SQL Server sur VM : mêmes principes que B/C mais vous exploitez l'OS, les correctifs, la haute disponibilité et les sauvegardes. À ne garder que pour une raison de compatibilité (fonctionnalités non disponibles en PaaS, licences existantes) : voir 06 — architecture SQL Server.
🟡 Pratique — Ce qui distingue vraiment A de B/C#
- Où se fait la transformation. En A, dans Spark/SQL de Fabric, dans des notebooks, pipelines et dataflows ; en B/C, en T-SQL dans des procédures, avec le moteur relationnel pour contrainte d'intégrité (clés, contraintes, transactions).
- Quel moteur sert les requêtes du rapport. En A (Direct Lake), le moteur VertiPaq lit des fichiers Delta/Parquet sans copie ; en B, il lit sa propre copie importée ; en C, c'est le moteur SQL qui répond, requête après requête.
- Quelle unité de facturation. A repose sur une capacité Fabric (unités de capacité, partagées par tous les workloads) ; B/C sur une base dimensionnée (DTU ou vCore) plus des licences Power BI ; D cumule les deux.
- Quelle relation avec la source SaaS. Ni A ni B ne retirent le problème de l'extraction SaaS : quotas d'API, pagination, schémas évolutifs. Le choix change où on le traite. Voir 03 — difficultés et pièges (OneLake) et 07 — difficultés et pièges (SQL Server).
3. Grille de notation et lecture des notes#
Les neuf aspects sont ceux du brief « architectures de reporting ». Une note 5/5 est toujours favorable (y compris pour « coût » et « complexité » : 5 = peu coûteux, peu complexe). Les notes sont des appréciations d'expert, contextuelles, pas des mesures (voir NOTATION).
Contexte de notation — équipe BI de 3 à 8 personnes, 20 à 300 utilisateurs de rapports, volumétrie de 10 Go à 2 To, source principale une application SFA SaaS plus des référentiels internes, exigence de rafraîchissement entre 15 minutes et la journée. Au-delà (milliers d'utilisateurs, téraoctets, quasi temps réel), les notes bougent : voir § 10.
| Aspect | Ce que la note 5/5 signifie |
|---|---|
| Fraîcheur | Données disponibles en quelques secondes à minutes, sans orchestration lourde |
| Performance | Rapports réactifs (< 2 s sur les visuels courants) à volumétrie élevée |
| Coût | Coût total faible et prévisible (infrastructure, licences, temps humain) |
| Complexité | Peu de pièces mobiles, diagnostic simple |
| Gouvernance / sécurité | Contrôle fin, traçabilité, RLS/OLS, lignage, conformité, bien outillés |
| Scalabilité | Croît en données et en utilisateurs sans refonte |
| Compétences requises | Compétences courantes, faciles à recruter ou à former |
| Maturité de la techno | Fonctionnalités stables (GA), pratiques établies, peu de surprises |
| Risque de verrouillage | Sortie aisée, formats ouverts, peu de dépendance propriétaire (5 = faible risque) |
4. Comparatif aspect par aspect#
4.1 Fraîcheur#
Option A. La fraîcheur dépend du maillon le plus lent de la chaîne : l'API SaaS (quotas, pagination), l'orchestration, puis le « framing » Direct Lake qui rafraîchit les métadonnées du modèle. Avec le mirroring d'une source supportée, la réplication est quasi continue ; avec des pipelines sur API SaaS, comptez le quart d'heure à l'heure. Un eventstream peut descendre à quelques secondes pour des flux d'événements, au prix d'une autre complexité.
Option B. Le rafraîchissement Import est planifié (8 actualisations planifiées par jour en capacité partagée, jusqu'à 48 sur une capacité Premium, PPU ou Fabric, selon la documentation Microsoft ; état 2026-10) et déclenchable par API en fin de chargement. La fraîcheur réaliste se compte en heures, au mieux quelques dizaines de minutes sur des petits modèles ou avec actualisation incrémentale.
Option C. La fraîcheur est celle de la base : excellente (temps réel) mais obtenue en reportant la charge sur la base à chaque interaction utilisateur.
Option D. Le mirroring SQL → OneLake est conçu pour une latence faible (de l'ordre de quelques secondes à minutes en régime normal ; ordre de grandeur, à vérifier selon la charge), mais la fraîcheur de votre datamart reste celle de ses propres chargements.
La fraîcheur d'un rapport est la somme des latences : application mobile → synchronisation (parfois hors ligne, donc heures) → API → ETL → modèle → cache de visuels. Mesurez le pire maillon avant de promettre « temps réel ». Souvent, c'est la synchronisation du terminal mobile qui domine, pas la plateforme.
4.2 Performance#
Option A. Direct Lake combine la vitesse d'Import (colonnes en mémoire VertiPaq) et l'absence de copie. Les performances dépendent de l'hygiène des fichiers Delta : trop de petits fichiers, absence d'optimisation V-Order ou de compactage, row groups mal dimensionnés. Au-delà des limites de la capacité (taille de modèle par SKU, garde-fous Direct Lake), le comportement peut basculer en repli DirectQuery : la performance chute alors sans que le rapport ne change. Voir 02 — architecture OneLake.
Option B. Import offre la meilleure performance de requête à volumétrie moyenne, avec un modèle bien conçu (étoile, colonnes à faible cardinalité, mesures efficaces). Le plafond est la taille du modèle importable selon la licence/capacité.
Option C. DirectQuery rend la performance dépendante du moteur SQL et de l'indexation : index columnstore, statistiques, plans de requête. Bien conçu (agrégations, tables agrégées en mode Import dans un modèle composite), il convient aux grandes tables de faits ; mal conçu, il produit des visuels à 10 secondes et une base saturée.
Option D. Direct Lake sur la réplique donne la performance de A sans migrer le traitement : l'équipe garde T-SQL et ses procédures.
4.3 Coût#
Voir le détail en § 6. En synthèse : B est la plus économique pour un petit périmètre (une base de quelques centaines de dollars par mois et des licences Pro) ; A impose un ticket d'entrée de capacité mais mutualise Power BI et analytique ; C cumule coût de base élevé (le dimensionnement doit absorber les requêtes interactives) ; D additionne les deux, en partie compensé par l'absence d'ETL de réplication.
4.4 Complexité#
- B est la plus simple : peu de pièces, compétences standard, diagnostic connu.
- C ajoute le diagnostic de requêtes générées par DAX → SQL, source d'opacité.
- A multiplie les composants (lakehouse, warehouse, notebooks, pipelines, dataflows, capacité, workspaces, domaines) et un modèle de capacité à surveiller (lissage, throttling).
- D combine B + une couche A mince : plus de composants que B, mais sans réécrire les traitements.
4.5 Gouvernance et sécurité#
- A : OneLake offre un point de stockage unique, du lignage, des étiquettes de sensibilité (Microsoft Purview), une sécurité « OneLake security » (rôles de données avec RLS/CLS, documentée sans mention de préversion ; seule l'intégration de moteurs tiers autorisés reste en préversion, état 2026-10). Le risque est la dispersion de la sécurité : droits d'espace de travail, droits sur l'élément, RLS dans le modèle, sécurité côté SQL endpoint, côté Direct Lake. Une règle RLS mal alignée entre couches fuit ou bloque.
- B/C : le modèle est connu — authentification Entra ID, rôles de base, RLS native SQL (DirectQuery) et RLS Power BI (Import). En DirectQuery avec identité SSO, la RLS SQL s'applique à l'utilisateur final ; sans SSO, c'est un compte de service qui voit tout et la RLS Power BI porte seule la sécurité.
- D hérite des deux : veillez à ce que la réplique OneLake ne contourne pas les protections de la source (une donnée masquée en SQL ne doit pas être lisible en clair dans OneLake).
Symptôme : un utilisateur interdit de voir un client le voit via un notebook ou le SQL endpoint du lakehouse. Cause : la RLS a été posée uniquement dans le modèle sémantique. Remède : traiter la sécurité à chaque point d'accès (ou n'exposer que le modèle), documenter la matrice « couche × mécanisme » et la tester.
4.6 Scalabilité#
- A : conçue pour de très grandes volumétries et la montée en capacité par SKU, avec la contrainte de partage de la capacité entre rapports interactifs et traitements batch (noisy neighbour).
- B/C : montée en puissance verticale (vCore/DTU), hyperscale pour les très grosses bases ; la limite de B est la taille de modèle importable, celle de C est le moteur relationnel sous charge interactive.
- D : l'analytique monte à l'échelle côté Fabric, l'écriture transactionnelle côté SQL.
4.7 Compétences requises#
| Option | Profils nécessaires | Remarque |
|---|---|---|
| A | Data engineer (Spark/PySpark, Delta, pipelines), analytics engineer, administrateur de capacité, modeleur sémantique | Compétences plus rares et plus chères ; courbe d'apprentissage réelle |
| B | Développeur T-SQL/ETL, modeleur Power BI | Compétences très répandues |
| C | Idem B + spécialiste performance SQL | Le réglage d'index/plans devient critique |
| D | B + notions OneLake/Direct Lake | Montée en compétence progressive |
4.8 Maturité de la technologie#
SQL managé et Power BI Import/DirectQuery sont très matures. Fabric est GA mais évolue vite : certaines fonctionnalités passent de preview à GA en quelques mois et l'écosystème de pratiques (CI/CD, tests, observabilité) se consolide. Le mirroring d'Azure SQL Database est GA depuis novembre 2024 et celui d'Azure SQL Managed Instance l'est aussi ; des extensions (passerelle pour une instance non publique, tables sans clé primaire) sont arrivées par paliers depuis 2025 — vérifier l'état exact pour votre cas dans la documentation à jour (état 2026-10).
4.9 Risque de verrouillage#
OneLake stocke du Delta/Parquet, format ouvert, ce qui réduit le verrouillage des données ; mais le verrouillage se déplace vers l'orchestration, les modèles sémantiques, les droits et le modèle de capacité. SQL managé est verrouillé sur T-SQL (mais portable vers SQL Server sur site ou VM) ; Power BI reste le verrou côté restitution dans les deux cas.
Le fil rouge (datamart SQL, rapports multilingues, kits d'installation) possède des procédures T-SQL de consolidation qui forment l'actif principal. Migrer ces procédures vers des notebooks Spark ne se fait pas par « glisser-déposer » : c'est une réécriture. Le mirroring préserve cet actif et ouvre OneLake.
5. Heatmap de synthèse#
Légende : 🟥 1–2 · 🟧 3 · 🟨 3,5–4 · 🟩 4,5–5. Notes /5, plus c'est haut, plus c'est favorable.
| Aspect | A — Fabric / OneLake natif | B — SQL managé + Import | C — SQL managé + DirectQuery | D — SQL managé + mirroring Fabric |
|---|---|---|---|---|
| Fraîcheur | 🟩 4/5 | 🟧 3/5 | 🟩 5/5 | 🟩 4/5 |
| Performance | 🟩 4/5 | 🟩 5/5 | 🟥 2/5 | 🟩 4/5 |
| Coût | 🟧 3/5 | 🟩 4/5 | 🟧 3/5 | 🟥 2/5 |
| Complexité | 🟥 2/5 | 🟩 4/5 | 🟧 3/5 | 🟧 3/5 |
| Gouvernance / sécurité | 🟨 4/5 | 🟨 4/5 | 🟧 3/5 | 🟧 3/5 |
| Scalabilité | 🟩 5/5 | 🟧 3/5 | 🟧 3/5 | 🟩 4/5 |
| Compétences requises | 🟥 2/5 | 🟩 4/5 | 🟧 3/5 | 🟧 3/5 |
| Maturité de la techno | 🟧 3/5 | 🟩 5/5 | 🟩 5/5 | 🟧 3/5 |
| Risque de verrouillage (5 = faible) | 🟧 3/5 | 🟨 4/5 | 🟨 4/5 | 🟨 4/5 |
| Moyenne non pondérée | 3,3/5 | 4,0/5 | 3,4/5 | 3,3/5 |
Lecture honnête :
- B l'emporte à périmètre modeste. C'est la moyenne la plus haute : ce n'est pas un hasard, c'est la combinaison la moins sophistiquée.
- La moyenne ne décide pas. Pondérez selon votre contexte : si la scalabilité et l'IA pèsent trois fois plus que la complexité, A et D remontent nettement. Refaites le calcul avec vos poids.
- C est rarement un choix de destination. C'est un outil ponctuel (très grosse table de faits, exigence de temps réel, contrainte de non-copie), jamais un défaut.
- D vaut surtout pour son optionnalité : il achète la possibilité de Direct Lake, de notebooks et d'IA sans réécriture, au prix de coûts additionnels.
Faites noter la grille par trois personnes (un développeur, un exploitant, un utilisateur clé) indépendamment, puis comparez les écarts. Un écart de 2 points sur « complexité » révèle un non-dit sur l'exploitation, plus utile que la moyenne.
6. Coûts comparés en ordres de grandeur#
Tous les chiffres ci-dessous sont des ordres de grandeur indicatifs, non des devis. Tarifs publics, régions, remises contractuelles, engagements (réservations), devises et licences évoluent ; état 2026-10, à vérifier sur les pages officielles de tarification avant tout budget. Une recherche de contrôle indiquait un Power BI Pro autour de 14 $ et un Premium par utilisateur autour de 24 $ par utilisateur et par mois en facturation annuelle, et des capacités Fabric facturées à l'unité de capacité (F4 autour de 500 $/mois en paiement à l'usage, soit un F2 autour de 260 $ ; à reconfirmer).
🟡 Pratique — Les postes de coût#
| Poste | A — Fabric natif | B — SQL + Import | C — SQL + DirectQuery | D — SQL + mirroring |
|---|---|---|---|---|
| Stockage / calcul de la plateforme | Capacité Fabric (F2 à F64+ ; de quelques centaines à ~10 000 $/mois selon taille) | Base SQL dimensionnée (de ~100 à plusieurs milliers $/mois selon vCore/DTU) | Base plus grosse (elle absorbe la charge interactive) | Base SQL + capacité Fabric (le stockage mirroré est souvent inclus jusqu'à un quota lié à la capacité : à vérifier) |
| Licences Power BI | Pro/PPU pour les créateurs ; lecteurs gratuits possibles sur capacité suffisante (capacité F64 ou supérieure, avec rôle Lecteur sur l'espace de travail, selon la documentation Microsoft) | Pro par utilisateur (consommateurs inclus) ou capacité | Idem B | Idem A |
| Orchestration / ETL | Pipelines, dataflows, notebooks : consomment de la capacité | T-SQL / Azure Data Factory / agent : coût marginal | Idem B | ETL SQL conservé ; peu d'ETL de réplication |
| Temps humain | Le plus élevé au démarrage (nouvelles compétences) | Le plus faible | Réglage de performance récurrent | Intermédiaire |
| Passerelle de données | Souvent évitée en SaaS pur ; requise pour sources sur site | Selon l'accessibilité de la base (point de terminaison privé, VNet) | Idem B | Selon source |
🟡 Pratique — Raisonnements chiffrés (illustratifs)#
Petite équipe, 40 utilisateurs, base de 20 Go.
- B : une base SQL de dimension modeste (ordre de grandeur : 150 à 400 $/mois) + 40 licences Pro (≈ 40 × 14 = 560 $/mois) ⇒ ~700 à ~1 000 $/mois.
- A : une capacité F2 à F4 (≈ 260 à 530 $/mois) ne dispense pas des licences Pro pour lire (les lecteurs gratuits exigent une capacité plus grande) ⇒ ~800 à ~1 100 $/mois, soit un coût proche, avec en plus le coût d'apprentissage. Conclusion : à ce niveau, le coût ne tranche pas ; c'est la complexité et les compétences qui décident, donc B.
Grand déploiement, 2 000 lecteurs, 1 To.
- B/C : 2 000 × 14 ≈ 28 000 $/mois de licences Pro seules.
- A/D : une capacité F64 (de l'ordre de 8 000 à 10 000 $/mois en paiement à l'usage, moins avec réservation) permettant la lecture sans licence individuelle pour les consommateurs (condition à vérifier) ⇒ coût inférieur de moitié ou plus. Conclusion : au-delà d'un certain nombre de lecteurs, la capacité est moins chère que les licences par utilisateur. Le point d'équilibre se situe autour de quelques centaines de lecteurs (ordre de grandeur, à recalculer avec vos tarifs).
🔴 Expert — Les coûts cachés#
- Le lissage et le throttling (Fabric) : une capacité sous-dimensionnée ralentit tout le monde ; la parade (monter de SKU, séparer les capacités par criticité) a un coût. Prévoir un monitoring de l'utilisation de capacité (application Capacity Metrics).
- Les ré-exécutions : un chargement SaaS qui échoue sur quota d'API consomme du calcul pour rien ; l'idempotence et le rejeu sont un poste de coût et de conception.
- Le mirroring : inclut un stockage OneLake jusqu'à un quota proportionnel à la capacité, au-delà duquel il est facturé comme du stockage ; le calcul de réplication est, selon la documentation, gratuit au titre de la capacité (à vérifier pour votre configuration). La source supporte une charge supplémentaire de lecture du journal de transactions.
- Le DirectQuery : chaque interaction d'utilisateur génère des requêtes ; sur une base facturée à la taille de calcul, l'usage interactif impose de dimensionner pour le pic.
- La dette de compétence : sans compétences Spark/Delta en interne, A se transforme en prestation externe récurrente.
- Le coût de l'indécision : maintenir deux plateformes sans cible claire coûte souvent plus que de choisir la « mauvaise » option raisonnée.
7. Arbre de décision#
🟢 Novice — Cinq questions dans l'ordre#
Q1. Avez-vous déjà un datamart SQL qui fonctionne et que l'équipe maîtrise ?
├─ Oui → Q2
└─ Non (projet neuf, sources SaaS dominantes) → Q4
Q2. Quelque chose empêche-t-il de rester en SQL managé + Import ?
(volumétrie hors limites du modèle importé, besoin d'IA/notebooks, besoin de
lecteurs nombreux sans licence individuelle, exigence de fraîcheur < 15 min)
├─ Non → OPTION B (SQL managé + Import) — ne changez rien d'inutile
└─ Oui → Q3
Q3. Pouvez-vous garder les traitements T-SQL tels quels ?
├─ Oui → OPTION D (SQL managé + mirroring + Direct Lake)
└─ Non, il faut aussi sortir du T-SQL → OPTION A, migration par étapes (§ 9)
Q4. Les données arrivent-elles surtout par API/exports SaaS, avec schémas mouvants ?
├─ Oui, et vous avez/embauchez des compétences Spark/Delta → OPTION A
└─ Oui, mais l'équipe est T-SQL → OPTION D ou B (atterrissage en base SQL,
extraction par pipeline léger), A plus tard
Q5. Besoin de temps réel strict sur une grosse table de faits, sans copie ?
└─ Ajoutez ponctuellement une table en DirectQuery (modèle composite),
jamais le modèle entier — OPTION C en complément, pas en défaut.
🟡 Pratique — Les contraintes dures qui court-circuitent l'arbre#
| Contrainte | Conséquence |
|---|---|
| Données interdites hors d'une région ou d'un tenant | Vérifier la résidence des données de Fabric/OneLake et de la capacité avant tout (région de la capacité) |
| Base derrière réseau privé strict | Vérifier la prise en charge des points de terminaison privés, passerelles ou VNet pour le mirroring ou la lecture (états variables, à vérifier) |
| Fonctionnalités SQL non disponibles en PaaS | SQL Server sur VM ou Managed Instance plutôt que Database |
| Pas de budget de formation | B ou D, pas A |
| Engagement contractuel sur Power BI Premium par capacité | Étudier la migration vers F-SKUs (Microsoft ne vend plus de P-SKUs et chaque abonnement prend fin à l'échéance de l'accord en cours ; état 2026-10, à vérifier pour votre contrat) |
🔴 Expert — Rendre la décision réversible#
Choisissez toujours la variante dont la sortie coûte le moins : atterrir les données SaaS brutes dans un stockage ouvert (OneLake ou stockage objet), conserver les traitements dans un langage portable, versionner modèles (PBIP/TMDL) et schémas, et masquer la source derrière une couche sémantique que les rapports référencent. La section 7 du dossier 06 et le dossier 02 détaillent la couche sémantique de chaque côté.
8. Scénarios types#
8.1 Scénario 1 — Force de vente terrain, 150 utilisateurs, datamart SQL existant (le fil rouge)#
- Contexte : application SFA alimentant un datamart SQL, rapports multilingues, livraison par kits.
- Recommandation : B maintenant (rien ne casse), D si un besoin d'analytique avancée ou d'IA apparaît. Surveiller le temps de rafraîchissement du modèle importé.
- Ce qui change la donne : une demande de données quasi temps réel sur les visites, ou une croissance qui fait dépasser la taille de modèle importable.
8.2 Scénario 2 — Multi-SaaS (CRM + SFA + support), schémas mouvants, équipe data engineering#
- Contexte : trois SaaS, API à quotas, historisation exigée, analystes en notebooks.
- Recommandation : A : lakehouse en médaillon (bronze brut, silver nettoyé, gold sémantique), Direct Lake. Le brut conservé absorbe les dérives de schéma.
- Garde-fous : idempotence des pipelines, gestion des quotas, contrat de données. Voir 03 — difficultés et pièges (OneLake).
8.3 Scénario 3 — Grande diffusion (2 000 lecteurs), peu de développeurs#
- Recommandation : modèle importé ou Direct Lake sur capacité (lecteurs sans licence individuelle si le seuil de capacité est atteint), D si la base reste en SQL. Le calcul de licences domine (voir § 6).
8.4 Scénario 4 — Temps réel opérationnel (suivi de tournée, alertes)#
- Recommandation : A avec eventstream (ou Real-Time Intelligence) pour le flux ; rapports Power BI en mode DirectQuery/streaming sur ce périmètre seulement ; le reste du reporting en B/D. Un seul modèle « temps réel de bout en bout » est un anti-modèle.
8.5 Scénario 5 — Petite structure, 15 utilisateurs, budget serré#
- Recommandation : B, sans hésiter. La plateforme la plus simple qui satisfait le besoin est la meilleure. Réévaluer annuellement.
8.6 Scénario 6 — Conformité stricte (secteur régulé)#
- Recommandation : celle que votre équipe sécurité sait auditer. B/C offrent des pratiques d'audit anciennes ; A impose de maîtriser la sécurité multicouche (workspace, élément, OneLake security, RLS). Une preuve de conformité qui n'existe pas n'est pas un argument technique.
Les assistants (Copilot dans Fabric et Power BI, assistants de code) accélèrent surtout les options à forte part de code déclaratif (notebooks, DAX, T-SQL). Ils ne changent pas le choix de plateforme, mais réduisent le coût de la compétence manquante : un argument à pondérer, jamais à surestimer. Voir 04 — IA (OneLake) et 08 — IA (SQL Server).
9. Trajectoires de migration et de coexistence#
🟡 Pratique — Trajectoire « mirroring d'abord » (la plus prudente)#
- Étape 0 — Cadrer : inventorier tables, volumétrie, consommateurs, exigences de fraîcheur et de sécurité. Choisir un périmètre pilote (3 à 5 tables de faits, 1 rapport).
- Étape 1 — Mirroring de la base SQL vers un élément « base de données mise en miroir » ; vérifier prérequis, limites de types de données, tables non répliquées et particularités (clé primaire, DDL supportés), qui évoluent : vérifier la documentation à jour (état 2026-10).
- Étape 2 — Modèle sémantique en Direct Lake sur la réplique (ou sur un lakehouse via raccourci), rapport pilote en parallèle de l'existant.
- Étape 3 — Comparaison de chiffres : recette « rapport ancien contre rapport nouveau » sur un jeu de KPI figé (voir 11 — checklist).
- Étape 4 — Bascule des rapports un par un, en conservant l'ancien modèle Import en secours une période définie.
- Étape 5 — Décommissionnement de ce qui est redondant seulement une fois la période de coexistence validée.
🟡 Pratique — Trajectoire « extraction SaaS vers OneLake »#
Quand la nouveauté est la source SaaS (pas la base SQL) :
- Atterrir les extractions SaaS brutes, horodatées, immuables dans OneLake (zone bronze).
- Normaliser en silver (types, clés, déduplication, gestion des suppressions logiques).
- Publier gold en warehouse ou lakehouse (modèle en étoile) ; le datamart SQL peut rester la source de référentiels (raccourcis ou mirroring).
- Laisser le datamart SQL consommer gold, ou le retirer progressivement.
🔴 Expert — Coexistence durable et gouvernance de la double source#
| Sujet | Règle |
|---|---|
| Source de vérité par domaine | Une seule par entité (ex. référentiel clients en SQL, événements de visite en lakehouse). Jamais deux écritures concurrentes. |
| Clés | Clés de substitution et clés naturelles identiques des deux côtés ; la réplique ne doit pas « réinventer » les clés. |
| Versions de schéma | Contrat de données versionné ; une colonne renommée en SQL casse la réplique et les modèles : prévenir en amont. |
| Sécurité | Matrice des droits unique, appliquée à chaque couche. |
| Observabilité | Un tableau de bord unique : fraîcheur par table, écart de comptage SQL/OneLake, échecs de pipeline. |
| Coûts | Étiqueter les ressources (base, capacité) pour suivre la dépense de la coexistence ; fixer une date de revue. |
Fixez dès le départ un critère de sortie de la coexistence (« à la fin du trimestre T+2, soit nous éteignons X, soit nous décidons de le garder pour la raison Y »). Sans cela, la coexistence devient l'architecture.
Symptôme : les chiffres du rapport Direct Lake diffèrent de ceux du rapport Import de quelques lignes. Causes fréquentes : fenêtre de réplication (le mirroring est en retard sur la base), colonnes de dates/heures avec fuseaux différents, types décimaux tronqués, suppressions non propagées, filtres RLS différents. Remède : un script de réconciliation (comptages et sommes par jour et par clé) exécuté automatiquement et publié.
Exemple de réconciliation côté SQL (à comparer au résultat équivalent sur le SQL endpoint de la réplique) :
-- Empreinte quotidienne d'une table de faits, comparable entre source et réplique
SELECT CAST([DateVisite] AS date) AS [Jour],
COUNT_BIG(*) AS [NbLignes],
SUM(CAST([Montant] AS decimal(19,4))) AS [SommeMontant],
CHECKSUM_AGG(CHECKSUM([ID_Visite])) AS [Empreinte]
FROM [dbo].[FACT_Visite] WITH (NOLOCK)
WHERE [DateVisite] >= DATEADD(day, -30, CAST(GETDATE() AS date))
GROUP BY CAST([DateVisite] AS date)
ORDER BY [Jour];
10. Ce qui fait basculer#
🟡 Pratique — Seuils de bascule (ordres de grandeur, à calibrer)#
| Signal | Mesure | Direction du basculement |
|---|---|---|
| Temps de rafraîchissement du modèle Import | > 60 % de la fenêtre nocturne ou > 1 h | Direct Lake (D/A) ou actualisation incrémentale |
| Taille du modèle | proche de la limite de la licence/capacité | Direct Lake, agrégations, partitionnement |
| Nombre de lecteurs | plusieurs centaines | Capacité (lecture sans licence individuelle, si seuil atteint) |
| Exigence de fraîcheur | < 15 min de bout en bout | Mirroring/eventstream |
| Analystes en notebooks / science des données | demande récurrente | OneLake accessible en lecture |
| Sources SaaS multiples à schéma mouvant | ≥ 3 sources | Atterrissage brut en lakehouse |
| Charge de la base due aux requêtes | CPU > 70 % aux heures de rapports | Sortir la lecture de la base (Import ou réplique) |
| Compétences | arrivée d'ingénieurs Spark | A devient réaliste |
| Budget | licences > coût d'une capacité | Capacité Fabric |
🔴 Expert — Les raisons de ne pas basculer#
- Le besoin est satisfait et l'équipe n'a pas de temps libre : un changement d'architecture sans douleur ressentie est une dépense, pas un investissement.
- Les données sont petites et les rapports peu nombreux.
- La gouvernance Fabric n'est pas prête (domaines, droits, cycle de vie des espaces de travail) : migrer le désordre vers un lac donne un marécage de données.
- Les rapports clients ou tiers sont liés à des modèles existants (identifiants de mesures, liens) : l'impact d'un changement de modèle dépasse l'équipe. Voir 10 — mesures et lineageTag.
11. Pièges de la décision#
| # | Piège | Symptôme | Remède |
|---|---|---|---|
| 1 | Choisir par effet de mode | La plateforme est choisie avant le besoin | Écrire d'abord 5 exigences mesurables |
| 2 | Comparer un produit mature à un produit annoncé | Notes basées sur des vidéos de démonstration | Faire un pilote chiffré de 2 à 4 semaines |
| 3 | Oublier les licences | Budget d'infrastructure sans ligne Power BI | Recalculer (§ 6) avec le nombre réel de lecteurs |
| 4 | Sous-estimer la gouvernance | Prolifération d'espaces de travail, droits incohérents | Définir domaines, conventions, propriétaires avant d'ouvrir |
| 5 | Surestimer la fraîcheur nécessaire | « Temps réel » demandé, J-1 suffit | Poser la question « quelle décision change en 5 minutes ? » |
| 6 | Négliger la source SaaS | Quotas d'API atteints, reprises manuelles | Prévoir retry, backoff, delta par curseur, brut immuable |
| 7 | Ne pas tester le repli DirectQuery | Rapport lent en production sans changement | Superviser le mode de requête réellement utilisé |
| 8 | Migrer sans recette de chiffres | Dérives silencieuses | Jeu de KPI figé et réconciliation automatisée |
| 9 | Double écriture | Divergence entre deux sources de vérité | Une source de vérité par entité |
| 10 | Évaluer sans exploitants | « Facile » pour le développeur, ingérable en production | Faire noter par l'exploitation |
| 11 | Ignorer la sortie | Verrouillage découvert au moment de partir | Documenter le plan de sortie dès le choix |
| 12 | Choisir DirectQuery « pour ne pas copier » | Base saturée et visuels lents | Réserver DirectQuery aux tables qui l'exigent (composite) |
12. Contribution de l'IA à la décision#
| Cas d'usage | Gain | Risque | Maturité | Prérequis | Garde-fous |
|---|---|---|---|---|---|
| Rédiger une grille d'exigences à partir d'entretiens | 4/5 | 2/5 | 4/5 | Notes d'entretien | Relecture par un métier |
| Produire un premier chiffrage de licences et de capacité | 3/5 | 4/5 | 3/5 | Tarifs vérifiés fournis par vous | Ne jamais accepter un tarif cité de mémoire |
| Convertir des procédures T-SQL en notebooks | 3/5 | 4/5 | 3/5 | Tests de non-régression | Comparaison de chiffres sur jeu figé |
| Générer des scripts de réconciliation | 4/5 | 2/5 | 4/5 | Schéma des tables | Exécution en lecture seule d'abord |
| Synthétiser la documentation officielle | 3/5 | 3/5 | 3/5 | Liens sources | Vérifier la date et l'état GA/preview |
Exemple de prompt : « Voici nos cinq exigences mesurables et le schéma du datamart ci-joint. Propose trois architectures, avec pour chacune les risques, le coût de sortie, et les points que je dois vérifier dans la documentation officielle — sans inventer de tarif. »
L'IA ne remplace pas le pilote chiffré, l'arbitrage des compromis, ni la responsabilité de la décision. Son risque majeur ici est de produire avec assurance des tarifs, des limites et des états de préversion périmés ou inventés : c'est le type de fait volatil à vérifier à la source.
13. Voir aussi#
- Dossier OneLake : 01 — vue d'ensemble · 02 — architecture · 03 — difficultés et pièges · 04 — IA
- Dossier SQL Server : 05 — vue d'ensemble · 06 — architecture · 07 — difficultés et pièges · 08 — IA
- Suite du dossier : 10 — bonnes pratiques transverses · 11 — checklist de projet
- Matrices : Développement BI (coût, licences, capacité : 12 — coût, licences et capacité ; performance : 03 — performance et volumétrie) · Conduite de projet data
- Méthodes et outils : CI/CD pour la data · GDS et données SQL/BI
- Glossaire : GLOSSAIRE · Notation : NOTATION
✻ Rédigé par Claude Sonnet 5.5