Les 5 principales fonctionnalités clés d’Apache Iceberg pour les data lakes modernes

Les grandes données ont considérablement évolué depuis leur création à la fin des années 2000. De nombreuses organisations se sont rapidement adaptées à cette tendance et ont construit leurs plateformes de grandes données en utilisant des outils open-source comme Apache Hadoop. Par la suite, ces entreprises ont commencé à rencontrer des difficultés à gérer les besoins de traitement des données en évolution rapide. Elles ont été confrontées à des défis pour gérer les changements au niveau du schéma, l’évolution des schémas de partition et le retour en arrière pour examiner les données.

J’ai rencontré des défis similaires lors de la conception de systèmes distribués à grande échelle dans les années 2010 pour une grande entreprise technologique et un client du secteur de la santé. Certaines industries ont besoin de ces capacités pour se conformer aux réglementations bancaires, financières et sanitaires. Les entreprises fortement axées sur les données comme Netflix ont également rencontré des défis similaires. Elles ont inventé un format de table appelé « Iceberg », qui se superpose aux fichiers de données existants et offre des fonctionnalités clés en tirant parti de son architecture. Cela est rapidement devenu le principal projet ASF, suscitant un vif intérêt dans la communauté des données. Dans cet article, je vais explorer les 5 principales fonctionnalités clés d’Apache Iceberg avec des exemples et des diagrammes.

1. Voyage dans le temps

Figure 1 : Voyage dans le temps au format de table Apache Iceberg (image créée par l’auteur)

Cette fonctionnalité vous permet d’interroger vos données telles qu’elles existent à tout moment. Cela ouvrira de nouvelles possibilités pour les analystes de données et les analystes commerciaux afin de comprendre les tendances et comment les données ont évolué au fil du temps. Vous pouvez facilement revenir à un état précédent en cas d’erreurs. Cette fonctionnalité facilite également les vérifications d’audit en vous permettant d’analyser les données à un moment donné.

SQL

 

2. Évolution du schéma

L’évolution du schéma d’Apache Iceberg permet des modifications de votre schéma sans aucun effort considérable ni migrations coûteuses. À mesure que les besoins de votre entreprise évoluent, vous pouvez :

  • Ajouter et supprimer des colonnes sans temps d’arrêt ni réécriture de table. 
  • Mettre à jour la colonne (élargissement).
  • Changer l’ordre des colonnes.
  • Renommer une colonne existante.

Ces changements sont gérés au niveau des métadonnées sans avoir besoin de réécrire les données sous-jacentes. 

SQL

 

3. Évolution des partitions

En utilisant le format de table Apache Iceberg, vous pouvez changer la stratégie de partitionnement de la table sans réécrire la table sous-jacente ni migrer les données vers une nouvelle table. Cela est rendu possible car les requêtes ne font pas référence aux valeurs de partition directement comme dans Apache Hadoop. Iceberg conserve séparément les informations de métadonnées pour chaque version de partition. Cela facilite l’obtention des séparations lors de l’interrogation des données. Par exemple, interroger une table en fonction de la plage de dates, tandis que la table utilisait le mois comme colonne de partition (avant) comme une séparation et le jour comme nouvelle colonne de partition (après) comme une autre séparation. Cela s’appelle la planification des séparations. Voir l’exemple ci-dessous.

SQL

 

4. Transactions ACID

Iceberg fournit un support robuste pour les transactions en termes de Atomicité, Cohérence, Isolation et Durabilité (ACID). Il permet plusieurs opérations d’écriture concurrentes, ce qui permet un haut débit dans des tâches lourdes en données sans compromettre la cohérence des données.

SQL

 

Toutes les opérations dans Iceberg sont transactionnelles, ce qui signifie que les données restent cohérentes malgré les pannes ou les modifications des données de manière concurrente.

SQL

 

Il prend également en charge différents niveaux d’isolation, ce qui vous permet d’équilibrer performance et cohérence en fonction des exigences.

SQL

 

Voici un résumé montrant comment Iceberg gère les mises à jour et suppressions au niveau des lignes.

Figure 2 : Processus de suppression des enregistrements dans Apache Iceberg (image créée par l’auteur)

5. Opérations avancées sur les tables

Iceberg prend en charge des opérations avancées sur les tables telles que :

  • Création/gestion des instantanés de table : Cela donne la possibilité d’avoir un contrôle de version robuste.
  • Planification et exécution de requêtes rapides grâce à ses métadonnées hautement optimisées
  • Outils intégrés pour la maintenance des tables, tels que la compactage et le nettoyage des fichiers orphelins

Iceberg est conçu pour fonctionner avec tous les principaux services de stockage cloud, tels que AWS S3, GCS et Azure Blob Storage. De plus, Iceberg s’intègre facilement avec des moteurs de traitement de données tels que Spark, Presto, Trino et Hive.

Réflexions finales

Ces fonctionnalités mises en avant permettent aux entreprises de construire des lacs de données modernes, flexibles, évolutifs et efficaces, capables de voyager dans le temps, de gérer facilement les changements de schéma, de supporter les transactions ACID et d’évoluer en partition.

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes