Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Samankaltaiset tiedostot
Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

T Testitapaukset TC-1

Valppaan asennus- ja käyttöohje

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

T Testiraportti TR-2. ETL-työkalu

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

T SEPA - päiväkirja: Design Patterns. ETL työkalu

4. Luokan testaus ja käyttö olion kautta 4.1

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

T Vaatimusmäärittelydokumentti. ETL-työkalu

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

P e d a c o d e ohjelmointikoulutus verkossa

Oracle ebs versionvaihto OUGF seminaari / Jyrki Koski Oy Abase Consulting Ab

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Olio-ohjelmointi Javalla

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC

Simulaattorin asennus- ja käyttöohje

T Testiraportti TR-3. ETL-työkalu

Visma Software Oy

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

6 XML-työkalut 1. 6 XML-työkalut

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Visma Nova Webservice Versio 1.1 /

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

12. Näppäimistöltä lukeminen 12.1

LINUX-HARJOITUS, MYSQL

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Viestit-palvelun viranomaisliittymän ohjelmointiohje. Java-esimerkki

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

8. Näppäimistöltä lukeminen 8.1

Rajapinta (interface)

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

T Testiraportti - integraatiotestaus

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Tietokannat II -kurssin harjoitustyö

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: Projekti : AgileElephant

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

Java-kielen perusteet

Web Services tietokantaohjelmoinnin perusteet

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

1 Tehtävän kuvaus ja analysointi

KOHDELUOKAN MÄÄRITTELY

Testidatan generointi

Harjoitustyö: virtuaalikone

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

T Vaatimusmäärittely

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Metodien tekeminen Javalla

Lyhyt kertaus osoittimista

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

9. Periytyminen Javassa 9.1

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

ITKP102 Ohjelmointi 1 (6 op)

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Uutta Remote Support Platform 3.1 -versiossa

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Tik Projektiryhmä: TeamAhma.

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Testitapaukset - Siirtoprotokolla

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

815338A Ohjelmointikielten periaatteet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

5. HelloWorld-ohjelma 5.1

Toinen harjoitustyö. ASCII-grafiikkaa

8. Näppäimistöltä lukeminen 8.1

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

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

7. Oliot ja viitteet 7.1

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

T Testiraportti - järjestelmätestaus

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Sisältö. 22. Taulukot. Yleistä. Yleistä

Transkriptio:

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 0.4 07.02.2005 Timo Sallinen Pieniä lisäyksiä 0.5 07.02.2005 Mikko Ruokojoki Ulkoasun korjauksia ja otsikoinnin muokkausta

Sisällysluettelo Johdanto... 3 Yleiskuvaus pakettihierarkiasta... 3 ETL-työkalun asennus...3 Uuden tietokantatyypin lisäys työkaluun... 3 Uuden toimenpiteen luominen... 4 Kuvauskielen muokkauksen tarkistuslista... 4 Uuden prosessin luonti...5 Prosessin toimivuuden testaus... 5 Ideoita SCD-toteutukseen... 5 Virheidenhallinta...5 Ohjeita lokien tulkintaan...5 Ongelmatilanteiden selvittely...6 Ohjelman suorituksen ongelmatilanteet... 6

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.docgen - Dokumentaatiogeneraattori com.aureolis.etltool.test Järjestelmätason testausluokat ETL-työkalun asennus [Kesken: kääntämiselle luodaan ant-skripti, jonka kautta käännös saadaan suoritettua helposti.] 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ä 3. Kääntäminen Käynnistysparametrit: alustus.sql prosessi.xml alustus.sql alustaa kannan testidatalla ja luo tarvittaessa n kpl tauluja prosessi.xml-tiedostossa määritellään viittaus konfiguraatiotiedostoon (tietokantayhteydet) ja prosessikuvaustiedostoon. 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 vakioit, joiden perusteella voidaan testata, mitä tietokantatyyppiä tietty yhteys tai taulu edustaa. Implementaatiossa on varauduttu myös alityyppeihin. 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 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. Jos kyseessä on ETL-työkaluun kuuluva yleiskäyttöinen toimenpidekomponentti, tee tarvittavat muutokset kuvauskieleen ja lataajakomponenttiin. 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. Uuden prosessin luonti Prosessin toimivuuden testaus Ideoita SCD-toteutukseen Virheidenhallinta 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 { 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: log = Logger.getLogger(Luokka.class.getName());

Lokkaustasot ja selitteet Taso FINER FINE INFO WARNING SEVERE Käyttötarkoitus Debug-tasoinen viesti Debug-tasoinen viesti Informatiivinen, tällä tasolla esimerkiksi SQL-lauseet Varoitus, esim. Vakava virhe, järjestelmän toiminta estyy Testien ajaminen Toimenpidekomponenttien testaaminen Järjestelmätestaus Ongelmatilanteiden selvittely Ohjelman suorituksen ongelmatilanteet On käynyt ilmi, että xml-konfiguraatiotiedostoissa viittaus skeeman pitää olla tietyssä muodossa. Viittauksen pitää olla absoluuttinen, muuten sovelluksen käynnistys kuolee ko. tiedoston validointiin, koska Xerces-parseri ei löydä skeemaa. Esimerkki Windows-ympäristössä: <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="c:\etl\etlschema.xsd"/> Unix-ympäristö: <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="/home/etl/etlschema.xsd"/>