Palvelut · Miten saamme tietopohjan, johon voi luottaa?
Kun samasta asiasta saa kaksi eri lukua, vika on menetelmässä.
Data as Software on menetelmä, jossa tietotuotanto tehdään kuten ohjelmisto. Muunnokset ovat versionhallinnassa, jokainen muutos testataan automaattisesti, ja julkaisu on hallittu. Testit ja laatusäännöt ajetaan joka kerta, ennen kuin luku päätyy raporttiin.
Viisi kysymystä, joista tilanteen tunnistaa
Kysykää nämä omalta tiimiltänne:
- Kuinka paljon työtä vaatii uuden lähteen, mallin tai sarakkeen lisääminen?
- Missä tietty malli on, kuka sen teki ja milloin?
- Miten se on rakennettu, ja voiko sitä muuttaa?
- Kauanko muutos kestää?
- Onko muutos testattu? Mistä tiedämme, ettei se riko mitään ja että data on oikein?
Jos vastaus on hidas, epävarma tai ”pitää kysyä siltä, joka sen teki”, tietotuotanto on yksittäisten ihmisten varassa.
Mitä menetelmään kuuluu
Tietotuotanto siirretään ohjelmistokehityksen menetelmiin. Logiikka kirjoitetaan pieniksi funktioiksi, jotka voi testata. Kaikki koodi on versionhallinnassa, ja muutokset katselmoidaan. Testaus ja julkaisu kulkevat automaattisesti kolmen ympäristön läpi: kehitys, testi ja tuotanto. Datakontraktit kertovat, mitä kukin tietorakenne tarkoittaa, kuka sen omistaa ja mitä laatusääntöjä siihen sovelletaan.
Kerrokset
Bronze, Silver ja Gold eivät yksin riitä. Tyypillisesti jaamme Silver-kerroksen kolmeen osaan: lähteet (S1), käsitteet (S2) ja toimialueet (S3). Käsite, kuten potilas, käynti tai diagnoosi, määritellään yhdessä paikassa. Kun määritelmä muuttuu, muutos tehdään kerran, ja se etenee kaikkiin tietotuotteisiin.
Välineet
Python, PySpark ja Git. Muilta osin käytämme vakiintuneita ja kypsiä avoimen lähdekoodin projekteja. Välineet valitaan teidän ympäristönne mukaan. Koodi kirjoitetaan niin, että sen voi ajaa omassa ympäristössä, yksityisessä pilvessä ja julkisessa pilvessä.
| Osa | Mitä se tarkoittaa |
|---|---|
| Versionhallinta | Kaikki muunnoslogiikka on Gitissä. Jokainen muutos katselmoidaan ennen yhdistämistä (pull request), ja sen voi jäljittää ja perua. |
| Neljä testitasoa | Yksikkötestit, integraatiotestit, datakontraktien validointi ja hyväksymistestit. |
| Automaattinen testaus ja julkaisu (CI/CD) | Jokainen muutos tarkistetaan automaattisesti: koodityyli, testit, datakontraktit ja mallien eheys. |
| Datakontraktit | Tuottajan ja käyttäjän välinen sopimus rakenteesta ja merkityksestä. Kontrakti kulkee koodin mukana kehityksestä tuotantoon. |
| Laadunvarmistus | Laatusäännöt ajetaan putkessa joka kerta. Säännön rikkova data pysäytetään tai ohjataan sivuun, ennen kuin se ehtii raportteihin. |
| Omistajuus | Jokaisella tietotuotteella on nimetty omistaja, joka vastaa muutoksista ja elinkaaresta. |
| Dokumentaatio | Tietomallit, päätökset ja rajaukset kirjoitetaan samaan aikaan kuin koodi. |
| Jäljitettävyys | Versiohistoria ja testitulokset näyttävät, mitä muutettiin, milloin ja kenen hyväksymänä. |
Mitä Data as Software ei ole
Se ei ole pelkkä versionhallinta SQL:lle, työkaluvalinta tai automaattinen julkaisu ilman omistajuutta. Se ei myöskään ratkaise tietosuojaa ja sääntelyä automaattisesti, eikä se korvaa toimialan ymmärrystä ja arkkitehtuuria.
Miksi tämä painaa säännellyssä ympäristössä
Säännellyssä ympäristössä pitää pystyä osoittamaan, miten tieto on muodostunut, kuka muutokset on tehnyt ja millä logiikalla. Henkilötietojen käsittelyssä sitä edellyttää GDPR:n osoitusvelvollisuus. Jos ohjelmisto on lääkinnällinen laite, jäljitettävyyttä vaatii myös laitesääntely (MDR ja IVDR). EU:n tekoälyasetuksen suuririskisiä järjestelmiä koskevat vaatimukset alkavat soveltua 2.12.2027. Kun tietotuotanto on koodia versionhallinnassa, vastaus löytyy sieltä.
Näyttö: Länsi-Uudenmaan hyvinvointialue
Länsi-Uudenmaan hyvinvointialue siirsi tietotuotantonsa tähän menetelmään. Muutoksia oli neljä: SQL:stä PySparkiin ja Pythoniin, pitkistä putkista pieniin muunnosfunktioihin, automaattinen testaus ja julkaisu sekä datakontraktit. Sen jälkeen uusia toiminnallisuuksia tuotiin tuotantoon viikoittain.
Tekoäly rakentuu tämän päälle
Sama rakenne on tekoälyn edellytys. Kun data määritellään koodissa ja sen merkitys selitetään datakontrakteissa, kielimalli saa yksiselitteisen kuvauksen siitä, mitä kukin tietorakenne tarkoittaa.
Näin tämä ostetaan
Projektina tai jatkuvana allokaationa. Tiimimme työskentelee omien datainsinöörienne kanssa, ja dokumentaatio ja työnkulut kirjoitetaan yhdessä. Siksi menetelmä jää teille.