# 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