database:import-formats

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
database:import-formats [2026/01/21 12:28] – tâche cochée: Voir si on garde ou pas le champ choaraudatabase:import-formats [2026/03/13 17:07] (Version actuelle) – [Format VALIDATION d'import] jpmilcent
Ligne 144: Ligne 144:
  
 ==== À faire / Améliorations ==== ==== À faire / Améliorations ====
 +  * <todo> Ajouter le champ ''parent_code'' au fichier ORGANISM</todo>
   * <todo> Tester les outils Frictionless Data et le format de données Data Package</todo> : voir [[https://frictionlessdata.io/projects/#software-and-standards| Frictionless Data]], [[https://datapackage.org/| Data Package]], [[https://www.checklistbank.org/about/formats#catalogue-of-life-data-package-coldp| Check List Bank Data formats]].   * <todo> Tester les outils Frictionless Data et le format de données Data Package</todo> : voir [[https://frictionlessdata.io/projects/#software-and-standards| Frictionless Data]], [[https://datapackage.org/| Data Package]], [[https://www.checklistbank.org/about/formats#catalogue-of-life-data-package-coldp| Check List Bank Data formats]].
   * <todo>Dans le format OccTax, renommer les champs UUID en unique_id_couting, unique_id_occurence et unique_id_survey pour que cela soit plus clair !</todo>   * <todo>Dans le format OccTax, renommer les champs UUID en unique_id_couting, unique_id_occurence et unique_id_survey pour que cela soit plus clair !</todo>
-  * <todo>Dans le format OccTax, prevoir l'ajout des champ code_nomenclature_tech_collect_campanule et sample_number_proof</code>+  * <todo>Dans le format OccTax, prevoir l'ajout des champ code_nomenclature_tech_collect_campanule et sample_number_proof</todo>
   * <todo>Trouver une solution au problème du remplacement des caractères \n, \r… qui ne fonctionne pas lors de l'import dans la base</todo>   * <todo>Trouver une solution au problème du remplacement des caractères \n, \r… qui ne fonctionne pas lors de l'import dans la base</todo>
   * <todo>Modifier le nom du champ //determiner// de la ressource //SYNTHESE// en //determiner**s**//</todo>   * <todo>Modifier le nom du champ //determiner// de la ressource //SYNTHESE// en //determiner**s**//</todo>
Ligne 157: Ligne 158:
   * <todo #jpmilcent:2024-10-23>Pour le format USER, trouver un solution pour éviter les doublons d'email et d'identifiant => se baser sur l'email => trouver une solution pour la mise à jour de l'email => ajouter un champ "new_email" + champ "email" (= ancien email) + "meta_last_action" = "U".</todo> => ajout d'index unique à la base de données.   * <todo #jpmilcent:2024-10-23>Pour le format USER, trouver un solution pour éviter les doublons d'email et d'identifiant => se baser sur l'email => trouver une solution pour la mise à jour de l'email => ajouter un champ "new_email" + champ "email" (= ancien email) + "meta_last_action" = "U".</todo> => ajout d'index unique à la base de données.
   * <todo #jpmilcent:2024-10-23>Pour le format ORGANISM, trouver une solution pour éviter les doublon inter-fournisseur => se baser sur l'UUID du [[http://standards-sinp.mnhn.fr/referentiel-des-organismes/|référentiel national SINP des organismes]].</todo>   * <todo #jpmilcent:2024-10-23>Pour le format ORGANISM, trouver une solution pour éviter les doublon inter-fournisseur => se baser sur l'UUID du [[http://standards-sinp.mnhn.fr/referentiel-des-organismes/|référentiel national SINP des organismes]].</todo>
-  * <todo #jpmilcent:2024-10-23>Pour les formats ACQUISITION_FRAMEWORK et DATASET, trouver une solution pour éviter les doublon inter-fournisseur => se baser sur le site "[[https://inpn.mnhn.fr/docs-web/docs/download/263010|Référentiel National SINP - Métadonnées]]". </todo>+  * <todo #jpmilcent:2024-10-23 #choarau:2026-01-21>Pour les formats ACQUISITION_FRAMEWORK et DATASET, trouver une solution pour éviter les doublon inter-fournisseur => se baser sur le site "[[https://inpn.mnhn.fr/docs-web/docs/download/263010|Référentiel National SINP - Métadonnées]]". </todo>
  
 ==== Évolutions ==== ==== Évolutions ====
Ligne 465: Ligne 466:
   * code_nomenclature_geo_object_nature [VARCHAR(25)] (//=t_releves_occtax.id_nomenclature_geo_object_nature//) : code alphanumérique de la valeur du type de nomenclature NAT_OBJ_GEO ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 |NatureObjetGeoValue|3|page64]]).   * code_nomenclature_geo_object_nature [VARCHAR(25)] (//=t_releves_occtax.id_nomenclature_geo_object_nature//) : code alphanumérique de la valeur du type de nomenclature NAT_OBJ_GEO ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 |NatureObjetGeoValue|3|page64]]).
   * precision [INT(4)] (//=t_releves_occtax.precision//) : estimation en mètres d’une zone tampon autour de l'objet géographique. Cette précision peut inclure la précision du moyen technique d’acquisition des coordonnées (GPS,…) et/ou du protocole naturaliste.   * precision [INT(4)] (//=t_releves_occtax.precision//) : estimation en mètres d’une zone tampon autour de l'objet géographique. Cette précision peut inclure la précision du moyen technique d’acquisition des coordonnées (GPS,…) et/ou du protocole naturaliste.
-  * **unique_id_occurence_occtax** [UUID] : <color black/#fff200>UUID de l’occurrence s'il existe déjà dans les données sources.</color>+  * additional_fields_releve [JSON] : permet d'associer des champs complémentaires et/ou si toutes les entrées ne partagent pas les même champs pour le relevé. Les valeurs de ce champ doivent être [[https://www.json.org/json-fr.html|au format JSON]] et [[https://jsonformatter.curiousconcept.com/|être valide]]. Ne pas mettre de valeur vide dans ce champ mais une valeur NULL. 
 +  * **unique_id_occurrence** [UUID] : <color black/#fff200>UUID de l’occurrence s'il existe déjà dans les données sources.</color>
   * **code_nomenclature_tech_collect_campanule** [VARCHAR(25)] (//=t_releves_occtax.id_nomenclature_tech_collect_camp//) : code alphanumérique de la valeur du type de nomenclature METH_OBS ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | ObservationTechniqueValue|14|page69]]). __Attention__ : MethodeObservation devient techniqueObservation, renommé "Technique de collecte (Campanule)(2018).    * **code_nomenclature_tech_collect_campanule** [VARCHAR(25)] (//=t_releves_occtax.id_nomenclature_tech_collect_camp//) : code alphanumérique de la valeur du type de nomenclature METH_OBS ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | ObservationTechniqueValue|14|page69]]). __Attention__ : MethodeObservation devient techniqueObservation, renommé "Technique de collecte (Campanule)(2018). 
   * **code_nomenclature_bio_condition** [VARCHAR(25)] (//=t_occurrences_occtax.id_nomenclature_bio_condition//) : code alphanumérique de la valeur du type de nomenclature ETA_BIO ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceEtatBiologiqueValue|7|page75]]).   * **code_nomenclature_bio_condition** [VARCHAR(25)] (//=t_occurrences_occtax.id_nomenclature_bio_condition//) : code alphanumérique de la valeur du type de nomenclature ETA_BIO ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceEtatBiologiqueValue|7|page75]]).
Ligne 484: Ligne 486:
   * non_digital_proof [TEXT] (//=t_occurrences_occtax.non_digital_proof//) : adresse ou nom de la personne ou de l'organisme qui permettrait de retrouver la preuve non numérique de l'observation.   * non_digital_proof [TEXT] (//=t_occurrences_occtax.non_digital_proof//) : adresse ou nom de la personne ou de l'organisme qui permettrait de retrouver la preuve non numérique de l'observation.
   * comment_description [TEXT] (//=t_occurrences_occtax.comment//) : description libre de l'observation, aussi succincte et précise que possible. Informations sur le(s) individu(s) observé(s) (=quoi).   * comment_description [TEXT] (//=t_occurrences_occtax.comment//) : description libre de l'observation, aussi succincte et précise que possible. Informations sur le(s) individu(s) observé(s) (=quoi).
-  * unique_id_sinp_occtax [UUID] : <color black/#fff200>UUID du dénombrement s'il existe déjà dans les données sources.</color>+  * additional_fields_occurence [JSON] : permet d'associer des champs complémentaires et/ou si toutes les entrées ne partagent pas les même champs pour l'occurence de taxon. Les valeurs de ce champ doivent être [[https://www.json.org/json-fr.html|au format JSON]] et [[https://jsonformatter.curiousconcept.com/|être valide]]. Ne pas mettre de valeur vide dans ce champ mais une valeur NULL. 
 +  * unique_id_counting [UUID] : <color black/#fff200>UUID du dénombrement s'il existe déjà dans les données sources.</color>
   * **code_nomenclature_life_stage** [VARCHAR(25)] (//=cor_counting_occtax.id_nomenclature_life_stage//) : code alphanumérique de la valeur du type de nomenclature STADE_VIE ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceStadeDeVieValue|10|page78]]).   * **code_nomenclature_life_stage** [VARCHAR(25)] (//=cor_counting_occtax.id_nomenclature_life_stage//) : code alphanumérique de la valeur du type de nomenclature STADE_VIE ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceStadeDeVieValue|10|page78]]).
   * **code_nomenclature_sex** [VARCHAR(25)] (//=cor_counting_occtax.id_nomenclature_sex//) : code alphanumérique de la valeur du type de nomenclature SEXE ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceSexeValue|9|page78]]).   * **code_nomenclature_sex** [VARCHAR(25)] (//=cor_counting_occtax.id_nomenclature_sex//) : code alphanumérique de la valeur du type de nomenclature SEXE ([[https://inpn.mnhn.fr/docs-web/docs/download/221989 | OccurrenceSexeValue|9|page78]]).
Ligne 491: Ligne 494:
   * count_min [INT(4)] (//=cor_counting_occtax.count_min//) : nombre minimum d'individus du taxon composant l'observation.   * count_min [INT(4)] (//=cor_counting_occtax.count_min//) : nombre minimum d'individus du taxon composant l'observation.
   * count_max [INT(4)] (//=cor_counting_occtax.count_max//) : nombre maximum d'individus du taxon composant l'observation. Mettre la même valeur que count_min si 1 seule valeur de dénombrement.   * count_max [INT(4)] (//=cor_counting_occtax.count_max//) : nombre maximum d'individus du taxon composant l'observation. Mettre la même valeur que count_min si 1 seule valeur de dénombrement.
-  * additional_data [JSON] : permet d'associer des champs complémentaires et/ou si toutes les entrées ne partagent pas les même champs. Les valeurs de ce champ doivent être [[https://www.json.org/json-fr.html|au format JSON]] et [[https://jsonformatter.curiousconcept.com/|être valide]]. Ne pas mettre de valeur vide dans ce champ mais une valeur NULL.+  * additional_fields_counting [JSON] : permet d'associer des champs complémentaires et/ou si toutes les entrées ne partagent pas les même champs pour le dénombrement. Les valeurs de ce champ doivent être [[https://www.json.org/json-fr.html|au format JSON]] et [[https://jsonformatter.curiousconcept.com/|être valide]]. Ne pas mettre de valeur vide dans ce champ mais une valeur NULL.
   * **meta_create_date** [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de création de l'enregistrement.   * **meta_create_date** [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de création de l'enregistrement.
   * meta_update_date [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de mise à jour de l'enregistrement.   * meta_update_date [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de mise à jour de l'enregistrement.
Ligne 502: Ligne 505:
     * <todo>Renommer ''unique_id_sinp_grp'' en ''unique_id_survey''</todo>      * <todo>Renommer ''unique_id_sinp_grp'' en ''unique_id_survey''</todo> 
       * Le champ ''unique_id_sinp_grp'' est utilisé par le parser pour la Synthèse également, donc si on modifie ce champ pour OccTax, il faudrait le faire pour la Synthèse également pour une modification commune dans le parser.       * Le champ ''unique_id_sinp_grp'' est utilisé par le parser pour la Synthèse également, donc si on modifie ce champ pour OccTax, il faudrait le faire pour la Synthèse également pour une modification commune dans le parser.
-    * <todo #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21>Renommer</todo> ''unique_id_occurence_occtax'' en ''unique_id_occurrence'' si c'est bien la même chose+    * <todo #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21>Renommer</todo> ''unique_id_occurence_occtax'' en ''unique_id_occurrence'' si c'est bien la même chose
     * <todo>Renommer</todo> ''unique_id_sinp_occtax'' en ''unique_id_counting''     * <todo>Renommer</todo> ''unique_id_sinp_occtax'' en ''unique_id_counting''
-  * <todo #choarau:2026-01-21>Voir si on garde ou pas le champ</todo> ''meta_device_entry'' (le garder si présent dans le standard ou important pour GN)+  * <todo #choarau:2026-01-21 #choarau:2026-01-21 #choarau:2026-01-21>Voir si on garde ou pas le champ</todo> ''meta_device_entry'' (le garder si présent dans le standard ou important pour GN) 
 +    * Le champ est présent dans ''t_releves_occtax''. Il permet de savoir si l'info a été saisie via l'application mobile ou web.
   * <todo>Le champ additional_data est utilisé pou le champ additional_fields de t_releve_occtax</todo>. Il faudrait voir si cela convient ou s'il faut en gérer d'autres pour les autres champs ''additional_fields'' des autres tables d'OccTax.   * <todo>Le champ additional_data est utilisé pou le champ additional_fields de t_releve_occtax</todo>. Il faudrait voir si cela convient ou s'il faut en gérer d'autres pour les autres champs ''additional_fields'' des autres tables d'OccTax.
   * <todo>Suite aux modifications précédentes tenir à jour les script SQL du dépôt sinp-shared-data</todo>   * <todo>Suite aux modifications précédentes tenir à jour les script SQL du dépôt sinp-shared-data</todo>
 +
 +
 +===== Format VALIDATION d'import =====
 +  * But : Permet de fournir les informations sur les validations des observations à intégrer à la table des validations de GeoNature.
 +  * Table GeoNature : ''//gn_commons.t_validations//''.
 +  * Standard : [[http://standards-sinp.mnhn.fr/occurrences-de-taxon|OccTax v2]]\\
 +  * Statut : 📍 Alpha (en cours de travail ! Non implémenté !)
 +
 +==== Description du format VALIDATION ====
 +Pour chaque ligne : ''nom_du_champ [format du champ] (=//table_geonature.nom_champ//) : description du champ.''. Les champs **en gras** sont obligatoires. Pour les nomenclatures, le nom de la mnémonique du type dans GeoNature est indiqué en italique en fin de description. La correspondance avec le nom de cette nomenclature dans le standard est indiqué entre parenthèses et un lien pointe vers le document PDF [[https://inpn.mnhn.fr/docs-web/docs/download/221989|Standards d'échanges du SINP]]. Pour les nomenclatures, la valeur à transmettre est celle présente dans la colonne "**Code**" du standard qui est équivalente au champ ''cd_nomenclature'' de la table ''ref_nomenclatures.t_nomenclatures'' de GeoNature.
 +
 +  * **unique_id_sinp** [UUID] : UUID SINP de l'observation correspondante à cette validation. Si un historique des validations doit être importé, cet UUID pourra être répété plusieurs fois.
 +  * **code_nomenclature_valid_status** [VARCHAR(25)] (=//id_nomenclature_valid_status//) : code alphanumérique de la valeur du type de nomenclature //STATUT_VALID// ([[https://inpn.mnhn.fr/docs-web/docs/download/221989|NiveauValidationValue|80|page67]]).
 +  * validator [VARCHAR(1000)] : personne ayant procédé à la validation (et organisme). Voir [[database:correspondance-champs-sinp-geonature-synthese#format_a_plat_des_infos_sur_une_personne|le détail du format à plat des infos sur une personne]].
 +  * comment [TEXT] : commentaire sur la validation.
 +  * automatic [BOOL] : indique si la validation a été obtenue par un processus automatique (''TRUE'') ou manuel (''FALSE''). Par défaut, la valeur ''TRUE'' sera utilisée.
 +  * creation_date [DATE(YYYY-MM-DD HH:MM:SS)] (=//meta_validation_date//) : date et heure de validation de l'observation.
 +  * additional_data [JSON] : permet d'associer des champs complémentaires et/ou si toutes les entrées ne partagent pas les mêmes champs. Les valeurs de ce champ doivent être [[https://www.json.org/json-fr.html|au format JSON]] et [[https://jsonformatter.curiousconcept.com/|être valide]]. Ne pas mettre de valeur vide dans ce champ mais une valeur NULL.
 +  * **meta_create_date** [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de création de l'enregistrement.
 +  * meta_update_date [DATE(YYYY-MM-DD HH:MM:SS)] : date et heure de mise à jour de l'enregistrement.
 +  * **meta_last_action** [CHAR(1)] (=//last_action//) : permet d'identifier les lignes ajoutées depuis le dernier import ("//I//"), modifiées ("//U//") ou supprimées ("//D//").
 +
  
 ===== Format META_ADDITIONAL_DATA d'import ===== ===== Format META_ADDITIONAL_DATA d'import =====
  • database/import-formats.1768998501.txt.gz
  • Dernière modification : 2026/01/21 12:28
  • de choarau