Geoplateforme / geoplateforme.github.io

Site d'accueil de la documentation Géoplateforme
https://geoplateforme.github.io/
6 stars 1 forks source link

Intégration en base pgsql : erreur vector_to_db #45

Open Shypster opened 3 months ago

Shypster commented 3 months ago

Entité(s) concernée(s)

processing execution

Route API concernée

/datastores/{datastore}/processings/executions/{execution}/launch

Méthode de la route API

GET

Description détaillée du bug

Bonjour,

Je souhaite intégrer une donnée vectorielle en base pgsql mais j'obtiens une erreur lors de l'intégration des données :

[ "2024-03-22 13:49:42,439INFO||cli||181||=== Vector to DB 2.8.1 ===", "2024-03-22 13:49:42,439INFO||cli||182||Version de GDAL : 3.7.3", "2024-03-22 13:49:42,440INFO||cli||183||Version de PROJ : 9.3.0", "2024-03-22 13:49:42,440INFO||cli||196||Vérification de la structure de la livraison", "2024-03-22 13:49:42,443INFO||cli||225||Récupèration des fichiers de la livraison", "2024-03-22 13:49:42,459INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data ignoré car son extension () ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,462INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.prj ignoré car son extension (.prj) ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,462INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.cpg ignoré car son extension (.cpg) ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,463INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.shx ignoré car son extension (.shx) ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,463INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.qix ignoré car son extension (.qix) ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,463INFO||list_files||85||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.dbf ignoré car il est associé à un fichier shapefile qui sera traité à la place.", "2024-03-22 13:49:42,464INFO||list_files||76||/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.qml ignoré car son extension (.qml) ne fait pas partie de celles autorisées : geojson|csv|gpkg|shp|dbf|sql|delete|update", "2024-03-22 13:49:42,507INFO||list_files||154||Le fichier /mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.shp contient 1 couches.", "2024-03-22 13:49:42,534INFO||list_files||169||-- Layer ajoutée : {'path': PosixPath('/mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.shp'), 'type': 'ESRI Shapefile', 'name': 'l_zonage_inondation_s_074', 'srid': 'RGF93 v1 / Lambert-93', 'status': 'GENERATING'}", "2024-03-22 13:49:42,535INFO||core||113||Intégration en mode GENERATING", "2024-03-22 13:49:42,550INFO||vector_to_db||253||Début de l'intégration de l_zonage_inondation_s_074", "2024-03-22 13:49:42,550INFO||vector_to_db||71||Ouverture du fichier /mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.shp", "2024-03-22 13:49:42,557INFO||vector_to_db||95||Transformation de la couche l_zonage_inondation_s_074 en table PostgreSQL...", "2024-03-22 13:50:12,684ERROR||vector_to_db||101||TECHNICAL_ERROR : l'import du jeu de données /mnt/warehouse-data-001/uploads/3a1fd56f-d864-4ebc-b9b1-469eac53ab12/data/L_ZONAGE_INONDATION_S_074.shp dans data-partners (10.10.4.9) a échoué. Contexte : src_srs='epsg:2154' | src_srs='epsg:2154' | gdal_open_options=[''] | layer_creation_options=['FID=ogc_fid']|sql_statement=None. Trace : COPY statement failed.", "2024-03-22 13:50:12,688ERROR||vector_to_db||314||Erreur lors de l'insertion de la donnée l_zonage_inondation_s_074.", "2024-03-22 13:50:12,837ERROR||core||126||Erreur lors de l'intégration des données." ]

Avez-vous une idée sur la source de l'erreur ?

Merci

Dolite commented 3 months ago

Pouvez vous me dire ce que contient la livraison ? (Retour de l'appel GET /datastores/{id}/uploads/{id}/tree)

Shypster commented 3 months ago

[ { "type": "DIRECTORY", "name": "data", "size": 557800212, "children": [ { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.cpg", "size": 5 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.dbf", "size": 19829346 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.prj", "size": 452 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.qix", "size": 2117064 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.qml", "size": 30089 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.shp", "size": 533619924 }, { "type": "FILE", "name": "L_ZONAGE_INONDATION_S_074.shx", "size": 2203332 } ] } ]

Dolite commented 3 months ago

Je ne vois rien qui cloche (et puis la vérification aurait râlé). Pourriez vous me donner l'id de l'exécution, que je regarde les logs plus complets de mon côté.

Shypster commented 3 months ago

ed86d42c-de95-4827-ac53-07c873da1f29

Dolite commented 3 months ago

Votre fichier contient un mélange de polygones et de multi polygones. La table créée attend des polygones et l'intégration échoue lorsqu'elle tombe sur un multi. Une évolution de notre côté est en cours pour permettre de corriger cela. En attendant, vous pouvez forcer le type multi polygone dans vos données. Désolé pour le contre-temps.

Shypster commented 3 months ago

En forçant le mode multi, je n'ai pas réussi à intégrer la donnée.

Shypster commented 3 months ago

Bonjour,

Avez-vous des nouvelles à me donner concernant la correction de l'anomalie ?

Merci

vbrinon commented 3 months ago

Bonjour, Le correctif n'est toujours pas déployé. En attendant, pour forcer le mode multi, la méthode recommandée est d'utiliser ogr2ogr et de passer par un gpkg : ogr2ogr -nlt PROMOTE_TO_MULTI output.gpkg input.shp Pouvez-vous nous fournir l'id de la nouvelle mise en base qui a échoué pour que nous vérifions si la nature de l'erreur a achangé svp ?

Shypster commented 3 months ago

Effectivement en gpkg, c'est passé. Par contre, maintenant l'offre associée à ma donnée est en statut "UNSTABLE" et j'ai une autre donnée diffusée en WMS-V qui n'est plus disponible.

vbrinon commented 3 months ago

Bonjour, Pouvez-vous nous fournir l'identifiant de votre offre UNSTABLE pour que nous investiguions svp (et aussi celui du WMS-V qui n'est plus disponible)

Shypster commented 2 months ago

Bonjour,

L'id de l'ofre "UNSTABLE" : 4106f5b0-2973-42cb-826c-f9555fc7e7db L'id de l'offre plus disponible : f1c4c81b-eb15-4968-9ec5-8578612d7dec

Merci

Shypster commented 1 month ago

Bonjour,

Avez-vous avancer sur le sujet ?

Merci

vbrinon commented 1 month ago

Bonjour, Désolé du temps de réponse. Avez-vous toujours les blocages ? Pourriez-vous nous indiquer l'id de votre datastore également svp?

vbrinon commented 1 month ago

Par ailleurs, il est désormais possible de mettre en base des tables avec plusieurs types de géométrie.

Pour cela, il faut les préciser dans le paramètre "multigeom_layers"

ex: { "processing": "{{ .processing }}", "inputs": { "upload": [ "{{ .upload }}" ] }, "output": { "stored_data": { "name": "TEST_IGNGPF_AVEC_PARAM", "storage_tags": [ "PARTENAIRE", "VECTEUR" ] } }, "parameters": { "multigeom_layers": ["$Nom_table"] } }

Shypster commented 1 month ago

Merci pour votre retour. Id du datastore : bd2a125f-2efd-4539-88de-f5914bb235a9

Oui, les problèmes évoqués ci-dessus sont toujours d'actualité.

vbrinon commented 3 weeks ago

Bonjour,

Nous avons supprimé l'offre 4106f5b0-2973-42cb-826c-f9555fc7e7db et créé une nouvelle offre a71d642b-145b-4265-aaed-ea34cc3896bf avec la même configuration pour reproduire le problème et elle n'a pas pu être publiée. Après vérification des logs, il apparait que le style ne peut pas être intégré.

Retour de geoserver qui n'arrive pas à parser le fichier XML :

Invalid style:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog

Après avoir téléchargé le style, il apparait que le fichier XML est encodé en UTF-8 avec BOM et cela empêche l'intégration dans Geoserver.

Pouvez-vous réessayer en encodant le style en UTF-8 sans BOM ?

Shypster commented 1 week ago

Bonjour, pouvez-vous me dire pourquoi la donnée stockée 6f62da7c-fcba-4d86-952a-f7aea8aff898 est en "UNSTABLE" ? De plus, quand je monte un shapefile en livraison, les tests de validation ne passent pas totalement et la livraison échoue. Merci

Dolite commented 1 week ago

Pouvez vous nous donner les logs de l'exécution de traitement qui a échoué pour la stored data UNSTABLE ? Et quel est l'identifiant de l'exécution de vérification en erreur ? Merci.

vbrinon commented 1 week ago

Bonjour, Le traitement vector2db a effectivement échoué, vraisemblablement sur une erreur de type de données. Malheureusement la livraison a été supprimée, nous ne pouvons donc pas récupérer le fichier gpkg pour vérifier son contenu. Serait-il possible de le relivrer ou de nous faire parvenir le fichier L_ZONAGE_INONDATION_S_074.gpkg ?

Shypster commented 1 week ago

J'ai re-téléversé la même donnée mais en shapefile, le même problème survient. ID de la donnée stockée "UNSTABLE" : 6f62da7c-fcba-4d86-952a-f7aea8aff898 ID de la livraison : d4f6d552-42a5-46dd-8b1a-0d7835cfb2c7 ID de l'exécution : 8b720d96-99ff-4ec6-a093-07f33e667bca

Pour info, il s'agit d'un type de géométrie multipolygon, ci-dessous les paramètres de l'exécution : { "processing": "0de8c60b-9938-4be9-aa36-9026b77c3c96", "inputs": { "upload": [ "d4f6d552-42a5-46dd-8b1a-0d7835cfb2c7" ] }, "output": { "stored_data": { "name": "L_ZONAGE_INONDATION_S_074", "storage_tags": ["VECTEUR"] } }, "parameters": { "srs": "epsg:2154", "multigeom_layers": ["L_ZONAGE_INONDATION_S_074"] } }

vbrinon commented 1 week ago

Bonjour,

L'éxécution 8b720d96-99ff-4ec6-a093-07f33e667bca est en succès et a généré une nouvelle stored_data 9bacb23a-3a7f-4c2d-8659-d1e19580f090 qui est bien au statut GENERATED.

Le passage en shapefile a donc bien résolu le problème.