AccueilBlogTest technique Azure Synapse Analytics : SQL pools, Spark, intégration
Guide recrutement data

Test technique Azure Synapse Analytics : SQL pools, Spark, intégration

Azure Synapse Analytics unifie SQL analytique et Spark dans une même plateforme. En entretien, on évalue la capacité à choisir le bon pool selon le cas d usage.

Data Builder·Juin 2025·6 min de lecture·Data Engineer
Sommaire
  1. Architecture Synapse
  2. Dedicated SQL Pool
  3. Serverless SQL Pool
  4. Spark Pool
  5. Intégration Azure Data Lake
  6. Synapse vs Databricks vs Fabric
  7. Grille

1Architecture Synapse : les 3 moteurs

Question discriminante

Quels sont les 3 moteurs de calcul dans Azure Synapse ? Quand utilisez-vous chacun ?

  • Dedicated SQL Pool — entrepôt de données MPP (Massively Parallel Processing). Performances maximales pour les requêtes SQL analytiques sur de gros volumes. Facturé à l heure même si inactif
  • Serverless SQL Pool — requêtes SQL ad-hoc sur des fichiers dans Azure Data Lake (Parquet, CSV, JSON, Delta). Paiement à la requête. Toujours disponible, zéro infrastructure
  • Spark Pool — cluster Apache Spark managé pour la transformation de données, le ML, le traitement distribué

2Dedicated SQL Pool : MPP pour le BI

Question discriminante

Comment optimisez-vous les performances d un Dedicated SQL Pool ?

-- Distribution des tables : clé de performance critique -- HASH : distribuer selon une colonne de jointure fréquente CREATE TABLE fct_orders WITH ( DISTRIBUTION = HASH(customer_id), -- évite le data shuffle sur les jointures CLUSTERED COLUMNSTORE INDEX -- optimal pour les requêtes analytiques ) AS SELECT * FROM source_table; -- ROUND_ROBIN : pour les tables de staging CREATE TABLE stg_orders_raw WITH (DISTRIBUTION = ROUND_ROBIN) AS SELECT * FROM ... -- Statistics : mettre à jour après chargement UPDATE STATISTICS fct_orders; -- Pause automatique (économie de coûts) ALTER DATABASE mydw PAUSE; -- via PowerShell ou ADF
  • Distribution HASH — distribuer les grandes tables sur la colonne de jointure la plus fréquente pour éviter le mouvement de données
  • Columnstore Index — compression maximale et performances optimales pour les requêtes analytiques
  • Pause/Resume — mettre en pause le Dedicated Pool la nuit et le week-end. Économise 70% des coûts

3Serverless SQL Pool : requêter le Data Lake

Question discriminante

Comment requêtez-vous des fichiers Parquet dans ADLS avec le Serverless SQL Pool ?

-- Requête directe sur des fichiers Parquet dans ADLS SELECT year, region, SUM(amount) as revenue FROM OPENROWSET( BULK 'https://monstorage.dfs.core.windows.net/datalake/orders/**', FORMAT = 'PARQUET' ) AS orders WHERE year = 2024 GROUP BY year, region; -- Créer une vue externe (évite de répéter OPENROWSET) CREATE OR ALTER VIEW vw_orders AS SELECT * FROM OPENROWSET( BULK 'https://monstorage.dfs.core.windows.net/datalake/orders/**', FORMAT = 'PARQUET' ) AS r; -- Requête sur Delta Lake SELECT TOP 100 * FROM OPENROWSET( BULK 'https://monstorage.dfs.core.windows.net/datalake/delta/orders', FORMAT = 'DELTA' ) AS delta_orders;

4Spark Pool : transformations et ML

Question discriminante

Dans quel cas utilisez-vous le Spark Pool plutôt que le SQL Pool dans Synapse ?

  • Transformations complexes — logique Python/Scala non exprimable en SQL, manipulation de données non structurées
  • ML avec MLflow — Synapse Spark intègre MLflow nativement pour le tracking des expériences
  • Delta Lake — lire et écrire des tables Delta dans ADLS depuis Spark
  • Notebooks partagés — notebooks Spark dans Synapse Studio, collaboratifs avec Git
  • Auto-pause — le Spark Pool se suspend après X minutes d inactivité. Moins coûteux que le Dedicated Pool

5Intégration Azure Data Lake Storage Gen2

Question discriminante

Comment organisez-vous votre Data Lake dans ADLS pour une utilisation avec Synapse ?

  • Zones recommandées — raw/ (données brutes), curated/ (données transformées), enriched/ (prêt pour la BI)
  • Format Parquet ou Delta — Parquet pour les données statiques, Delta Lake pour les tables qui évoluent
  • Linked Service — connexion sécurisée entre Synapse et ADLS via Managed Identity (pas de clés de compte)
  • Access Control — RBAC Azure + ACLs ADLS pour contrôler l accès par répertoire et par équipe

6Synapse vs Databricks vs Microsoft Fabric

Question discriminante

Comment positionnez-vous Synapse, Databricks et Fabric ?

Azure SynapseDatabricksMicrosoft Fabric
SQL analytiqueExcellent (MPP natif)Bon (SQL Warehouse)Excellent (OneLake)
SparkBonExcellent (optimisé)Bon
ML/AIPartielExcellent (MLflow natif)Partiel
Intégration MicrosoftNatifBonneNatif (Power BI)
Tendance 2025Mature, remplacé par FabricStandard ML enterpriseNouveau, stratégie Microsoft
-- Synapse Serverless SQL Pool : interroger Parquet dans ADLS Gen2 directement SELECT order_date, region, SUM(amount) as revenue FROM OPENROWSET( BULK 'https://myadls.dfs.core.windows.net/lake/orders/year=*/month=*/*.parquet', FORMAT = 'PARQUET' ) WITH (order_date DATE, region VARCHAR(50), amount FLOAT) AS r WHERE order_date >= '2025-01-01' GROUP BY order_date, region; -- Créer une External Table sur le lake (vues persistentes) CREATE EXTERNAL TABLE orders_ext WITH (LOCATION = 'orders/', DATA_SOURCE = MyAdls, FILE_FORMAT = ParquetFmt) AS SELECT * FROM orders_staging; -- Synapse Link CosmosDB -> requêtes analytiques sans impact OLTP SELECT TOP 100 * FROM OPENROWSET( PROVIDER = 'CosmosDB', CONNECTION = 'Account=myaccount;Database=ecommerce', OBJECT = 'orders', SERVER_CREDENTIAL = 'CosmosDBCredential' ) AS orders;
  • Serverless vs Dedicated Pool — Serverless : payer par TB scanné, idéal pour l'exploration ad-hoc. Dedicated Pool : performance garantie, coût fixe mensuel, pour le BI prod
  • Synapse Link — réplication zero-ETL depuis CosmosDB ou Dataverse vers Synapse. Analytique sans impacter la source OLTP
  • Spark Pool intégré — Spark managé dans Synapse. Partage des tables avec le SQL Pool via des tables Delta/Parquet dans le lake
  • vs Databricks — Synapse : intégration Azure native (ADF, Power BI), moins cher petites équipes. Databricks : developer experience supérieure, Delta Lake natif, MLflow
  • Sécurité — Row-Level Security et Dynamic Data Masking dans Dedicated Pool. Managed Private Endpoints pour connexions sécurisées sans exposer les données sur internet

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméServerless SQL Pool, Dedicated Pool basique, ADLSA requêté des Parquet avec OPENROWSET, comprend les 3 poolsNe sait pas la différence entre Serverless et Dedicated
SeniorDistribution HASH, Spark Pool, Delta Lake, comparaison Synapse/DatabricksA optimisé un Dedicated Pool (distribution, statistics), justifie Synapse vs DatabricksNe sait pas ce qu est la distribution HASH

Vous recrutez un Data Engineer Azure ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.