tadata
Retour à l'accueil

Formats Data Lake : Des Fichiers aux Abstractions Tabulaires

#data-engineering#data-lake#parquet#iceberg#delta-lake

Le lakehouse moderne repose sur deux couches de choix de format : le format de fichier qui stocke les octets sur disque, et le format de table qui ajoute une sémantique transactionnelle par-dessus. Bien choisir détermine la vitesse des requêtes, le coût de stockage, la flexibilité du schéma et la compatibilité écosystème.

Comparaison des Formats de Fichiers

CaractéristiqueParquetORCAvroCSV / JSON
Modèle de stockageColonnaireColonnairePar lignePar ligne
CompressionExcellente (Snappy, Zstd)Excellente (Zlib, Snappy)BonneMauvaise
Évolution du schémaLimitée (ajout colonnes)LimitéeForte (compatibilité complète)Aucune
Performance lecture (analytique)Excellente — élagage de colonnesExcellenteFaibleTrès faible
Support écosystèmeUniversel (Spark, Flink, Trino, DuckDB)Hive/Spark-centriqueKafka, outils Avro-natifsUniversel mais lent
Cas d'usage idéalAnalytique, stockage lakehouseWorkloads HiveStreaming, schema registryÉchange, debug

Parquet est devenu le standard de fait pour le stockage analytique. Son layout colonnaire permet le predicate pushdown et l'élagage de colonnes, réduisant les I/O de 90%+ sur les tables larges.

Comparaison des Formats de Table

CaractéristiqueApache IcebergDelta LakeApache Hudi
GouvernanceFondation ApacheLinux Foundation (origine Databricks)Fondation Apache
Transactions ACIDOuiOuiOui
Time travelOui — base de snapshotsOui — journal de versionsOui — base de timeline
Évolution du schemaComplete (ajout, suppression, renommage)Ajout/renommageAjout colonnes
Évolution de partitionOui — partitionnement cacheNon — nécessite recritureLimite
Moteurs de requêteSpark, Flink, Trino, DuckDB, Athena, BigQuerySpark, Flink, TrinoSpark, Flink, Trino
Dynamique communautaire (2026)Très élevée — convergence industrielleÉlevée — écosystème DatabricksModérée

Chronologie d'Évolution

2009  ──── Apache Avro 1.0
2010  ──── Apache Parquet (inspiration papier Dremel)
2013  ──── Format ORC introduit (projet Hive)
2016  ──── Apache Hudi créé chez Uber
2017  ──── Delta Lake créé chez Databricks
2018  ──── Apache Iceberg créé chez Netflix
2022  ──── Iceberg adopté par AWS, Snowflake, Dremio
2024  ──── Delta Lake UniForm lit les métadonnées Iceberg
2026  ──── Convergence industrielle : Iceberg comme format d'échange

Cadre de Décision

Avez-vous besoin de transactions ACID sur votre lac ?
├── Non  → Fichiers Parquet/ORC bruts suffisent
└── Oui
    ├── Stack centré Databricks ? → Delta Lake
    ├── Multi-moteur / multi-cloud ? → Apache Iceberg
    └── Forte charge upsert (CDC) ? → Apache Hudi ou Iceberg MoR

Bonnes Pratiques de Layout Stockage

PratiqueImpactDétails
Viser des fichiers de 128-512 MoPerformance lectureLes petits fichiers causent un overhead métadonnées
Partitionnement caché (Iceberg)Vitesse + flexibilitéPartitionner par transformation (jour, bucket)
Activer les statistiques de colonnesPredicate pushdownStats min/max permettent de sauter les fichiers non pertinents
Compacter régulièrementMaintenance performanceFusionner les petits fichiers produits par le streaming
Expirer les anciens snapshotsCoût stockageL'historique de time travel croît sans limite sans nettoyage

Ressources

:::

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.