Concevoir l'analytique et le traitement de données → entrepôts/big data (Synapse, Databricks, Fabric), ingestion (Data Factory), temps-réel (Stream Analytics) : choisir selon OLTP vs OLAP, batch vs streaming, volume et profil utilisateur.
A. Vocabulaire analytics#
A.1 OLTP vs OLAP#
| OLTP (Transactional) | OLAP (Analytical) | |
|---|---|---|
| Quoi | Transactions temps-réel | Analyse gros volumes historiques |
| Queries | Simples, 1 row à la fois | Scans massifs, aggregations |
| Schema | Normalisé (3NF) | Dénormalisé (star/snowflake) |
| Services Azure | Azure SQL DB / MI / on VM, Cosmos DB, MySQL Flex, PG Flex | Synapse Dedicated SQL pool, Databricks SQL Warehouse, Fabric Warehouse |
| Cas | E-commerce → orders, panier, login | Dashboard CEO "ventes par région 2020-2025" |
🎯 Au 305 : dès qu'on dit "transactional / OLTP" → Azure SQL ou Cosmos. Dès qu'on dit "OLAP DW structuré pour BI récurrent" → Dedicated SQL pool / Fabric Warehouse.
A.2 MPP vs SMP (en 2 lignes)#
- SMP (single machine, scale vertical) = Azure SQL DB / MI / on VM.
- MPP (N nodes en parallèle, scale horizontal) = Synapse Dedicated SQL pool (le seul MPP managé Azure).
Pourquoi ça compte : 100 TB à scanner → SMP rame, MPP splitte sur 60 nodes en parallèle.
A.3 HNS (Hierarchical Namespace)#
- Sans HNS (Blob classique) : folders = préfixes (illusion). Rename
/raw/2024 → /archive/2024(1 TB) = re-copy tout. - Avec HNS (ADLS Gen2) : vrais folders + atomic rename en ms. Hadoop/Spark exigent un vrai filesystem.
A.4 ABFS (driver ADLS Gen2)#
- ABFS (
abfss://) = driver Hadoop pour ADLS Gen2 → code Spark/Hive marche tel quel. - Remplace l'ancien WASB (Blob classique).
- 🎯 Migration Hadoop on-prem → Azure : ADLS Gen2 + ABFS.
A.5 POSIX ACLs vs RBAC#
- RBAC = accès gros grain (Storage Account / container niveau).
- POSIX ACLs (HNS) = granularité dossier/fichier.
- Best practice : RBAC pour le large + ACLs pour le métier fin par dossier.
A.6 HTAP (Hybrid Transactional/Analytical)#
Idée : faire de l'analyse sur tes données OLTP en quasi-temps réel, sans ralentir l'OLTP.
Le problème : tu as Cosmos DB qui prend les commandes (OLTP, ultra-rapide). Si tu lances une grosse query d'analytics dessus pour faire un dashboard, ça ralentit les écritures clients. La solution HTAP : Azure recopie en arrière-plan tes data OLTP vers une copie analytique séparée (~5 min de latence). Tu queries cette copie sans impacter l'OLTP.
Services Azure qui font du HTAP : Synapse Link (legacy) et Fabric Mirroring (moderne).
A.7 Data Governance : Microsoft Purview vs Unity Catalog#
Le problème : dans une boîte, tu as 50 sources de data (SQL on-prem, Azure SQL, Cosmos, Databricks, fichiers SharePoint, AWS RDS, etc.). Comment savoir qui possède quoi, qui peut accéder à quoi, où vivent les PII ?
| Outil | Scope |
|---|---|
| Microsoft Purview | Gouvernance sur TOUT le patrimoine data : Azure, on-prem, multi-cloud, SaaS. Catalogue + classification PII auto + lineage (suivre la data d'un bout à l'autre). |
| Unity Catalog | Gouvernance interne à Databricks (catalogs/schemas/tables, lineage, ACLs, Delta Sharing). |
🎯 "Gouvernance sur tout l'estate (au-delà de Databricks)" → Purview. "Gouvernance interne Databricks" → Unity Catalog.
A.8 Concepts à connaître en awareness (sans deep-dive)#
Tu n'as pas besoin de maîtriser ces concepts en profondeur pour le 305, mais tu dois reconnaître les mots-clés si une question les utilise.
Medallion architecture (Bronze / Silver / Gold)#
Façon d'organiser un data lake en 3 couches : bronze (data brute), silver (nettoyée), gold (agrégée prête pour BI). C'est juste une convention d'organisation des dossiers.
Delta Lake#
Format de fichier moderne au-dessus de Parquet (format compressé pour analytics). Ajoute des features transactions ACID + rollback temporel que Parquet pur n'a pas. Utilisé par défaut par Databricks et Fabric.
Lakehouse pattern#
Idée moderne de combiner data lake (stockage cheap) + data warehouse (queries rapides) dans une seule plateforme au lieu de les avoir séparés. Poussé par Databricks (Delta Lake) et Microsoft Fabric (OneLake).
Unités pricing#
Tu n'as pas à connaître les détails, juste savoir qu'elles existent :
- DWU = unité Synapse Dedicated SQL pool
- DBU = unité Databricks
- vCore = unité générique Azure SQL / Synapse Serverless
B. ADLS Gen2 — fondation du data lake#
B.1 C'est quoi#
Storage Account + HNS activé → vrais folders, ACLs POSIX, optimisé big data. Fondation data lake Azure compatible Hadoop/Spark/Databricks/Synapse.
B.2 Caractéristiques#
- Built sur Blob → tiers (Hot/Cool/Cold/Archive), lifecycle, encryption marchent
- Multi-protocol : Blob API + ADLS driver (
abfss://) + NFSv3 - Compatible natif : Hadoop, Spark, Databricks, Synapse
- Organisation type :
/raw → brut ingéré (immutable, partitionné par date)
/cleansed → nettoyé (silver)
/curated → prêt analytics (gold)
B.3 Tiers / SKU#
- Performance : Standard / Premium (low-latency)
- Redundancy : LRS / ZRS / GRS / RA-GRS / GZRS
- Access tiers Blob : Hot / Cool / Cold / Archive (lifecycle policies)
B.4 Quand l'utiliser#
- Workload big data / analytics nécessitant vrai filesystem (Spark, Hadoop).
- Besoin granularité ACLs POSIX dossier/fichier (vs RBAC SA-level).
- Migration Hadoop on-prem → cloud (avec ABFS driver).
- Medallion architecture (bronze/silver/gold).
B.5 Pièges 305#
- 🚨 HNS = irréversible → cocher à la création (sinon SA = Blob classique).
- 🚨 WASB driver legacy → utiliser ABFS (
abfss://) pour ADLS Gen2. - 🚨 Tier Archive incompatible avec lecture Spark directe (rehydrate avant).
C. Synapse Analytics — la plateforme unifiée#
C.1 C'est quoi#
Plateforme unifiée : DW + big data + integration + viz dans un seul Workspace. Couvre OLAP MPP, query data lake serverless, Spark, KQL, pipelines.
C.2 Les composants du Workspace#
Synapse n'est pas UN service mais un container qui héberge plusieurs "pools" + features. Tu choisis le bon outil selon ton besoin :
| Composant | Sert à... | Pricing |
|---|---|---|
| Dedicated SQL pool | DW MPP traditionnel (lift-and-shift SQL DW) | DWU (provisionné, pause/resume) |
| Serverless SQL pool | Query files directement dans le data lake (CSV, Parquet, JSON) sans rien provisionner | Pay-per-TB scanné |
| Apache Spark pool | Data engineering / ML / transformations big data | vCore + autoscale |
| Data Explorer pool | Time-series / logs en KQL — 🚨 retiré le 7 oct 2025 (resté en Preview) → utiliser Azure Data Explorer standalone ou Fabric Eventhouse/KQL DB | vCore + autoscale |
| Pipelines | ETL/ELT orchestration (= ADF intégré dans le workspace) | Per-activity run |
| Synapse Link | Réplica HTAP near-real-time depuis OLTP (Cosmos/SQL DB/SQL Server 2022/Dataverse) | Selon source + analytical store |
C.3 Quel composant pour quel scénario — LE tableau exam#
| Tu veux... | Composant Synapse |
|---|---|
| Analyser des fichiers du data lake (CSV/Parquet) sans setup, ponctuel | Serverless SQL pool |
| Charger du data lake vers un DW structuré pour BI | Dedicated SQL pool (loadé via Pipelines/Spark) |
| DW MPP classique pour analytics structuré récurrent | Dedicated SQL pool |
| Transformer du big data en Python/Scala (data eng/ML) | Spark pool |
| Query des logs / metrics / time-series (KQL) | Data Explorer pool |
| Orchestrer un ETL multi-sources vers le lake/DW | Pipelines |
| Analytics quasi-live sur OLTP (Cosmos, SQL DB) sans impacter l'OLTP | Synapse Link |
| Combiner data lake + DW dans une seule query | Serverless SQL pool (joint external Parquet + DW table) |
| Migrer SQL Server DW on-prem vers Azure | Dedicated SQL pool (lift-and-shift) |
| Migrer Hadoop on-prem vers Azure | Spark pool + ADLS Gen2 |
C.4 Charger data du lake → Dedicated SQL pool (vue d'ensemble)#
Tu n'as pas à connaître les commandes T-SQL, juste savoir qu'il y a 3 façons :
| Méthode | Quand |
|---|---|
| PolyBase | Legacy, T-SQL EXTERNAL TABLE pour query external data |
| COPY statement | Recommandé MS aujourd'hui : load depuis ADLS/Blob/Hadoop, plus simple et plus rapide que PolyBase |
CTAS (CREATE TABLE AS SELECT) |
Idiom Synapse pour créer une nouvelle table depuis une requête (load + distribute en 1 commande) |
🎯 Au 305 : si la question dit "load data du lake vers le Dedicated SQL pool en 2026" → COPY statement.
C.5 Synapse Link — les 4 variantes (awareness)#
Synapse Link = HTAP : réplique data OLTP vers Synapse pour analytics, sans impacter l'OLTP.
| Source | Use case |
|---|---|
| Cosmos DB | Le plus connu. Analytical store séparé du transactional → query Spark/SQL sans charger le moteur OLTP |
| Azure SQL DB | Change feed Azure SQL → Synapse Dedicated pool |
| SQL Server 2022 (on-prem) | Hybride : on-prem SQL 2022 → cloud Synapse |
| Dataverse (Dynamics 365) | D365 data → Synapse pour analytics business |
⚠️ 2026 : MS pousse Fabric Mirroring pour nouveaux projets (GA pour Azure SQL DB / Snowflake / SQL MI / PostgreSQL flex ; Cosmos DB Mirroring = Preview, NoSQL uniquement). Synapse Link for Cosmos DB = « no longer supported for new projects » (ne plus l'utiliser en greenfield) — mais Synapse Link reste un concept d'objectif AZ-305.
C.6 Pièges 305#
- 🚨 Dedicated SQL pool ≠ Azure SQL DB. MPP analytics ≠ SMP OLTP.
- 🚨 Serverless SQL pool = query files sans provisioning (différent de Dedicated qui est provisionné).
- 🚨 PolyBase legacy, COPY moderne → MS recommande COPY pour nouveaux projets.
- 🚨 Synapse Pipelines = ADF sous le capot, juste intégré dans le workspace.
💡 Détail DP-203 (hors scope AZ-305) : Dedicated SQL pool exige un choix de distribution table par table (Hash / Round-robin / Replicate) pour perf. À savoir que ça existe au 305, pas à choisir.
D. Azure Databricks#
D.1 C'est quoi#
Plateforme Spark managée par Databricks (partner MS). Référence pour ML / data science avancé + Delta Lake + Unity Catalog governance.
D.2 Architecture rapide#
| Élément | Quoi |
|---|---|
| Workspace | Container régional |
| Cluster | Compute Spark (VMs Azure) — All-purpose / Job / Pool |
| Notebook | Python/Scala/SQL/R |
| Job | Workflow planifié |
| Delta Lake | ACID au-dessus Parquet (MERGE, time-travel, schema enforcement) |
| Unity Catalog | Governance (lineage auto, ACLs, Delta Sharing) |
| Photon | Engine vectorisé C++ plus rapide vs Spark Java — activé par défaut sur DBR 9.1 LTS+ (dépend du runtime, PAS du tier Standard/Premium) |
D.3 Tiers / SKU#
| Tier | Note |
|---|---|
| Standard | Pas dispo toutes régions, features de base |
| Premium | RBAC + audit + Unity Catalog + SSO + conditional access |
Pricing : DBU + VMs Azure sous-jacentes (double facturation).
D.4 Quand l'utiliser#
- ML / Data Science avancé (MLflow natif excellent vs Synapse Spark).
- Delta Lake medallion architecture (ACID, time-travel, MERGE).
- Streaming massif / complex events / fraud detection ML scoring.
- Migration Hadoop on-prem (alternative à Synapse Spark).
D.5 Synapse Spark pool vs Databricks#
| Critère | Synapse Spark pool | Databricks |
|---|---|---|
| Maturité ML / MLflow | OK | Excellente (référence) |
| Delta Lake | Supporté | Natif, optimisé |
| Unity Catalog | ❌ | ✅ |
| Photon | ❌ | ✅ (défaut DBR 9.1 LTS+, tout tier) |
| Intégration native Azure | ✅ (dans workspace Synapse) | Plus standalone |
| Tarif | DWU/vCore | DBU + VM Azure |
🎯 Question 305 : "ML avancé / Delta Lake medallion / Unity Catalog" → Databricks. "Plateforme unifiée Azure sans ML poussé" → Synapse.
D.6 Pièges 305#
- 🚨 Standard tier ≠ prod : pas d'Unity Catalog, RBAC, SSO, audit → toujours Premium en prod.
- 🚨 Photon = activé par défaut sur DBR 9.1 LTS+ (dépend du runtime/compute, pas du tier). Les vrais différenciateurs Premium = Unity Catalog, RBAC, SSO, audit.
- 🚨 Pricing double : DBU et VMs Azure (penser au TCO).
- 🚨 All-purpose cluster oublié allumé = facture explose → préférer Job clusters auto-terminate.
E. Azure Data Factory (ADF)#
E.1 C'est quoi#
ETL/ELT orchestration drag-and-drop + code. Pipeline d'activités pour ingérer, transformer, charger data multi-sources vers Azure.
E.2 Architecture rapide#
| Élément | Quoi |
|---|---|
| Pipeline | Workflow de N activities |
| Activity | Action atomique (Copy, ML, Web hook, SP) |
| Dataset | Schéma source/dest |
| Linked Service | Connection vers source |
| Integration Runtime (IR) | Compute qui exécute |
| Mapping Data Flow | Visual transformation sur Spark (no-code) |
| Trigger | Schedule, Event, Tumbling Window, Manual |
E.3 Les 3 Integration Runtimes#
| IR | Quand l'utiliser |
|---|---|
| Azure IR | Default cloud-to-cloud, public |
| Self-hosted IR | On-prem ou VM → accès SQL on-prem, file shares, etc. (outbound only, pas besoin port entrant) |
| Azure-SSIS IR | Exécuter packages SSIS legacy (lift-and-shift SQL Server ETL) |
E.4 Triggers types#
| Trigger | Quand |
|---|---|
| Schedule | Cron simple (tous les jours à 3h) |
| Tumbling Window | Incrémental avec watermark (process la dernière fenêtre fermée) |
| Event-based | Blob créé / supprimé → déclenche pipeline |
| Manual | Sur demande |
E.5 Pricing#
Pas de tier ADF — pricing par :
- Pipeline orchestration (per activity run)
- Data movement (per DIU/hour)
- Data Flow (per vCore-hour cluster Spark sous le capot)
E.6 ADF vs Synapse Pipelines#
Même engine sous le capot. Différence :
- ADF standalone : service séparé, simple, intégration avec n'importe quel target.
- Synapse Pipelines : ADF intégré dans le workspace Synapse → orchestration unifiée Spark/SQL pool + UI partagée.
🎯 "Multi-sources vers data lake, projet greenfield" → ADF ou Synapse Pipelines (les 2 OK). Si Synapse déjà en place → Pipelines pour cohérence.
E.7 Pièges 305#
- 🚨 Self-hosted IR obligatoire pour accès on-prem (outbound only).
- 🚨 Data Flow = Spark sous le capot → coûte plus cher que Copy Activity simple.
- 🚨 Tumbling Window ≠ Schedule : Tumbling = incrémental avec watermark, Schedule = cron.
- 🚨 Azure-SSIS IR = pour lift-and-shift SSIS legacy, pas pour nouveaux ETL.
🚨 ADF — Schema Drift detection : Quand le schema source change (colonne ajoutée/renommée) → Mapping Data Flow le détecte automatiquement via l'option "Allow schema drift" (à activer dans Source + Sink settings). Use case : ingestion CSV partenaires dont structure évolue sans préavis → schema drift accepte les colonnes nouvelles, les propage en sortie sans casser le pipeline. ⚠️ Distractor exam : "détecter colonnes ajoutées dans CSV source automatiquement" → ADF Mapping Data Flow + Allow schema drift (pas pipeline Copy Activity manuel, pas Synapse pipeline qui n'a pas cette feature aussi développée).
F. Stream Analytics (awareness 305)#
F.1 C'est quoi#
Service managé de stream processing. SQL-like queries (T-SQL extensions) sur des flux en quasi-temps réel. No-code/low-code.
F.2 Quand l'utiliser#
- IoT telemetry → filter + aggregate → dashboard / alertes.
- Détection simple d'événements (seuil dépassé, count par fenêtre).
- ETL streaming léger sans code.
F.3 Stream Analytics vs Databricks Streaming#
| Critère | Stream Analytics | Databricks Streaming |
|---|---|---|
| Code | SQL-like | Python/Scala |
| Complexité | No-code, simple | Code-first, complex events |
| ML inline | Limité | Excellent (MLflow) |
| Cas | IoT → filter+aggregate → dashboard | Fraud detection ML scoring temps-réel |
🎯 Question 305 : "Streaming simple SQL-like no-code" → Stream Analytics. "Streaming complex events + ML" → Databricks Streaming.
F.4 Sources / cibles supportées#
- Inputs : Event Hubs, IoT Hub, Blob/ADLS
- Outputs : Power BI (live dashboard), Cosmos DB, Azure SQL, Blob/ADLS, Event Hubs, Functions
G. Microsoft Fabric (awareness 305)#
Plateforme analytics unifiée moderne lancée par MS en 2023. MS pousse Fabric comme l'évolution de Synapse + Power BI + ADF dans une seule expérience SaaS.
G.1 Composants Fabric (vue 305)#
| Composant | Équivalent ancien | Quoi |
|---|---|---|
| OneLake | ADLS Gen2 unifié | Storage lake unique partagé par tous les workloads Fabric |
| Lakehouse | Data lake + DW combo | Stockage Delta + endpoint SQL pour query |
| Warehouse | Synapse Dedicated SQL | DW SQL classique mais serverless dans Fabric |
| Data Pipelines | ADF | ETL orchestration |
| Notebooks | Synapse / Databricks Spark | Data eng / ML en Python/Spark |
| KQL DB / Eventhouse | Azure Data Explorer (équivalent ; le Synapse Data Explorer pool est retiré) | Time-series / logs |
| Real-Time Intelligence | Stream Analytics | Streaming |
| Power BI | Power BI | BI / dashboards |
| Mirroring | Synapse Link évolué | Réplica near-real-time → Fabric. GA : Azure SQL DB / Snowflake / SQL MI / PostgreSQL flex. Cosmos DB = Preview (NoSQL only) |
G.2 Quand le mentionner au 305#
- "Plateforme analytics unifiée moderne all-in-one" → Microsoft Fabric (réponse 2025+).
- "Replica near-real-time OLTP pour analytics, projet nouveau" → Fabric Mirroring (Synapse Link sunset progressivement).
- 🎯 Au 305 : awareness suffisant. Pas de deep dive sur la config.
G.3 Pièges 305#
- 🚨 Synapse encore objectif d'exam AZ-305 actuel — Fabric mentionné en awareness "futur direction".
- 🚨 Fabric ≠ Synapse. Fabric inclut Synapse-like features mais c'est une nouvelle plateforme SaaS avec OneLake comme storage unifié.
H. Architectures types AZ-305#
Modern DW (le grand classique)#
[Sources] → [ADF / Synapse Pipelines] → [ADLS Gen2 raw→cleansed→curated]
↓
[Synapse Spark / Databricks] (transform)
↓
[Synapse Dedicated SQL pool] → [Power BI]
Real-time (streaming + batch combinés)#
[Sources] → [Event Hub / Kafka]
├─ [Stream Analytics / Databricks Streaming] → Cosmos/SQL real-time
└─ [ADF + Databricks/Synapse] → ADLS → DW → Power BI
HTAP (Synapse Link)#
[Cosmos OLTP] → [Synapse Link] → [Synapse Spark/SQL] (analytics SANS impact OLTP)
[Azure SQL OLTP] → [Synapse Link] → [Synapse]
Lakehouse moderne (Databricks ou Fabric)#
[Sources] → [ADF/Spark] → [ADLS Gen2 / OneLake + Delta Lake]
├─ /bronze (raw)
├─ /silver (cleansed)
└─ /gold (BI-ready)
↓
[Databricks SQL / Fabric Warehouse / Power BI]
Serverless data lake query#
[ADLS Gen2 avec CSV/Parquet] ←──── OPENROWSET ──── [Synapse Serverless SQL pool]
pay-per-TB scanné, zéro provisioning
I. Decision tree analytics#
Par source de data#
D'où vient ta data ?
├─ Data lake (fichiers CSV/Parquet/JSON sur ADLS) ?
│ ├─ Query ad-hoc / ponctuel, zéro provisioning → Synapse Serverless SQL pool
│ ├─ DW structuré récurrent pour BI → Synapse Dedicated SQL pool (load depuis lake)
│ ├─ Transformation big data / ML → Databricks (recommandé) ou Synapse Spark
│ └─ Plateforme moderne unifiée (greenfield) → Microsoft Fabric (Lakehouse + Warehouse)
│
├─ Base OLTP (Cosmos / Azure SQL / SQL Server) ?
│ ├─ Besoin analytics quasi-live sans impacter → Synapse Link / Fabric Mirroring (HTAP)
│ └─ Analytics offline batch → ADF/Spark → ADLS → DW
│
├─ Streaming (Event Hub / Kafka / IoT) ?
│ ├─ Simple aggregations SQL-like, no-code → Stream Analytics
│ └─ Complex events / ML scoring temps-réel → Databricks Streaming
│
├─ Source on-prem (SQL Server, Oracle, files) ?
│ └─ Ingestion vers Azure → ADF + Self-hosted IR
│
└─ Multi-sources SaaS (Salesforce, SAP, etc.) ?
└─ Orchestration ETL → ADF (70+ connectors)
Par besoin business#
Quel est ton objectif ?
├─ BI / Power BI dashboards récurrents → Dedicated SQL pool / Fabric Warehouse
├─ Data Science / ML avec MLflow → Databricks Premium
├─ Exploration ad-hoc data lake (1× par mois) → Serverless SQL pool
├─ Lift-and-shift DW SQL Server / Teradata → Dedicated SQL pool (+ ADLS staging + ADF transport)
├─ Lift-and-shift SSIS packages → ADF + Azure-SSIS IR
├─ Time-series / logs analytics KQL → Azure Data Explorer (ou Synapse Data Explorer pool)
├─ Dashboard temps-réel IoT/devices → Event Hub → Stream Analytics → Power BI
├─ Détection fraude streaming + ML → Event Hub → Databricks Streaming
├─ Gouvernance data multi-source (catalogue, PII) → Microsoft Purview
├─ Gouvernance interne Databricks → Unity Catalog
└─ Migration Hadoop on-prem complète → Databricks (ou Synapse Spark) + ADLS Gen2 + ABFS
K. Scénarios 305 → outil#
| Scénario business | Réponse |
|---|---|
| "Query 50 GB CSV/Parquet dans le data lake, une fois par mois" | Synapse Serverless SQL pool (pay-per-TB, zéro provisioning) |
| "Migrer Teradata DW on-prem 50 TB vers Azure" | Destination : Synapse Dedicated SQL pool (équiv MPP). Transport data : ADF + Self-Hosted IR (online) ou Data Box (offline si réseau lent). Staging : ADLS Gen2. |
| "Analytics quasi-live sur Cosmos sans charger l'OLTP" | Synapse Link for Cosmos DB |
| "Pipeline daily multi-sources (SQL on-prem + SaaS API) vers data lake" | ADF + Self-hosted IR |
| "ML model training + MLflow + Delta Lake medallion" | Databricks Premium |
| "Dashboard temps-réel IoT vehicles 10k devices" | Event Hub → Stream Analytics → Power BI |
| "Fraud detection ML scoring sur stream payments" | Event Hub → Databricks Streaming + MLflow |
| "Migrer 200 packages SSIS legacy" | ADF + Azure-SSIS IR |
| "Time-series logs apps + queries KQL" | Azure Data Explorer (ou Fabric Eventhouse/KQL DB ; Synapse Data Explorer pool retiré) |
| "Data lineage + classification PII multi-cloud" | Microsoft Purview |
| "Combiner table DW avec Parquet du lake en 1 query" | Synapse Serverless SQL pool (joint via OPENROWSET) |
| "Plateforme analytics moderne unifiée greenfield 2025+" | Microsoft Fabric |
| "Charger 1 TB du lake vers Dedicated SQL pool, moderne" | COPY statement (pas PolyBase legacy) |
🏢 Scénarios d'entreprise (CAF/WAF)#
Scénario 1 : Distribution (retail) — Modern Data Warehouse batch nocturne#
Contexte business : Enseigne de distribution, système financier on-prem (1 TB, +5%/an), batch nocturne qui doit finir avant 3h. Besoin : reporting analytique + self-service pour le management, base future pour la data science. Données company confidential. Choix architectural : pipeline ELT par batch ADF → ADLS Gen2 (couches medallion) → Dedicated SQL pool → Power BI, dans une Landing Zone hub-and-spoke. Le Dedicated SQL pool (MPP) traite gros volumes pour du BI récurrent. Architecture / pattern :
- Ingestion : ADF + Self-hosted IR (pour lire la source on-prem), Tumbling Window + watermark pour l'incrémental
- Stockage : ADLS Gen2 (HNS), couches bronze/silver/gold, chiffré at-rest + in-transit
- Transform : Databricks (ou Synapse Spark) silver→gold ; chargement vers le Dedicated SQL pool via COPY statement
- Serving : Power BI ; gouvernance Purview (classification PII, lineage) Trade-offs assumés :
- Gain : MPP scalable pour le BI, pause/resume du pool hors fenêtres = coût maîtrisé, fenêtre bout-en-bout < 90 min tenable
- Perte : données en J+1 (pas de temps réel) ; le Dedicated SQL pool coûte même à faible charge (atténué par le pause) Pièges à éviter :
- Charger les gros volumes via bcp/SqlBulkCopy (lent) → utiliser COPY statement
- Oublier le Self-hosted IR pour la source on-prem (l'Azure IR ne voit pas le on-prem)
- HNS est irréversible : l'activer dès la création du Storage Account 📐 Réf. Architecture Center — ADF baseline en Azure Landing Zone (medallion lakehouse) : architecture de référence avec hub-and-spoke, landing zones CAF, sécurité confidentielle, fenêtre < 90 min. Lien
Scénario 2 : Mobilité (IoT) — Streaming temps réel vers dashboard#
Contexte business : Opérateur de flotte, 10 000 véhicules envoyant de la télémétrie (position, vitesse, alertes). Besoin : dashboard live + alertes, latence minimale, sans équipe streaming dédiée. Choix architectural : Event Hubs → Stream Analytics → Power BI, avec capture vers ADLS pour pouvoir rejouer. Stream Analytics choisi car il filtre/agrège en SQL-like, sans code. Architecture / pattern :
- Ingest : Event Hubs (partitionné par véhicule/zone) ; Event Hubs Capture → ADLS Gen2 (replay/recovery)
- Process : Stream Analytics (fenêtres temporelles, agrégations) ; sortie directe Power BI (dataset streaming)
- Archivage froid : sortie parallèle Blob/ADLS pour un batch ultérieur Trade-offs assumés :
- Gain : la plus faible latence event→Power BI sur Azure ; aucun code ; déployable en minutes
- Perte : pas de ML complexe inline ; Stream Analytics peu rentable si le débit est faible / pas vraiment temps réel Pièges à éviter :
- Power BI ne gère pas le partitionnement de sortie → aligner les clés en amont
- SU > 80% = signal pour scale-out ; throttling Event Hubs = quota dépassé
- Pour du scoring ML temps réel (anti-fraude), passer à Databricks Structured Streaming (autre scénario) 📐 Réf. Architecture Center — Stream processing with Azure Stream Analytics : pattern de référence streaming, considérations Cost (tarif par SU) et Operational Excellence (monitoring SU/Event Hubs). Lien
Scénario 3 : Industrie multi-domaines — BI self-service unifiée (greenfield Fabric)#
Contexte business : Groupe industriel avec plusieurs domaines data (production, ventes, supply), équipes métier autonomes voulant du self-service BI sans dupliquer la donnée, gouvernance à l'échelle du tenant. Projet neuf 2026. Choix architectural : Microsoft Fabric (OneLake + Lakehouse + Warehouse + Power BI Direct Lake), gouverné par Purview, dans des Data Management Landing Zones CAF. Fabric choisi car OneLake stocke la donnée une seule fois pour tous les moteurs. Architecture / pattern :
- Stockage unique : OneLake (format Delta) → pas de copies entre domaines
- Ingest/transform : Data Pipelines + Notebooks Fabric (medallion par domaine)
- Serving : Warehouse (T-SQL) + Power BI Direct Lake (lecture directe du Delta, sans import)
- Temps réel optionnel : Mirroring (Azure SQL DB / Snowflake en GA ; Cosmos DB NoSQL en preview)
- Gouvernance : Purview dans une Data Management Landing Zone (1 par tenant Entra) ; capacité Fabric par domaine Trade-offs assumés :
- Gain : une seule copie de donnée pour tous les moteurs, Direct Lake = pas de refresh d'import, pause de capacité = coût flexible
- Perte : plateforme SaaS récente (moins mature que Synapse+Databricks séparés) ; le sizing de capacité impacte pipelines ET requêtes en même temps Pièges à éviter :
- Cosmos DB mirroring encore en Preview (NoSQL only) → pas en prod ; Synapse Link Cosmos « non supporté pour les nouveaux projets »
- Fabric ≠ Synapse : nouvelle plateforme, OneLake comme storage unifié (ne pas confondre les composants)
- Dimensionner la capacité Fabric selon la maturité/prévisibilité du domaine (partagée vs dédiée) 📐 Réf. CAF — Azure architecture for a unified data platform (Data Management Landing Zones) : place Purview + capacité Fabric en DMLZ, gouvernance tenant-wide, séparation domaines/plateforme. Lien
DEMO#
Demo Portail — Créer un Data Factory#
Data factories > + Create- Onglet Basics : sub, RG, name (globalement unique), region
- Onglet Git configuration : optionnel (Azure DevOps / GitHub pour versionning)
- Onglet Networking : Public / Private (Managed VNet)
- Review + Create
- Une fois créé : Open Azure Data Factory Studio (UI séparée)
Demo Portail — Synapse workspace + SQL pool + Spark pool#
1. Créer le workspace#
Azure Synapse Analytics > + Create- Onglet Basics : RG, Workspace name, Region
- Select Data Lake Storage Gen2 : Storage Account avec HNS + File system name
raw - Onglet Security : SQL admin login + password + (recommandé) Entra admin
- Onglet Networking : Managed virtual network : Enable, Public access : Disabled (prod)
- Review + Create (5-10 min)
- Ouvrir : Open Synapse Studio
2. Dedicated SQL pool#
mysynapse > Analytics pools > SQL pools > + New- Name
mydw, Performance levelDW100c - Review + Create → Pause/Resume via la blade pour économiser
3. Apache Spark pool#
mysynapse > Analytics pools > Apache Spark pools > + New- Name
myspark, Node size Medium, Autoscale 3-10 nodes - Automatic pausing : Enabled (15 min idle), Spark version 3.4
- Review + Create
📝 Pour Serverless SQL pool : il est créé automatiquement à la création du workspace (built-in, pas à provisionner).
Demo Portail — Créer un Databricks workspace#
Azure Databricks > + Create- Onglet Basics : RG, Workspace name, Region, Pricing Tier : Premium
- Onglet Networking : VNet injection si isolation
- Review + Create → Launch Workspace
- Dans Databricks UI :
- Compute > + Create cluster (autoscale, runtime, Photon enabled)
- Workspace > Create > Notebook (Python/SQL/Scala)
- Jobs > + Create Job pour scheduler
- Catalog (Unity Catalog) : metastore + catalogs + schemas
Demo Portail — ADLS Gen2 + POSIX ACL#
Storage accounts > + Create- Onglet Basics : RG, Name (globalement unique), Performance Standard, Redundancy LRS/ZRS/GRS
- Onglet Advanced : Hierarchical namespace : Enabled (irréversible)
- Review + Create
- Créer container :
Storage Account > Containers > + Container→ nameraw - Créer folders :
raw > + Add Directory→year=2026,month=01 - POSIX ACL : naviguer vers le folder > ⋯ > Manage ACL
- Access : Add principal (user/group/SP) + Read/Write/Execute
- Default : ACL héritée par nouveaux fichiers du folder
- Save
⚠️ HNS = irréversible, à cocher impérativement à la création pour tout workload analytics.
Demo Portail — ADF pipeline simple (Blob → SQL DB)#
Concept-level (pas step-by-step Data Flow).
- Studio ADF > Manage > Linked services > + New :
- Azure Blob Storage (auth via Managed Identity)
- Azure SQL Database (auth MI + rôle
db_datawriter)
- Author > Datasets > + New :
- Source : Blob > DelimitedText (CSV)
- Sink : SQL DB > Table cible
- Author > Pipelines > + New :
- Drag Copy data activity → configurer Source + Sink + Mapping
- (Optionnel) Data Flow : Filter → Derived Column → Aggregate → Sink
- Author > Triggers > + New :
- Schedule (cron) ou Event-based (blob créé) ou Tumbling Window (incrémental watermark)
- Debug dans le designer → Publish all pour activer
Demo Portail — ADF Self-hosted IR (accès on-prem)#
- Studio ADF > Manage > Integration runtimes > + New > Self-Hosted
- Donner un name → générer 2 auth keys (sauvegarder)
- Télécharger l'Integration Runtime agent (Windows)
- Installer sur VM on-prem (ou Azure VM faisant proxy)
- Entrer l'auth key → register → status Running dans ADF
- Linked Services peuvent pointer SQL Server on-prem, file shares, etc.