Maîtriser les fichiers Parquet : structure, cas d'usage et avantages clés

Un fichier Parquet stocke les données par colonne plutôt que par ligne. Le projet Apache Parquet le décrit comme « un format de fichier de données open source orienté colonne, conçu pour un stockage et une récupération efficaces des données ». Ce seul choix de conception explique pourquoi il est plus léger, plus rapide à interroger et plus difficile à ouvrir par un double-clic.
Qu'est-ce qu'un fichier Parquet ?
Parquet est un format de fichier pour les données tabulaires, géré dans le cadre d'un projet Apache. La documentation officielle indique qu'il « fournit des schémas de compression et d'encodage de haute performance pour gérer des données complexes en masse ». Elle ajoute que ce format « est pris en charge par de nombreux langages de programmation et outils d'analyse ».
La propriété déterminante est l'orientation. Un CSV écrit une ligne à la fois : chaque champ du premier enregistrement, puis chaque champ du deuxième. Parquet écrit une colonne à la fois : chaque valeur de la première colonne, puis chaque valeur de la deuxième.
Cela ressemble à un détail technique, mais cela a deux conséquences majeures. Les valeurs d'une même colonne ont tendance à se ressembler, ce qui permet de les compresser bien mieux qu'une ligne mixte. De plus, une requête qui n'a besoin que de trois colonnes sur quatre-vingt-dix peut lire uniquement ces trois-là, plutôt que de parcourir chaque ligne pour en rejeter la majeure partie.
Le format est formellement spécifié. La documentation Apache note que « le dépôt parquet-format héberge la spécification officielle du format de fichier Parquet, définissant la structure et le stockage des données ».
Comment est structuré un fichier Parquet
L'enveloppe
Chaque fichier Parquet s'ouvre et se ferme avec les mêmes quatre octets. La spécification indique un « nombre magique de 4 octets 'PAR1' » au début, et ce même nombre magique tout à la fin.
Entre les deux se trouvent les données et, vers la fin, les métadonnées. Juste avant le nombre magique de fermeture se trouve une « longueur de 4 octets en octets des métadonnées du fichier (little endian) ». Cette valeur indique au lecteur de combien de pas il doit reculer pour trouver le bloc de métadonnées.
Groupes de lignes et blocs de colonnes
À l'intérieur de l'enveloppe, les données sont divisées deux fois. La spécification décrit un fichier comportant « N colonnes dans cette table, réparties en M groupes de lignes ».
Un groupe de lignes est une tranche horizontale — un lot de lignes. Au sein de chaque groupe de lignes, les valeurs de chaque colonne sont stockées ensemble sous forme de bloc de colonne. Ainsi, un fichier contenant 90 colonnes et 10 groupes de lignes contient 900 blocs de colonnes, chacun représentant une suite contiguë de valeurs d'une seule colonne.
C'est cette double division qui rend possible la lecture sélective. Une requête peut ignorer des groupes de lignes entiers qui ne peuvent pas contenir de lignes correspondantes, puis lire uniquement les blocs de colonnes dont elle a besoin dans ceux qui restent.
Pourquoi les métadonnées se trouvent à la fin
Cela surprend ceux qui s'attendent à un en-tête. La documentation Apache en explique directement la raison : « les métadonnées du fichier sont écrites après les données pour permettre une écriture en une seule passe ».
Un programme d'écriture qui diffuse un ensemble de données volumineux ne connaît pas les positions finales en octets de chaque bloc avant de les avoir écrits. Placer les métadonnées à la fin signifie qu'il n'a jamais besoin de revenir en arrière pour modifier un en-tête.
Le processus de lecture en découle. Selon la documentation, les métadonnées du fichier « contiennent les emplacements de tous les points de départ des blocs de colonnes ». Elle ajoute que « les lecteurs doivent d'abord lire les métadonnées du fichier pour trouver tous les blocs de colonnes qui les intéressent ».
À quoi sert Parquet
Vous rencontrerez généralement un fichier .parquet dans l'une de ces quatre situations.
Exportations de data warehouses. Lorsque quelqu'un exporte une grande table depuis un entrepôt de données moderne, c'est souvent le format par défaut, car le fichier reste d'une taille raisonnable.
Stockage en data lake. Les fichiers stockés dans des espaces de stockage d'objets cloud l'utilisent couramment, précisément parce que les moteurs peuvent lire un sous-ensemble de colonnes sans avoir à tout télécharger.
Transferts entre équipes. Un ingénieur de données qui vous envoie un an de transactions optera souvent pour ce format plutôt que pour un CSV qui serait plusieurs fois plus volumineux.
Échanges entre outils d'analyse. Comme le format est pris en charge par de nombreux langages et outils, il circule entre les systèmes sans nécessiter d'étape de conversion intermédiaire.
Le point commun est la taille. Il s'impose comme le choix évident dès lors qu'un fichier CSV devient trop lourd à manipuler.
Parquet vs CSV
| Parquet | CSV | |
|---|---|---|
| Orientation | Orienté colonne | Orienté ligne |
| Lisible dans un éditeur de texte | Non, il est binaire | Oui |
| Taille de fichier typique | Plus petite, grâce à la compression par colonne | Plus grande pour les mêmes données |
| Lecture de quelques colonnes | Lit uniquement ces blocs de colonnes | Lit l'intégralité du fichier |
| Types de données | Inclus dans les métadonnées du fichier | Déduits par l'outil qui l'ouvre |
| S'ouvre par double-clic | Généralement non | S'ouvre généralement dans un tableur |
| Idéal pour | Grandes tables, requêtes répétées | Petites tables, inspection rapide, partage universel |
Le comportement des types mérite d'être souligné. Un CSV ne sait pas si 00123 est un nombre ou une chaîne de caractères, c'est pourquoi les zéros non significatifs et les dates sont souvent altérés lors de l'importation. Parquet enregistre les types dans ses métadonnées, de sorte que la valeur que vous avez écrite est exactement celle que vous récupérez.
Pour le côté orienté ligne de cette comparaison, le CSV explainer aborde le même sujet sous un autre angle. L'analyse du TSV breakdown couvre la variante séparée par des tabulations.
Principaux avantages
Une compression réellement cumulative. Le fait de stocker des valeurs similaires les unes à côté des autres donne à l'encodeur beaucoup plus de matière pour travailler. La documentation Apache met en avant des « schémas de compression et d'encodage de haute performance ».
Élagage des colonnes. Lire trois colonnes sur quatre-vingt-dix coûte environ trois colonnes d'E/S au lieu de quatre-vingt-dix.
Saut de groupes de lignes. Comme les métadonnées enregistrent ce que contient chaque groupe de lignes, un lecteur peut écarter des tranches entières avant même d'y toucher.
Les types survivent au voyage. Les dates restent des dates et les identifiants conservent leurs zéros non significatifs, car le schéma voyage à l'intérieur du fichier.
Écriture en une seule passe. Les métadonnées situées à la fin permettent d'écrire de très grands fichiers sous forme de flux.
Large compatibilité. La documentation souligne sa prise en charge par « de nombreux langages de programmation et outils d'analyse », ce qui en fait un format rarement bloquant.
Les limites de Parquet
Parquet résout les problèmes de stockage et de récupération. Il ne résout aucune des questions que vous vous posez sur le contenu réel du fichier.
Il s'agit d'un format binaire, vous ne pouvez donc pas le parcourir d'un simple coup d'œil. Ouvrir un CSV pour vérifier si la colonne des revenus est brute ou nette prend cinq secondes. Un fichier binaire nécessite un outil avant de pouvoir afficher quoi que ce soit.
Il est également mal adapté aux petits volumes de données. Pour une table de correspondance de 200 lignes, la surcharge liée aux métadonnées et la nécessité d'utiliser des outils spécifiques l'emportent sur les avantages de la compression. Le format CSV est alors préférable, et l'admettre fait partie d'une bonne utilisation de Parquet.
De plus, il ne garantit en rien la qualité des données. Le fichier peut tout à fait contenir des absurdités parfaitement typées et efficacement compressées. Des enregistrements en double, une colonne de devises mélangeant deux monnaies différentes, un identifiant client dont le schéma a changé en mars. Le format garantit la fidélité des données, pas leur exactitude.
Comment travailler avec un fichier Parquet si vous n'êtes pas ingénieur
C'est là que se situe le fossé pratique. La plupart des outils professionnels s'attendent à un tableur, et un fichier .parquet ne s'ouvrira pas aussi facilement qu'un CSV.
La solution la plus pragmatique consiste à passer par une étape de conversion. Demandez à la personne qui a généré le fichier de vous fournir un extrait CSV ou Excel contenant uniquement les colonnes dont vous avez besoin, ou convertissez-le vous-même à l'aide d'un outil compatible avec Parquet. Vous perdez l'avantage de la compression, mais cela importe peu une fois les données sur votre machine et limitées à votre besoin.
À partir de là, le travail d'analyse est tout à fait classique. La page des tarifs de Powerdrill Bloom mentionne l'importation de fichiers Excel, CSV, PDF et de documents, de sorte qu'un extrait converti peut y être directement chargé. Les questions sont posées en langage naturel plutôt que sous forme de requêtes écrites. Le CSV AI assistant prend en charge cette approche, tandis que les data connectors couvrent les cas où il est préférable d'extraire les données plutôt que de les exporter.
La distinction essentielle à retenir est que Parquet est un choix de stockage effectué en amont de votre travail. Ce n'est pas un outil d'analyse, et s'en détacher par une conversion une fois le fichier sur votre bureau est une pratique normale et non une solution de contournement.
Conclusion
Parquet est un système de stockage orienté colonne dont le schéma et l'index se trouvent à la fin du fichier. Cette conception permet d'obtenir une excellente compression, des lectures sélectives et des types de données fiables, ce qui explique pourquoi il est devenu le format par défaut pour tous les volumes importants.
Ce qu'il n'offre pas, en revanche, c'est la visibilité. Dès que le fichier parvient à quelqu'un qui a besoin de réponses plutôt que de stockage, l'étape suivante la plus utile consiste généralement à en faire un extrait ciblé et à poser une question.
Si vous en êtes là, try Powerdrill Bloom avec le fichier converti et commencez par le transformer en graphique.
Foire aux questions
À quoi sert un fichier Parquet ?
Parquet est utilisé pour stocker efficacement de grands ensembles de données tabulaires. Il est couramment employé pour les exportations de data warehouses, le stockage en data lake, les transferts entre équipes et les échanges entre outils d'analyse. Cela s'explique par sa grande capacité de compression et sa faculté à ne lire que les colonnes sélectionnées.
Parquet est-il meilleur que le CSV ?
Pour les grandes tables interrogées de manière répétée, oui : il est plus léger, conserve les types de données et prend en charge l'élagage des colonnes. Pour les petites tables que vous devez inspecter ou partager largement, le CSV est plus simple car il s'agit de texte et s'ouvre partout.
Puis-je ouvrir un fichier Parquet dans Excel ?
Pas par un simple double-clic, car Parquet est un format binaire et non textuel. L'approche courante consiste à le convertir d'abord en CSV ou Excel, ou à utiliser un outil capable de lire directement le format Parquet.
Pourquoi les métadonnées de Parquet sont-elles stockées à la fin du fichier ?
La documentation Apache explique que les métadonnées sont écrites après les données « pour permettre une écriture en une seule passe ». Un programme d'écriture diffusant un grand ensemble de données ne connaît pas à l'avance les positions finales des blocs, l'écriture des métadonnées en dernier évite donc d'avoir à modifier un en-tête.
Que sont les groupes de lignes dans Parquet ?
Un groupe de lignes est une tranche horizontale de la table. La spécification décrit les colonnes d'un fichier comme étant « réparties en M groupes de lignes », chaque colonne étant stockée sous forme de bloc distinct au sein de chaque groupe. Cette disposition permet aux lecteurs d'ignorer à la fois les groupes et les colonnes dont ils n'ont pas besoin.