Skip to content

Vipunen API -lukija + RDS-instanssin pystytys AWS:ään

Notifications You must be signed in to change notification settings

avecci/Vipunen-lukija

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vipunen API lukija

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.

Tietojoukon kuvaus ja dataflow

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. Vipunen API avoin yliopisto 2018

Datan siirron kuvaus on jokseenkin kuvan mukainen: Data dataflow'n karkea kuvaus

  1. Data haetaan Python-koodilla Vipusesta.
  2. Data konvertoidaan JSON:sta pandas dataframeksi, ja siirretään SQL Alchemyllä tietokantaan.
  3. Data visualisoidaan visualisointiohjelmistolla, esimerkiksi Tableau Publicilla.

Käyttö

Esivaatimukset

  • 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

Esimerkki konfiguraatiosta

  1. Aseta main.tf-tiedostoon omat IAM-tunnuksesi tiedot sekä tietokantapalvelimen tiedot (ainakin palvelimen nimi, admin-tunnus ja sen salasana).

  2. 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. Vipunen API avoin yliopisto 2018

Todennäköisesti joudut muuttamaan instanssin turvallisuusasetuksia AWS:ssä, jotta saat yhteyden instanssiin. Lisäksi joudut luomaan palvelimelle tietokannan, jotta pääset populoimaan tauluja.

  1. Tämän jälkeen voit suorittaa Python-koodin. Aseta tähän Terraformista/AWS:stä haetut tietokantainstanssin yhteysasetukset.

api.py-parametrit

  1. 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

  2. Tutki dataa. Tietojoukoilla on avaimet, ja kunkin taulun tiedot saa käsiteltyä joko sellaisenaan, yhdistettynä muihin tauluihin, ja visualisoitua melko järkevästi.

Tietokantakysely

Datan visualisointia

Esimerkki '55 op suorittaneet'-tietojoukon visualisoinnista löytyy allekirjoittaneen Tableau Public-tililtä. Esimerkki visualisoinnista

Linkkejä

About

Vipunen API -lukija + RDS-instanssin pystytys AWS:ään

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published