DIS Jouni Javanainen Fennia Technical Club
Sisältö ‣ Yleisiä näkemyksiä DIStudiosta ‣ Muutamia transformaatioita: huomioita ja vinkkejä ‣ DIS vs. höyrykoodi Jouni Javanainen2
Työskentelyn periaatteet ‣ ”Käsialattomuus”, ”persoonattomuus” ‣ Erinomainen tilaisuus luoda yhteiset periaatteet koodaamiselle ‣ Kansiointi metadatassa ‣ Nimeäminen ‣ Omat transformaatiot ‣ Transformaatioiden käyttötapa ‣ User Written Code säännöt Jouni Javanainen3
Jobille yleinen pohja ‣ Parametrit ‣ Precode, Postcode ‣ Tip: yleismakro ‣ Status Handling ‣ Mahdollisesti useampia eri tilanteisiin Jouni Javanainen4
Yleisiä sääntöjä ‣ Jobeista ei kannata tehdä liian suuria, yksi asia = yksi jobi ‣ Mäppäys pitää tehdä aina, myös user written – transformaatiossa ‣ Mäppäyksen voi vyöryttää ylhäältä-alas tai alhaalta-ylös tilanteen mukaan ‣ Jos user writteniä käytetään, niin sen kuuluu olla ”samantasoinen” kuin muutkin transformaatiot eli siinä tehdään yksi asia ‣ Systemaattinen eteneminen, ”kerralla valmiiksi” ‣ Jotkut asiat jälkeenpäin hankala lisätä ‣ Control Flow Jouni Javanainen5
Extract inputdataan ‣ Tehokkuus, koska se luo keep-optio ilmiön ‣ Mitä suurempi data, sitä suurempi hyöty, jos vain osaa muuttujista tarvitaan ‣ Useimmiten kannattaa pitää näkymänä ‣ Periaate: siitä näkee, mitä sarakkeita käytetään ‣ Helpottaa seuraavan transformaation käsittelyä, kun siellä ei ole turhia sarakkeita Jouni Javanainen6
Table loader ‣ Periaate: table loader –transformaatiossa ei luoda enää uutta, esim. expression-lausekkeita ‣ Tehokkuus: indeksien luontiasetukset Jouni Javanainen7
Table Loader, Compress ‣ Ei toimi ‣ Toimii Jouni Javanainen8
Loop ‣ Jobin loopitus ‣ Ei kierrosrajoituksia ‣ Loopitettavan jobin otettava parametrit ‣ Voidaan loopittaa myös transformaatioketju ‣ Ensimmäisen transformaation pitää pystyä ‣ vastaanottamaan parametreja ‣ Yli 10 kierroksen looppi ei onnistunut, ‣ kaatui makroylivuotoon (nested macros) Jouni Javanainen9
Loop, ehdollinen suoritus ‣ Loopin idea on, että se suoritetaan kerran syöttötaulun jokaiselle riville ‣ Case: Transformaatioketju halutaan suorittaa (kerran) vain, jos joku ehto on täyttynyt ‣ User Written ennen looppia, joka luo work-taulun ‣ jossa on yksi rivi, jos ehto täyttyy ‣ jossa on nolla riviä, jos ehto ei täyty ‣ Case: Eri transformaatioketjut eri tilanteissa ‣ User Written ennen looppia, joka luo kaksi taulua ‣ joista toisessa on aina yksi rivi ja toisessa ei yhtään riviä ‣ se loop suoritetaan, jota edeltää yhden rivin taulu ‣ sitä looppia ei suoriteta, jota edeltää tyhjä taulu Jouni Javanainen10
Case: Eri transformaatioketjut eri tilanteissa Jouni Javanainen11
Omat transformaatiot ‣ Usein toistuvat tilanteet ‣ Varsinainen transformaation koodi makroksi ‣ Joustavuus muutostilanteissa ‣ Olemassa olevat makrot ovat hyviä ehdokkaita transformaatioiksi ‣ Transformaation kuuluisi tehdä vain YKSI asia, muutoin DISsin idea katoaa Jouni Javanainen12
Transformaatio ja Makro Jouni Javanainen13
DIS vs. ”Höyry-koodaus” ‣ Ajattelu- ja työskentelytapa erilainen ‣ Osa koodaamisesta muuttuu DISsissä metadatan määrittelyksi ‣ Signon, proc download/upload Määritellään server, kirjasto ja taulu. Käytetään kuin mitä tahansa taulua. ‣ External files Määritellään file ja sen kuvaus. File reader, File Writer ‣ (Lähes) loppu koodaaminen muuttuu hiirellä klikkailuksi ja expression-lausekkeiden kirjoittamiseksi ‣ SAS-osaamisen vaatimus laskee, mutta ei katoa Jouni Javanainen14
DIS vs. ”Höyry-koodaus”: Höyrykoodi ‣ Tekijänsä näköinen ‣ Tietävätkö muut kuin tekijä, mitä siinä tapahtuu ‣ Uuden henkilön hankalampi päästä sisään ‣ SAS-osaaminen ‣ Monimutkainen asia hankalampi hallita, yksinkertainen asia nopea tehdä ‣ Dokumentaatiota ei synny ‣ Voi tehdä asioita tahattomasti, esim. jos lähtötauluun lisätään sarake Jouni Javanainen15
DIS vs. ”Höyry-koodaus” : DIS ‣ Visuaalisesti havainnollinen ‣ Antaa silmäyksellä yleiskuvan (!/?) ‣ Yksityiskohdat piilotetaan transformaation sisään ‣ Tekee vain sen, mitä metadataan on kuvattu (kun toimitaan oikein DIS-maailmassa) ‣ Helppo, yksinkertainen asia voi olla hankalampi tehdä ‣ Koodi ei ole tarkoitettu luettavaksi ‣ Joskus uuden asian lisääminen keskelle jobia hankalampaa ‣ Matalampi kynnys uudelle henkilölle ‣ BI-osaaminen Jouni Javanainen16
Kysymyksiä? Kiitos mielenkiinnosta.