Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
|
|
- Annikki Kahma
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Sivu 1 (15) Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus Timo Sallinen Ensimmäinen versio Timo Sallinen Täydenetty pohjaa Mika Suvanto Pieniä täydennyksiä ja oikolukua Timo Sallinen Pieniä lisäyksiä Mikko Ruokojoki Ulkoasun korjauksia ja otsikoinnin muokkausta Mika Suvanto Ohjeet asennus + kääntäminen Mika Suvanto Ohjeet asennuksesta Ecliseen ja prosessikuvausten kirjoittamisesta Risto Kunnas Ohjeita testaukseen Teemun testauskäytöntöohjeiden pohjalta Mika Suvanto Lisäyksiä mm. prosessin tarkistamiseen ja tietokantatukeen Timo Sallinen Useita muutoksia, jatkokehitysideat Risto Kunnas Jatkokehitysidoita
2 Sivu 2 (15) Sisällysluettelo Johdanto...3 Yleiskuvaus pakettihierarkiasta...3 Tarvittavat JDK:n ulkopuoliset luokkakirjastot... 3 ETL-työkalun standalone - asennus...3 ETL-työkalun Eclipse - asennus jatkokehitystä varten...5 Uuden tietokantatyypin lisäys työkaluun...6 Uuden toimenpiteen luominen... 7 Kuvauskielen muokkauksen tarkistuslista...8 Uuden prosessin luonti... 9 Prosessin toimivuuden testaus...9 Ideoita SCD-toteutukseen...10 Virheidenhallinta Ohjeita lokien tulkintaan Dokumentaatiogeneraattori Testaus...12 Testien luonti Testien ajaminen...13 Hakemistorakenne Ongelmatilanteiden selvittely Ohjelman suorituksen ongelmatilanteet...13 Jatkokehitysideoita Moottori Toimenpiteet... 14
3 Sivu 3 (15) Johdanto Dokumentin tarkoituksena on toimia jatkokehitysohjeena Tietojenkäsittelyopin ohjelmatyökurssin puitteissa luodulle ETL-työkalulle. Dokumentti on FAQ-tyyppinen. Tarkemmat tekniset määrittelyt löydät teknisestä spesifikaatio -dokumentista. Yleiskuvaus pakettihierarkiasta com.aureolis.etltool -Kaikki paketit sijoitetaan tähän nimiavaruuteen com.aureolis.etltool.database - Tietokantaluokat com.aureolis.etltool.operations Toimenpiteiden yhteiset luokat, jokainen toimenpide omaan alipakettiinsa com.aureolis.etltool.engine Moottorin implementaatio com.aureolis.etltool.parameters Prosessin parametrit com.aureolis.etltool.transfer Tiedonsiirtoluokat (mm. SqlTable) (Data Transfer Objects) com.aureolis.etltool.docgen - Dokumentaatiogeneraattori com.aureolis.etltool.test Järjestelmätason testausluokat Tarvittavat JDK:n ulkopuoliset luokkakirjastot Työkalu tarvitsee toimiakseen seuraavat kirjastot Apache Xerces (xercesimpl.jar) ( Kuvauskielen parseri käyttää (validoiva DOM-parseri) JGraph (jgraph.jar) ( JGraphAddons (jgraphaddons.jar) Dokumentaatiogeneraattori käyttää näitä visuaaliseen esitykseen JDBC-ajurit mysql-connector-java jar (MySQL) postgresql-x.y.z-jdbc3.jar (PostgreSQL) ojdbc14.jar (Oracle) Nämä ovat yleensä ladattavissa tietokannan valmistajan www-sivuilta. Näistä tarpeellisia ovat ainoastaan kulloisessakin prosessissa käytettävien tietokantojen ajurit. ETL-työkalun standalone - asennus Tarvittavat ohjelmat Tarvitset seuraavat ohjelmat työkalun käyttöön: (suluissa testatut versiot) MySQL Java SDK Apache Ant (kääntämiseen) Jokin CVS-client (mm. cvs, WinCVS)
4 Sivu 4 (15) Ohjelmaa on testattu Windows 2000, Windows XP ja Linux -käyttöjärjestelmillä. 1. Tietokannan asennus Sovellus tukee tällä hetkellä kaikilta osin ainoastaan MySQL-kantaa. Sovelluksen käyttämiseksi tarvitaan vähintään 1 kanta, mutta useampia voidaan käyttää. Tietokannat pitää luoda ennen sovelluksen ajoa sovelluksen konfiguraatiotiedoston mukaisesti. Testidata voidaan generoida komentoriviparametrina annettavalla sql-komentotiedostolla. 2. Sovellustiedostojen checkout CVS:stä Checkout luo uuden hakemiston nimeltään ETL.Tämä on työkalun juurihakemisto. Hakemisto sisältää mm. seuraavat alihakemistot: language Kuvauskielen schema löytyy täältä lib Tarvittavat ulkoiset Java -kirjastot (mm. Xerces) löytyvät täältä. Tämän hakemiston jar-tiedostot pitää olla CLASSPATH-muuttujassa työkalua ajettaessa. source proc Lähdekoodi ja testiskriptit hakemisto prosessikuvauksille 3. Kääntäminen Tehtyäsi checkout:in, työkalun juurihakemistossa pitäisi olla tiedosto build.xml, joka on Ant:in konfiguraatiotiedosto. Käännös tapahtuu automaattisesti komennolla ant. Kääntämisen jälkeen juurihakemistoon ilmestyy työkalun jar- pakattu versio etltool.jar,sekä uusi hakemisto build, jossa on käännetyt luokat. Ant-skripti tukee parametrejä dist (oletus) init compile clean rakentaa työkalusta jar-paketin tekee tarvittavat työhakemistot kääntämiseen suorittaa kääntämisen poistaa kääntämisen työhakemistot sekä jar- tiedoston 4. Käynnistys Ennen käynnistystä tarkista, että projektitiedostossa viitataan oikeisiin konfiguraatio- ja prosessitiedostoihin. Tarkista, että konfiguraatio vastaa järjestelmääsi (mm. tietokannat) ja että kaikkien XML-tiedostojen schema-polku (xsi:nonamespaceschemalocation) viittaa language -hakemistossa määriteltyyn schemaan. Huomaa, että jos käytät suhteellisia polkuja, ne lasketaan siitä hakemistosta jossa käynnistät työkalun (työkalun juurihakemisto). Tämän jälkeen työkalu käynnistyy komennolla java -jar etltool.jar alustus.sql projekti.xml olettaen, että alustus.sql ja projekti.xml sijaitsevat työkalun juurihakemistossa.
5 Sivu 5 (15) Käynnistysparametrit: alustus.sql projekti.xml alustus.sql alustaa kannan testidatalla ja luo tarvittaessa n kpl tauluja projekti.xml-tiedostossa määritellään viittaus konfiguraatiotiedostoon (tietokantayhteydet) ja prosessikuvaustiedostoon. ETL-työkalun Eclipse - asennus jatkokehitystä varten Tarvittavat ohjelmat Tarvitset seuraavat ohjelmat työkalun käyttöön: (suluissa testatut versiot) MySQL Java SDK Eclipse 3.01 Ohjelmaa on testattu Windows 2000, Windows XP ja Linux -käyttöjärjestelmillä. Tietokannan asennus Asenna MySQL tietokanta ohjeiden mukaan. Varmista, että tietokannan konfiguraatio ja palomuuri sallii TCP/IP -yhteydet ja konfiguroi käytettävät tietokannat ja käyttäjätunnukset vastaamaan prosessikuvauksien konfiguraatiotiedostoa. Sovellustiedostojen checkout CVS:stä Luo uusi projekti työkalua varten, valitse 'Checkout projects from CVS' ja syötä yhteysparametrit. Tämän jälkeen projektin koodi haetaan Eclipsen työympäristöön. Valmistelu Työkalun testaamisessa tarvittavat tiedostot ovat test -paketissa. EtlToolTest1 on työkalun testauksen pääluokka, jota testiajot kutsuvat. Test -paketin alapaketit sisältävät eri prosessiajojen määrittelyt, ja nämä määrittelyt viittaavat skema strom.xsd -tiedostoon, jossa on kuvattu työkalun kuvauskielen XML-schema. Viittaukset ovat tyyppiä../skema strom.xsd, joten ne odottavat skeematiedoston löytyvän test-paketista. Kopioi siis skeema language -hakemistosta test -hakemistoon. Käynnistys Konfiguroi Eclipseen uusi Run-konfiguraatio kuvien 1 ja 2 mukaisesti. Tämän jälkeen työkalu käynnistyy tällä konfiguraatiolla. DocGenTest1 generoi prosessista dokumentaation. Sen run -konfiguraatio laaditaan samalla periaatteella joten ainoa muutos on kuvan 1 Main Class -kenttä.
6 Sivu 6 (15) Uuden tietokantatyypin lisäys työkaluun ETL-työkalua voidaan käyttää useassa eri tietokantatyypissä ja tämä ohje auttaa lisäämään uusia tietokantatyyppejä ETL-työkaluun. Database-luokassa on määritelty staattiset vakiot, joiden perusteella voidaan testata, mitä tietokantatyyppiä tietty yhteys tai taulu edustaa. Mikäli uusi tietokantatyyppi vaatii muutoksia Kuva 1: Eclipsen run-konfiguraatio (1/2)
7 Sivu 7 (15) Kuva 2: Eclipsen run-konfiguraatio (2/2) Database- luokan metodeihin, kannattaa Database-luokka periä. Esimerkkinä tästä on toteutettu PostgreSqlDatabase- luokka, jossa voidaan toteuttaa tarvittavat metodit PostgreSQL- tietokannan vaatimalla sql:llä.databasemanager instantioi oiken luokan konfiguraatiotiedostossa annetun tietokannan tyypin avulla. Implementaatiossa on varauduttu myös alityyppeihin, kuten tiettyihin tietokantaversioihin. Räätälöidyt SQL-lausekkeet toimenpiteissä voidaan tehdä kahdella tavalla: Periytetään vastaava toimenpideluokka jokaiselle tietokannalle erikseen, siten, että ko. toimenpiteen factory-luokka luo ko. Instanssin Jos erot ovat pieniä tehdään if / else if -rakenne edellä mainitun database-type attribuutin perusteella. Export-toimenpideluokassa on esimerkki viimeksi mainitusta, jossa SQL-generoidaan tietokantatyypin mukaan. Toteutuksessa ei ole tällä hetkellä otettu huomioon eri tietotyyppien eroja. Ongelma ilmenee silloin, jos toimenpiteen pitää siirtää tietoa kahden erilaisen tietokannan välillä. Käytännössä tämä pitäisi ratkaista siten, että SqlTableFormat-luokassa määritettäisiin, jonkinlainen looginen tietomalli, joka mapattaisiin fyysisiin attribuuttityyppeihiin toimenpiteissä. Uuden toimenpiteen luominen Toimenpidekomponentin luominen tehdään seuraavasti: Suunnittele komponentti (parametrit, syötteet, tulokset, toiminta, virhetilanteet jne.) ja kirjoita siitä samanlainen kuvaus kuin alla olevissa toimenpidekomponenttien kuvauksissa. Suunnittele samalla, miten toimenpidekomponentti kuvataan kuvauskielessä. Räätälöityjä komponentteja
8 Sivu 8 (15) varten ei yleensä kannata tehdä muutoksia kuvauskieleen. Tee komponentille Java-pakkaus. Jos kyseessä on työkaluun liitettävä yleiskäyttöinen komponentti, pakkaus tulee luoda com.aureolis.etltool.operation-pakkauksen alle. Jos kyseessä on asiakasprojektiin tehty räätälöity komponentti, voidaan käyttää jotain projektikohtaista pakkausnimeä (tai laittaa samaan pakkaukseen muiden toimenpiteiden kanssa). Tee EtlOperationFactory:n toteuttava luokka. Tähän luokkaan ei yleensä pidä laittaa mitään muuttuvia attribuutteja, vaan ainoastaan konfiguraatiotietoa, joka pysyy vakiona olion olemassaolon ajan. Samaa EtlOperationFactory-oliota voidaan käyttää useiden prosessiajojen ajan. Tee EtlOperation:n toteuttava luokka, jonka instanssin EtlOperationFactory.create()-metodi luo. Tätä EtlOperation:n toteuttamaa oliota käytetään vain yhden prosessiajon ajan ja sen jälkeen se hylätään, eikä moottori käytä samaa oliota enää seuraavassa prosessiajossa (vaan luo uuden create()-metodilla). Luokan toteutuksessa kannattaa ottaa mallia olemassaolevista toimenpidekomponenteista ja hyödyntää moottorin palveluita mahdollisimman tehokkaasti. Toimenpiteen liittääminen sovellukseen Toimenpidekomponenttien dynaaminen lataus toteutettiin viimeistelyvaiheen aikana. Koska tätä ei ehditty testata niin kattavasti kuin alkuperäistä toteutusta, haarautettiin CVS-siten, että molemmat versiot ovat käytössä. Molemmissa versioissa ensimmäinen vaihe on lisätä toimenpiteen määrittely kuvauskielen skeemaan. Oletusarvoisesti (luovutetussa versiossa) kuvauskielen validointi skeemaa vastaan on päällä. Tämä voidaan haluttaessa muuttaa XmlProcessParser-luokasta, jolloin muutoksia skeemaan ei enää tarvita. Päähaaran (ETL) alkuperäinen versio Jotta parseri osaa ladata toimenpidekomponentin, täytyy tämä määrittää com.aureolis.etltool.processlanguage.xml.xmlprocessbuilder buildoperation()-metodiin. Dynaaminen versio CVS-haara 'DYNAMIC' Vaihtoehdossa toimenpidefactoryjen toteutusta on muutettu siten, että nämä voivat periä EtlOperationFactory-rajapinnan toteuttamisen sijaan com.aureolis.etltool.operations.abstactoperationfactory-luokan, johon on määritetty kaikille toimenpiteille yhteisiä attribuutteja, kuten viittaus tietokantamanageriin. Prosessiparseria on muutettu siten, että se osaa parseroida mielivaltaisen prosessikuvaustiedoston ja ladata toimenpideluokat konfiguraation perusteella. Ladattavat toimenpiteet määritellään konfiguraatiotiedostossa seuraavasti: <configuration> <operations> <operation name= importsql class= com.aureolis.etltool.operations.importsql.importsqlfactory />.. </operations> </configuration>
9 Sivu 9 (15) Tässä siis name-attribuutti kertoo prosessikuvauksessa käytettävän operaation nimen (XML-tagi) ja class on com.aureolis.etltool.operations.etloperationfactory-rajapinnan toteuttava luokka. Parseri luo prosessikuvauksesta määritellystä konfiguraatiosta com.aureolis.etltool.processlanguage.configuration instanssin, joka sisältää kuvauskielessä määritellyt parametrit puumaisena rakenteena. Ratkaisu on periaatteessa kuvaskieleriippumaton, mutta kopioi kuitenkin XML:n puurakenteen sellaisenaan, mikä on otettava huomioon parametreja käsiteltäessä. Parseri kutsuu toimenpidefactoryn metodiavoid configure(configuration conf) throws ConfigurationException, jossa toimenpide hakee tarvitsemansa parametrit välitetystä Configurationinstanssista. Parametreja ei voinut suoraan asettaa JavaBean/Reflection-tekniikoilla, koska osa toimenpiteistä vaatii yksinkertaisia attribuutteja monimutkaisempia rakenteita määrittelyssään (Esim. ImportCSV:n taulumääritykset). Jatkokehitystä ajatellen tätä voisi kehittää siten, että pyrittäisiin eroon kuvauskielen ja toimenpidekomponenttien välisesti kytkennästä. Yksi mahdollisuus olisi generoida XML-määrityksen perusteella automaattisesti JavaBean-luokka, joka välitetään toimenpiteelle. Sovellukseen on kovakoodattu toteutetut toimenpitekomponentit. Haluttaessa nämä voidaan korvata uusilla em. määrittelyllä. Vähintään copy ja importsql-toimenpiteet on oltava olemassa, koska parseri korvaa importin automaattisesti copy:lla aliprosessin alussa. Kuvauskielen muokkauksen tarkistuslista XML-parseriluokka on toteutettu siten, että kuvauskielen implementaatio voidaan vaihtaa ilman muutostarpeita moottoriin. Suuri osa prosessin rakentamisen toiminnallisuutta on kuitenkin parserin tehtävänä. Parserointiin käytetään validoivaa Apache Xerces DOM-parseria. Parseriluokka vastaa myös toimenpidekomponenttien lataamisesta ja alustamisesta. On tärkeää testata, että kaikki parametrit välittyvät toimenpiteille oikein. Mahdollisesti ongelmat näissä ilmenevät todennäköisesti vasta ajon aikana. 1. Määrittele muutokset kuvauskielen XML-schemaan (language/skema strom.xsd) 2. Lisää muutosten luku/rakentaminen sopiviin processlanguage.xml -paketin luokkiin. 3. Lisää processlanguage.xml.tag -luokkaan elementin/attribuutin määrittely vastaamaan skeemaa. 4. Kopioi muokattu skeema test- pakettiin testien ajamiseksi. Skeeman muokkaukseen on hyvin suositeltavaa käyttää jotain työkalua, jossa skeemaa pystyy muokkaamaan graafisesti, esim. AltovanXMLSpy. Uuden prosessin luonti ETL-prosessi vaatii vähintään kolme XML-tiedostoa jotta se voidaan suorittaa: projektitiedosto, joka kertoo muut käytettävät tiedostot, prosessikuvaus, jossa on määritelty suoritettava ETLprosessi sekä konfiguraatiotiedosto, jossa on ajon tietokanta- ja ajastuskonfiguraatio. Näistä tiedostoista löytyy useita esimerkkejä test- paketin alta. XML-tiedostojen muokkaus sujuu varsin kätevästi, mikäli käytetään sellaista XML-editoria, joka osaa validoida tiedostot skeemaa vasten. Testattuja on mm. XMLSpy sekä Eclipseen integroituva plugin XMLBuddy. Projektitiedostossa voidaan tällä hetkellä määritellä kolme asiaa: konfiguraatiotiedoston polku, prosessikuvauksen polku sekä lokiasetusten polku.
10 Sivu 10 (15) Konfiguraatiotiedostossa määritellään työkalun prosessissa käyttäjämät tietokannat sekä mahdollinen projektin ajastus parametreineen. Projektikuvauksessa määritellään toimenpiteet ja niiden riippuvuudet. Usein toistuvia attribuutteja ovat mm. name source sourcedatabaseid Toimenpiteen nimi. Oltava yksikäsitteinen. Lähdetoimenpiteen nimi Viittaus konfiguraatiotiedostossa määriteltyyn tietokantaan Validoiva XML-editori osaa yleensä myös näyttää skeemaan lisätyt kommentit, jotka kertovat attribuuttien merkityksen. Kun prosessikuvaus on valmis ja XML-editorin mukaan validi, se voidaan ajaa joko EtlToolTest1 -luokalla, joka suorittaa prosessin, tai DocGenTest1 -luokalla, joka laatii prosessista graafisen kuvauksen. Prosessin toimivuuden testaus Valmiista prosessikuvauksesta kannattaa luoda dokumentaatio DocGenTest1 -luokalla. Tästä on hyvä tarkistaa prosessin loogisesti oikea toiminta. Dokumentaatiogeneraattori myös parsii prosessikuvauksen, joten se tarkistaa samalla kuvauksen syntaksin suorittamatta itse prosessia. EtlToolTest2 -luokan avulla voidaan varmistua, että prosessin tulos on halutun kaltainen. Ks. Testien ajaminen. Ideoita SCD-toteutukseen Slowly Changing Dimensions on yksinkertaisinta toteuttaa siten, että Import toimenpiteelle annettavalla parametrillä määritellään taulun SCD-taso. Import toimenpiteet pitävät kopiota tällaisesta SCD:tä sisältävästä taulusta tietovarastoalueella ja lisäävät siihen aikadimension, mikäli lähdekannassa oleva aineisto on muuttunut. Itse ETL-prosessiin import toisi sitten joko snapshotin nykyisestä tilanteesta tai koko aikahistorian sisältävän taulun tietovarastoalueelta. Yksittäisten toimenpiteiden ei tarvitse huolehtia tällöin SCD:n olemassa olosta, mutta prosessin suunnittelijan on huomioitava aikadimension olemassa olo. Virheidenhallinta Virheelliset parametrit toimenpidekomponenteille Jos prosessin ajon aikaisissa argumenteissa on virhe, heittävät toimenpiteet moottorille java.lang.illegalargumentexception. Toistaiseksi moottoriin ei ole toteutettu toiminnallisuutta tämän tilanteen hallintaan. Prosessin ajo jatkuu siltä osin kun se on mahdollista, eli poikkeuksen heittäneestä toimenpiteestä riippuvia toimenpiteitä ei enää voida suorittaa. Virhetaulut Osaan toimenpiteistä on toteutettu tuki virhetauluille. Virhetauluihin tallennetaan data, joka Esimerkkinä on liitos-toimenpiteen erikoistapaukset, eli rivit, joita ei voi liittää annetun ehdon perusteella. Toimenpiteet palauttavat virhetaulut moottorille OperationResult-oliossa (errortablename -> SqlTable). Virhetaulun nimi (errortablename) konfiguroidaan prosessikuvaukseen. Virhetauluja ei
11 Sivu 11 (15) nykyisessä toteutuksessa käsitellä, mutta ne jäävät tietokantaan ajon jälkeen. Ohjeita lokien tulkintaan Järjestelmä käyttää lokien kirjoittamiseen JDK Logging -standardikirjastoa, joka on versiosta 1.4 alkaen osa J2SE:tä. Loki voidaan konfiguroida properties-tyylisellä tekstitiedostolla, tässä määritellään haluttava taso ja tulosteen muoto. Menettely mahdollistaa lokkauskäytännön ajonaikaisen vaihtamisen. Logi alustetaan seuraavasti: LogManager lm = LogManager.getLogManager(); try { // luetaan Properties-tyylinen konfiguraatio tiedostosta InputStream is = new FileInputStream("./build/com/aureolis/etltool/test/logging.properties"); lm.readconfiguration(is); is.close(); } catch (Exception e) { } Lokin käyttäminen Java-luokasta: import java.util.logging.*; public class Toimempide { // haetaan luokkakohtainen Logger-instanssi private static final Logger logger = Logger.getLogger(Toimenpide.class.getName()); // käyttö logger.log(level.severe, fataali virhe ); Käytetyt lokitasot ja selitteet
12 Taso FINER FINE INFO WARNING SEVERE Käyttötarkoitus Debug-tasoinen viesti Debug-tasoinen viesti Informatiivinen, tällä tasolla esimerkiksi SQL-lauseet Varoitus, esim. virhe syötedatassa Vakava virhe, järjestelmän toiminta estyy Sivu 12 (15) Dokumentaatiogeneraattori Dokumentaatiogeneraattori on toteutettu melko erillisenä komponenttina, mutta se käyttää prosessiparserin luomaa tietorakennetta dokumentaation rakentamiseen. Rajapinta on suunniteltu siten, että dokumentaation tuottava toiminnallisuus on vaihdettavissa. Tässä vaiheessa on toteutettu XML-muotoinen tekstitulostus (XMLComposer) lähinnä esimerkin omainen) ja graafinen Javan Swingillä ja JGraph-kirjastolla tehty esitys (JgraphComposer). Dokumentaatiogeneraattoriin on mahdollista liittää kuvaus taulurakenteista, mutta tämä vaatii (luonnollisesti) prosessin ajamisen. Importille ja Exportille kuvauskielessä määritellyt tauluformaatit liitetään mukaan automaattisesti, jos nämä on määritelty. Toteuttamiseen JGraph-kirjasto tuntuu varsin toimivalta, elementteihin voi helposti lisätä mm. eventtejä, jolloin kirjasto voisi olla hyvä lähtökohta graafisen käyttöliittymän tekemiseen prosessin määrittelyyn. Jatkokehitys ideana prosessikuvaukseen ulkoasu pitäisi saada toimimaan, Jgraphiin liittyy JgraphAddons-paketti, jossa on valmiita layoyt-algoritmeja. Näitä ei kuitenkaan ole saatu toimivaan, vaan koko prosessiverkko tulee päällekäin. Testaus Testien luonti Jokaista yksittäistä toimenpidekomponenttia sekä jokaista tiettyä toiminnallisuutta kohden on luotu / luodaan prosessikuvaus, joka kattaa toimenpiteen toimintavaihtoehdot, lähdeaineiston ja odotetun lopputuloksen. Hyväksytysti suoritetut prosessikuvaukset kootaan yhteen prosessikuvaukseen. Kun muutoksia ETL-työkaluun tehdään, tulee tämä koottu prosessikuvaus ajaa hyväksytysti ennen muutoksien viemistä versionhallintaan. Prosessikuvausten teko tapahtuu normaalisti ohjeen mukaan. Tietokantoihin luotava aineisto tehdään seuraavasti: Testausympäristöön luodaan setup-skripti, jossa määritellään kantaan luotavat taulut ja niihin sisällytettävä testidata. Setup-skriptissä määritellään myös kannan nimi, johon taulut ja data luodaan. Yhdellä skriptillä voidaan alustaa useita tietokantoja. Skriptin alussa on rivi :kannannimi, joka kertoo missä kannassa seuraavat SQL-lauseet suoritetaan. Kukin SQL-lause on oltava omalla rivillään, ts. esim. CREATE TABLE-lausetta ei saa jakaa useammalle riville. Esimerkki: :lahdekanta
13 Sivu 13 (15) CREATE TABLE Tyontekija (sotu CHAR(11), sukunimi VARCHAR(15), etunimi VARCHAR(10), palkka INTEGER, PRIMARY KEY (sotu)); CREATE TABLE Osasto (ot INTEGER, nimi VARCHAR(20), PRIMARY KEY (ot)); CREATE TABLE Tyossa (ot INTEGER, sotu CHAR(11), PRIMARY KEY (ot, sotu)); INSERT INTO Tyontekija VALUES (' G', 'Silakka', 'Seppo', 2630); INSERT INTO Tyontekija VALUES (' R', 'Kankkunen', 'Kalle', 1800); INSERT INTO Tyontekija VALUES (' ', 'Kesà mies', 'Keijo', 2370); INSERT INTO Tyontekija VALUES (' ', 'Vilkas', 'Ville', 2030); INSERT INTO Osasto VALUES (1, 'Hallinto'); INSERT INTO Osasto VALUES (2, 'Tuotanto'); INSERT INTO Osasto VALUES (3, 'Myynti'); INSERT INTO Osasto VALUES (4, 'Markkinointi'); INSERT INTO Osasto VALUES (5, 'Foobar'); INSERT INTO Tyossa VALUES (1, ' G'); INSERT INTO Tyossa VALUES (1, ' '); INSERT INTO Tyossa VALUES (2, ' R'); INSERT INTO Tyossa VALUES (3, ' '); INSERT INTO Tyossa VALUES (2, ' '); INSERT INTO Tyossa VALUES (8, ' '); Tietokantoihin luotava aineisto tehdään seuraavasti: Jokainen taulu tarkastetaan omalla taulu-sektiollaan. DATABASE-komento määrittää käytettävän tietokannan testiaineistonluontitiedoston tavoin. TABLE-sektio sisältää seuraavat komennot: - NAME määrittää taulun nimen - FIELDS määrittää, minkä tyyppisiä taulujen sarakkeet pitää olla - PRIMARY_KEY määrittää, mitkä sarakkeet kuuluvat primääriavaimeen - ROW määrittää minkälainen rivi taulustä täytyy löytyä Kaikki komennot ovat vapaaehtoisia, paitisi NAME tarvitaan, mikäli muita komentoja aiotaan käyttää. Komentojen parametrit erotellaan välilyönneillä tai sarkaimilla. Jos parametri sisältää välilyönnin, on käytettävä lainausmerkkejä. Lainausmerkit eivät sisälly parametrin arvoon. Esimerkki: DATABASE tietovarasto TABLE BEGIN NAME TyontekijoidenOsastot FIELDS sotu:varchar(11) sukunimi:varchar(15) etunimi:varchar(10) palkka:int ot:int nimi:varchar(20) # PRIMARY_KEY ot sot ROW R Kankkunen Kalle Tuotanto ROW Vilkas Ville Myynti ROW Vilkas Ville Tuotanto TABLE END Testien ajaminen Testit ajetaan EtlToolTest1 ja EtlToolTest2 työkalulla. EtlToolTest1 ottaa parametrikseen prosessikuvauksen nimen(esim. Testprocess.xml) ja lähdeaineiston luovan setupskriptin (esim. setup1.sql). EtlToolTest2 ottaa parametrikseen prosessikuvauksen nime( esim. Testprocess.xml), lähdeaineiston luovan setupskriptin (esim. setup1.sql) ja tarkistustiedoston nimen (esim. check.sql).
14 Sivu 14 (15) Hakemistorakenne Jokaiselle toimenpiteelle luodaan versionhallintajärjestelmään alihakemisto, kuten test/join, ja koottu testiprosessi hakemistoon test/all Hakemistot sisältävät esim. seuraavat tiedostot: configuration.xml Paikalinen, ei versionhallinnassa join1.xml Prosessikuvaus logging.properties Paikallinen, ei versionhallinnassa project.xml Projektikuvaus, jossa viittaukset prosessikuvaukseen ja konfiguraatioon setup1.sql Testausympäristön pysytykseen käytettävä tiedosto Xml-tiedostoissa olevat viittaukset skeemaan ovat../skema storm.xsd. Em. tiedostojen luonti on kuvattu aikaisemmin tässä dokumentissa. Ongelmatilanteiden selvittely Ohjelman suorituksen ongelmatilanteet Feb 21, :49:03 PM com.aureolis.etltool.processlanguage.xml.xmlprocessparser parsefile SEVERE: Unexpected parsing error: [2, 108] error while parsing <etl xmlns:xsi=" xsi:nonamespaceschemalocation="skema strom.xsd"> Virhe johtuu siitä, ettei XML-parseri löydä prosessikuvaustiedostossa määriteltyä skeemaa. Tarkista, että skema strom.xsd löytyy odotetusta paikasta, tässä esimerkissä samasta hakemistosta mistä työkalu on käynnistetty. Huomaa myös, että hakemistojen erotinmerkkinä on käytettävä Unixtyyliin / -merkkiä eikä Windows -tyylistä \ -merkkiä. Kannattaa myös harkita skeeman laittamista www-palvelimelle, jolloin siihen voi viitata joka paikasta samalla tavalla. Jatkokehitysideoita Moottori Rinnakkainen suoritus Moottori toimii tällä hetkellä siten, että se käynnistää kullakin hetkellä niin monta toimenpidettä yhtäaikaiseen ajoon, kun mahdollista. Tämä voi muodostua ongelmaksi monimutkaisessa prosessissa ja olisi mahdollisesti hyvä luoda jonkinlainen Thread-pool, joka hallinnoi yhtäaikaisesti ajossa olevia toimenpiteitä. Toimenpiteiden ajon seuranta Toimenpiderajapinnoissa on määritelty metodit (esim. getprogress()), joilla voidaan seurata
15 Sivu 15 (15) prosessin suorituksen edistymistä. Näitä ei kuitenkaan ole toistaiseksi toteutettu. Prosessin tilan seurata on ajateltu toteutettavan siten, että soveltuvilta osin toimenpide ylläpitää jonkinlaista laskuria välillä [0,1], jonka arvo pyydettäessä palautetaan moottorille. Jonkinlainen timeout-arvo toimenpiteille olisi varmasti myös hyvä mahdollisen jumiutumisen varalta. Toimenpiteet Indeksien käyttö Toimnepiteiden tukea indekseille pitäisi kehittää suorituskyvyn lisäämiseksi. Import-toimenpiteet osaavat lukea ja luoda indeksiejä. Mutta toimenpiteiden pitäisi osata käsitellä näitä järjevästi, mm. appendin osalta. Virhdeidenhallinta Virheidenhallintaa pitää parantaa, erityisesti virhetaulujen osalta, joita ei ole toteutettu toistaiseksi kuin Join ja Append-toimenpiteisiin. Convert/TypeCheck Toimenpide tarvitaan eri tietokantatyyppien tukemiseen samassa prosessissa, koska tietotyypit eroavat merkittävästi eri tietokannoissa. Sarakkeiden tyypit hallitaan siten, että jokaisella SqlTableinstanssilla on SqlTableFormat-attribuutti, joka kuvaa taulun sarakkeiden nimet, niiden tietotyypit ja mahdolliset indeksit. Sarakkeen tyyppi tallennetaan suoraan String-tyyppisenä joko sen mukaan mitä prosessikuvauksessa on määritelty tai mitä JDBC-ajuri palauttaa. Arkkitehtuurin perusteella tuntuisi, että tämä olisi parempi toteuttaa esim. moottorin palveluna, jota toimenpiteet kutsuvat, kuin erillisenä toimenpiteenä. Syynä tähän on se, että toimintoa tarvitaan silloin, kun kopioidaan dataa kahden tietokannan välillä. SqlTable-instanssi viittaa suoraan kantaan, eikä siihen voida tehdä muutoksia, ennen kuin se syöteään datan lukevalle toimenpiteelle. Toiminto pitää siis suorittaa suoraan esim. export tai copy-toimenpiteestä Toteutus Luodaan jonkinlainen konfiguroitava taulukko, joka määrittelee tietokannnoittain sarakkaiden vastaavuudet. Esim (mysql) tinyint = oracle num(2). Toiminto lisätään moottorin palveluksi siten, että EngineServies-rajapintaan lisätään metodi taulun formaatin konvertoimiseksi. Metodi SqlTableFormat-instanssin, joka sisältää muunnetut saraketyypit. Toimenpide tietää ajonaikana käsittelemiensä tietokantojen tyypit (voidaan kysyä SqlTable.getDatabase()-luokalta) ja osaa välittää tarvittavat parametrit Convert/TypeCheckille. Toimenpiteen vastuulle jää tämän jälkeen mahdollisten epäyhteensopivuuksien tunnistaminen syötedatassa.
Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua
T-76.115 Testiraportti TR-3. ETL-työkalu
T-76.115 Testiraportti TR-3 ETL-työkalu ExtraTerrestriaLs Versio Päivämäärä Tekijä Kuvaus 1.0 14.03.05 Risto Kunnas Ensimmäinen versio 1.1 15.03.05 Risto Kunnas Korjauksia Sivu 1 / 14 Sisällysluettelo
T-76.115 Testiraportti TR-2. ETL-työkalu
T-76.115 Testiraportti TR-2 ETL-työkalu ExtraTerrestriaLs Versio Päivämäärä Tekijä Kuvaus 1.0 07.02.05 Risto Kunnas Ensimmäinen versio 1.1 08.02.05 Risto Kunnas Lisätty liitteet Sivu 1 / 11 Sisällysluettelo
T Testitapaukset TC-1
T-76.115 Testitapaukset TC-1 ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 1.0 18.11.2004 Risto Kunnas Testitapaukset ensimmäistä iteraatiota varten 1.1 26.11.2004 Risto Kunnas
Valppaan asennus- ja käyttöohje
Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi
ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä
ETL-DEMO Esimerkki ETL-kuvauskielen käyttöstä Lähtötilanne Organisaation operatiivisessa kannassa dataa, jota halutaan varastoida ja jalostaa Päätetään mihin muotoon jalostettu data halutaan tietovarastossa
Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004
Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004
Simulaattorin asennus- ja käyttöohje
Linux ja Windows XP Versio Päiväys Muokkaaja Kuvaus 0.2 16.2.2006 Mikko Halttunen Katselmoinin jälkeen 0.1 13.2.2006 Mikko Halttunen Alustava versio Sisällysluettelo 1 Johdanto... 3 2 Simulaattorin asennus...
8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen
CVS Versionhallintajärjestelmä Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen Käytetään komentoriviltä, myös graafisia käyttöliittymiä saatavilla CVS Kaikki tiedostot
8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas
Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä
5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LINUX-HARJOITUS, MYSQL
LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie
Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
Taulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
Tietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant
AgilElephant Tekijä: Petri Kalsi Omistaja: ElectricSeven Dokumentti:.doc Päiväys: 15.03.2005 Aihe: Sivu 1 of 6 Dokumenttihistoria Muutoshistoria Revision Revision Yhteenveto muutoksista Revision tekijä
Rajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)
HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n
Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.
TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO
Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely
Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva
Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.
Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa
TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
Sisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
T-76.115 Vaatimusmäärittelydokumentti. ETL-työkalu
T-76.115 Vaatimusmäärittelydokumentti ETL-työkalu (Aureolis Oy) Sivu 1 (20) T-76.115 Vaatimusmäärittelydokumentti ETL-työkalu ExtraTerrestriaLs Versio Pvm Tekijä 0.1 19.10.2004 Jani Malmi Alustava versio
Luento 4. Timo Savola. 21. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto
HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32
HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu
Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
P e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä
Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä
Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Käyttöohje Boa Open Access Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari Heikkinen
Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)
SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert
SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010
SQLite selvitysraportti Juha Veijonen, Ari Laukkanen, Matti Eronen Maaliskuu 2010 Opinnäytetyö Kuukausi Vuosi 1 SISÄLTÖ 1. YLEISTÄ SQLITE:STA... 2 2. HISTORIA... 2 3. SQLITEN KÄYTTÖ... 3 3.1 SQLiten asennus
Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
Toinen harjoitustyö. ASCII-grafiikkaa 2017
Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito
Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
18 LIITTYMÄT MUIHIN JÄRJESTELMIIN
18 MUIHIN JÄRJESTELMIIN Prospekti DAFOon rakennettu liittymiä muiden ohjelmiston toimittajien järjestelmiin. Tässä yhteydessä ei tarkoiteta siirtotiedoston muodostamista, kuten reskontraan siirto tai lappujen
Hakemistojen sisällöt säilötään linkitetyille listalle.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ
Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2
Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011
1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen
IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.
1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS
Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014
18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,
ASENNUS- JA KÄYTTÖOHJE
ASENNUS- JA KÄYTTÖOHJE YKSIKKÖHINTA SOPIMUKSEN TOTEUTUNEET MÄÄRÄT-SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. KÄYTTÖOHJE SIVU 2 (12) SISÄLLYSLUETTELO
BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä
Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin
Olio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
JUnit ja EasyMock (TilaustenKäsittely)
OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip
Sisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
Pedacode Pikaopas. Web-sovelluksen luominen
Pedacode Pikaopas Web-sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Netbeans-työkalulla luodaan uusi yksinkertainen web-sovellus ja testataan sen toiminta. Opas kattaa kaiken aiheeseen
Harjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Kieliversiointityökalu Java-ohjelmistoon. Ohje
Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5
Eclipse 3.1 Pikaopas versio 1.0
Anne Benson/Tanja Bergius Opintojaksojen atk84d ja ict02d käyttöön 1/17 Eclipse 3.1 Pikaopas versio 1.0 Pikaohjeen sisältö 1. Esittely 2. Asennus ja poistaminen 3. Sovelluskehitys 4. Sovelluksen toteutus
Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja
Lohtu-projekti Ylläpitäjän dokumentti Versiohistoria: 1.0 12.5.2003 Ensimmäinen versio Andreas Asuja Helsinki 12. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja, Mari Muuronen, Seppo Pastila, Virve Taivaljärvi
DOORSin Spreadsheet export/import
DOORSin Spreadsheet export/import 17.10.2006 SoftQA Oy http/www.softqa.fi/ Pekka Mäkinen Pekka.Makinen@softqa.fi Tietojen siirto DOORSista ja DOORSiin Yhteistyökumppaneilla ei välttämättä ole käytössä
Jypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,
Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC. mika.suvanto@csc.fi 3.9.2009
Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla Mika Suvanto, CSC mika.suvanto@csc.fi 3.9.2009 Mitä se tekee? kaksi perustoimintoa: valvoo Haka-palveluiden toimintaa kirjautumalla niihin
Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:
Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3
AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative
Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta
Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset
Sisällys. 14. Poikkeukset. Johdanto. Johdanto
Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.
HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10
HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
14. Hyvä ohjelmointitapa 14.1
14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen
Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36
!!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat
Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0
TESTIRAPORTTI - XMLREADER LUOKKA i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen
20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
Ohjelmoinnin perusteet, syksy 2006
Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3