banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Tue 08 February 2022 18:24

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Ogr2Ogr GeoJson > Spatialite très lent

Salut à tous,

Je tente de scripter l'importation de gros fichiers GeoJson dans une base Spatialite avec OGR2OGR.
Mais je ne comprends pas pourquoi l'import est très lent.
D'autant plus que depuis QGis, via le gestionnaire de BDD, l'import manuel des mêmes GeoJson est très rapide.
Exemple avec un GeoJson de 63000 entités points :
QGis : < 5s
OGR2OGR : > 10 min

Voici mon script .bat (je suis sur Windows) :

Code:

"C:\OSGeo4W\bin\ogr2ogr.exe" -update -skipfailures -f SQLite mabase.sqlite -dsco SPATIALITE=YES -lco GEOMETRY_NAME=geom -lco SPATIAL_INDEX=NO "D:\monchemin\monfichier.geojson"

Après avoir lancé le script, je vois le poids de mabase.sqlite augmenter Ko par Ko, très lentement, et un fichier "mabase.sqlite-journal" apparaitre et disparaitre constamment dans le même répertoire.

J'ai mis "-lco SPATIAL_INDEX=NO" pour que l'index spatial ne soit pas calculé à l'importation (je le lance manuellement plus tard, via un script Python/SQL).

Est-ce que quelqu'un a une idée de la cause possible de cette lenteur ?


Sylvain M.

Hors ligne

 

#2 Tue 08 February 2022 18:41

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Ogr2Ogr GeoJson > Spatialite très lent

Sans la balise code, c'est peut-être plus lisible dans l'ensemble :
"C:\OSGeo4W\bin\ogr2ogr.exe" -update -skipfailures -f SQLite mabase.sqlite -dsco SPATIALITE=YES -lco GEOMETRY_NAME=geom -lco SPATIAL_INDEX=NO "D:\monchemin\monfichier.geojson"


J'ai essayé sans l'option "spatialite", le problème est le même :
"C:\OSGeo4W\bin\ogr2ogr.exe" -update -skipfailures -f SQLite mabase.sqlite "D:\monchemin\monfichier.geojson"

(que la base sqlite existe ou non avant)

Dernière modification par Sylvain M. (Tue 08 February 2022 18:43)


Sylvain M.

Hors ligne

 

#3 Tue 08 February 2022 21:52

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Ogr2Ogr GeoJson > Spatialite très lent

Précision du soir : le problème est le même avec la donnée source convertie en SHP.
Ogr2Ogr convertit bien le GeoJson en SHP (< 2s !), mais même problème si j'essaie d'intégrer ce SHP en base Spatialite (SQlite)...
Comme le but était de faire des scripts SQL derrière, je vais passer par mon serveur PostGreSQL, mais c'est dommage que ça ne marche pas avec une base Spatialite hmm


Sylvain M.

Hors ligne

 

#4 Wed 09 February 2022 10:20

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1147

Re: Ogr2Ogr GeoJson > Spatialite très lent

Salut,

plusieurs élements pour augmenter les performances :

* Réduire le nombre de transaction (begin commit) en rajoutant l'option -gt 65536

* OGR_SQLITE_SYNCHRONOUS=FALSE dans les layer creation option. C'est l'équivalent d'UNLOGGED dans PostgreSQL
   Attention à l'intégrité des données dans ce cas.

* Augmenter la taille du cache dédié au moteur SQLITE avec l'option de conf OGR_SQLITE_CACHE.

Source : https://gdal.org/drivers/vector/sqlite.html

Dernière modification par tumasgiu (Wed 09 February 2022 10:22)

Hors ligne

 

#5 Wed 09 February 2022 10:29

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Ogr2Ogr GeoJson > Spatialite très lent

Pour compléter le commetnaire de tumasgiu o/ tu as des configurations spécifiques pour SQLite, elle commence par PRAGMA :
https://www.tutorialspoint.com/sqlite/sqlite_pragma.htm

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Wed 09 February 2022 12:27

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Ogr2Ogr GeoJson > Spatialite très lent

Super : merci @tumasgiu et @Yves smile

J'avais testé "-gt 65536", mais sans que ça ne change la donne.
Je vais donc tester "OGR_SQLITE_SYNCHRONOUS=FALSE" et "OGR_SQLITE_CACHE" après avoir essayé de comprendre, ainsi que de découvrir ce fameux "PRAGMA" que je ne connais pas encore, mais dont j'ai souvent vu le nom dans mes lectures diagnonales (je crois qu'il va falloir aller plus loin que la diagonale ! wink )

Suis sur autre chose là, mais je vous tiens au courant !


Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB