Qu'est-ce qu'Apache Iceberg ?

Dernière mise à jour : 01/05/2026

Apache Iceberg est un format de table Open Source conçu pour les ensembles de données analytiques à grande échelle stockés dans des lacs de données. Les tables Iceberg gèrent les données sous forme de collections de fichiers, offrant une fiabilité, des performances et une flexibilité accrues pour les architectures de données modernes. Vous pouvez considérer qu'il s'agit d'une couche intelligente qui s'ajoute à votre stockage de lac de données, tel que Cloud Storage, et qui offre des fonctionnalités similaires à celles d'une base de données pour vos ensembles de données volumineux. Au lieu de gérer simplement des fichiers, Iceberg gère les tables comme des collections de fichiers de données, ce qui permet d'utiliser des fonctionnalités telles que l'évolution du schéma, les fonctionnalités temporelles et une planification des requêtes plus efficace. Les analystes de données, les data scientists et les ingénieurs de données peuvent ainsi travailler plus facilement et plus efficacement avec les données des lacs de données, et augmenter leurs charges de travail analytiques.

Qu'est-ce qu'un lac de données transactionnel ?

Un lac de données transactionnel ne se contente pas de stocker des données à grande échelle, il prend également en charge les opérations transactionnelles pour garantir l'exactitude et la cohérence des données. Les tables Iceberg permettent d'activer ces propriétés, collectivement appelées ACID.

  • Atomicité : garantit que chaque transaction est traitée comme une unité unique, qui réussit ou échoue complètement, sans état intermédiaire
  • Cohérence : garantit que toutes les données écrites sont valides conformément aux règles définies du lac de données
  • Isolation : permet à plusieurs transactions de se produire simultanément sans interférer les unes avec les autres
  • Durabilité : garantit que les données ne sont pas perdues ni corrompues une fois qu'une transaction est envoyée, même en cas de défaillance du système

Cas d'utilisation courants des tables Iceberg

Les tables Iceberg conviennent à divers cas d'utilisation modernes de lacs de données et de lakehouses, y compris :

  • Conformité et confidentialité : idéal pour les lacs de données nécessitant des suppressions fréquentes pour appliquer les lois sur la confidentialité des données
  • Mises à jour au niveau des enregistrements : permet de mettre à jour des enregistrements individuels sans republier des ensembles de données entiers, comme les données de ventes qui changent en raison des retours client
  • Gérer les changements imprévisibles : prend en charge les tables de dimensions à évolution lente (SCD), comme les fiches client dont les coordonnées peuvent changer à des intervalles inconnus
  • Remontée dans le temps et audit : conserve l'historique des instantanés de table, ce qui permet aux utilisateurs d'interroger les versions historiques pour analyser les tendances ou effectuer un rollback et corriger les problèmes
  • Machine learning : fournit des ensembles de données cohérents et versionnés, essentiels pour entraîner des modèles fiables

Qui utilise les tables Iceberg ?

Différents profils techniques utilisent les tables Iceberg pour gérer efficacement de grands ensembles de données :

  • Ingénieurs et administrateurs de données : utilisez les tables Iceberg pour concevoir et créer des systèmes de stockage évolutifs et fiables
  • Analystes et scientifiques des données : utilisez les tables Iceberg pour analyser des ensembles de données massifs avec la familiarité de SQL et des instantanés historiques reproductibles

Principaux avantages des tables Iceberg

Permet aux utilisateurs qui connaissent le langage SQL standard d'effectuer des opérations complexes sur les lacs de données sans avoir à apprendre un nouveau langage.

Permet de modifier facilement les structures de données (ajouter, renommer ou supprimer des colonnes) sans interrompre les requêtes.

Prend en charge la capture des données modifiées (CDC), ce qui permet aux utilisateurs de traiter uniquement les données qui ont changé depuis la dernière exécution pour améliorer l'efficacité.

Utilise les métadonnées pour éliminer les fichiers inutiles, ce qui accélère l'exécution des requêtes grâce à des techniques telles que le pushdown de prédicat.

Compatible avec différents moteurs comme Spark, Flink, Hive et Presto.

Comment fonctionnent les tables Apache Iceberg ?

Apache Iceberg introduit une couche de métadonnées qui se trouve au-dessus des fichiers de données de votre lac de données. Ces métadonnées suivent la structure et le contenu de vos tables de manière plus organisée et plus robuste que les systèmes traditionnels basés sur des fichiers. Voici un récapitulatif de ses principaux mécanismes :

  • Gestion des métadonnées : Iceberg gère des fichiers de métadonnées qui décrivent le schéma de la table, ses partitions et l'emplacement des fichiers de données. Ces fichiers de métadonnées sont généralement stockés dans le lac de données, aux côtés des données.
  • Catalogue : Iceberg s'appuie sur un catalogue pour suivre l'emplacement des métadonnées actuelles de chaque table. Ce catalogue peut être un service tel que le métastore Hive, une implémentation basée sur un système de fichiers ou un service de catalogue cloud natif.
  • Instantanés de table : chaque fois que la table est modifiée (par exemple, en ajoutant ou en supprimant des données, ou en faisant évoluer le schéma), Iceberg crée un nouvel instantané des métadonnées de la table. Ces instantanés sont immuables et fournissent un historique de l'état de la table.
  • Listes de fichiers manifestes et fichiers manifestes : chaque instantané pointe vers une liste de fichiers manifestes, qui liste à son tour un ou plusieurs fichiers manifestes. Les fichiers manifestes contiennent des métadonnées sur des fichiers de données individuels, y compris leur emplacement, leurs valeurs de partition et leurs statistiques (comme le nombre de lignes et les plages de valeurs).

Architecture d'Apache Iceberg

L'architecture d'Apache Iceberg implique plusieurs composants clés qui fonctionnent ensemble :

  • Stockage du lac de données : il s'agit de la couche de stockage sous-jacente, telle que Cloud Storage, où sont stockés les fichiers de données (aux formats Parquet, ORC ou Avro, par exemple) et les fichiers de métadonnées d'Iceberg.
  • Catalogue Iceberg REST : ce composant est chargé de gérer les pointeurs de métadonnées pour les tables Iceberg. Il agit comme un registre central qui suit la version actuelle des métadonnées de chaque table. Voici quelques exemples d'implémentations de catalogues :
  • Metastore Hive : référentiel de métadonnées largement utilisé, souvent employé avec des systèmes basés sur Hadoop.
  • Catalogue du système de fichiers : implémentation simple dans laquelle les informations du catalogue sont stockées directement dans le système de fichiers du lac de données.
  • Services de catalogue cloud-natifs : services gérés proposés par les fournisseurs de services cloud pour stocker et gérer les métadonnées.
  • Métadonnées Iceberg : elles sont constituées de plusieurs couches de fichiers de métadonnées qui suivent la structure et les données de la table:
  • Fichier de métadonnées de table : ce fichier pointe vers la liste de manifestes actuelle et contient des informations de haut niveau sur la table, telles que son schéma et les spécifications de partitionnement.
  • Liste de fichiers manifestes : ce fichier répertorie les fichiers manifestes qui contiennent des métadonnées sur les fichiers de données dans un instantané spécifique de la table.
  • Fichiers manifestes : ces fichiers contiennent des informations détaillées sur les fichiers de données individuels, y compris leur emplacement, leurs valeurs de partition et leurs statistiques.
  • Moteurs de requête et frameworks de traitement : ce sont les outils qui interagissent avec les tables Iceberg pour lire et écrire des données. Ces moteurs exploitent les métadonnées d'Iceberg pour optimiser la planification et l'exécution des requêtes.
  • Ressources de calcul : il s'agit de l'infrastructure sous-jacente (par exemple, les machines virtuelles et les conteneurs) qui exécute les moteurs de requêtes et les frameworks de traitement.

Apache Iceberg et les lacs de données

Apache Iceberg améliore considérablement les capacités des lacs de données en ajoutant un format de table fiable et performant. Dans les lacs de données traditionnels sans format de table comme Iceberg, les données ne sont souvent qu'une collection de fichiers. Cela peut entraîner plusieurs problèmes :

  • Évolution limitée du schéma : modifier la structure des données peut être complexe et sujet à des erreurs.
  • Lectures incohérentes : les opérations d'écriture simultanées peuvent entraîner des requêtes qui lisent un mélange de données anciennes et nouvelles.
  • Performances des requêtes lentes : sans métadonnées pour guider les moteurs de requêtes, ceux-ci doivent souvent analyser de grandes portions de données
  • Difficultés de gestion des données : les fonctionnalités comme le retour en arrière et la gestion des versions ne sont pas facilement disponibles.

Iceberg contourne ces limites en fournissant une couche structurée au-dessus du lac de données. Il apporte des fonctionnalités de type base de données aux lacs de données, les transformant en lakehouses plus puissants et plus faciles à gérer. En gérant les tables comme des collections de fichiers avec des métadonnées riches, Iceberg permet :

  • Accès fiable et cohérent aux données : les propriétés ACID garantissent l'intégrité des données.
  • Traitement efficace des requêtes : le filtrage et le saut de données basés sur des métadonnées accélèrent les requêtes
  • Gestion flexible des données : l'évolution du schéma et le voyage dans le temps simplifient la maintenance et l'analyse des données.
  • Interopérabilité : Iceberg est conçu pour être compatible avec divers moteurs de requêtes et frameworks de traitement couramment utilisés avec les lacs de données.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre problématique.

Google Cloud et Apache Iceberg

Google Cloud fournit un environnement robuste pour exploiter Apache Iceberg. Plusieurs services Google Cloud s'intègrent bien à Iceberg, ce qui permet aux utilisateurs de créer des solutions de lakehouse de données puissantes et évolutives.

Passez à l'étape suivante

Commencez à créer sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours sans frais.

Google Cloud