Aller au contenu
Stockage analytique

Lakehouse : Iceberg et Delta Lake

Iceberg et Delta ajoutent aux fichiers Parquet d'un lac un journal de versions : transactions ACID, mises à jour et voyage dans le temps. On les adopte pour un entrepôt bâti sur un lac.

  • lakehouse
  • iceberg
  • delta
  • acid
  • time travel
  • snapshot
  • catalogue
  • format de table

Syntaxe

Modèle
Format de table ouvert = fichiers Parquet + couche de métadonnées  métadonnées → liste exacte des fichiers de chaque version (snapshot)  écriture    → nouvelle version validée d'un coup, ou rien (ACID)  catalogue   → indique la version courante de chaque tableOpérations rendues possibles sur un lac (exemples en Spark SQL) :  MERGE INTO / UPDATE / DELETE  SELECT … FROM t VERSION AS OF <id_version>  SELECT … FROM t TIMESTAMP AS OF '<horodatage>'

Exemple

Exemple concret
-- Spark SQL avec Apache IcebergCREATE TABLE lac.ventes.commandes (  commande_id BIGINT, client_id STRING, montant DECIMAL(10, 2), cree_le TIMESTAMP) USING icebergPARTITIONED BY (days(cree_le));   -- partitionnement caché, calculé par Iceberg-- Correction idempotente d'un lot : MERGE atomique sur des fichiers ParquetMERGE INTO lac.ventes.commandes cUSING lot_du_jour l ON c.commande_id = l.commande_idWHEN MATCHED THEN UPDATE SET *WHEN NOT MATCHED THEN INSERT *;-- Une erreur de chargement a été détectée à 10 h : que contenait la table à 6 h ?SELECT COUNT(*) FROM lac.ventes.commandes TIMESTAMP AS OF '2026-11-01 06:00:00';-- 18240 par exemple : le nombre de lignes de la table telle qu'elle était à 6 h,-- avant le mauvais lot (la requête lit la version validée à cette heure-là)-- Lister les versions pour revenir en arrière si besoinSELECT snapshot_id, committed_at, operation FROM lac.ventes.commandes.snapshots;

À retenir

  1. Les lecteurs voient toujours une version complète : pendant qu'un MERGE écrit, une requête lit la version précédente, jamais un mélange d'anciens et de nouveaux fichiers.
  2. Iceberg sait faire évoluer le schéma et même le partitionnement sans réécrire les données ; Delta propose des fonctions comparables. Le choix dépend surtout des moteurs et du catalogue déjà en place.
  3. Prévoyez la maintenance : compaction des petits fichiers et expiration des anciennes versions. Sans elle, les métadonnées et le stockage grossissent sans fin.
  4. Piège : prendre le voyage dans le temps pour une sauvegarde. Dès que les anciennes versions expirent, leurs fichiers sont supprimés ; une vraie sauvegarde reste nécessaire.

Voir aussi