Qu’est-ce qu’Apache Parquet ?

Photographie sous les poutres d’un pont

Auteurs

Annie Badman

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Qu’est-ce qu’Apache Parquet ?

Apache Parquet est un format de stockage en colonnes open source utilisé pour stocker, gérer et analyser efficacement de grands jeux de données. Contrairement aux formats de stockage en lignes tels que CSV ou JSON, Parquet organise les données en colonnes afin d’améliorer la performance des requêtes et de réduire les coûts de stockage.

Les organisations utilisent différents formats de fichiers pour répondre à différents besoins en matière de données. De nombreux formats traditionnels organisent les données en lignes, optimisant ainsi la simplicité des transferts de données et leur lisibilité.

Parquet adopte une approche fondamentalement différente. Il regroupe les types de données similaires dans des colonnes. Cette structure en colonnes a transformé la façon dont les organisations gèrent l’analytique à grande échelle, en permettant une compression supérieure et un accès ciblé aux données.

Par exemple, lors de l’analyse des transactions client, une base de données de vente au détail basée sur Parquet peut accéder à des colonnes spécifiques telles que les dates et les montants d’achat sans charger les enregistrements client complets. La possibilité d’accéder à des colonnes spécifiques peut réduire à la fois le temps de traitement et les coûts de stockage.

Le format Parquet trouve sa plus grande utilité dans trois domaines clés :

  • Les workloads analytiques qui traitent des requêtes complexes sur des milliards d’enregistrements.
  • Les data lakes et les entrepôts de données qui nécessitent un stockage efficace et des capacités de récupération rapide des données.
  • Les pipelines de machine learning (ML) qui analysent des attributs spécifiques dans de grands jeux de données d’entraînement.

Une autre raison qui justifie l’adoption généralisée de Parquet, c’est sa compatibilité avec les systèmes distribués et les outils de données, comme Apache Spark, Apache Hive et Apache Hadoop.

Principales caractéristiques d’Apache Parquet

À la différence d’autres formats de fichiers, Parquet transforme le stockage des données et l’accès à ces dernières grâce à trois capacités principales :

  • Format de stockage en colonnes : alors que les formats de fichiers traditionnels stockent les données en lignes, à l’instar des entrées des feuilles de calcul, Parquet utilise un format de stockage en colonnes. Il organise les types de données similaires dans des colonnes, lui permettant de lire uniquement les valeurs des colonnes pertinentes. Cette approche ciblée réduit les temps de traitement des requêtes de plusieurs heures à quelques minutes tout en diminuant considérablement les coûts de stockage.
  • Gestion des schémas et des métadonnées : chaque fichier Parquet inclut un schéma auto-descriptif, soit un schéma directeur de sa structure de données. Ces métadonnées permettent de formuler des requêtes plus efficaces et d’adapter les modèles de données à l’évolution des besoins métier. Par exemple, dans une base de données d’entreprise qui utilise Parquet, il est possible d’ajouter de nouveaux attributs client sans recréer les enregistrements existants.
  • Compression efficace : Parquet optimise automatiquement le stockage des données grâce à des techniques de compression sophistiquées. En d’autres termes, il réduit la taille des fichiers en supprimant les informations en double inutiles et en stockant les données dans un format plus optimisé. Cette approche intelligente du stockage des données garantit une efficacité de stockage et des performances de calcul optimales pour différents types de workloads.
Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Fonctionnement d’Apache Parquet

Apache Parquet transforme systématiquement les données brutes dans un format en colonnes optimisé, améliorant ainsi de manière significative l’efficacité du stockage et la performance des requêtes.

Voici comment Parquet traite les données :

1. Organisation des données

Lorsque vous écrivez des données dans un fichier Parquet, elles sont d’abord divisées en groupes de lignes. Chaque groupe de lignes représente une unité indépendante du jeu de données, ce qui permet un traitement parallèle et une gestion efficace de la mémoire pour les opérations à grande échelle. Cette stratégie de partitionnement constitue la base de l’accès aux données haute performance qui caractérise Parquet.

2. Fractionnement en blocs de colonnes

Dans chaque groupe de lignes, l’algorithme d’assemblage de Parquet réorganise les données par colonne et non par ligne. Les types de données similaires sont regroupés en blocs de colonnes, ce qui permet un encodage spécialisé basé sur les caractéristiques des données. Par exemple, une colonne de dates peut être optimisée différemment d’une colonne de valeurs numériques.

3. Compression et encodage

Parquet applique un processus d’optimisation en deux étapes. Tout d’abord, il utilise des schémas d’encodage tels que le codage par longueur de séquence (RLE) pour représenter efficacement les valeurs répétées, en particulier pour les colonnes comportant de nombreuses entrées en double. Il applique ensuite des algorithmes de compression tels que Snappy ou Gzip pour réduire davantage les besoins en stockage.

 4. Génération de métadonnées

Le format crée des métadonnées complètes, notamment le schéma de fichier et les types de données, les statistiques de chaque colonne, les emplacements des groupes de lignes et la structure. Ces métadonnées permettent une planification et une optimisation efficaces des requêtes.

5. Exécution des requêtes

Lors de la lecture des données Parquet, les moteurs de requête consultent d’abord les métadonnées pour identifier les colonnes pertinentes. Seuls les blocs de colonnes nécessaires sont lus à partir du stockage et les données sont décompressées et décodées selon les besoins.

Avantages d’Apache Parquet

Apache Parquet peut offrir des avantages significatifs aux organisations qui gèrent des opérations de données à grande échelle.

Voici quelques-uns de ces avantages :

Performances des requêtes

La structure des données de Parquet peut accélérer l’exécution des requêtes analytiques. Lorsque des applications ont besoin de données spécifiques, elles accèdent uniquement aux colonnes pertinentes, ce qui réduit le temps de traitement des requêtes de plusieurs heures à quelques minutes. Cet accès ciblé fait de Parquet un outil très utile pour les organisations qui exécutent des analyses complexes à grande échelle.

Traitement des données complexes

Contrairement aux formats plus simples, Parquet peut gérer efficacement les structures de données et les tableaux imbriqués que l’on retrouve souvent dans les applications modernes. Cette capacité est très utile pour les organisations qui traitent des types de données complexes, tels que les structures de type JSON dans l’analytique web ou les tableaux imbriqués dans les données de capteurs des appareils IdO (Internet des objets).

Stockage efficace

Le format en colonnes de Parquet change fondamentalement les méthodes de stockage et de compression des données. En regroupant les types de données similaires, Parquet peut appliquer des algorithmes d’encodage différents à chaque type de données, obtenant ainsi de meilleurs taux de compression que les formats tels que CSV ou JSON.

Par exemple, un jeu de données contenant des millions de transactions client pourrait nécessiter des téraoctets de stockage au format CSV, mais seulement une fraction de cet espace serait nécessaire s’il était stocké dans des fichiers Parquet.

Intégration de cadres

Les architectures de données modernes nécessitent souvent une intégration fluide des outils, que Parquet permet grâce à une prise en charge native des principaux cadres. Que les équipes utilisent Python avec la bibliothèque pandas pour l’analyse, Java pour le développement d’applications ou Apache Spark pour le traitement des données, Parquet peut garantir un accès aux données cohérent dans toute l’entreprise.

Optimisation de l’écosystème Hadoop

L’intégration native de Parquet à Hadoop le rend particulièrement efficace pour le traitement du big data. Parquet ayant été conçu pour le système de fichiers distribué Hadoop (HDFS), il est généralement plus performant que les formats de fichiers traditionnels dans les environnements Hadoop. Lorsqu’elles utilisent Parquet avec Hadoop, les organisations peuvent exécuter des requêtes plus rapidement et stocker leurs données plus efficacement, souvent dans une fraction de l’espace de stockage dont elles avaient besoin auparavant.

IBM Storage FlashSystem

IBM Storage FlashSystem : optimiser VMware pour le coût, la simplicité et la résilience

Découvrez comment IBM FlashSystem optimise les environnements VMware en termes de rentabilité, de simplicité et de résilience. Cette session met en évidence la façon dont FlashSystem peut améliorer la sécurité, l’accessibilité et la performance des données, ce qui en fait une solution idéale pour les infrastructures informatiques modernes.

Cas d’utilisation courants de Parquet

Apache Parquet peut répondre à un large éventail de besoins en ingénierie des données dans de nombreux secteurs et applications.

Voici quelques-unes de ses implémentations les plus significatives :

Data lakes et entrepôts de données

Les organisations qui créent des data lakes et des entrepôts de données choisissent souvent Parquet comme format de stockage principal. Ses performances en matière de compression et de requêtes le rendent idéal pour stocker de grands volumes de données tout en garantissant un accès rapide aux outils de business intelligence et aux requêtes SQL (langage de requête structuré).

Par exemple, une chaîne de distribution qui utilise Parquet pour stocker ses données de transaction peut analyser les tendances de vente dans des milliers de magasins tout en utilisant moins d’espace de stockage qu’avec les formats traditionnels.

Workloads analytiques

Les data scientists et les analystes qui travaillent avec des cadres tels qu’Apache Spark ou la bibliothèque pandas de Python peuvent tirer parti des performances optimisées de Parquet pour les requêtes analytiques. Bien que des formats comme Avro excellent généralement dans le traitement des données au niveau des enregistrements, beaucoup trouvent le format de fichier Parquet particulièrement efficace pour les analyses complexes.

Une société de services financiers pourrait par exemple utiliser Parquet pour stocker des données de marché, permettant aux analystes de traiter des millions d’événements de trading et de calculer les indicateurs de risque en temps quasi réel.

Pipelines ETL

Les pipelines de données modernes utilisent fréquemment Parquet comme format intermédiaire ou format cible dans les processus ETL (extraction, transformation et chargement). Sa compatibilité avec des cadres populaires comme Apache Spark et sa prise en charge de l’évolution des schémas en font un outil idéal pour les workflows d’ingénierie des données devant gérer l’évolution des structures de données.

Par exemple, les établissements de santé peuvent utiliser Parquet pour transformer efficacement les dossiers des patients provenant de plusieurs systèmes dans un format unifié, avec des capacités d’évolution des schémas gérant automatiquement les nouveaux champs de données sans perturber les processus existants.

Apache Parquet et les autres formats de fichiers

Voici une comparaison du format de fichier Parquet avec les autres formats de stockage courants :

Parquet et CSV/JSON

Les formats traditionnels tels que CSV et JSON stockent les données en lignes : une solution idéale pour des transferts de données simples, lisibles par l’humain. Cependant, dans le contexte d’une analytique à grande échelle, la lecture des fichiers Parquet offre des avantages significatifs.

Alors que le format CSV implique l’analyse de lignes entières même en cas de requête sur des colonnes uniques, le stockage en colonnes de Parquet permet un accès direct à des éléments de données spécifiques. Par exemple, l’analyse d’une seule colonne dans un jeu de données de l’ordre du pétaoctet nécessiterait la lecture de l’ensemble du fichier CSV, tandis que Parquet accéderait seulement aux blocs de colonnes pertinents.

Parquet et Avro

Avro et Parquet s’appliquent à différents cas d’utilisation dans l’écosystème de données. Le format en lignes d’Avro excelle dans les scénarios de sérialisation et de streaming, ce qui en fait un outil idéal pour enregistrer des transactions ou des événements individuels.

Le format de fichier Parquet, en revanche, est optimisé pour les workloads analytiques qui impliquent l’analyse de colonnes spécifiques sur des millions d’enregistrements.

Par exemple, une plateforme d’e-commerce pourrait utiliser Avro pour capturer les événements de commande en temps réel, mais convertir ces données au format Parquet à des fins d’analyse et de stockage à long terme.

Écosystème d’outils et de cadres connexes

La force d’Apache Parquet ne réside pas seulement dans les caractéristiques de son format, mais aussi dans son solide écosystème de cadres et d’outils connexes.

Parmi les technologies les plus significatives de l’écosystème Parquet, citons :

Les cadres de traitement

Parquet s’intègre de façon fluide aux principaux cadres de traitement de données. Apache Spark offre des capacités d’analytique haute performance, tandis qu’Hadoop permet un traitement distribué sur de grands clusters.

Apache Arrow vient améliorer cet écosystème par un partage rapide et efficace des données entre les systèmes et un accès direct aux données : des fonctionnalités qui améliorent les performances lors de l’utilisation de cadres comme Spark et Hadoop.

Les organisations peuvent combiner ces cadres avec Parquet pour créer des pipelines de données efficaces, de l’ordre du gigaoctet ou du pétaoctet.

Les langages et interfaces de programmation

Les ingénieurs de données peuvent utiliser Parquet sur plusieurs interfaces de programmation. Les développeurs Python utilisent généralement la bibliothèque pandas pour la manipulation des données, tandis que les applications Java utilisent les bibliothèques Parquet natives.

Plateformes cloud

Les principaux fournisseurs de cloud, notamment Amazon Web Services, Google Cloud Platform, Microsoft Azure et IBM Cloud, proposent une prise en charge native de Parquet.

Parquet est également compatible avec les entrepôts de données et les moteurs de requête basés sur le cloud tels qu’Amazon Athena, Google BigQuery et IBM Db2 Warehouse.

Solutions connexes
IBM Storage DS8000

IBM Storage DS8000 est le système de stockage le plus fiable et le mieux sécurisé pour les serveurs IBM zSystems et IBM Power.

Découvrir Storage DS8000
Solutions de stockage de données d’entreprise

IBM Storage est une famille de matériel de stockage de données, de stockage défini par logiciel et de logiciels de gestion du stockage.

Découvrir les solutions de stockage de données
Services de support matériel et logiciel  

IBM fournit un support proactif pour les serveurs Web et l’infrastructure des centres de données afin de réduire les temps d’arrêt et d’améliorer la disponibilité informatique.

Services de serveurs Web
Passez à l’étape suivante

De la gestion des environnements de cloud hybride au maintien de la résilience des données, les solutions de stockage IBM vous offrent un nouvel éclairage sur vos données tout en assurant une protection robuste contre les menaces.

Découvrir les solutions de stockage de données Découvrir le produit