Loading…
Tilbage

Nem replikering af DAWA’s data


For nogle it-systemer er det mere fordelagtigt at tilgå DAWA's data direkte fremfor via et API. DAWA udstiller derfor et replikerings API, som gør det muligt at etablere en lokal, opdateret kopi af DAWA's data. Til trods for at replikering API’et er rimeligt enkelt, kræver det dog en udviklingsindsats – ikke stor, men en indsats - at udvikle det software, der skal til for at etablere og vedligeholde en opdateret kopi af DAWA’s data. For at spare dig for denne udviklingsindsats, har vi udviklet en replikeringsklient, som gør det enkelt at etablere og vedligeholde en kopi af DAWA's data i en PostGres database. Det kræver blot udførelsen af følgende få trin:

Trin 1. Installer PostgreSQL

Hvis du ikke allerede har en installeret PostgreSQL, så installer en PostgreSQL-database med PostGis udvidelsen. Find databasen https://www.postgresql.org/download/ og udvidelsen på https://postgis.net/install/.

Trin 2. Installer Node.js

Replikeringsklienten er ligesom DAWA udviklet i Node.js og forudsætter derfor, at Node.js er installeret. Hent Node.js fra https://nodejs.org/en/.

Trin 3. Installer replikeringsklienten

For at kunne anvende replikeringsklienten skal den installers. Det gøres med følgende kommando:

npm install -g @dawadk/replication-client

Trin 4. Konfigurer replikeringsklienten

Til at angive hvilke data, der ønskes replikeret, konfigureres replikeringsklienten. Det sker i en konfigfil, som beskriver hvilke entiteter og attributer fra replikerings API’ets datamodel, som du ønsker replikeret. Du kan anvende replikeringsklienten til at danne konfigfilen.

Hvis du ønsker alle replikerings API’ets data, anvender du:

dawa-replication-client gen-config --file konfig.json

Hvis du kun ønsker DAWA's centrale adressedata replikeret, anvender du:

dawa-replication-client gen-config --entities dar_adresse_aktuel,dar_adressepunkt_aktuel,dar_husnummer_aktuel,dar_navngivenvej_aktuel,dar_postnummer_aktuel,dar_supplerendebynavn_aktuel --file adressedatakonfig.json

Hvis du kun ønsker en lokal kopi af DAWA's jordstykkedata, anvender du:

dawa-replication-client gen-config --entities jordstykke --file jordstykkekonfig.json

Du kan manuelt justere de generede konfigfiler. F.eks. fjerne attributter du ikke ønsker eller ændre de ønskede tabelnavne.

Trin 5. Dan databaseskemaer

For at etablere tabeller i databasen til at indeholde de ønskede data, skal tabellerne beskrives i databaseskemaer. Replikeringsklienten kan anvendes til at generere databaseskemaer for de ønskede entiteter. Det sker på basis af konfigurationsfilen. Lad os se på hvordan det gøres for de tre eksempler ovenfor.

Alle replikerings API’ets data:

dawa-replication-client gen-schema --replication-config konfig.json --file skemaer.sql

De centrale adressedata:

dawa-replication-client gen-schema --replication-config adressedatakonfig.json --file adressedataskemaer.sql

Jordstykker:

dawa-replication-client gen-schema --replication-config jordstykkekonfig.json --file jordstykkeskemaer.sql

Når skemaet er dannet kan det bruges til at etablere de aktuelle tabeller I databasen. Hvis databasen hedder Jordstykker og brugeren postgres, kan det gøres på følgende måde:

psql -d Jordstykker -U postgres -W -f jordstykkeskemaer.sql

Hvis de ønskede skemaer indeholder geometrier skal PostGis udvidelsen aktiveres for databasen:

CREATE EXTENSION postgis

Hvis replikeringsklienten anvendes i Windows, skal det markeres at tegnsættet er UTF-8:

SET PGCLIENTENCODING=utf-8

Trin 6. Repliker data

Nu er det forberedende arbejde færdigt, og vi er klar til at foretage selve replikeringen. Det sker med kommandoen:

dawa-replication-client replicate --database= --replication-config

I forbindelse med jordstykke eksemplet bliver den konkrete kommando til min testdatabase:

dawa-replication-client replicate --database=postgresql://postgres:password@localhost:5432/Jordstykker --replication-config jordstykkekonfig.json

Når denne kommando er udført er de ønskede jordstykkedata overført til databasen.

Hvis du ønsker at opdatere jordstykkedata i din database med de ændringer, der er foretaget siden sidste replikering, udfører du blot replikeringskommandoen en gang til:

dawa-replication-client replicate --database=postgresql://postgres:password@localhost:5432/Jordstykker --replication-config jordstykkekonfig.json

Du kan finde dokumentationen til replikeringsklienten på https://dawa.aws.dk/dok/guide/replikeringsklient