---
# System prepended metadata

title: Suppression data et paradata

---

# Offre extraction/suppression/transfert des données data et paradata

Le spectre des données existantes dans le systeme questionnaire :
(data ou paradata) * (questionnaire partiel ou questionnaire validé (issu de state-data))

## EXTRACTION

- Différentiel : 
    - chaque jour on extraie les données data + paradata des  validées => performance pénalisée par l'extraction des paradonnées
- Complete : 
    - choix d'option pour extraire en une fois pour une campagne les données parmi les combinsaions (data ou paradata) * (partiel ou validé) ==> hyper long si récupération des paradonnées

## SUPPRESSION
- Suppression d'une campagne 
    - via endpoint /DELETE campaign. Supprime les data + pardata pour l'ensemble des ue de la campagne ==> :boom: 

## TRANSFERT
- Flux data + paradata vers traiter à mettre en place.


## Principe
- Le batch EXTRACTDATA crée dans out\deleteData\toDelete des fichiers data.CAMPAIGN.date.txt (liste d'idue) et paradata.CAMPAIGN.date.txt (liste d'id paradata ?) contenant les identifiants des UE extraites validées ==> si ajout de la colonne idue dans paradata on peut se contenter d'un fichier ?

- Un nouveau batch DELETEDATA parcourt le répertoire out\deleteData\toDelete. Les fichiers dont la date a dépassé les 3 jours (délai raisonnable?) sont traités et les data et paradata sont effacées en base. Les fichiers traités sont déplacés dans out\deleteData\deleted

## Modifications

### Ajout d'une colonne survey_unit_id dans la table paradata_event

```sql
ALTER TABLE public.paradata_event ADD survey_unit_id varchar NULL;

update public.paradata_event set survey_unit_id=value#>'{events}'->0->>'idSurveyUnit';

delete from public.paradata_event where survey_unit_id is NULL;
```

Quid des paradata ={} ?

### Modifs des applis

- [ ] Ajout de la colonne id + modif du endpoint POST /paradata + suppression des paradata via idSU dans Queen back-office branch delete_data: 3.5.43 -> 3.6.0 
    - [ ] changer le nom du champ de la table pour être cohérent avec les id ue ailleurs dans l'appli (survey_unit_id)
- [ ] Queen-batch branch update_paradata: 4.1.13 -> 4.2.0
    
- [ ] intègre la nouvelle version de queenbatch + modif EXTRACTDATA + ajout DELETEEXTRACTEDDATA platine-batch branch delete_data: 1.1.11 -> 1.2.0

- [ ] pearl-batch: RAS? changer le numéro de version de queen batch?


## :boom: Passer en prod Platine :boom:
- Quel plan pour un rollback ?
- backup de la db 
- déploiement queen-bo et maj automatique du schéma (ajout d'une colonne)
- maj bdd avec valorisation de la colonne IdSU
- bdd suppression des paradonnées vides ou sans idSU
- Créer une version queenbatch
- Déployer platine-batch et crééer le job DELETEEXTRACTEDDATA

## BILAN
- 1 Après extraction complete, nettoyer avec un script sql la base de données Platine pour retirer les paradata de logement. Cela permettra de supprimer correctement la campagne S1
- 2 développe/recette et déploie les batchs EXTRACTDATA ET DELETEEXTRACTEDDATA sans modification de la structure de la bdd => cela permet de controller le volume de paradonnées créées lors de la S2 et envisager une suppression par endpoint qui fonctionne
- 3 Ajout de la colonne idSU et adaptation des batchs