gdal: export in geoparquet

Come ottimizzare la cosa
gdal
parquet
Autore/Autrice
Affiliazione
Data di Pubblicazione

21 aprile 2025

Con GDAL è possibile esportare i dati in formato (Geo)Parquet, un formato ottimizzato per l’archiviazione e l’elaborazione di dati geospaziali. Questo formato è particolarmente utile per le applicazioni che richiedono prestazioni elevate e una gestione efficiente dei dati.

Prendendo spunto dai geoparquet-tools di Chris Holmes, ho scoperto che è possibile replicarne alcune delle feature direttamente in GDAL:

ogr2ogr \
  -f "parquet" \
  output.parquet \
  input.geojson \
  -lco compression=zstd \
  -lco SORT_BY_BBOX=YES \
  -lco ROW_GROUP_SIZE=100000

Con -lco SORT_BY_BBOX=YES si abilita lo spatial ordering: i dati geografici vicini tra loro sono memorizzati in modo contiguo. Questo permette al software di leggere solo le parti rilevanti del file quando si effettua una query spaziale, evitando di scansionare l’intero dataset.

Con -lco ROW_GROUP_SIZE=100000 si specifica la dimensione del gruppo di righe: un file Parquet è suddiviso in row group, che sono unità di dati contigue. La dimensione dei row group influenza l’efficienza delle query. Se i row group sono troppo grandi, il software potrebbe dover leggere più dati del necessario. Se sono troppo piccoli, l’overhead di metadati può diventare significativo, rallentando l’accesso. Dimensione raccomandata: tra 50.000 e 200.000 righe, oppure 128MB - 256MB per row group.

Con -lco compression=zstd si abilita la compressione Zstandard, che offre un buon equilibrio tra velocità di compressione e rapporto di compressione. È particolarmente utile per i dati geospaziali, in quanto può ridurre significativamente le dimensioni del file senza compromettere le prestazioni.

Con queste opzioni si ottiene un file di output ottimizzato per query rapide.

Da leggere è il markdown sempre a cura di Chris Holmes: Best Practices for Distributing GeoParquet

Torna in cima