Closed bouttier closed 1 year ago
All modified lines are covered by tests :white_check_mark:
Files | Coverage Δ | |
---|---|---|
...kend/gn_module_import/checks/dataframe/__init__.py | 95.12% <100.00%> (+1.45%) |
:arrow_up: |
backend/gn_module_import/conf_schema_toml.py | 100.00% <100.00%> (ø) |
|
backend/gn_module_import/tasks.py | 92.38% <100.00%> (+1.36%) |
:arrow_up: |
backend/gn_module_import/utils.py | 95.00% <100.00%> (+0.58%) |
:arrow_up: |
:loudspeaker: Thoughts on this report? Let us know!.
En lien avec les soucis de chargement de la RAM : https://github.com/PnX-SI/GeoNature/issues/2717
Cette PR concerne l'amélioration de l'étape 3 du processus de traitement des données à importer :
t_imports.source_file
t_imports.source_file
pour peupler la table t_imports_synthese
(c’est de cette étape que parle #431 et qui nécessite le passage de GeoNature à SQLAlchemy 1.4)t_imports_synthese
dans une dataframe, et exécution d’une première partie de tests sur cette dataframe, avant de renvoyer les données de la dataframe dans la table t_imports_synthese
(c’est cette étape qui est concernée par cette PR)t_imports_synthese
Le chargement en dataframe et l’exécution des tests dessus était déjà fait en asynchrone, on a donc pas de contrainte de temps majeur (pas de timeout possible). Par contre comme on charge toutes les données d’un coup, on a une grosse empreinte mémoire. C’est pour diminuer la consommation de RAM que c’est utile de procéder en plusieurs fois en chargeant uniquement une partie des données à chaque fois.
D'autres soucis de consommation de mémoire ont été améliorés dans https://github.com/PnX-SI/gn_module_import/pull/486, notamment lors de l'étape d'analyse des colonnes du fichier source.
Ceci afin de réduire l’empreinte mémoire de l’import de gros fichier.