170 likes | 391 Views
DIS. Jouni Javanainen Fennia 14.9.2010 Technical Club. Sisältö. Yleisiä näkemyksiä DIStudiosta Muutamia transformaatioita: huomioita ja vinkkejä DIS vs. höyrykoodi. Työskentelyn periaatteet. ”Käsialattomuus”, ”persoonattomuus”
E N D
DIS Jouni Javanainen Fennia 14.9.2010 Technical Club
Sisältö • Yleisiä näkemyksiä DIStudiosta • Muutamia transformaatioita: huomioita ja vinkkejä • DIS vs. höyrykoodi Jouni Javanainen
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 Javanainen
Jobille yleinen pohja • Parametrit • Precode, Postcode • Tip: yleismakro • Status Handling • Mahdollisesti useampia eri tilanteisiin Jouni Javanainen
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 Javanainen
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 Javanainen
Table loader • Periaate: table loader –transformaatiossa ei luoda enää uutta, esim. expression-lausekkeita • Tehokkuus: indeksien luontiasetukset Jouni Javanainen
Table Loader, Compress • Ei toimi • Toimii Jouni Javanainen
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 Javanainen
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 Javanainen
Case: Eri transformaatioketjut eri tilanteissa Jouni Javanainen
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 Javanainen
Transformaatio ja Makro Jouni Javanainen
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 Javanainen
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 Javanainen
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 Javanainen
Kysymyksiä? Kiitos mielenkiinnosta.