Målet med denne tasken er å splitte opp innlastningen av data fra kompetansekartleggingen i 2, for å skille ut personspesifikke svar i vårt nye level-4 fra Steg 1: knowit/Dataplattform#508
I dag henter vi alle individuelle svar, som json dump i /raw og strukturert som parquet filer i structured, med fullt navn og annet personalia fra komperansekartleggingen og legger disse under access_level /level-3. access_level spesifiseres i serverless.yml som vist under:
For GDPR hensyn så lagres disse dataene kun i en uke, s.a vi ikke lagrer data om folk som har sluttet ved en feil.
En foreslått løsning er som følger:
Aggregerte data, ev. anonymiserte data kan legges på level-3 og kan være historiske tabeller hvor man appender på nye data hver uke.
Personspesifikke svar kan legges på level-4, og i første omgang kan det følge samme mønster som før, at vi kun lagrer svarene fra kompetansekartleggingen i en uke, og så overskriver.
Følgende er forslag til refaktorering som kan gjøres stegvis, og hvor vi gjerne bør tilstrebe push helt til master (prod) mellom hver gang.
[ ] Utvid ingest og process decorator til å kunne bruke to ulike access-levels i konfigureringen. Endringen bør være bakoverkompatibel så vi slipper å endre alle serverless filene til de andre tjeneste. Eksempelvis kan det være optional å ha en ny access_level.
[ ] Endre ingestor-decoratoren først. Endre ingest-decoratoren slik at den kan lagre en anonymisert json fil i level-3 og den originale json filen i level-4. Bruk gjerne TDD og enhetstester for å sjekke at det fungerer som det skal.
[ ] Endre ingestor-decoratoren å sende begge filnavnene på sqs-køen, poster level-3 filnavn, poster level-4 filnavn. Vurder kompeksiteten av denne løsningen.
[ ] Endre process-decoratoren til å kunne bruke to ulike access-levels og endre kompetansekartlegging ingestoren til å bruke det nye access-nivået, kjøre ingestoren og sjekk at data på det gamle formatet er tilgjengelig i level-4.
(WIP) Alle ingestorer i Dataplattform følger dette pattern: https://github.com/knowit/Dataplattform-issues/wiki/Dataplattform%3A-Tjenester-og-sammenhenger Hvor det er skrevet decorator-klasser for å ta seg av de meste som er felles, altså skriving til fil og legging på sqs kø osv. Disse to decoratorene er ingest.py og process.py fra følgende mappe:
https://github.com/knowit/Dataplattform/tree/develop/packages/common/dataplattform/common/handlers
Målet med denne tasken er å splitte opp innlastningen av data fra kompetansekartleggingen i 2, for å skille ut personspesifikke svar i vårt nye level-4 fra Steg 1: knowit/Dataplattform#508
I dag henter vi alle individuelle svar, som json dump i
/raw
og strukturert som parquet filer istructured
, med fullt navn og annet personalia fra komperansekartleggingen og legger disse under access_level /level-3. access_level spesifiseres i serverless.yml som vist under: For GDPR hensyn så lagres disse dataene kun i en uke, s.a vi ikke lagrer data om folk som har sluttet ved en feil.En foreslått løsning er som følger:
Notater: Access-level settes her: https://github.com/knowit/Dataplattform/blob/develop/services/ingestion/kompetanseKartlegging/serverless.yml under følgende kodeblokk.
Det må nok også gjøres endringer i denne blokken i samme fil.
Følgende er forslag til refaktorering som kan gjøres stegvis, og hvor vi gjerne bør tilstrebe push helt til master (prod) mellom hver gang.
Notater: Access-level settes her: https://github.com/knowit/Dataplattform/blob/develop/services/ingestion/kompetanseKartlegging/serverless.yml under følgende kodeblokk.
Det må nok også gjøres endringer i denne blokken i samme fil.