Hei,
ensimmäinen vieraskynäblogimme käsittelee Microsoft Fabricin Shortcut-ominaisuutta. Data Lakehouse -arkkitehtuurin keskeinen idea on vähentää tarvetta tallentaa samaa dataa useita kertoja eri paikkoihin. Microsoft Fabricissa Shortcut -ominaisuus palvelee osaltaan tässä.
Microsoft Fabricin perusideoita on, että kaikki organisaation dataprosessit saadaan yhdelle alustalle. Lisäksi ainakin mainospuheissa toitotetaan sitä, että data tallenneteen aina vain yhden kerran. Tähän ykseyteen viittaa hyvin vahvasti myös Fabricin datantallenustilan nimeäminen OneLakeksi. Tämä blogiteksti ei kuitenkaan keskity OneLakeen, vaan mielestäni yhteen tämän ykseyden parhaista mahdollistajista, eli Shorcut-ominaisuuteen.
Kuten nimikin vihjaa, Shortcut on oikopolku. Tarkemmin sanottuna se on oikopolku varastosijantiin. Nämä varastosijainnit voivat olla Fabricissa tai sen ulkopuolella. Ideana on siis vain kertoa, että tuolta löytyy tällaisia tiedostoja tai tauluja. (Jep, myös Databricksin Delta-tauluihin tai Snowflaken Iceberg-tauluihin voidaan rakentaa oikopolkuja.) Nämä tiedostot voidaan näin tuoda työkuormien tai käyttäjien saataville ilman, että data tarvitsee siirtää. Joku voisi ehkä puhua näistä oikopoluista viittauksina, joten loppu tekstin ajan viittaus = Shortcut. Lähinnä siksi, että englanninkielisten sanojen kääntäminen suomenkieliseen tekstiin sopivaksi aiheuttaa liikaa päänvaivaa.
Sisäiset viittaukset
Viittauksia on siis kahdenlaisia: sisäisiä ja ulkoisia. Sisäiset viittaukset ovat siis nimenomaan Fabricin sisäisiä, eli viittauksen lähde on Fabricin, eli OneLaken sisällä. Jos olet tallentanut dataa Lakehouse-objektiin, voit luoda toiseen Lakehouse-objektiin viittauksen alkuperäiseen tiedostosijaintiin ja tarjoille sen näin myös toisen Lakehousen käyttäjien saataville. Tämä on mahdollista myös työtilasta toiseen, mikä vähentää ETL-putkien kehittämisen tarvetta monimutkaisemmissa arkkitehtuureissa. Viittauksia voidaan kysellä myös Power BI:n Direct Lake -toiminnallisuudella. Tämä on oikeasti aika siisti juttu, sillä näin data on todellakin tallennettuna vain kerran yhteen Lakehouse-objekteista, ja silti loppukäyttäjä voi tarkastella sitä raportilta, joka vastaa hämmästyttävän nopeasti. Saisiko olla reaaliaikaista raportointia?
Kuva 1: Viittaukset Fabricin sisällä
Ulkoiset viittaukset
Viittauksilla voidaan osoittaa myös tiedostoihin, jotka ovat Fabricin ulkopuolella. Tällä hetkellä mahdollisia lähteitä ovat Dataverse, toisen sukupolven ADLS ja Amazon S3-ämpäri (sekä preview-tilassa Amazon S3 Compatible ja Google Cloud Storage). Tämä listaa tulee oletettavasti tulevaisuudessa laajenemaan, joskin se ei ole ihan hetkeen kyllä laajentunut.
Ulkoiset viittaukset toimivat hyvinkin vastaavalla tavalla, kuin sisäiset viittaukset. Niissä kannattaa kuitenkin miettiä, kuinka usein dataa tarvitaan, sillä ainakin Azure ja Amazon laskuttavat ylimääräistä, kun dataa siirretään pois heidän alustaltaan tai alustan sisällä eri datakeskusten välillä. Jos dataa haetaan usein suuria määriä, voi tästä syntyä merkittäviä kustannuksia. Tällöin viitatut tiedostot voidaan tallentaa kyselyn yhteydessä välimuistiin. Seuraavia kyselyitä palvellaankin suoraa välimuistista, jolloin siirto ja lukukustannuksia ei tarvitse maksaa lähteen palveluntarjoajalle. Jos tietoa ei kysellä vuorokauden aikana, välimuisti tyhjennetään ja seuraava kysely meneekin lähteelle saakka. Myös jos lähteellä oleva tiedosto päivittyy, täytyy kysely tietysti lähettää lähteelle asti.
Kuva 2: Viittaukset ulkoisiin järjestelmiin
Tärkeimpiä huomioita ja rajoituksia
- Viittauksen kohteena (siis se minne oikopolku osoittaa) voi toimia mikä tahansa OneLake-sijainti, ADLS Gen 2, Dataverse tai AWS S3-ämpäri ja viittaukset ovat kohteestaan riippumattomia objekteja. Toisin sanoen, jos kohde siirretään, uudelleen nimetään tai poistetaan, viittaus hajoaa.
- Myös On-prem-lähteisiin voidaan viitata, mutta tämä vaatii Fabric on-premises data gatewayn (OPDG) käyttämistä.
- Viittauksia (siis se paikka, missä oikopolun kohde näkyy, vaikka sitä ei ole oikeasti tuotukaan sinne) voi luoda vain Lakehouse- ja KQL database -objekteihin.
- Vaikka viittauksen poisto ei vaikuta viittauksen kohteeseen, voidaan viittauksen läpi siltä poistaa kohteessa olevia tiedostoja. Eli, jos poistat viittauksen, sen kohteelle ei tapahdu mitään. Mutta jos poistat viittauksen sisällä olevan tiedoston, tulet poistaneeksi viittauksen kohteesta tiedoston. Kunhan sinulla on oikeus tehdä tämä kohteessa.
- ADLS-viittauksia koskee suositus, että viittaus tulisi tehdä vähintään yksi taso container-tasoa alemmalle tasolle, sillä Copy-funktion käyttö ei onnistu muuten.
- Viittausten välimuistissa säilytettävien tiedostojen koon yläraja on 1 GB.
- Yhdessä Lakehousessa voi olla enintään 100 000 viittausta.
- Viittauksia voi ketjuttaa enintään 10 kertaa (eli viittaus, joka viittaa viittaukseen, joka viittaa viittaukseen, jne.)
- Viittausten poluissa tai nimissä ei kannata käyttää erikoismerkkejä (siis muutenkaan).
Yhteenveto
Viittaukset ovat oikeasti aika kätevä juttu, jotka vähentävät tarvetta siirrellä dataa ja ottaa siitä kopioita. Tämä on hyvä ominaisuus melkein missä tahansa ympäristössä, mutta etenkin jos tiedon reaaliaikaisuus on tärkeää. Ja vaikka reaaliaikaisuus ei olisikaan vaatimus, voi viittausten avulla testailla helposti eri tietolähteiden yhteensopivuutta ja tarkastella tietosisältöjä ilman, että tarvitsee kehittää yhtään ETL-putkea. Ja ehkä testin jälkeen todetaan, että eihän mitään sen suurempia integraatioita tarvitse edes kehittää, koska viittaus ajaa saman asian.
Viittaukset todellakin vievät Fabricin lähemmäs lupaustaan Lakehouse-arkkitehtuurin avoimuudesta.
Kiitos lukemisesta!
Kirjoituksen on laatinut yhteistyökumppanimme Data Clinicin perustajajäsen ja uuden Data Lakehouse -arkkitehtuuria käsittelevän kurssimme kouluttaja Tommi Penttilä. Teksti on julkaistu myös Data Clinicin blogissa: https://www.dataclinic.fi/blogi/microsoft-fabric-shortcuts
Sukella syvemmälle Data Lakehouse -arkkitehtuuriin ja näe Microsoft Fabric toiminnassa! Ilmoittaudu nyt ja varmista paikkasi ensimmäiselle Designing and Implementing Data Lakehouse Solutions -kurssille tammikuussa! Mukana myös tietovarastoinnin isä Bill Inmon.