Page History
Dette program kan anvendes til at generere data, der indsættes i databasen for servicen. Genereret data indeholder tilfældige værdier, men i størrelser og mængder der svarer til realistiske data.
Booleans udfyldes tilfældigt med true eller false. Strings udfyldes som udgangspunkt med 20 tilfældige tegn, medmindre længden af database-kolonnen er mindre. Datetimes udfyldes med en tilfældig værdi inden for et specificeret interval.
Længere nede beskrives hvordan mængden af data konfigureres.
Byggevejledning
Programmet er lavet som et yderligere Maven-modul kaldet “skr-test-data-creator” i det overordnede projekt for servicen. Det bygges derved som en del af hele servicen (tests kan springes over) vha.:
...
Det resulterende artefakt er en jar-fil, som har andre af projektets moduler som dependencies, og derfor skal hele projektet bygges.
Kør programmet
Når projektet er bygget kan programmet afvikles som en almindelig jar-fil vha.:
...
| Code Block | ||
|---|---|---|
| ||
data-creator-properties: person-file-name: "person-file.txt" |
Logs
Når programmet køres skrives der roterende logfiler i mappen “./logs/”. Derudover logges status for afviklingen i både console og i logfiler. Programmets konfiguration (datasource undtaget) logges ved opstart.
Konfiguration af datamængder
Typer
For hvert suppleret personnummer oprettes én række i databasen for hver datatype.
Programmet har følgende datatyper: contact-information, health-provider, language, relative, temp-address
For hver række der oprettes for de ovennævnte datatyper oprettes automatisk også en tilhørende række i PersonalDataCards- og ServiceActors-tabellerne, hvor førstenævnte tabel indeholder data om versionen af data, og den anden tabel indeholder data om personen der udførte handlingen.
Datoer
For hver datatype kan der konfigureres et datointerval for oprettelsen af dataen. Dvs. at der genereres et tilfældigt tidspunkt indenfor intervallet for hver række af data der oprettes, og dette tidspunkt anvendes som rækkens validFrom og modifiedDateTime. Formålet er at kunne simulere data oprettet over eksempelvis en årrække.
Opdateringer
For hver datatype kan der konfigureres en sandsynlighed for at en række er blevet opdateret (dvs. at der er oprettet en ny række og den gamle er markeret forældet). Denne sandsynlighed anvendes også som faktor for om rækken er blevet opdateret 2. gang og 3. gang osv. Eksempelvis hvis sandsynligheden er konfigureret til 10 15 procent, så vil der være 10 15 procent chance for at der oprettes endnu en række (med opdaterede værdier) for en række. Dernæst vil der være 10 15 procent chance for at der igen oprettes endnu en række (med opdaterede værdier) for den opdaterede række osv.
Hver opdatering resulterer i én yderligere række i databasen.
Sletninger
For hver datatype kan der konfigureres en sandsynlighed for at en række er blevet slettet (dvs. markeret med validTo før “nu”).
| Info |
|---|
| En fejl i programmet (opdaget efter at den aktuelle release er bygget) gør, at det ikke er den nyeste række for en datatype der slettes, og derfor bør denne konfigureres til 0 procent sandsynlighed. |
“Slettede” rækker er identiske med ikke-aktuelle opdaterede rækker (dvs. validTo < “nu”), og derfor er et acceptabelt workaround blot at slå “sletning” af rækker fra, ved at konfigurere sandsynligheden til 0 procent.
Forslag til konfiguration
Følgende er et forslag til konfiguration af datamængder.
| Code Block | ||
|---|---|---|
| ||
data-creator-properties:
contact-information:
data-time-interval-start: "2017-06-01T00:00:00Z"
data-time-interval-end: "2019-06-01T00:00:00Z"
chance-of-updates: 1015
chance-of-deletes: 0
health-provider:
data-time-interval-start: "2017-06-01T00:00:00Z"
data-time-interval-end: "2019-06-01T00:00:00Z"
chance-of-updates: 10
chance-of-deletes: 015
language:
data-time-interval-start: "2017-06-01T00:00:00Z"
data-time-interval-end: "2019-06-01T00:00:00Z"
chance-of-updates: 1015
chance-of-deletes: 0
relative:
data-time-interval-start: "2017-06-01T00:00:00Z"
data-time-interval-end: "2019-06-01T00:00:00Z"
chance-of-updates: 10
chance-of-deletes: 015
temp-address:
data-time-interval-start: "2017-06-01T00:00:00Z"
data-time-interval-end: "2019-06-01T00:00:00Z"
chance-of-updates: 10
chance-of-deletes: 0
15
|
Eksempel på log output
Følgende er et eksempel på log output ved succesfuld kørsel af programmet.
| Code Block |
|---|
2019-07-01T1301T14:1842:5948,886989 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.Runner [] - Data creator says Hello World, and begins! 2019-07-01T1301T14:1842:5948,887989 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.Runner [] - DataCreatorProperties{personFileName='person-file.txt', contactInformation=DataCreationProperties{dataTimeIntervalStart=2017-06-01T00:00:00Z, dataTimeIntervalEnd=2019-06-01T00:00:00Z, chanceOfUpdates=10, chanceOfDeletes=015}, healthProvider=DataCreationProperties{dataTimeIntervalStart=2017-06-01T00:00:00Z, dataTimeIntervalEnd=2019-06-01T00:00:00Z, chanceOfUpdates=10, chanceOfDeletes=015}, language=DataCreationProperties{dataTimeIntervalStart=2017-06-01T00:00:00Z, dataTimeIntervalEnd=2019-06-01T00:00:00Z, chanceOfUpdates=10, chanceOfDeletes=015}, relative=DataCreationProperties{dataTimeIntervalStart=2017-06-01T00:00:00Z, dataTimeIntervalEnd=2019-06-01T00:00:00Z, chanceOfUpdates=10, chanceOfDeletes=015}, tempAddress=DataCreationProperties{dataTimeIntervalStart=2017-06-01T00:00:00Z, dataTimeIntervalEnd=2019-06-01T00:00:00Z, chanceOfUpdates=10, chanceOfDeletes=015}} 2019-07-01T1301T14:1942:0352,281785 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.ContactInformationDataCreator [] - Number of first records: 500 2019-07-01T1301T14:1942:0352,282785 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.ContactInformationDataCreator [] - Number of update records: 5779 2019-07-01T1301T14:1942:03,284 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.ContactInformationDataCreator [] - Number of records marked as deleted: 0 2019-07-01T13:19:03,28552,788 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.ContactInformationDataCreator [] - Total records: 557579 2019-07-01T1301T14:1942:0656,464370 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.HealthProviderDataCreator [] - Number of first records: 500 2019-07-01T1301T14:1942:0656,464371 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.HealthProviderDataCreator [] - Number of update records: 4666 2019-07-01T1301T14:1942:0656,467374 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.HealthProviderDataCreator [] - Number of records marked as deleted: 0 2019-07-01T13:19:06,474 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.HealthProviderDataCreator [] - Total records: 546566 2019-07-01T1301T14:1943:0900,436413 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.LanguageDataCreator [] - Number of first records: 500 2019-07-01T1301T14:1943:0900,436413 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.LanguageDataCreator [] - Number of update records: 42102 2019-07-01T1301T14:1943:0900,439417 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.LanguageDataCreator [] - Number of records marked as deleted: 0 2019-07-01T13:19:09,439 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.LanguageDataCreator [] - Total records: 542602 2019-07-01T1301T14:1943:1303,115984 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.RelativeDataCreator [] - Number of first records: 500 2019-07-01T1301T14:1943:1303,115985 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.RelativeDataCreator [] - Number of update records: 5576 2019-07-01T1301T14:1943:1303,118987 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.RelativeDataCreator [] - Number ofTotal records marked as deleted: 0576 2019-07-01T1301T14:19:13,125 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.RelativeDataCreator [] - Total records: 555 2019-07-01T13:19:16,21943:07,396 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.TempAddressDataCreator [] - Number of first records: 500 2019-07-01T1301T14:1943:1607,220397 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.TempAddressDataCreator [] - Number of update records: 4776 2019-07-01T13:19:16,222 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.TempAddressDataCreator [] - Number of records marked as deleted: 0 2019-07-01T13:19:16,23001T14:43:07,399 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.business.TempAddressDataCreator [] - Total records: 547576 2019-07-01T1301T14:1943:1607,233400 [main] INFO dk.sundhedsdatastyrelsen.stamkortregister.datacreator.Runner [] - Data creator says goodbye! |