Cloud1 Insights

Databricksin hyödyntäminen big data -analytiikassa (5/5) – Tekninen toteutus

Kirjoittanut Marko Oja | 8.11.2019 14:16

Aikaisemmissa blogipostauksissa esiteltiin Databricksin arkkitehtuuria, kehitystä, tehokkuutta ja kustannuksia sekä visualisointien avustamaa analysointia. Tässä blogisarjan viimeisessä osassa esittelen mielestäni tärkeimmät huomiot toteutuksesta teknisellä tasolla. Pyrin ennen kaikkea nostamaan esille ne hankalammin Googlella löydettävät yksityiskohdat, jotka mahdollistavat sarjassa esitellyn arkkitehtuurillisen toteutuksen.

Ad hoc -analysoinnin mahdollistaminen Databricksillä ja Power BI:llä

Ensimmäinen nice to know -knoppi tulee, kun haluat käyttää Data Lake Store Gen 2:sta Databricksin lähteenä. Yhdistäminen tapahtuu Service Principalilla. Käytettävälle applikaatiolle tulee antaa Storage Account Contributor (tai Reader) -oikeudet lähderesurssiin. Huomiona siis, että pelkkä Contributor-oikeus ei ole riittävä. Tämän jälkeen containerin mounttaus on suoraviivainen toimenpide, josta löytyy googlaamalla hyvät ohjeet. Käytännössä ajetaan yksi Python-skripti.

Lähdedata oli esimerkissä CSV-muodossa, eikä vaatinut suurempaa siivoamista. Tiedot ladattiin data frameen, joka tallennettiin klusteriin tauluksi. Tällöin tiedot kirjoittuvat fyysisesti klusterin levyjärjestelmään.

Tiedon aggregointi ja tallentaminen tauluun

Toteutuksessa käytin Spark SQL:ää tiedon aggregoimiseen ja tallentamiseen. SQL kielenä tarjoaa selkeitä etuja yksinkertaisella syntaksillaan tämänkaltaisten työvaiheiden suorittamiseksi. Verrattuna vaikka Pythoniin, jossa vastaavan tuloksen saamiseksi olisi joutunut kirjoittamaan ainakin omasta mielestäni huomattavasti paljon sekavamman koodinpätkän. INSERT INTO & SELECT FROM -yhdistelmästä on vaikea enää selkeydessä parantaa.

Klusterin asetuksia muutettaessa joutui aggregoinnin skriptiin lisäämään vielä "REFRESH TABLE"-komennon raw_data -taululle. Tämä saattaa olla hyvä best practise, jos vastaavaa joutuu tekemään tuotantototeutuksiin, ja haluaa hyödyntää SQL-syntaksia. Olettaen tietysti, ettei pysty ensimmäisellä kerralla arvioimaan lopullista klusterin kokoonpanoa nappiin.

Databricksin yhdistäminen Power BI:hin

Klusterin Advanced Options -kohdan alta löytyy JDBC/ODBC -välilehti, jonka alta taas löytyy JDBC URL. Tuota urlia hieman muokkaamalla (kuva) saadaan aikaiseksi Power BI:tä varten tarvittava connection string. Yhteystyypiksi Power BI:ssä valitaan spark ja käyttäjätunnukseksi sana "token". Salasanaksi luodaan Databricksissä Access Token, joka löytyy User Settingsien takaa. Tämän jälkeen luodut taulut löytyvät Power BI:stä ongelmitta, ja ne voi liittää normaaliin tapaan tietomalliksi.

 

Lue myös:

Databricksin hyödyntäminen big data -analytiikassa (1/5) – Arkkitehtuuri

Databricksin hyödyntäminen big data -analytiikassa (2/5) – Kehitys

Databricksin hyödyntäminen big data -analytiikassa (3/5) – Tehokkuus ja kustannukset

Databricksin hyödyntäminen big data -analytiikassa (4/5) – Analysointi

 

(Blog in English coming soon...)