Dette dokument er en guide i anvendernes transition fra de abonnementsbaserede filudtræk over til entitetsbaserede fildownloads.
Dokumentet er opdelt i to dele:
Dokumentet er tiltænkt følgende læsere:
I dette dokument bruges begreberne i Tabel 1. Bemærk at begreberne også er yderligere forklaret i løbet af dokumentet med eksempler.
Begreb | Beskrivelse |
Nuværende Datafordeler | |
Filudtræk: | Filudtræk er en metode at få udtræk af data fra Datafordeleren. Man kan som anvender logge på selvbetjeningen og oprette et abonnement på et specifikt filudtræk – evt. med brugerdefinerede parametre, hvorefter filen bliver genereret og er tilgængelig på en FTP-server. Filudtræk er beskrevet her. |
Moderniserede Datafordeler | |
Fildownload: | Fildownloads beskrives i denne vejledning. |
Entitet: | En entitet er en fysisk repræsentation af et registerobjekt som findes i Grunddatamodellen. De total- og deltadownloads der kan hentes fra Datafordeleren, indeholder hver især data bestående af en enkelt entitet. |
Totaldownload: | Et totaldownload er et udtræk af alle data for en enkelt entitet og refererer til en enkelt fil. |
Deltadownload: | Et deltadownload er et udtræk af alle data der har ændret sig, siden forrige deltadownload blev lavet, for en enkelt entitet. Et deltadownload består af en enkelt fil. |
Totaludtræk: | Et totaludtræk er et udtræk af alle data i et register eller en delmængde af entiteter fra et register. Et totaludtræk er udgjort at en eller flere totaldownloads. Et totaludtræk kan således bestå af en eller flere filer med tilsvarende entiteter, alt afhængigt af hvor stor en delmængde af et register der er tale om. Bemærk at denne definition kun gælder for fildownloads |
Deltaudtræk: | Et deltaudtræk er et udtræk af alle data der har ændret sig, siden forrige deltaudtræk blev lavet, i et register eller en delmængde af entiteter fra et register. Et deltaudtræk er udgjort af et eller flere deltadownloads. Et deltaudtræk kan således bestå af en eller flere filer med tilsvarende entiteter, alt afhængigt af hvor stor en delmængde af et register der er tale om. |
Tabel 1: Begrebsliste.
Fildownloads er en funktionalitet på Datafordeleren til udstilling af data, men skal ikke misforstås som værende det samme som de abonnementsbaserede filudtræk, der også er på Datafordeleren. Fildownloads tilbydes som prædefinerede entitetsbaserede fildownloads og baserer sig på de datamodeller som registrene har på Datafordeleren.
En entitet svarer til en tabel i Grunddatamodellen som er defineret i registrenes datamodel: https://grunddatamodel.datafordeler.dk/. En entitet kan eksempelvis være en "Adresse" fra DAR, en "Bygning" fra BBR eller et "Jordstykke" fra MAT. Det at fildownloads er entitetsbaserede betyder at et fildownload indeholder data for en enkelt type af entitet. Der leveres entitetsbaserede fildownloads på tabulære data og ikke for rasterdata (billeddata). Tabulære data forstås som strukturerede data der kan opbevares i tabeller som f.eks. adresser men ikke billedtyper som skærmkort.
Fildownloads genereres løbende i bestemte intervaller for en række registre, hvorefter filerne kan hentes gennem et REST-API, der udstiller de genererede fildownloads. Det eneste krav til at hente fildownloads er, at man har en tjenestebruger med brugernavn og adgangskode. Fildownloads bruger ikke abonnementer, da de allerede ligger klar til at blive hentet. REST-API'et beskrives nærmere i afsnit 2.6, mens skema for generering samt frekvenser for generering beskrives nærmere i afsnit 2.5.
Figur 1: Opsummering af fildownloads-funktionaliteten.
En opsummering hvad fildownloads består af, kan ses i Figur 1. Figuren viser 3 registre:
Registrenes entiteter har alle fildownloads, som både består af totaldownloads og deltadownloads. Det skal her bemærkes at Register C har fravalgt at der bliver genereret fildownloads for deres entitet nr. 5 og 6 i dette eksempel.
Datafordeleren udstiller flere typer af entitetsbaserede fildownloads. Der findes 2 typer af fildownloads, nemlig totaldownloads og deltadownloads (se Tabel 1). Datafordeleren opbevarer ét totaldownload pr. type pr. entitet, mens der opbevares deltadownloads 14 dage fra de blev genereret.
Hvis der genereres fildownloads for en entitet, bliver der altid genereret både totaldownloads og deltadownloads. Udover at der findes flere typer af fildownloads, findes der også flere typer af filtreringer på den data som de genererede fildownloads indeholder. Dette skyldes at delmængder af data på Datafordeleren er bitemporal og at der dermed kan være flere forekomster af det samme objekt over tid i to tidsdimensioner https://confluence.sdfi.dk/display/DML/Grunddata+-+bitemporalitet.
Det er muligt at kombinere en type fildownload med en type af bitemporal filtrering og filformat. En opsummering af, hvilke fildownloads der eksisterer kan ses i Tabel 2.
Type af fildownload | Type af bitemporal filtrering | Typer af filformater |
Totaldownload | Bitemporal | JSON, GML og GPKG |
Totaldownload | Temporal | |
Totaldownload | Aktuel | |
Deltadownload | Bitemporal |
Tabel 2: Oversigt over understøttede typer af fildownloads på Datafordeleren.
Tabel 3 nedenfor viser, hvilke registre der har fildownloads på deres entiteter, samt hvilke filformater der er tilgængelige for registrenes entiteter. Et kryds i en række i tabellen indikerer at filformatet generelt er understøttet for det givne registers entiteter.
Register | JSON | GPKG | GML |
BBR | X | ||
DAR | X | ||
EBR | X | ||
MAT2 | X | X | X |
DAGI | X | X | X |
DHM Oprindelse | X | X | X |
DHM Højdekurver | X | X | X |
Danske Stednavne | X | X | X |
GeoDanmark Vektor | X | X | X |
FIKSPUNKT | X | X | X |
Tabel 3: Oversigt over understøttede filformater per register.
Det skal bemærkes det ikke er alle entiteter for et register der har fildownloads i GPKG og GML-format, selvom dette er indikeret i Tabel 3. Der skal gøre sig følgende gældende for at en entitet understøttes i GPKG eller GML-format:
Udtræksnumre er en fortløbende talrække der beskriver tidsmæssig sammenhæng mellem data i et register. Hver gang der genereres fildownloads for et register, påsættes alle fildownloads ved samme generering det samme udtræksnummer. Dette bevirker at fildownloads med det samme udtræksnummer indeholder konsistente data indenfor registerets egen data. Denne egenskab er særlig relevant hvis man som anvender er interesseret i at sammensætte data fra flere entiteter i et register.
Det er her vigtigt at understrege, at udtræksnumrene kun er fortløbende per register, og at hvert register derfor har sin egen fortløbende talrække, der er uafhængig af andre registre. Udtræksnumre kan derfor ikke garantere referentiel integritet på tværs af registrenes data, da dette afhænger af registrenes indlæsningstidspunkter, samt indlæsningsfrekvens.
Det er muligt at vedligeholde en lokal kopi af registrenes data som findes på Datafordeleren ved at hente totaludtræk – og herefter løbende hente deltaudtræk.
Kopien etableres først lokalt, ved at hente totaldownloads for den/de entiteter der er interesse for, for at skabe totaludtrækket. Idet totaludtrækket er hentet, skal det bemærkes hvilket udtræksnummer totaludtrækket har, da udtræksnummeret skal bruges til at identificere hvilke deltadownloads der er relevante at hente, for at skabe det samlede deltaudtræk der kan opdatere den initiale kopi af data. Et totaldownload og deltadownload med det samme udtræksnummer indeholder data fra samme generation. Dette betyder at deltaudtræk med samme udtræksnummer som et totaludtræk indeholder dermed ingen data som ikke også er indeholdt i totaludtrækket. Det udtræksnummer der skal bruges til at opdatere kopien af data, er dermed det næste udtræksnummer i talrækken.
Et eksempel på dette kan ses i Figur 2, som viser en række genererede deltaudtræk, samt et genereret totaludtræk. Hver generering har resulteret i, at der enten er blevet genereret et deltaudtræk og/eller et totaludtræk. Det kan ses på figuren, at der eksisterer både et totaludtræk, samt et deltaudtræk med udtræksnummeret 3 og 10. Såfremt det ønskes at etablere en kopi af data fra entiteten, kan totaludtrækket med udtræksnummeret 3 først hentes – og så herefter hente deltaudtrækkene med udtræksnummer 4, 5 og 6 for at vedligeholde datakopien. Det er således ikke nødvendigt at hente deltaudtrækket med udtræksnummer 3, da deltaudtrækket blev genereret på samme tid som totaludtrækket.
Figur 2: Overblik over hvordan udtræksnumre hænger sammen mellem total- og deltaudtræk.
Dette afsnit er særligt relevant for anvendere, der implementerer programmel, som anvender udtræksnumre til at indhente fildownloads automatisk. Der kan i sjældne tilfælde forekomme et spring i udtræksnumre. Dette skyldes, at der eksisterer et nyere udtræksnummer for det pågældende register, og at generering af fildownloads, derfor, vil bruge det nyere udtræksnummer for at sikre konsistente data inden for registeret.
Processen for indhentning af deltaudtræk bør, på baggrund af ovenstående, følge følgende logik: