Formålet med denne applikation er at automatisere dataudtræk fra Randers Kommunes indkøbssystem til udstilling i henholdsvist kommunens koncernfælles BI-system (SAP BO/KMD Insight) samt til kommunens klimamonitor (Apache Superset).
Nedenfor beskrives applikationens funktionalitet samt ansvar og arbejdsdeling i organisationen.
Nedenstående diagram giver et overblik over applikations placering i systemlandskabet. Selve applikationen hostes på Randers Kommunes Kubernetes-platform.
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#3c3c3c',
'primaryTextColor': '#fff',
'primaryBorderColor': '#3c3c3c',
'lineColor': '#F8B229',
'secondaryColor': '#616161',
'tertiaryColor': '#616161',
'tertiaryTextColor': '#fff'
}
}
}%%
%% Upload af data %%
flowchart LR
subgraph SG1["Indkøbssystem"]
UI["Filtrerede
dataudtræk"]
FTP[("SFTP-server")]
end
subgraph SG2["Randers Kommune"]
subgraph tom [ ]
style tom stroke-dasharray: 0 1
subgraph app["Denne applikation"]
NodeRED["Extract, transform
og load via
Node-RED"]
end
CD["BI/SAP BO via custom
data connectoren"]
Klima["Randers Kommunes
Klimamonitor"]
evt["Evt. andre use cases"]
end
end
UI-->FTP
FTP-->NodeRED
NodeRED-->CD
NodeRED-->Klima
NodeRED-->evt
Extract sker i to trin:
-
Automatiske dataudtræk opsættes i selve indkøbssystemet og filerne placeres på en SFTP-server hosted af leverandøren af indkøbssystemet.
Det vurderes ikke hensigtsmæssigt at udtrække alle data, dels da datakvaliteten svinger inden for forskellige kategorier af varer og tjenesteydelser og dels, da datamængden er omfattende.
-
Applikationen henter filerne fra SFTP-serveren.
Det skal afdækkes for hyppigt der skal kontrolleres for nye data på SFTP-serveren. Leverandøren overfører data ugentligt søndag morgen kl. 8.
I det omfang der er behov, transformeres data i applikationen inden de afleveres videre.
Nedenfor beskrives de forskellige load-scenarier. I alle tilfælde anvendes full load kun begrænset af de opsatte dataudtræk i indkøbssystemet, da indkøbssystemet betragtes som det autoritative register.
Til Randers Kommunes koncernfælles BI-løsning (SAP BO/KMD Insight) indlæses data via custom data connectoren. Denne connector tager sig af den nødvendige transformation, så data matcher den prædefinerede syntaks, der anvendes i KMD Insight Custom Data-løsningen.
I første omgang skal der indlæses data vedr. e-handel, men listen af datasæt forventes løbende at vokse. Applikationen kan med fordel udvikles, så det er let at tilføje flere datasæt.
Til brug i Randers Kommunes Klimamonitor skal data indlæses ind i den tilhørende MariaDB-database ligeledes hosted på Kubernetes-platformen. Der skal anvendes det format, der allerede anvendes i projektet.
I første omgang drejer det sig om brændstofdata. Det forventes, at det over tid bliver muligt at trække flere relevante data. Eksempelvis i takt med dokumentation af forskellige mærkningsordninger forbedres.
I forbindelse med andre use cases må det forventes, at der skal udvikles andre arbejdsgange. Eventuelt både transform og load.
Specificerer udtræk i indkøbssystemet og udvikler visualiseringer i front end (SAP BO/Superset).
Udvikler og drifter applikationen. I første omgang er det ligeledes IT og Digitaliserings opgave løbende at tilføje af nye dataudtræk. Over tid kan denne opgave dog flyttes til Økonomiafdelingen/Indkøb.
Antagelser for data på leverandøren af indkøbssystemet's SFTP-server:
- Alt data er i zip filer
- Alle zip filer indehoder præcis to filer; én csv fil og én tekst fil
Alle datasæt skal have 3 bestemete værdier: keyword, route og prefix. Datasæt med en ukendt rute ignoreres og hvis keyword ikke matcher nogen filer på SFTP serveren ignoreres det også. Det antages at keyword er unikke (kan ikke matche to datatyper). Der kan tilføjes nye datasæt i settings.py under "Types".
Ruter er defineret i settings.py
Det antages at all datasæt med samme keyword er formateret ens; samme kolonner af samme type.
Datasæt med samme keyword samles i én tabel og får tilføjtet kolonnen 'opdateret'.
Tabel- og kolonnenavne ændres såldeas at æ,ø,å bliver til ae,oe,aa og mellemrum bliver til underscore.
Tabelnavnet får også tilføjet prefix, så navnet bliver i denne form: <prefix>_<keyword>
Det antages at all datasæt med samme keyword er formateret ens; samme kolonner af samme type. Det antages også at kolonner der er tomme i første række er tekst kolonner.
Kilde navnet i SAP BI bliver zipfil navnet (hvor mellemrum bliver til underscore) med prefix tilføjet, i denne form: <prefix><zipfil navn>.csv