AccueilBlogTest technique architecture Lakehouse : Delta, Iceberg, Hudi en production
Guide recrutement data

Test technique architecture Lakehouse : Delta, Iceberg, Hudi en production

Le Lakehouse est l architecture data dominante en 2025. En entretien Architecture ou Lead, on évalue la capacité à concevoir une architecture Lakehouse robuste, performante et économique.

Data Builder·Juin 2025·7 min de lecture·Data Engineer · Data Architect
Sommaire
  1. Organisation en zones
  2. Choisir le table format
  3. Compaction et small files
  4. Vacuum et rétention
  5. Catalog et découverte
  6. Sécurité et accès
  7. Grille

1Organisation en zones : medallion architecture

Question discriminante

Qu est-ce que la medallion architecture ? Comment organisez-vous vos zones ?

# Medallion Architecture : Bronze → Silver → Gold # BRONZE (raw) # - Données brutes, immuables # - Partitionnement par date d ingestion # - Rétention longue (7 ans) s3://datalake/bronze/ orders/ingestion_date=2025-01-15/ part-00000.parquet # SILVER (curated) # - Données nettoyées, déduplicées # - Table Delta/Iceberg avec schema enforced # - Tests de qualité passés s3://datalake/silver/ orders/ (Delta table) # GOLD (consumption) # - Agrégations métier # - Optimisé pour la BI et le ML # - Accès contrôlé par rôle s3://datalake/gold/ fct_revenue/ dim_customers/

2Choisir le bon table format

Question discriminante

Comment choisissez-vous entre Delta Lake, Iceberg et Hudi pour votre Lakehouse ?

3Compaction : le problème des small files

Question discriminante

Qu est-ce que le problème des small files ? Comment le résolvez-vous ?

# Problème : le streaming crée des milliers de petits fichiers # -> les lectures sont lentes (overhead par fichier) # Delta Lake : OPTIMIZE compacte les petits fichiers from delta.tables import DeltaTable delta = DeltaTable.forPath(spark, '/datalake/silver/orders') delta.optimize().executeCompaction() # Planifier la compaction (toutes les nuits via Airflow) @task def compact_delta_table(path: str): delta = DeltaTable.forPath(spark, path) delta.optimize().executeZOrderBy('region', 'order_date') # Iceberg : rewrite_data_files SPARK.sql(""" CALL spark_catalog.system.rewrite_data_files( table => 'silver.orders', strategy => 'sort', sort_order => 'region, order_date' ) """)

4Vacuum et gestion de la rétention

Question discriminante

Comment gérez-vous la rétention des données et l espace de stockage dans Delta Lake ?

# VACUUM : supprimer les anciens fichiers (time travel) # Par défaut : garder 7 jours d historique VACUUM delta.`/datalake/silver/orders` RETAIN 168 HOURS; # Sur Databricks : vacuum automatique delta.optimize().executeVacuum(168) # 168 heures = 7 jours # Attention : après VACUUM, impossible de faire time travel # au-delà de la rétention configurée # Iceberg : expire_snapshots SPARK.sql(""" CALL spark_catalog.system.expire_snapshots( table => 'silver.orders', older_than => TIMESTAMP '2025-01-01 00:00:00.000', retain_last => 10 ) """)

5Catalog : découverte et gouvernance

Question discriminante

Quel catalog utilisez-vous pour gérer les tables de votre Lakehouse ?

6Sécurité et contrôle d accès

Question discriminante

Comment implémentez-vous le contrôle d accès par rôle dans un Lakehouse ?

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméMedallion architecture, Delta/Iceberg basiqueOrganise ses données en zones Bronze/Silver/Gold, connaît Delta et IcebergStocke toutes les données dans un seul dossier S3 plat
SeniorCompaction, vacuum, catalog, sécurité par zonePlanifie la compaction automatiquement, configure le vacuum, gère la sécurité par zoneNe sait pas ce que sont les small files ni comment les résoudre
LeadChoix du table format justifié, architecture multi-cloud, gouvernanceJustifie le choix Delta vs Iceberg selon le contexte, a conçu une architecture Lakehouse from scratchNe peut pas expliquer pourquoi Iceberg est préféré à Delta en contexte multi-cloud

Vous recrutez un Data Architect ou Data Engineer Lead ?

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