Apache Iceberg, c’est quoi ?

APACHE ICEBERG

Apache Iceberg est un format de table open source pour les architectures modernes de données (Big Data, Data Lake, Data Lakehouse).

Iceberg apporte la fiabilité et la simplicité des tables SQL tout en permettant à des moteurs tels que Spark, Trino, Dremio SQL Engine, Flink, Presto et Impala de travailler en toute sécurité, en même temps et avec les mêmes tables !

Introduction – les fondamentaux

Cliquez sur les titres ci-dessous pour continuer votre lecture.

Apache Iceberg est un format de table open source pour les architectures modernes de données (Big Data, Data Lake, Data Lakehouse).

Apache iceberg est sous licence Apache 2.0 et vise à répondre aux limitations des formats traditionnels comme Apache Parquet, Apache Avro ou encore Apache Hive. Il fournit une solution puissante et évolutive pour gérer et analyser des ensembles de données à grande échelle dans des systèmes distribués.

Le format de table Iceberg a des capacités et des fonctionnalités similaires à celles des tables SQL dans les bases de données traditionnelles. Iceberg fonctionne de manière entièrement ouverte et accessible.

Ainsi, Apache Iceberg est une spécification de format de table et un ensemble d’API et de bibliothèques permettant aux moteurs d’interagir avec les tables suivant cette spécification.

Netflix, l’entreprise américaine créée en 1997 se concentrait initialement sur la location et l’achat de DVD livrés à domicile. Cependant, en 2007, Netflix a lancé son service de vidéo à la demande par abonnement et depuis lors, elle s’est développée pour distribuer un grand nombre de films et de séries. Avec une grande quantité de données générées par les activités des utilisateurs, les recommandations de contenu et les analyses, Netflix commençait à peiner à gérer ses données.

Le développement d’Iceberg a été lancé par Ryan Blue et Dan Weeks en 2017. Le projet a été donné à la fondation Apache en novembre 2018. En mai 2020, le projet Iceberg est devenu un “top-level project” Apache.

Depuis, Apache iceberg a été adopté par d’autres entreprises telles que Airbnb, Apple, Expedia, LinkedIn, Adobe, Le Point, La Poste, Michelin, Bic … Courant 2024, la spécification Iceberg est massivement adoptée par les éditeurs logiciels eux-mêmes, notamment Snowflake et Databricks.

L’architecture de la table Iceberg se compose de trois couches :

  • Le catalogue Iceberg : Le catalogue est l’endroit où les services vont pour trouver l’emplacement du pointeur de métadonnées actuel, ce qui permet d’identifier où lire ou écrire des données pour une table donnée. C’est ici qu’il existe des références ou des pointeurs pour chaque table qui identifient le fichier de métadonnées actuel de chaque table.
  • La couche de métadonnées : Cette couche se compose de trois composants : fichier de métadonnées, liste de manifeste et fichier manifeste. Le fichier de métadonnées inclut des informations sur le schéma d’une table, les informations de partition, les instantanés et l’instantané actuel. La liste manifeste contient une liste de fichiers manifeste, ainsi que des informations sur les fichiers manifestes qui composent un instantané. Les fichiers manifestes suivent les fichiers de données en plus d’autres détails et statistiques sur chaque fichier.
  • La couche de données : Chaque fichier manifeste suit un sous-ensemble de fichiers de données, qui contiennent des détails sur l’appartenance à la partition, le nombre d’enregistrements et les limites inférieure et supérieure des colonnes.

Source de l’illustration : https://iceberg.apache.org/spec/#overview

Apache Iceberg permet une évolution efficace des schémas, garantit la cohérence des données, prend en charge l’analyse historique (time travel), optimise les performances des requêtes. Iceberg offre une compatibilité avec les frameworks de traitement de données populaires, notamment :

  • Apache Spark, Apache Flink, Presto, Impala, Dremio, Daft, Clickhouse, Starrocks, Amazon Redshift, Amazon Athena, Amazon EMR, AWS Glue, Snowflake, Databricks…

Ces qualités font d’Apache Iceberg un outil essentiel pour les organisations confrontées au traitement et à l’analyse de données à grande échelle dans le paysage du Big Data, du Data Lake et du Data Lakehouse.

Voici quelques grandes caractéristiques d’Apache Iceberg :

  • Exactitude : Apache Iceberg gère les opérations d’écritures avec l’isolement nécessaires, et les mécanismes utiles qui garantissent les transactions ACID, comme dans une base de données traditionnelle. Même en cas d’échec d’écriture vos données restent intègres.
  • Evolutivité : Apache Iceberg offre une flexibilisation dans la définition des structures de données telle que MongoDB ou Elasticsearch tout en s’appuyant sur la rigueur des modélisation des plus grands data warehouses.  Apache Iceberg inscrit ces données dans un stockage distribué. Ici encore Apache Iceberg bénéficie de toute les évolutions qu’il y a eues au sein des architecture Big Data et celles des data lakes.
  • Performances: En informatique, il est très coûteux d’ouvrir un fichier pour le lire. Bien sûr, ouvrir un fichier ne pose pas de problème. Toutefois, lorsque l’on passe à l’échelle et que le nombre de fichiers explose, il convient de faire en sorte de réduire ce nombre. Ici encore Apache Iceberg apporte des réponses face aux solutions déjà existantes…
  • Ouverture : Bien sûr que Apache Iceberg est open source ! Ici, ce qu’il faut en comprendre c’est surtout que la mutualisation en facilite l’adoption en particulier parce que Apache Iceberg s’interface avec l’ensemble des cadres de développement, des solutions d’analyses… Grâce à Apache Iceberg pas d’enfermement par un fournisseur ! Dit autrement : “Pas de Vendor Locking”.
  • Temps réel : compte-tenu de la performance d’une part, et de l’évolutivité d’autre part, Apache Iceberg s’inscrit parfaitement dans l’architecture quasi temps réel.

Les ressources pour prendre en main Apache Iceberg

Nos derniers articles de Blog autour d’Apache Iceberg

Dremio, une solution conçue nativement pour Apache Iceberg !

C’est en nous intéressant dès 2018 à l’Open Data Lakehouse Dremio que nous avons petit à petit découvert tout ce qu’allait nous apporter Apache Iceberg. 6 ans plus tard, nous continuons de découvrir un potentiel que nous n’avions alors qu’entre aperçu !

Dremio est le premier Lakehouse a avoir mis à l’honneur Iceberg en présentant une solution packagée comprenant notamment les projets Apache Iceberg, Apache Arrow et Apache Nessie ! Dremio permet ainsi de déployer une solution complète et ouverte de Data Lakehouse.

TÉLÉCHARGER LA BROCHURE DÉCOUVRIR NOTRE PARTENARIAT

Pour recevoir le livre Introduction à Apache Iceberg par Charly Clairmont, remplissez le formulaire ci-dessous :

*tous les champs sont obligatoires

Lisez notre politique de confidentialité pour savoir comment nous traitons vos données