Vipunen on julkaissut API:n, jonka kautta saa haettua korkeakoulujen tietoja. Haettavan tietojoukon sisältöön kuuluu mm. lukumäärät vuosittain 55 op suorittaneista opiskelijoista oppilaitoksittain, yliopistojen taseet ja tuloslaskelmat, julkaisujen määrät ja ylioppilastutkintojen arvosanat lukioittain. Täysi kuvaus palvelusta on Vipusen sivuilla.
Tässä repossa on koodinpätkiä, joilla voi luoda itselleen AWS:ään tietokantapalvelimen instanssin käyttäen Terraformia, ja sen jälkeen Vipusen kautta saatavan datan voi hakea luodulle tietokantainstanssille Python-koodilla.
HUOM. Terraform-konfiguraatio perustaa pilveen resursseja, jotka maksavat rahaa. Käytä omalla vastuullasi.
Kaikki saatavilla olevat tietojoukot löytyvät Vipusen sivuilta. Esimerkiksi haettaessa Windowsin komentorivin avulla:
$ curl http://api.vipunen.fi/api/resources/avoin_yliopisto/data?filter=tilastovuosi==2018
Tuloksena palautuu JSON-dumppina avoimessa asyliopistossa opiskelleiden määrät vuosittain ja yliopistoittain.
Datan siirron kuvaus on jokseenkin kuvan mukainen:
- Data haetaan Python-koodilla Vipusesta.
- Data konvertoidaan JSON:sta pandas dataframeksi, ja siirretään SQL Alchemyllä tietokantaan.
- Data visualisoidaan visualisointiohjelmistolla, esimerkiksi Tableau Publicilla.
- Pilveen perustettavaa tietokantapalvelinta varten tarvitaan AWS-tili ja sinne IAM-tunnus riittävillä oikeuksilla.
- Muussa tapauksessa tietokantapalvelimen ja siellä olevan tietokannan yhteysasetukset.
- Python 3 -asennus
- Terraform.exe
- Python-riippuvuudet:
- requests
- json
- pandas
- sqlalchemy
Tarvittavat paketit asentuvat pip:llä:
$ sudo pip3 install pandas sqlalchemy
-
Aseta main.tf-tiedostoon omat IAM-tunnuksesi tiedot sekä tietokantapalvelimen tiedot (ainakin palvelimen nimi, admin-tunnus ja sen salasana).
-
Lataa terraform.exe ja aseta sen sijainti pathiin, tai siirrä se koodikansioon. Suorita:
$ terraform init $ terraform plan $ terraform apply
Suorituksen jälkeen ruudulle tulostuu tietokantapalvelimen yhteysasetukset.
Todennäköisesti joudut muuttamaan instanssin turvallisuusasetuksia AWS:ssä, jotta saat yhteyden instanssiin. Lisäksi joudut luomaan palvelimelle tietokannan, jotta pääset populoimaan tauluja.
- Tämän jälkeen voit suorittaa Python-koodin. Aseta tähän Terraformista/AWS:stä haetut tietokantainstanssin yhteysasetukset.
-
Suorita Python-koodi. Ohjelma hakee Vipusesta yhden tietojoukon kerrallaan, luo tietokantapalvelimelle luotuun tietokantaan taulun, ja populoi sen. Toim. huom. kaikkien tietojen siirtämisessä SQL Server Express Editionilla pyörivään kantaan kesti itsellä 5-7 päivää.
$ python api.py
-
Tutki dataa. Tietojoukoilla on avaimet, ja kunkin taulun tiedot saa käsiteltyä joko sellaisenaan, yhdistettynä muihin tauluihin, ja visualisoitua melko järkevästi.
Esimerkki '55 op suorittaneet'-tietojoukon visualisoinnista löytyy allekirjoittaneen Tableau Public-tililtä.