Pour continuer sur !91 (comment 56378) où l'on intégrait une couche en base en 7 minutes, en appliquant l'option PG_USE_COPY=TRUE
, la durée descend à 1 minute par couche:
2023-11-28 12:19:57,509||USER||INFO||vector_to_db||74||Ouverture du fichier tests/fixtures/local_test_normal/__uploads__/normal/gpkg/parcelle30.gpkg
2023-11-28 12:19:57,510||USER||INFO||vector_to_db||98||Transformation de la couche parcelle en table PostgreSQL...
Warning 1: Layer creation options ignored since an existing layer is
being appended to.
2023-11-28 12:20:58,426||USER||INFO||vector_to_db||114||La couche parcelle a été mise en base.
Ca rejoint la commande lancée par François : export PG_USE_COPY=YESfor f in
find . -name "*.gpkg" | sort ; do {}ogr2ogr -f Postgresql -append PG:"host=<host> dbname=<db> schemas=<schema> user=<user> port=<port>" $f {} done{}
Ainsi que la suggestion d'Accenture :
A mon avis il faudrait changer la méthode d’import et passer par la commande COPY
Enfin, dans la doc de gdal:
PG_USE_COPY=value: This may be "YES" for using COPY for inserting data to Postgresql. COPY is significantly faster than INSERT. COPY is used by default when inserting from a table that has just been created.
(Sur le comportement par défaut, COPY ne semblait pas être utilisé)
Autre ticket JIRA lié : https://jira.worldline.com/browse/IGNGPF-2939