Apache Parquet offre plusieurs avantages pour le stockage et la récupération des données par rapport aux méthodes traditionnelles telles que CSV.
Le format Parquet est conçu pour un traitement plus rapide des données de types complexes. Dans cet article, nous expliquons comment le format Parquet est adapté aux besoins actuels en matière de données, qui ne cessent de croître.
Avant d'entrer dans les détails du format Parquet, il convient de comprendre ce que sont les données CSV et les défis qu'elles posent en matière de stockage de données.
Qu'est-ce que le stockage CSV ?
Nous avons tous entendu parler de CSV (Comma Sséparé Values) - l'un des moyens les plus courants d'organiser et de formater des données. Le stockage des données CSV est basé sur des lignes. Les fichiers CSV sont stockés avec l'extension .csv. Il est possible de stocker et d'ouvrir des données CSV à l'aide de ExcelGoogle Sheets ou tout autre éditeur de texte. Les données sont facilement consultable une fois le fichier ouvert.
Ce n'est pas bon - et certainement pas pour un format de base de données.
En outre, à mesure que le volume des données augmente, il devient difficile de les interroger, de les gérer et de les extraire.
Voici un exemple de données stockées dans un fichier .CSV :
EmpId,First name,Last name, Division
2012011,Sam,Butcher,IT
2013031,Mike,Johnson,Human Resource
2010052,Bill,Matthew,Architect
2010079,Jose,Brian,IT
2012120,Adam,James,Solutions
Si nous le visualisons dans Excel, nous pouvons voir une structure ligne-colonne comme ci-dessous :
Défis liés au stockage de fichiers CSV
Les stockages basés sur des lignes, comme le CSV, conviennent pour Create, Update et Dles opérations d'effacement.
Qu'en est-il de la Read in CRUD, then ?
Imaginez un million de lignes dans le fichier .csv ci-dessus. Il faudrait un temps raisonnable pour ouvrir le fichier et rechercher les données souhaitées. Ce n'est pas si simple. La plupart des fournisseurs de services en nuage, comme AWS, facturent les entreprises en fonction de la quantité de données numérisées ou stockées - là encore, les fichiers CSV consomment beaucoup d'espace.
Le stockage CSV ne dispose pas d'une option exclusive pour stocker les métadonnées, ce qui rend l'analyse des données fastidieuse.
Quelle est donc la solution optimale et rentable pour effectuer toutes les opérations CRUD ? Explorons-le.
Qu'est-ce que le stockage de données Parquet ?
Parquet est un format de stockage de données à code source ouvert. Il est largement utilisé dans Hadoop et Spark. Les fichiers Parquet sont stockés sous l'extension .parquet.
Parquet est un format hautement structuré. Il peut également être utilisé pour optimiser les données brutes complexes présentes en masse dans les lacs de données. Cela permet de réduire considérablement le temps d'interrogation.
Parquet rend le stockage des données efficace et la recherche plus rapide grâce à un mélange de formats de stockage basés sur les lignes et les colonnes (hybride). Dans ce format, les données sont partitionnées horizontalement et verticalement. Le format Parquet élimine également dans une large mesure la surcharge d'analyse.
Le format limite le nombre total d'opérations d'E/S et, en fin de compte, le coût.
Parquet stocke également les métadonnées, qui contiennent des informations sur les données telles que le schéma de données, le nombre de valeurs, l'emplacement des colonnes, la valeur minimale, la valeur maximale, le nombre de groupes de lignes, le type d'encodage, etc. Les métadonnées sont stockées à différents niveaux du fichier, ce qui accélère l'accès aux données.
Dans le cas d'un accès basé sur des lignes comme le CSV, l'extraction des données prend du temps car la requête doit parcourir chaque ligne et obtenir les valeurs de colonnes particulières. Avec le stockage Parquet, il est possible d'accéder à toutes les colonnes requises en une seule fois.
En résumé,
- Parquet est basé sur la structure en colonnes pour le stockage des données
- Il s'agit d'un format de données optimisé pour stocker des données complexes en masse dans des systèmes de stockage.
- Le format Parquet comprend diverses méthodes de compression et d'encodage des données
- Il réduit considérablement le temps de recherche et d'interrogation des données et occupe moins d'espace disque que d'autres formats de stockage tels que CSV.
- Minimise le nombre d'opérations d'entrée-sortie, réduisant ainsi le coût du stockage et de l'exécution des requêtes.
- Inclut des métadonnées qui facilitent la recherche des données
- Fournit un support open-source
Format de données Parquet
Avant d'entrer dans un exemple, comprenons plus en détail comment les données sont stockées dans le format Parquet :
Un fichier peut comporter plusieurs partitions horizontales, appelées groupes de lignes. Au sein de chaque groupe de lignes, le partitionnement vertical est appliqué. Les colonnes sont divisées en plusieurs blocs de colonnes. Les données sont stockées sous forme de pages à l'intérieur des blocs de colonnes. Chaque page contient les valeurs de données encodées et les métadonnées. Comme nous l'avons mentionné précédemment, les métadonnées de l'ensemble du fichier sont également stockées dans le pied de page du fichier au niveau du groupe de lignes.
Comme les données sont divisées en morceaux de colonnes, il est également facile d'ajouter de nouvelles données en encodant les nouvelles valeurs dans un nouveau morceau et un nouveau fichier. Les métadonnées sont alors mises à jour pour les fichiers et les groupes de lignes concernés. On peut donc dire que Parquet est un format flexible.
Parquet supporte nativement la compression de données en utilisant des techniques de compression de pages et d'encodage de dictionnaires. Voyons un exemple simple de compression de dictionnaire :
Notez que dans l'exemple ci-dessus, nous voyons la division IT 4 fois. Ainsi, lors du stockage dans le dictionnaire, le format encode les données avec une autre valeur facile à stocker (0,1,2...) ainsi que le nombre de fois qu'elles sont répétées en continu - IT, IT est remplacé par 0,2 pour économiser de l'espace. L'interrogation de données compressées prend moins de temps.
Comparaison directe
Maintenant que nous avons une bonne idée de l'aspect des formats CSV et Parquet, il est temps d'établir des statistiques pour comparer les deux formats :
CSV | Parquet |
Format de stockage basé sur des lignes. | Un hybride des formats de stockage basés sur les lignes et les colonnes. |
Il consomme beaucoup d'espace car aucune option de compression par défaut n'est disponible. Par exemple, un fichier de 1 To occupera le même espace s'il est stocké sur Amazon S3 ou tout autre nuage. | Il comprime les données lors de leur stockage, ce qui permet de réduire l'espace occupé. Un fichier de 1 To stocké au format Parquet n'occupera que 130 Go d'espace. |
Le temps d'exécution de la requête est lent en raison de la recherche par ligne. Pour chaque colonne, chaque ligne de données doit être récupérée. | Le temps d'interrogation est environ 34 fois plus rapide en raison du stockage en colonnes et de la présence de métadonnées. |
Davantage de données doivent être analysées par requête. | Environ 99% de données en moins sont analysées pour l'exécution de la requête, donc optimiser les performances. |
La plupart des dispositifs de stockage sont facturés en fonction de l'espace de stockage, de sorte que le format CSV implique un coût de stockage élevé. | Coût de stockage réduit car les données sont stockées dans un format compressé et codé. |
Le schéma des fichiers doit être soit déduit (ce qui entraîne des erreurs), soit fourni (ce qui est fastidieux). | Le schéma du fichier est stocké dans les métadonnées. |
Le format est adapté aux types de données simples. | Parquet convient même aux types complexes tels que les schémas imbriqués, les tableaux et les dictionnaires. |
Conclusion 👩💻
Nous avons vu à travers des exemples que Parquet est plus efficace que CSV en termes de coût, de flexibilité et de performance. Il s'agit d'un mécanisme efficace pour le stockage et la récupération des données, en particulier à l'heure où le monde entier s'oriente vers les données de type stockage en nuage et l'optimisation de l'espace. Toutes les grandes plateformes telles que L'azurAWS et BigQuery prennent en charge le format Parquet.