Apache Parquet est un format de fichier de données open source en colonnes, conçu pour stocker et récupérer des données avec une grande efficacité. Il fournit d'excellents schémas de compression et d'encodage des données. Ses performances supérieures lui permettent de traiter des données complexes en vrac. Apache Parquet a pour but d'être un format d'échange commun pour les charges de travail tant interactives que par batch. Il s'apparente à d'autres formats de fichiers de stockage en colonnes disponibles dans Hadoop, comme RCFile et ORC.
Apache Parquet est implémenté à l'aide de l'algorithme de découpage et d'assemblage (« record-shredding and assembly »), compatible avec les structures de données complexes qui peuvent être utilisées pour stocker les données. Optimisé pour les données complexes en vrac, Parquet propose différentes méthodes efficaces de compression des données et plusieurs types d'encodage. Cette approche est particulièrement adaptée aux requêtes qui doivent lire certaines colonnes dans une grande table. Parquet peut se contenter de lire uniquement les colonnes nécessaires, ce qui réduit considérablement les E/S.
Format simple et courant, CSV est utilisé par de nombreux outils comme Excel, Google Sheets et bien d'autres. Si CSV est le format utilisé par défaut par les pipelines de traitement des données, il présente certains inconvénients :
Parquet permet à ses utilisateurs de réduire leurs besoins en stockage d'au moins un tiers sur les grands datasets. Surtout, il améliore considérablement les temps de balayage et de désérialisation, diminuant les coûts globaux d'autant. Le tableau suivant compare les économies réalisées et les gains de temps obtenus en convertissant en Parquet les données stockées en CSV.
|
Jeu de données |
Taille sur Amazon S3 |
Durée d'exécution de la requête |
Données scannées |
Coût |
|
Données stockées dans des fichiers CSV |
1 To |
236 secondes |
1,15 To |
5,75 $ |
|
Données stockées au format Apache Parquet |
130 Go |
6,78 secondes |
2,51 Go |
0,01 $ |
|
Économies |
-87 % en utilisant Parquet |
34 x plus rapide |
-99 % de données scannées |
99,7 % d'économies |
Le projet open source Delta Lake s'appuie sur le format Parquet et lui ajoute des fonctionnalités supplémentaires comme les transactions ACID sur le stockage des objets cloud, le time travel, l'évolution des schémas et des commandes DML simples (CREATE/UPDATE/INSERT/DELETE/MERGE). Delta Lake implémente une grande part de ces fonctionnalités essentielles à l'aide d'un journal de transactions ordonnées qui permet de bénéficier d'une capacité d'entreposage des données sur le stockage des objets cloud. Pour en savoir plus, lisez l'article du blog Databricks Immersion dans Delta Lake : à la découverte du journal de transactions.
