Tuskaa, metallia ja Power BI:tä

Tuskaa, metallia ja Power BI:tä

Mulla on sillä tavalla synkkä tausta, että suvussa ja lähipiirissä on useampia nykyisiä tai aiempia metallimuusikoita tai muuten vain genreä diggaavia wannabe-hahmoja. Tässä viitekehyksessä ja tottakai myös siitäkin syystä, että Tuska on monessakin mielessä Suomen siistein festari, itsekin uteliaisuuttani vierailen Tuskassa aina kun saan siihen mahdollisuuden.

Suurinta osaa bändeistä en ymmärrä enkä yritäkään. Esim. norjalainen Mayhem soitti mielestäni yhden todella pitkän tylsän biisin, joskin black-metallin ystävät saattoivat tunnistaa useampiakin ja erottaa vivahteita. Tai Barathrum … melko synkkää oli minun makuuni. 😉 Mukaan mahtui kuitenkin helmiä, kuten esimerkiksi metallisesti jouhikkoa soittava Pekko Käppi tai vanhojakin biisejään esittänyt Timo Rautiainen & Trio Niskalaukaus.

Niinpä tänäkin vuonna aloitimme puolison kanssa loman Tuskassa, vaikkei keli suosinutkaan ja melkein jouduimme viluissamme karkaamaan paikalta. Mutta onneksi oli Varustelekan myyntipiste, jossa tarjolla merinovillaisia huppareita, käsineitä ja huiveja puhumattakaan upeista oransseista sadeviitoista.

Siellä se ajatus sitten heräsi …

Tuskassa ryhdyin pohtimaan, että olisi kiinnostavaa selvittää miten paljon Suomessa on metallibändejä ja millaisilta luvut näyttävät väkilukuun suhteutettuna eli miten Suomi vertautuu metallibänditiheyden osalta muihin maihin. Aika pitkälle tielle lopulta jouduin, jotta sain selville Suomen metallibänditiheyden eli montako bändiä meillä on per 100 tuhatta asukasta. Samalla tuli tehtyä visualisointi kaikista lähes 120 tuhannesta maailman metallibändistä, joista tällä hetkellä aktiivisina on yli 64 tuhatta.

Jos sinua kiinnostaa datan ja raportin muodostamisen vivahteikas tarina, jatka lukemista. Jos ei, voit siirtyä suoraan tutkimaan metalligenreä vuorovaikutteisesti alla olevalla linkillä.

Avaa raportti

Metallibändien tie Power BI:hin

Matka ei ole ollut ihan helppo eikä mulla vieläkään ole kaikkia metalliorkestereita Power BI:ssä, mutta melko pitkälle olen päässyt. Olen onneksi saanut sähköpostin päähän muutamia avainhenkilöitä, jotka mahdollisesti pystyvät auttamaan, joten toivottavasti Power BI metallivisualisointini täydentyy. [Edit 5.7.2017: Raportissa on lopultakin kaikki data.]

Encyclopaedia Metallum ja web-kyselyt

Koko homma on edennyt seuraavasti.

Parin nettihaun jälkeen löysin loistavan Encyclopaedia Metallum -metallibänditietokannan, joka sisältää kaikki sinne rekisteröityneet lähes 120 000 bändiä.

Sivuston löydettyäni kuvittelin vielä, että voin lukea datan suoraan sivuilta muutamilla simppeleillä Power BI Desktopin web-kyselyillä, mutta homma ei ollutkaan niin yksinkertainen. Metalliarkiston sivusto on valitettavasti toteutettu teknisesti siten, että tietojen lukeminen ei onnistu pelkillä url-osoitteisiin perustuvilla kyselyillä.

Encyclopaedia Metallum ja REST API

Päätin, etten luovuta ensimmäiseen vastoinkäymiseen, joten jatkoin selvittelyä ja löysin erään kolmannen osapuolen koodaaman ja erinomaisen mallikkaasti dokumentoidun REST API -rajapinnan, joka lukee dataa suoraan metalliarkistosta! Tilasin rajapintaan API key -avaimen ja tein ensimmäisen testin lataamalla a-kirjaimella alkavat bändit käyttämällä kutsua http://em.wemakesites.net/letter/a ja saamaani api_key -tunnuskoodia:

Ensiyritys ei sellaisenaan suoraviivaisesti toiminut, mutta pienen kikkailun jälkeen mulla oli ensimmäinen datasetti eli a-alkuiset bändit Power BI:ssä.

Tästä ensimmäisestä pikatestistä liikuttuneena suunnittelin hakevani bändit kuuden eri kyselyn avulla niiden statusten perusteella (active, on-hold, split-up, jne.), sillä muuten niin hyvässä rajapinnassa ei ollut kutsua kaikkien bändien hakuun kerralla.

Harmittavaa, mutta osa kuudesta statukseen perustuvasta kutsuista ei palauttanutkaan dataa, vaan harmittavan epämääräisiä virheilmoituksia, joten homma ei hyvän alun jälkeen vaikuttanutkaan enää niin helpolta. Sitkeästi jatkoin testaamista ja huomasin, että kaikki alkukirjaimeen perustuvat kutsut eivät antaneet virheitä, joskin joitakin kirjaimia piti välittää kutsuissa joko isoina ja joitakin pieninä kirjaimina, jotta ne palauttivat tuloksia.

REST API -ongelma

Lopulta siis latasin datan alkukirjaimiin perustuen ja kaiken tämän nysväämisen ja puuhastelun tein huomaamatta erästä perustavaa ongelmaa!

Rajapinta palautti kunkin kutsun osalta vain 500 ensimmäistä tietuetta (jotkut kutsut jopa vähemmän) eikä rajapinnassa ollut metodeita, joilla saisi ladattua loput tietueet. Tarkoitti siis, että rajapinnan avulla sai vain 500 A-kirjaimella alkavia bändiä, 500 B-kirjaimella alkavia bändiä, ja niin edelleen. Huoh!

”Muista, että jonkun täytyy aina siivota festareitten bajamajat.”

Alla siis tutustuttavaksi keskeneräinen raportti, jossa on vain murto-osa yli 120 000 bändistä. Toki tästäkin otoksesta voi arvailla, että Suomessa on paljon enemmän bändejä suhteessa väkilukuun kuin muualla maailmassa. Väkimäärät latasin wikipediasta ja rakensin lisäksi mäppäystaulun sellaisten maiden osalta, joiden kirjoitusmuoto oli erilainen metalliarkistossa ja wikipediassa.  [Edit … ja nythän raportissa on kaikki bändit.]

Avaa raportti

Mitä seuraavaksi?

Tilannehan on nyt sellainen, että visualisointini jää joko datan osalta torsoksi tai saan puhuttua metalliarkistosta koko bändidatan itselleni esimerkiksi .csv-tiedostona. Olen jo ehdottanut heille, että jos luovuttavat datan, saavat tämän laatimani visualisonnin Power BI -tiedostoineen omaan käyttöönsä, jotta voivat upottaa visualisointeja omille sivuilleen. Saapi nähdä kiinnostaako yhteystyö ja miten vastaavat. 😉

Olen myös viestitellyt REST APIN koodaajan eli ”kolmannen osapuolen kanssa”, joka kertoi että 500:n rajoitus on metalliarkistossa ei REST API -rajapinnassa. Koodari on yrittänyt ratkoa ongelmaa tahollaan, mutta asia ei ole edennyt. Hän selvittelee pulmaa edelleen, muttei kovin aktiivisesti.

Hauskaa ja opettavaista tämä on joka tapauksessa ollut ja tutustuinpa taas yhteen mukavaan uuteen ihmiseen, eli Maltalla asuvaan ja Bulgariasta kotoisin olevaan kitaristi-koodariin, joka myöskin tekee vapaa-ajan projekteja pelkästä tekemisen ja oppimisen ilosta.

Terveiset Maltalta Suomeen:

”Yeah, Finland is famous for its metal bands! Back in the days, when I was still a lot into metal i used to like a number of Finish bands 🙂 Originally I am from Bulgaria, but I left many years ago and I’ve been living across Europe, changing the country each couple of years. With my job this is easy and I love exploring cultures :)”

Metallivisualisointi löytyy myös toiselta sivustoltani eli Vilahduksesta.

**************************************************

Datatarinan jatko-osa

En ole saanut vielä metalliarkistosta vastausta olisiko data tarjolla ja vieläpä sellaisessa muodossa, että pystyisin toteuttamaan päivittyvän raportin. REST API -rajapinta olisi ollut paras ratkaisu, sillä datan voisi päivittää vaikkapa useita kertoja vuorokaudessa.

Tällä kerralla täytyi kuitenkin tyytyä kertalatausratkaisuun, joka sekin on parempi kuin ei mitään. Onsight-kollegani Jussi Roine oli testannut useita erilaisia ”Web Scrabing” -sovelluksia, jotka lukevat ja kaapivat web-sivuilta dataa haluttuun muotoon. Jussi ehdotti Octoparse softaa, jolla sainkin lopulta ladattua bändidatat useina erillisinä alkukirjaimiin perustuvina Excel-tiedostoina.

Onneksi on synkkä ja pilvinen kesä. Istuin nimittäin iltapäivän läppärin äärellä ja katsoin miten Octoparse klikkaili puolestani jokaisen sivun esiin ja raapi sivulta bänditiedot sekä muodosti niistä kauniit Excel-aineistot. Octoparse oli mainio tuttavuus, tulen takuulla jatkossakin hyödyntämään.

Tämän jälkeen luin kansiollisen Excel-tiedostoja yhdellä kyselyllä Power BI -tietomalliin ja siinä se oli! Bonuksena Octoparse osasi parsia sivuilta myös bändien esittelysivut, joten sain rikastettua raporttiani sivulinkeillä. Ei huono.

Avaa raportti

Nyt siirryn lomamoodiin, tavataan taas syksyllä!

🤘

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s