GeoParquet
A file format for vector geodata built on Apache Parquet. It stores data by column, which keeps large datasets small and fast to query.
GeoParquet adds geometry to Apache Parquet, a file format widely used for large tables in data analysis. The specification defines how the geometry column is stored and how the file states its coordinate reference system, so that different tools read the same file in the same way.
The difference from formats like GeoPackage or Shapefile is that Parquet stores data by column, not by row. A query that needs three attributes out of fifty reads only those three, and similar values in one column compress well. For a dataset with millions of features, that means smaller files and faster queries. Tools such as DuckDB, QGIS and GDAL can also query these files directly in cloud storage, without downloading them first.
| id | category | geometry |
|---|---|---|
| 1 | school | POINT (11.57 48.14) |
| 2 | pharmacy | POINT (11.58 48.13) |
| 3 | school | POINT (11.56 48.15) |
| Block | Contents |
|---|---|
| 1 | 1 · school · POINT (11.57 48.14) |
| 2 | 2 · pharmacy · POINT (11.58 48.13) |
| 3 | 3 · school · POINT (11.56 48.15) |
| Block | Contents |
|---|---|
| id | 1 · 2 · 3 |
| category | school · pharmacy · school |
| geometry | POINT (11.57 48.14) · POINT (11.58 48.13) · POINT (11.56 48.15) |
To count the schools, the row layout has to read every block, geometry included. The column layout reads only the category block. And because a column holds one kind of value, repeats like “school” compress well.
That is why large open datasets now publish in it. Overture Maps releases all of its data as GeoParquet. In GOAT it is the format for routing networks you upload: since version 3.0, a street network arrives as a ZIP file with segments.geoparquet and connectors.geoparquet.