Equipe Datascience
Apache Parquet est un format de de stockage orienté colonnes largement utilisé dans l'analyse de données Big Data (par exemple Spark, Flink, Hive, Dask, DuckDB, etc.).
Apache Parquet a été lancé par Cloudera et Twitter en 2012, il est depuis 2015 un des projets les plus populaires de la fondation Apache. Deux versions principales (v1 et v2) ont été publiées à ce jour.
Le "projection pushdown" est une optimisation permettant au moteur de requête de ne lire que les colonnes qui sont effectivement ciblées par la requête, plutôt que l'ensemble des colonnes du fichier.
Le "predicate pushdown" est une optimisation consistant à appliquer les filtres sur les données au moment de la lecture du fichier parquet, évitant de charger l'ensemble des données en mémoire.
Le partitionnement est une technique de structuration des donnnées consistant à diviser un jeu de données volumineux en plusieurs sous-fichiers parquet en fonction des valeurs prises par une ou plusieurs colonnnes. Ces sous-fichiers parquet sont organisés en autant de dossiers que de partitions.
L'encodage est une technique qui consiste à représenter les valeurs d'une colonne de manière plus compacte pour réduire le coût de stockage et pour réduire le coût de lecture. Parquet prend en charge plusieurs méthodes : Dictionary Encoding, Run-Length Encoding (RLE), Bit-Packing (BIT_PACKED), Delta Encoding, etc.
La compression, en Parquet, est appliquée sur les pages de données (après l'encodage) pour réduire encore davantage le coût de stockage et accélérer les opérations I/O. Chaque bloc d'une colonne d'un fichier Parquet peut utiliser une méthode de compression différente, indépendamment des autres.
GeoParquet est une extension de Apache Parquet destinée au stockage de données géospatiales vectorielles (points, lignes, polygones) dans un format orienté colonnes, compressé et incluant de nombreuses métadonnées.
Il est déjà supporté par de nombreux outils (par exemple Sedona, GeoPandas, QGIS, DuckDB, Kepler GL, etc). Vous pouvez consulter le site officiel de GeoParquet pour plus d'informations.
GeoParquet enrichit Parquet avec des outils de geo-encodage (WKB) et de geo-métadonnées (CRS, type de geometries, bounding box, etc).
{
"version": "1.0.0",
"primary_column": "geometry",
"columns": {
"col1": {
"encoding": "WKB",
"geometry_types": ["Polygon", "MultiPolygon"],
"crs": "EPSG:4326"
},
"col2": {
"encoding": "WKB",
"geometry_types": ["Point"],
"crs": "EPSG:3857"
}
}
}
Les métadonnées des bounding box (bbox) définissent la zone occupée par les formes geométriques d'un fichier donnné. Sedona peut ainsi ignorer des partitions entières lors de l'exécution des requêtes.