clement13.net
Photo d’origine : Rivage d’un grand lac agité sous un ciel chargé, avec des arbres nus et des enrochements.
Description
Rivage d’un grand lac agité sous un ciel chargé, avec des arbres nus et des enrochements.
Source
SAF1999 · 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.

OneLake + applications mobiles en SaaS : difficultés et pièges

Vous saurez anticiper les difficultés structurelles : capacité (CU), throttling, quotas d'API, fraîcheur, identité, qualité terrain, multi-locataire, coûts cachés, gouvernance, verrouillage…

Guide≈ 16 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
  • Tarif de 0,18 USD par CU et par heure confirmé seulement par des sources tierces (la page tarifaire Microsoft n'affiche pas les montants) ; remise de 40 % : Microsoft annonce environ 41 %.
  • Statut preview des shortcuts délégués et de l'API de recherche/outil MCP du OneLake catalog confirmé uniquement par des sources secondaires (septembre 2026).
  • Année de la généralisation de Copilot à F2 (30 avril 2025) déduite de sources tierces ; le billet Microsoft ne précisait pas l'année dans l'extrait lu.
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
  • Vous saurez anticiper les difficultés structurelles : capacité (CU), throttling, quotas d'API, fraîcheur, identité, qualité terrain, multi-locataire, coûts cachés, gouvernance, verrouillage, compétences.
  • Vous disposez d'un catalogue de 36 pièges au format symptôme / cause / remède, numérotés P01 à P36, à recopier dans votre checklist (checklist de projet).
  • Vous saurez diagnostiquer un incident de capacité et un écart de chiffres sans accuser le mauvais maillon.
  • Contexte : vue d'ensemble et architecture. Faits volatils vérifiés en octobre 2026 (état 2026-10) ; les seuils exacts sont à revérifier dans la documentation avant tout dimensionnement.
Sur cette page

Niveau : 🟢→🔴

1. Capacité et CU#

🟢 Novice.

Fabric ne se facture pas à la requête mais à la capacité : une SKU « F » (F2, F4, F8… F8192) fournit un nombre de Capacity Units (CU) par seconde, partagé entre toutes les charges de l'espace : pipelines, Spark, dataflows, requêtes SQL, rafraîchissements, rapports, Copilot. Une F64 offre 64 CU.

Ordres de grandeur de tarification publics (état 2026-10, à revérifier dans votre région et votre devise) : environ 0,18 USD par CU et par heure en paiement à l'usage dans une région américaine de référence, facturation à la seconde avec minute minimale, soit environ 263 USD par mois pour une F2 en 24 h/24 ; une réservation d'un an abaisse le coût d'environ 40 %. Les capacités peuvent être suspendues (on ne paie pas le calcul pendant la pause, mais la consommation lissée déjà accumulée est facturée à la mise en pause, et le stockage reste facturé) ou redimensionnées (changement de SKU) quand la charge varie.

Autres repères :

  • Le seuil F64 a une signification de licence : à partir de F64 (ex-P1), les lecteurs d'un contenu partagé n'ont pas besoin de licence Power BI Pro ; en dessous, chaque lecteur doit en avoir une (état 2026-10, à vérifier avec la politique de licences en vigueur — voir coût, licences et capacité).
  • Les garde-fous Direct Lake dépendent de la SKU (mémoire maximale, nombre de fichiers, lignes par table) : F2–F32 : 300 millions de lignes par table ; F64 : 1,5 milliard (état 2026-10).
  • Copilot et les agents de données sont utilisables à partir de F2 (disponibilité étendue à toutes les SKU payantes depuis le 30 avril 2025 ; état 2026-10) et consomment des CU.
⚠️ Piège

Choisir la SKU sur la taille des données plutôt que sur la forme de la charge (pics de rafraîchissement, concurrence des utilisateurs). Un entrepôt de 200 Go consulté par 20 personnes demande peu ; 500 utilisateurs qui ouvrent un rapport à 8 h 30 demandent beaucoup.


2. Throttling et smoothing#

🟡 Praticien.

Smoothing : Fabric lisse la consommation dans le temps. Les opérations d'arrière-plan (rafraîchissements, pipelines, Spark planifié) sont lissées sur 24 heures ; les opérations interactives (requêtes de rapport) sur une fenêtre plus courte (de quelques minutes à une heure, selon la charge). On peut donc dépasser temporairement sa capacité sans conséquence immédiate, en « empruntant » du futur.

Throttling : quand la dette de consommation dépasse certains seuils, la plateforme retarde puis rejette des opérations. Ordre de grandeur de l'escalade (à revérifier dans la documentation « Throttling » de Fabric) : dépassement jusqu'à 10 minutes de capacité future : aucune sanction ; 10 à 60 minutes : les opérations interactives sont retardées ; au-delà, elles sont rejetées ; si la dette dépasse 24 heures, les opérations d'arrière-plan sont rejetées elles aussi.

Conséquences concrètes :

  • Un gros notebook lancé à 8 h peut dégrader les rapports à 11 h : la facture arrive après.
  • Une boucle de rafraîchissement défaillante (relances automatiques) peut consommer tout le crédit.
  • Les rapports « lents le lundi matin » sont souvent un symptôme de dette héritée du week-end.

Outils : Fabric Capacity Metrics app (consommation par item, opération, utilisateur, dépassements), alertes de capacité, journaux de pipelines et Spark. Pas de supervision, pas de maîtrise (exploitation, supervision et capacité).

💡 Astuce d'expert

Séparez deux capacités : une « prod utilisateurs » et une « ingestion/ad hoc ». C'est la parade la plus efficace au voisin bruyant, souvent moins chère que de surdimensionner une seule capacité.


3. Direct Lake : repli et garde-fous#

🟡 Praticien.

Deux variantes coexistent (état 2026-10) : Direct Lake on OneLake, qui ne se replie jamais en DirectQuery et échoue franchement si un garde-fou est dépassé, et Direct Lake on SQL analytics endpoint, qui se replie en DirectQuery si la source est une vue SQL, si l'endpoint applique une RLS SQL, ou si un garde-fou de la SKU est dépassé (paramètre « Direct Lake behavior »). Le repli est silencieux pour l'utilisateur : le rapport devient simplement lent et charge la source SQL.

Causes typiques de lenteur ou d'échec : trop de petits fichiers Parquet (dépassement du nombre de fichiers), tables non optimisées (pas de V-Order, row groups mal dimensionnés), colonnes trop larges (chaînes très longues, limite de 32 764 caractères), mémoire maximale de la SKU dépassée (pagination excessive), types non supportés.

✅ Bonne pratique

Compactez les tables du gold après chaque chargement important (OPTIMIZE), gardez des fichiers de taille raisonnable, évitez les vues non matérialisées en source d'un modèle, et surveillez le « reframing ». Voir la documentation Microsoft « Cross-workload table maintenance and optimization » (état 2026-10).


4. Quotas et contraintes des API SaaS#

🟡 Praticien.

Le goulet d'étranglement d'un projet SaaS n'est souvent pas Fabric mais l'éditeur :

  • Quotas d'appels par jour/heure/minute, par organisation ou par utilisateur d'intégration ; erreurs 429/503 à gérer avec backoff exponentiel et reprise.
  • Pagination : curseurs expirants, pages de 200 enregistrements, décalage entre pages si la donnée change pendant l'extraction.
  • Fenêtres de maintenance et dégradation des API en journée de forte charge (début de mois, clôtures).
  • Limites de volume par export, par requête, par objet ; champs calculés non filtrables côté serveur.
  • Coûts d'API facturés par certains éditeurs au-delà d'un forfait.
  • Dépréciation d'API : versions retirées, nouveaux jetons obligatoires ; lire le calendrier de fin de vie.
  • Contrat d'interface : l'éditeur ne s'engage pas sur votre usage analytique ; clarifier le support contractuel.
🧪 Exemple

Une SFA offre 100 000 appels par jour. Un objet « visite » en 200 par page = 5 000 appels par million de lignes pour un chargement complet. Un chargement complet quotidien de 5 millions de lignes = 25 000 appels : faisable, mais un rejeu complet de 12 mois d'historique pourrait épuiser le quota des autres intégrations. (Chiffres illustratifs.)


5. Latence et fraîcheur#

🟡 Praticien.

La fraîcheur est une somme de latences, et la plus longue décide :

Saisie terrain -> synchro mobile -> back-end SaaS -> API/export -> ingestion Fabric
   (min…jours)     (min…h)          (s)           (min…h)         (min)
-> transformation silver/gold -> reframing du modèle -> cache de rapport
          (min)                      (s…min)             (min si tuiles)

Que faire : mesurer de bout en bout (un enregistrement test dont on suit chaque horodatage), afficher la date de dernière donnée dans le rapport, négocier le besoin réel (un directeur régional a-t-il besoin du temps réel ?), et réserver l'eventstream aux cas à valeur démontrée.

⚠️ Piège

Symptôme : « le rapport est faux » le matin. Cause : les commerciaux n'ont pas encore synchronisé ; la donnée n'est pas fausse, elle est absente. Remède : indicateur de complétude (nombre de commerciaux ayant synchronisé / attendus) et message dans le rapport.


6. Identités et consentements#

🟡 Praticien.

  • Compte de service : l'intégration SaaS ne doit pas dépendre du compte d'une personne (départ, rotation de mot de passe, MFA). Préférer un principal de service ou une identité d'espace de travail, avec secrets dans Key Vault.
  • Consentement administrateur (OAuth) : les connexions à Dynamics, Salesforce ou Graph exigent des consentements d'application qui relèvent de l'administrateur du locataire ; prévoir le délai.
  • Jetons expirants : refresh tokens révoqués si le compte change de statut ou si l'éditeur resserre sa politique.
  • Identité de l'utilisateur final : le RLS repose sur l'adresse (UPN) de l'utilisateur ; or l'identité dans la SFA (code commercial) diffère de l'identité Entra : table de correspondance à maintenir.
  • Invités externes (agents de distributeurs, prestataires) : licence, sécurité, partage inter-locataire, délégation (shortcuts délégués en preview, état 2026-10).
  • Accès conditionnel / MFA : peut bloquer les appels automatisés si mal configuré.

7. Qualité des données de terrain#

🟡 Praticien.

La saisie mobile engendre des défauts spécifiques : doublons de client, formats libres (téléphone, adresse), dates fausses (horloge de l'appareil), coordonnées GPS à zéro, champs obligatoires contournés (« xxx »), produits saisis hors référentiel, photos illisibles, visites « fantômes » créées par erreur.

Principes : mesurer avant de corriger (taux de nuls, doublons, hors référentiel, par commercial et par jour), ne pas corriger silencieusement (journaliser et rendre visible), remonter à la source (le retour vers le terrain vaut plus que tout nettoyage en aval) et séparer erreur technique (pipeline) et erreur métier (saisie). Voir qualité des données et tests et fiabilité des chiffres.

🤖 IA

Rapprochement de doublons, détection d'anomalies de saisie et normalisation d'adresses sont des usages à fort gain, à encadrer (voir fichier IA).


8. Multi-locataire et multi-clients#

🔴 Expert.

Deux dimensions de « multi » se superposent : celle du SaaS (l'éditeur est multi-locataire ; vous êtes un locataire parmi d'autres) et celle de votre produit (un seul socle Fabric pour plusieurs clients ou filiales).

  • Isolation : espaces distincts par client, ou un espace avec RLS par client ; l'isolation par RLS exige une rigueur irréprochable (une table de sécurité erronée = fuite). L'espace séparé coûte plus cher en gouvernance mais simplifie l'audit.
  • Paramétrage par client : champs personnalisés propres à chaque tenant SaaS → schéma silver commun avec table « clé/valeur » ou colonnes dynamiques ; le gold conserve les colonnes standard.
  • Capacité partagée : un client lourd peut en priver d'autres ; envisager capacités par segment ou quotas internes.
  • Régions et conformité : données dans la région du locataire, ou région contractuelle du client ; Direct Lake exige la même région pour la source et le modèle.
  • Releases : un éditeur déploie sur tous ses clients ; le comportement de votre intégration peut changer un lundi sans que vous n'ayez rien fait.

9. Coûts cachés#

🟡 Praticien.

Poste Pourquoi il est oublié Ordre de grandeur / remarque
Capacité 24 h/24 pour une charge de 4 h/jour On oublie la pause ou le redimensionnement Jusqu'à plusieurs fois le besoin réel
Capacité de dev/test « C'est juste pour essayer » Souvent 20–50 % du coût de prod, à piloter
Stockage OneLake (bronze long, versions Delta) Les anciennes versions ne sont libérées qu'après VACUUM Croissance régulière, souvent peu visible
Sorties réseau (egress) et appels d'API payants Facturés côté éditeur ou cloud tiers À lire dans les contrats
Licences Pro/PPU pour créateurs, lecteurs sous F64 Les licences Power BI ne disparaissent pas Voir coût et licences
Copilot et agents (CU) Consomment la capacité sans ligne dédiée Peut peser sensiblement sur la consommation de pointe
Temps humain d'exploitation Pas dans le budget outil Souvent le premier poste
Formation et montée en compétence Sous-estimée Voir §11
Rejeux et chargements complets Un simple « on recharge tout » coûte des CU et des appels API À mesurer
✅ Bonne pratique

Étiquetez (convention de nommage + espaces séparés) chaque projet pour pouvoir imputer la consommation, et révisez le dimensionnement chaque trimestre sur la base de l'application de métriques de capacité.


10. Gouvernance et verrouillage#

🔴 Expert.

Gouvernance : sans règles, un tenant Fabric devient un « libre-service sans responsable » ; chaque item a un propriétaire, un statut (certifié, promu, essai), une durée de vie. Voir gouvernance, catalogue et self-service et gouvernance des données. Les fonctions de lignage, de catalogue (OneLake catalog) et de gouvernance (Purview) aident mais ne remplacent pas la discipline ; certaines fonctions de découverte (API de recherche, outils MCP) sont en preview (état 2026-10).

Verrouillage : le format de stockage (Delta/Parquet) est ouvert ; ce qui enferme, c'est l'assemblage : pipelines Fabric, dataflows gen2, modèle sémantique Direct Lake, sécurité OneLake, capacités. Mesure de réversibilité : « si on quitte Fabric dans 18 mois, que garde-t-on tel quel ? » (données Delta, notebooks Spark, SQL de transformation ; à réécrire : orchestration, modèle de sécurité, semantic model). Plus le logiciel est « no-code », plus la sortie coûte. Comparez dans le comparatif OneLake vs SQL Server.

Cadence d'évolution : Fabric livre en continu ; une fonction « preview » peut changer ou disparaître. Règle : pas de dépendance critique à une fonction preview sans plan de repli et sans accord explicite de l'équipe.


11. Compétences et organisation#

🟡 Praticien.

Un projet OneLake + SaaS demande, pour une équipe de 3 à 6 personnes, quatre familles de compétences : ingestion/API (REST, OAuth, pagination), Delta/Spark/SQL (MERGE, optimisation), modélisation et DAX, exploitation de capacité (métriques, coûts). Une équipe issue du monde SQL Server maîtrise souvent le deuxième et le troisième par analogie, mais pas l'ingestion API ni la capacité.

Pistes : binôme senior/junior sur chaque brique, un référent capacité nommé, runbook d'incident, revue de code des notebooks, kata sur un petit périmètre avant le grand. Évitez le « héros » unique : le facteur camion de l'intégration API est très souvent égal à 1.


12. Catalogue des pièges#

🔴 Expert. Chaque piège : symptôme, cause, remède.

12.1 Capacité et exploitation#

ID Symptôme Cause Remède
P01 Rapports lents ou refusés le matin Dette de capacité du week-end (backlog de smoothing) ; un job lourd en fin de nuit Étaler les charges, séparer capacités, alerter sur le taux d'utilisation, décaler les jobs
P02 Capacité saturée sans raison évidente Un pipeline ou notebook en boucle de relances Limiter les relances, alerte sur la durée anormale, quota par espace
P03 Facture supérieure au budget Capacité allumée en continu, tests laissés actifs, Copilot activé largement Pause automatisée, redimensionnement planifié, revue mensuelle
P04 Dev et prod se perturbent Même capacité pour tous Capacités séparées ou au minimum espaces et horaires distincts
P05 Aucun diagnostic possible après coup Métriques non conservées, pas d'application Capacity Metrics Installer l'application, journaliser en continu, historiser les incidents
P06 Spark démarre lentement ou échoue Pool/session non dimensionné, pic de concurrence Pools de démarrage, files d'attente, limiter les sessions interactives

12.2 Direct Lake et modèle#

ID Symptôme Cause Remède
P07 Rapport soudain lent, source SQL très sollicitée Repli DirectQuery (Direct Lake on SQL) : vue, RLS SQL, garde-fou Passer à Direct Lake on OneLake, matérialiser les vues, optimiser, surveiller le comportement de repli
P08 Rafraîchissement du modèle en échec Dépassement d'un garde-fou (fichiers, lignes, mémoire) Compacter, partitionner Delta, réduire les colonnes, monter de SKU
P09 Erreur « valeurs dupliquées côté un » Doublon de clé de dimension Test d'unicité en gold avant publication ; quarantaine
P10 Colonne absente ou type refusé Type Delta complexe, GUID, binaire Convertir en silver/gold
P11 Nouvelles données non visibles Reframing non déclenché, endpoint SQL non synchronisé Activer les mises à jour automatiques ou déclencher le reframing par API en fin de pipeline
P12 RLS contournée ou inopérante RLS de l'endpoint SQL ignorée en Direct Lake on OneLake ; lakehouse lisible Définir la RLS dans le modèle (identité fixe) ou OneLake security ; restreindre les rôles d'espace
P13 Mesures de comptage différentes selon le rôle Rétro-filtrage des faits vers les dimensions sous RLS Documenter, tester, concevoir les mesures de comptage en conséquence
P14 Déploiement Test→Prod lit toujours Test Règles de re-liaison de source non supportées ou oubliées Paramétrer, auto-binding, test de fumée post-déploiement

12.3 Ingestion SaaS#

ID Symptôme Cause Remède
P15 Lignes manquantes après synchronisation tardive Watermark avançant sur la date d'ingestion Recouvrement de fenêtre, date serveur, réconciliation par comptage
P16 Fantômes : lignes supprimées dans l'appli encore présentes Suppressions non exposées par l'API Soft delete, flux de suppressions, réconciliation périodique des clés
P17 Pipeline cassé un lundi Champ ajouté/renommé par l'éditeur Bronze souple, projection explicite en silver, test de contrat, alerte
P18 Erreurs 429 en rafale Dépassement de quota Backoff, étalement, mutualisation d'un jeton, négocier un quota
P19 Chargement de 12 mois impossible Quota d'API insuffisant Export en masse côté éditeur, échelonner, fichiers plutôt qu'API
P20 Données incohérentes entre deux pages d'API Mutation pendant la pagination Pagination par curseur stable, extraction en fenêtre fermée, vérification par comptage
P21 Jeton expiré, intégration morte un week-end Compte personnel ou secret expiré Principal de service, rotation planifiée, alerte d'expiration
P22 Doublons de lignes après un rejeu Ingestion non idempotente MERGE sur clé naturelle, lot identifié, déduplication silver
P23 Chiffres du jour qui changent le lendemain Faits tardifs de la synchronisation hors-ligne Afficher la complétude, stabiliser à J+N, double horodatage
P24 Durées négatives, doublons d'une heure Fuseaux et changements d'heure UTC en stockage, conversion à l'affichage, tests sur les dates charnières

12.4 Qualité, sécurité et conformité#

ID Symptôme Cause Remède
P25 Clients en double dans les rapports Saisie par plusieurs commerciaux Table de correspondance, règles de rapprochement, revue humaine des ambigus
P26 Positions GPS aberrantes Appareil sans fix, valeurs par défaut Règles de plausibilité, exclusion et signalement
P27 Données personnelles conservées trop longtemps Pas de rétention définie en bronze Durées par table, effacement propagé à tous les niveaux
P28 Un prestataire voit des données d'un autre client Isolation par RLS mal testée en multi-client Espaces séparés, tests de non-fuite automatisés
P29 Photos ou fichiers volumineux ralentissent tout Pièces jointes placées dans des tables Fichiers hors tables + métadonnées

12.5 Organisation et stratégie#

ID Symptôme Cause Remède
P30 « On ne sait pas d'où vient ce chiffre » Lignage absent, transformations dans le rapport Logique en amont, lignage Fabric/Purview, glossaire des mesures
P31 Chacun crée ses propres modèles Self-service sans cadre Modèle certifié, rapports minces, rôles de création
P32 Perte de la connaissance Intégration portée par une personne Binômes, documentation, code versionné, runbooks
P33 Dépendance à une fonction preview Enthousiasme sans plan de repli Registre des dépendances preview, revue trimestrielle, alternative GA
P34 POC jamais industrialisé Pas de critères d'entrée en production Critères explicites (tests, supervision, sécurité, exploitation)
P35 L'IA donne une réponse fausse avec aplomb Modèle sémantique sans description, mesures ambiguës Descriptions, synonymes, jeu de questions de test, revue humaine
P36 Sortie de Fabric très coûteuse Logique dans des outils no-code propriétaires Logique critique en SQL/Spark versionnés, documentation des règles hors outil
⚠️ Piège

Ce catalogue n'est pas exhaustif ni hiérarchisé par probabilité ; les pièges P15, P16, P23 et P07 sont, d'expérience, les plus fréquents et les plus coûteux dans les projets de reporting sur données d'applications de terrain (appréciation, non statistique).


13. Diagnostic en situation#

🔴 Expert.

Arbre de décision pour « le chiffre est faux ou le rapport est lent » :

  1. Faux ou absent ? Comparez à la source (requête directe sur l'API ou export). Si la source diffère : problème d'ingestion (P15–P24). Si la source est identique : problème de modèle/mesure (P09, P12, P13).
  2. Lent ? Le rapport est-il en repli (P07), la capacité en throttling (P01) ou le modèle dépasse-t-il les garde-fous (P08) ?
  3. Récent ou ancien ? Changement d'éditeur (P17), déploiement (P14), dépassement de quota (P18), jeton (P21).
  4. Reproductible ? Pour un utilisateur seulement : RLS (P12–P13) ; pour tous : source ou capacité.
🧪 Exemple

« Les visites de la semaine dernière ont baissé de 3 % depuis hier. » Hypothèses classées : (1) suppressions détectées par la réconciliation (P16, normal) ; (2) correction d'un doublon (P25, normal) ; (3) un lot rejeté en quarantaine (P17, anormal). On vérifie la table de journal : 412 lignes marquées supprimées, 28 doublons fusionnés, aucune quarantaine → la baisse est attendue, on documente.

✅ Bonne pratique

Un journal d'exécution par lot (début, fin, lignes lues/écrites/rejetées, version du schéma, statut) permet de répondre en quelques minutes. Sans lui, chaque incident est une enquête.


14. Notes de synthèse#

Appréciations d'expert, contextuelles (cf. NOTATION). Note de gravité typique et de probabilité par famille ; contexte : équipe de 3 à 6 personnes, SFA SaaS, 100–500 utilisateurs.

Famille de difficultés Probabilité Gravité Difficulté de prévention Commentaire
Capacité / throttling 4/5 4/5 2/5 Prévisible avec supervision et séparation des capacités
Repli et garde-fous Direct Lake 3/5 3/5 2/5 Évitable par optimisation Delta
Quotas d'API SaaS 4/5 3/5 3/5 Dépend de l'éditeur
Suppressions et schéma qui dérive 5/5 4/5 3/5 Les plus fréquents ; contrats et réconciliation
Fraîcheur ressentie 5/5 3/5 2/5 Surtout un sujet de communication
Identités et consentements 3/5 4/5 2/5 Anticiper avec l'administrateur
Qualité terrain 5/5 4/5 4/5 Se règle surtout à la source
Coûts cachés 4/5 3/5 3/5 Imputation et revue
Verrouillage 3/5 3/5 3/5 Dépend de la dose de no-code
Compétences 4/5 4/5 4/5 Longue à construire

15. Voir aussi#

✻ Rédigé par Claude Sonnet 5.5