Un fichier Apache Parquet est un format de stockage de données open source utilisé pour les bases de données en colonnes dans les requêtes analytiques. Si vous disposez de petits ensembles de données, mais de millions de lignes à rechercher, il peut être préférable d’utiliser un format en colonnes pour améliorer les performances. Les bases de données en colonnes stockent les données en regroupant les colonnes plutôt que la base de données standard basée sur les lignes, qui les regroupe par lignes. Un fichier Parquet est l’un des nombreux formats de stockage en colonnes.
Qu’est-ce qu’un fichier de parquet ?
Au lieu de regrouper des lignes comme une feuille de calcul Excel ou une base de données relationnelle standard, un fichier Apache Parquet regroupe les colonnes pour des performances plus rapides. Parquet est un format de stockage en colonnes et non une base de données elle-même, mais le format Parquet est courant avec les lacs de données, en particulier avec Hadoop. Comme il s’agit d’un format en colonnes, il est très apprécié pour le stockage de données et les requêtes analytiques.
La plupart des développeurs sont habitués au stockage de données par rangée, mais imaginez faire tourner une feuille de calcul Excel pour que les colonnes soient désormais affichées à la place des lignes numérotées. Par exemple, au lieu de conserver une table de clients avec une liste de colonnes de prénom et de nom où chaque prénom et nom est regroupé sous forme de ligne, un fichier Parquet stocke les colonnes ensemble afin que les bases de données puissent renvoyer plus rapidement les informations d’une colonne spécifique au lieu de rechercher dans chaque ligne avec de nombreuses colonnes.
Avantages des fichiers Parquet
Outre les performances des requêtes basées sur la manière dont les fichiers Parquet stockent les données, l’autre avantage principal est la rentabilité. Les fichiers Apache Parquet disposent d’une compression et d’une décompression extrêmement efficaces, ce qui leur permet de prendre moins de place qu’un fichier de base de données standard. En réduisant l’espace de stockage, une entreprise peut économiser des milliers de dollars en coûts de stockage.
Les formats de stockage colonnenaires sont préférables pour le Big Data et les requêtes analytiques. Les fichiers Parquet peuvent stocker des images, des vidéos, des objets, des fichiers et des données standard, ce qui permet de les utiliser dans n’importe quel type d’application analytique. Les stratégies de fichiers Parquet étant open source, elles sont également idéales pour les organisations qui souhaitent personnaliser leurs stratégies de stockage de données et de requêtes.
Fonctionnement des fichiers Parquet
Les fichiers Parquet contiennent un stockage en colonnes, mais ils contiennent également des métadonnées . Les colonnes sont regroupées dans chaque groupe de lignes pour garantir l’efficacité des requêtes, et les métadonnées aident le moteur de base de données à localiser les données. Les métadonnées contiennent des informations sur les colonnes, les groupes de lignes contenant des données et le schéma.
Le schéma d’un fichier Parquet décrit l’approche du stockage en colonnes. Le format du schéma est binaire et peut être utilisé dans un environnement de lac de données Hadoop. Les fichiers Parquet peuvent être stockés dans n’importe quel système de fichiers , ils ne sont donc pas limités aux environnements Hadoop uniquement.
L’un des avantages du format de stockage de fichiers Parquet est une stratégie appelée « pushdown prédicat ». Avec le « pushdown » préalable, le moteur de base de données filtre les données dès le début du traitement afin que les données plus ciblées soient transférées le long du pipeline. En réduisant le nombre de données ciblées sur une requête, les performances des requêtes sont améliorées. La réduction du traitement des données réduit également l’utilisation des ressources informatiques et, au final, les coûts.
Utilisation de fichiers Parquet
Les fichiers Parquet sont des fichiers Apache. Vous pouvez donc les créer dans vos propres scripts Python à condition d’importer plusieurs bibliothèques. Imaginons que vous ayez une table dans Python :
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
index=list('abc'))
table = pa.Table.from_pandas(df)
Avec ce tableau, nous pouvons désormais créer un fichier Parquet :
import pyarrow.parquet as pq
pq.write_table(table, 'mytable.parquet')
Le code ci-dessus crée le fichier « mytable.parquet » et y écrit le tableau. Vous pouvez désormais lire à partir de votre base de données favorite et importer les données, ou vous pouvez les utiliser pour vos propres requêtes et analyses.
Vous pouvez également lire ce tableau à partir du fichier à l’aide de Python :
pq.read_table('mytable.parquet', columns=['one', 'three'])
La fonction d’écriture() vous permet de définir des options lorsque vous écrivez la table dans un fichier. Vous trouverez une liste d’options sur le site d’Apache, mais voici un exemple de configuration de la compatibilité du fichier avec Apache Spark :
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
flavor=’spark’)
table = pa.Table.from_pandas(df)
Conclusion
Si vous envisagez d’utiliser des fichiers Parquet pour Hadoop, Apache Spark ou d’autres bases de données compatibles, vous pouvez automatiser la création de fichiers à l’aide de Python ou importer des fichiers dans l’environnement de base de données pour analyse. Les fichiers Parquet utilisent la compression pour réduire les besoins en espace de stockage, mais vous avez toujours besoin d’une capacité de stockage excessive pour les silos de Big Data. Avec notre technologie de déduplication et de compression , Pure Storage peut vous aider dans le stockage du Big Data.