Performance issues affecting wide table sources
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
Línea de trabajo
Start by tracing the table row serialization path to the ogr_feature.ExportToJson() method named in the issue, then run the reproduction with a synthetic GeoPackage containing 200 fields and fetch rows through pygeoapi. Compare response time with a narrower source to confirm the wide table performance problem; done means wide source rows are fetched without the reported significant lag.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
The method by which table rows and attributes are serialized to JSON, can lead to performance issues especially when using tables with many fields. We identified this when running pygeoapi in production on a 180+ column data source and experienced significant lag in JSON-serializing rows.
Steps to Reproduce
Steps to reproduce the behavior:
- Create a synthetic data source (we're working from geopackages) with 200 fields
- Populate with synthetic data
- Fetch rows from the data source with pygeoapi
Expected behavior
Despite having many fields, I'd like pygeoapi to remain performant on wide table sources.
Screenshots/Tracebacks
If applicable, add screenshots to help explain your problem.
Environment
- OS: any
- Python version: 3.13
- pygeoapi version: current
Additional context
Claude Opus 5.5 helped us identify the source of the problem, in the ogr_feature.ExportToJson() method, which performed a very slow loop over each row and each field.
- Lenguaje dominante
- Python
- Estrellas
- 628
- Forks
- 339
- Merge medio
- 4 d 3 h
- PR fusionados (30 d)
- 11
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de geopython/pygeoapi
-
Make HTML-Escaping optionalAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
the query parameter limit is not working for jobsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
MVT-postgresql: zoomed-out tiles miss features when storage_crs is projected (e.g. UTM)Posiblemente ocupada @doublebyte1 la tomó hace 1 día. Abiertobug OGC API - Tiles
Dificultad 4/5 3-5 días Aptitud para principiantes 58/100
geopython/pygeoapi#2466 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
ESRI provider tests: mock ArcGIS HTTP responses instead of depending on sampleserver6Quizá libre de nuevo @aaditya755 la tomó hace 9 días y no hay ningún pull request abierto. Abiertoenhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
geopython/pygeoapi#2448 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
get_collection_map does not parse the transparent query parameterPosiblemente ocupada @tomkralidis la tomó hace 11 días. Abiertobug OGC API - Maps
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
geopython/pygeoapi#2444 · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de geopython/pygeoapi
Issues similares
-
enhancement help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Git-Hospital/githealthcheck#61 ·
Los mantenedores suelen responder en 1 día
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
ramnes/notion-sdk-py#433 ·
-
Partial method descriptors raise on class accessPosiblemente ocupada @Gambit-Checkmate la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 19 días
-
docs pkg:core
Dificultad 1/5 Menos de una hora Aptitud para principiantes 84/100
pydantic/pydantic-ai#11929 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
intake/intake-esm#789 ·