CDOSS Apache Iceberg : Lakehouse Moderne
Profils adéquats pour passer cette certification
Cette certification s’adresse aux professionnels de la donnée qui travaillent dans des environnements distribués :
Data Engineers : C’est le profil principal. Ils ont besoin d’Iceberg pour construire des pipelines de données robustes, gérer l’ingestion en temps réel (streaming) et garantir la qualité des données.
Architectes Big Data : Pour concevoir des infrastructures “Lakehouse” modernes qui remplacent ou complètent les architectures Hive traditionnelles, tout en réduisant les coûts de stockage.
Data Architects : Pour définir les modèles de données évolutifs et assurer la gouvernance (versionnage des schémas) sur des volumes massifs.
Administrateurs de Plateformes de Données : Pour gérer la maintenance des tables (expiration de snapshots, nettoyage de fichiers orphelins) et la configuration des catalogues (Hive Metastore, AWS Glue).
Data Scientists (Profil Avancé) : Pour bénéficier de la reproductibilité des expériences grâce au Time Travel et accéder rapidement à des données structurées et propres.
Préparation :
Étape 1 : Comprendre la Révolution “Lakehouse” (Théorie)
L’objectif est de comprendre pourquoi Iceberg a été créé et ce qu’il résout par rapport à Hive.
Le concept de Data Lakehouse : Comprendre comment Iceberg combine la flexibilité d’un Data Lake (stockage de fichiers sur HDFS/S3) avec la rigueur d’un Data Warehouse (transactions ACID).
Les limites de Hive : Identifier les problèmes classiques (lenteur des listes de répertoires, pas de transactions, difficulté à modifier les schémas).
Les piliers d’Iceberg :
- Time Travel : Capacité à interroger une table telle qu’elle était dans le passé.
- Schema Evolution : Modifier les colonnes sans risquer de corrompre les données.
- Partition Evolution : Changer la stratégie de partitionnement sans réécrire la table complète.
Étape 2 : L’Architecture Interne (Le “Cœur” d’Iceberg)
Il est crucial de comprendre que dans Iceberg, une table est un ensemble de fichiers de métadonnées, pas juste un dossier de données.
Le Catalogue : C’est le point d’entrée qui pointe vers le fichier de métadonnées actuel (ex: Hive Metastore).
La hiérarchie des métadonnées :
Metadata File (JSON) : Définit le schéma, le partitionnement et la liste des snapshots.
Manifest List (AVRO) : Liste les fichiers manifestes liés à un snapshot spécifique.
Manifest File (AVRO) : Liste les fichiers de données réels avec des statistiques (min/max) pour optimiser les requêtes.
La couche de stockage : Comprendre le format Parquet (colonnaire) utilisé pour les données réelles.
Étape 3 : Mise en œuvre et Configuration (Pratique)
Savoir comment lancer Iceberg dans un environnement Spark (par exemple).
Initialisation de PySpark : Maîtriser les options de configuration indispensables :
–packages pour le runtime Iceberg.
Configuration du catalogue (spark.sql.catalog.spark_catalog).
Connexion au Metastore Hive via le protocole thrift.
Extensions Spark : Utiliser IcebergSparkSessionExtensions pour débloquer les commandes SQL avancées (UPDATE, DELETE, MERGE).
Étape 4 : Manipulation de Données et Maintenance (SQL Avancé)
Utiliser Iceberg comme une base de données relationnelle classique.
Le DDL (Data Definition Language) : Créer des tables (using iceberg), renommer des tables, et modifier les colonnes (ALTER TABLE).
Le DML (Data Manipulation Language) : Insertion, mise à jour (UPDATE) et suppression (DELETE).
Gestion des Partitions :
Ajouter ou supprimer des champs de partition.
Utiliser les transformations comme bucket(n, col) ou year(timestamp).
Maintenance : Comprendre l’expiration des snapshots et le nettoyage des fichiers orphelins pour optimiser le stockage.
