}w !"#$%&'()+,-./012345
Masarykova univerzita Fakulta informatiky
Datov´ a federace za pouˇ zit´ı JBoss Teiid pro mal´ y podnik
´ pra ´ ce Diplomova
Petr Stˇ r´ıbn´ y
Brno, podzim 2014
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze tato diplomov´a pr´ace je m´ ym p˚ uvodn´ım autorsk´ ym d´ılem, kter´e jsem vypracoval samostatnˇe. Vˇsechny zdroje, prameny a literaturu, kter´e jsem pˇri vypracov´ an´ı pouˇz´ıval nebo z nich ˇcerpal, v pr´aci ˇr´adnˇe cituji s uveden´ım u ´pln´eho odkazu na pˇr´ısluˇsn´ y zdroj.
Petr Stˇr´ıbn´ y
Vedouc´ı pr´ ace: doc. RNDr. Tom´aˇs Pitner, Ph.D. ii
Podˇ ekov´ an´ı Dˇekuji vedouc´ımu pr´ ace doc. RNDr. Tom´aˇsi Pitnerovi, Ph.D. a konzultantovi pr´ ace RNDr. Filipu Nguyenovi za vˇecn´e rady a pˇripom´ınky a Ing. Tom´aˇsi Knettigovi a Ing. Tom´ aˇsi Kiedroˇ novi z firmy K-net za spolupr´aci. Tak´e dekuji m´e rodinˇe za velkou podporu pˇri m´em studiu.
iii
Shrnut´ı Smyslem t´eto pr´ ace je pˇredstaven´ı n´astroje JBoss Teiid pro federaci dat v prostˇred´ı mal´eho podniku. Mˇela by uk´azat, jak JBoss Teiid do takov´eho podniku zav´est a poskytnout n´avody pro ˇreˇsen´ı integraˇcn´ıch sc´en´aˇr˚ u. Kromˇe toho by tak´e mˇela poskytnout vod´ıtko, kdy a v jak´ ych pˇr´ıpadech je vhodn´e tento n´ astroj pouˇz´ıt.
iv
Abstract The purpose of this thesis is to introduce JBoss Teiid for data federation in a small company. It should present the way to deploy JBoss Teiid in such environment and provide tutorials of integration scenarios. It should also discuss cases where the use of this tool is suitable.
v
Kl´ıˇ cov´ a slova datov´ a virtualizace, integrace dat, Teiid, Teiid Designer, datab´aze, business intelligence
vi
Obsah 1
´ Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2
Pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.1
Business intelligence . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Datov´ a integrace . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.3
Datov´ a virtualizace . . . . . . . . . . . . . . . . . . . . . . . .
6
2.4
Datov´ a federace . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Integrace dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.1
Datov´ y sklad . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.2
Federovan´ y datab´ azov´ y syst´em . . . . . . . . . . . . . . . . .
11
Podnik K-net . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
4.1
Poˇzadavky na integraci dat . . . . . . . . . . . . . . . . . . .
16
4.1.1
Integrace CSV soubor˚ u . . . . . . . . . . . . . . . . .
17
4.1.2
Integrace dat z relaˇcn´ıch datab´az´ı . . . . . . . . . . .
17
4.1.3
Integrace dat z pohledu business intelligence
. . . . .
18
N´ avrh datov´ e federace ve spoleˇ cnosti K-net . . . . . . . . . ´ 5.1 Uvod do JBoss Teiid . . . . . . . . . . . . . . . . . . . . . . .
19
3
4
5
5.1.1 5.2
5.3
5.4
5.5
19
Teiid Designer . . . . . . . . . . . . . . . . . . . . . .
21
Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.2.1
Teiid . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
5.2.2
Teiid Designer . . . . . . . . . . . . . . . . . . . . . .
25
5.2.3
Zaloˇzen´ı nov´eho projektu . . . . . . . . . . . . . . . .
26
5.2.4
Pˇrid´ an´ı Teiid serveru . . . . . . . . . . . . . . . . . . .
29
Reˇsen´ı integrace CSV soubor˚ u. . . . . . . . . . . . . . . . . .
31
5.3.1
Definov´ an´ı zdroj˚ u. . . . . . . . . . . . . . . . . . . . .
31
5.3.2
Spojen´ı dat . . . . . . . . . . . . . . . . . . . . . . . .
38
Reˇsen´ı integrace datab´az´ı . . . . . . . . . . . . . . . . . . . .
44
5.4.1
Definov´ an´ı zdroj˚ u. . . . . . . . . . . . . . . . . . . . .
44
5.4.2
Spojen´ı dat . . . . . . . . . . . . . . . . . . . . . . . .
50
Vystaven´ı dat . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
5.5.1
Vytvoˇren´ı virtu´aln´ı datab´aze . . . . . . . . . . . . . .
52
5.5.2
Zobrazen´ı dat v programu Excel . . . . . . . . . . . .
56 1
5.6
Technick´e z´ azem´ı a provoz syst´emu . . . . . . . . . . . . . . .
60
Z´ avˇ er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
Pˇr´ılohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
A Pouˇ zit´ e soubory . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
6
2
´ 1 Uvod V posledn´ı dobˇe je mnohem snaˇzˇs´ı sb´ırat a uchov´avat informace. To je d´ano t´ım, ˇze vˇetˇsina informac´ı je dnes ve firm´ach uchov´av´ana a zpracov´av´ana elektronicky. A protoˇze podniky z legislativn´ıch, operativn´ıch nebo marketingov´ ych d˚ uvod˚ u data typicky nemaˇzou, jejich poˇcet d´ale roste. Zat´ımco uchov´ avat data nen´ı tˇeˇzk´e, z´ıskat z nich cenn´e u ´daje a vyuˇz´ıt je pro lepˇs´ı ˇr´ızen´ı spoleˇcnosti je pomˇernˇe obt´ıˇzn´ yu ´kol. Informace totiˇz poch´az´ı z r˚ uzn´ ych zdroj˚ u a pˇrich´ az´ı v r˚ uzn´ ych podob´ach. Nˇekter´e jsou strukturovan´e, jin´e ne. Soubory a datab´ aze se nach´azej´ı na r˚ uzn´ ych m´ıstech a pˇr´ıstup k nim je odliˇsn´ y. Zat´ımco vˇetˇs´ı podniky mohou vyuˇz´ıt ˇsirokou nab´ıdku standardn´ıch business intelligence ˇreˇsen´ı od firem jako Oracle ˇci SAP, menˇs´ı firmy ˇcasto nemaj´ı na implementaci takov´ ych syst´em˚ u pen´ıze. Nav´ıc v´ yhody tˇechto syst´em˚ u ani nedok´ aˇz´ı vyuˇz´ıt, protoˇze dat maj´ı ˇr´adovˇe m´enˇe a staˇc´ı jim z´akladn´ı funkce pro integraci dat. V posledn´ıch letech vˇsak na trhu vznikla cel´a ˇrada produkt˚ u, kter´e pˇrin´ aˇs´ı nov´e postupy a n´astroje a zamˇeˇruj´ı se nab´ıdkou i cenami na menˇs´ı firmy. Jedn´ım z trend˚ u pro business intelligence jsou napˇr´ıklad programy poskytovan´e jako sluˇzba, oznaˇcovan´e tak´e jako Software as a Service [1]. V´ yhodou b´ yv´ au ´spora n´aklad˚ u, ale nev´ yhodou to, ˇze je potˇreba data svˇeˇrit tˇret´ı stranˇe. Podniky, a to zejm´ena ty, kter´e maj´ı jiˇz sv´e IT oddˇelen´ı, si ale mohou vytvoˇrit takov´ y syst´em sv´epomoc´ı. K tomu je moˇzn´e vyuˇz´ıt i volnˇe dostupn´e programy, za kter´e nen´ı nutn´e platit ˇz´adn´e poplatky. Samozˇrejmˇe kaˇzd´a integrace dat znamen´ a urˇcit´e n´aklady na vytvoˇren´ı a u ´drˇzbu syst´emu, kter´ y data bude integrovat, ale u ´spora za n´akup nebo pron´ajem software m˚ uˇze b´ yt obrovsk´ a. Podnˇet ke vzniku t´eto pr´ace dala firma K-net, kter´a by r´ada automatizovala vytv´ aˇren´ı nˇekter´ ych sv´ ych report˚ u. Tyto reporty se moment´alnˇe mus´ı vytv´ aˇret ruˇcnˇe a ˇcasto se jedn´a o data poch´azej´ıc´ı z r˚ uzn´ ych zdroj˚ u. Tato pr´ ace proto diskutuje r˚ uzn´e pˇr´ıstupy k tvorbˇe syst´em˚ u pro business intelligence a integraci dat a pˇredstavuje JBoss Teiid jako jeden z program˚ u, kter´e mohou firmy pro tvorbu tˇechto syst´em˚ u pouˇz´ıt. Popsan´ y je princip, na jak´em 3
´ 1. Uvod Teiid funguje a pˇredstaveny jsou i souvisej´ıc´ı n´astroje, zejm´ena n´astroj pro datov´e modelov´ an´ı. Hlavn´ım smyslem pr´ ace je pak poskytnout firmˇe K-net n´avody pro ˇreˇsen´ı re´ aln´ ych integraˇcn´ıch sc´en´ aˇr˚ u pr´avˇe pomoc´ı programu Teiid. Pro integraci a vystaven´ı dat byl pouˇzit n´ astroj pro vizu´aln´ı modelov´an´ı a jednotliv´e n´avody jsou ilustrov´ any pomoc´ı sn´ımk˚ u obrazovek. Kromˇe toho pr´ace obsahuje i podrobn´ y postup instalace a diskutuje i provoz takov´eho syst´emu.
4
2 Pojmy 2.1
Business intelligence
Business intelligence (d´ ale tak´e jako BI) je sada technik, postup˚ u, n´astroj˚ u a aplikac´ı, kter´e slouˇz´ı podnik˚ um k lepˇs´ımu pochopen´ı trh˚ u, konkurence a tak´e podniku samotn´eho [35]. Zab´ yv´a se sbˇerem, anal´ yzou a poskytov´an´ım obchodn´ıch informac´ı v r˚ uzn´ ych podob´ach. Typick´ ymi uˇzivateli jsou ˇr´ıd´ıc´ı pracovn´ıci (management) a analytici. ˇ Casto se n´ astroje BI rozdˇeluj´ı na n´astroje pro reportov´an´ı a n´astroje pro analytiku [37]. Zat´ımco reportov´an´ı se zab´ yv´a pˇrev´aˇznˇe kontrolou r˚ uzn´ ych metrik (napˇr. zda se naplnil finanˇcn´ı pl´an, kontrola doch´azky zamˇestnanc˚ u apod.), analytick´e n´ astroje se zamˇeˇruj´ı na sloˇzitˇejˇs´ı dotazy, predikce, ˇr´ızen´ı rizik a r˚ uzn´e dalˇs´ı odhady.
2.2
Datov´ a integrace
Integrace je proces kombinov´an´ı ˇc´ast´ı k vytvoˇren´ı nˇejak´eho nov´eho celku1 . Datov´ a integrace je proces, ve kter´em se vytv´aˇr´ı sjednocen´ y pohled na data, ˇ kter´ a existuj´ı v r˚ uzn´ ych podob´ach. Casto takov´a data poch´az´ı z tzv. heterogenn´ıch zdroj˚ u, tedy zdroj˚ u pouˇz´ıvaj´ıc´ıch rozd´ıln´e zp˚ usoby ukl´ad´an´ı a pˇr´ıstupu k dat˚ um. M˚ uˇze se tedy jednat o soubor form´atu CSV, XML soubor, ale tak´e datab´ azov´ y server (SQL2 [36] i NOSQL3 ). Mezi ˇcinnosti datov´e integrace patˇr´ı: •
Spojov´ an´ı dat: slouˇcen´ı stejn´eho typu dat z r˚ uzn´ ych datab´azov´ ych tabulek ˇci soubor˚ u nebo jejich propojen´ı na z´akladˇe nˇejak´eho spoleˇcn´eho kl´ıˇce (typicky kolekce atribut˚ u, kter´e se mus´ı pro relevantn´ı z´ aznamy shodovat).
1. Term´ın integrace je odvozen z latinsk´eho slova integer (cel´ y, celek). 2. Structured Query Language je dotazovac´ı jazyk nejˇcastˇeji pouˇz´ıv´ an pro komunikaci s datab´ azov´ ym serverem. 3. Term´ın NOSQL (nˇekdy interpretov´ an jako Not SQL nebo Not only SQL oznaˇcuje postupy a technologie pro modelov´ an´ı a ukl´ ad´ an´ı dat jinak neˇz do relaˇcn´ıch tabulek. Mezi NOSQL datab´ aze patˇr´ı zejm´ena dokumentov´e, grafov´e a tzv. key-value datab´ aze.
5
2. Pojmy •
Transformace dat: zahrnuje ˇcinnosti jako sjednocen´ı form´atu napˇr´ıˇc v´ ysledn´ ymi daty, slouˇcen´ı ˇci rozdˇelen´ı sloupc˚ u v datab´azov´e tabulce apod. ˇ stˇ Ciˇ en´ı dat: opravov´an´ı chybnˇe zadan´ ych hodnot, odstraˇ nov´an´ı du-
•
plicitn´ıch z´ aznam˚ u, doplnˇen´ı chybˇej´ıc´ıch informac´ı. Datov´ a integrace obecnˇe nedefinuje, jak ke spojen´ı dat pˇresnˇe dojde.
2.3
Datov´ a virtualizace
V informatice se pojmem virtualizace rozum´ı takov´e principy a zp˚ usoby pˇr´ıstupu k fyzick´ ym zdroj˚ um, kter´e je abstrahuj´ı do nˇejak´eho jin´eho, logick´eho celku. Umoˇzn ˇuje ke zdroj˚ um pˇristupovat bez znalosti technick´ ych detail˚ u jejich rozhran´ı a nutnosti zn´at jejich fyzick´e um´ıstˇen´ı. Prvn´ı pˇr´ıkladem virtualizace ve svˇetˇe poˇc´ıtaˇc˚ u byl zp˚ usob logick´eho rozdˇelen´ı zdroj˚ u pro r˚ uzn´e programy s´alov´ ych poˇc´ıtaˇc˚ u (tzv. mainframe) v ˇsedes´ at´ ych letech dvac´ at´eho stolet´ı [32]. Dnes se virtualizuj´ı pamˇeti, souborov´e syst´emy, operaˇcn´ı syst´emy, poˇc´ıtaˇcov´e s´ıtˇe, ale i aplikace a data. Datov´ a virtualizace je druh virtualizace, kter´a vytv´aˇr´ı mezivrstvu mezi koncovou aplikac´ı a datov´ ymi zdroji. Samotn´a aplikace nemus´ı vˇedˇet, na kter´ ych serverech jsou data um´ıstˇen´a, v jak´em form´atu jsou uloˇzena a jak´ ym API4 jsou ˇctena a upravov´ ana. Ke vˇsem dat˚ um se pˇristupuje, jako by byly souˇc´ ast´ı jedn´e datab´ aze. Datov´ a virtualizace m˚ uˇze, ale i nemus´ı zahrnovat abstrakci a integraci dat.
2.4
Datov´ a federace
Slovo federace poch´ az´ı z latinsk´ ych slov foedus a foederis, v´ yznamem bl´ıˇz´ıc´ı se k term´ın˚ um smlouva, kontrakt. Nejˇcastˇeji j´ım oznaˇcujeme pˇr´ıpad, kdy spolu spolupracuj´ı objekty, pracuj´ıc´ı nez´avisle na sobˇe, kter´e tvoˇr´ı urˇcit´ y celek. 4. Application programming interface (API) je specifikace, kter´ a urˇcuje, jak spolu jednotliv´e programy nebo ˇca ´sti programu komunikuj´ı.
6
2. Pojmy Datov´ a federace je zapojen´ı autonomnˇe funguj´ıc´ıch heterogenn´ıch datov´ ych ˇci datab´ azov´ ych server˚ u a jin´ ych zdroj˚ u dat, kter´a jsou integrov´ana a koncov´emu uˇzivateli (programu) prezentov´ana jako jeden datov´ y zdroj, priˇcemˇz k integraci dat doch´az´ı aˇz na poˇz´ad´an´ı (tj. aˇz pˇri posl´an´ı dotazu). Datov´ a federace implikuje zapojen´ı v´ıce neˇz jednoho datov´eho zdroje. Federace dat m˚ uˇze b´ yt souˇc´ast´ı virtualizace dat, z´aroveˇ n vˇsak kaˇzd´a datov´a federace implikuje existenci virtualizace dat.
7
3 Integrace dat 3.1
Datov´ y sklad
Datov´ y sklad, v angliˇctinˇe oznaˇcovan´ y jako data warehouse nebo enterprise data warehouse, je centr´aln´ı syst´em uloˇzen´ı firemn´ıch dat, kter´ y slouˇz´ı pˇredevˇs´ım pro reportov´ an´ı a anal´ yzu dat. D˚ uvody, proˇc pouˇz´ıt centr´aln´ı sklad pro generov´an´ı report˚ u a vytv´aˇren´ı anal´ yz: •
Produkˇcn´ı syst´emy vˇzdy neukl´adaj´ı historick´a data. Naproti tomu pˇri pouˇzit´ı prediktivn´ıch algoritm˚ u a vytv´aˇren´ı statistik jsou i tato data d˚ uleˇzit´ a.
•
Reporty jsou generov´any z jednoho zdroje. To zajiˇstuje konzistenci a sniˇzuje riziko v´ ypadku.
•
Analytick´e dotazy neovlivˇ nuj´ı produkˇcn´ı prostˇred´ı (napˇr. zpomalen´ı vlivem sloˇzit´ ych dotaz˚ u), datab´aze pro produkci a reporting mohou m´ıt implementov´ any jin´e indexy apod.
•
Extern´ı data (napˇr. meteorologick´a data pro zkoum´an´ı vlivu poˇcas´ı na prodej) mohou b´ yt naˇctena pouze pro potˇreby anal´ yz, nen´ı potˇreba, aby byla souˇc´ ast´ı provozn´ıch syst´em˚ u. William H. Inmon ve sv´e knize Building the Data Warehouse [34] po-
psal z´ akladn´ı kameny datov´eho skladu a term´ın datov´ y sklad definoval: A ” data warehouse is a subject-oriented, integrated, time-variant, nonvolatile collection of data in support of management’s decision-making process“. Volnˇe pˇreloˇzeno: Datov´ y sklad je subjektovˇe orientovan´a5 , integrovan´a, st´al´a6 a ˇcasovˇe rozliˇsiteln´ a, trval´ a kolekce dat podporuj´ıc´ı manaˇzersk´e ˇr´ızen´ı. To znamen´ a, ˇze v datov´em skladu jsou uchov´av´ana vˇsechna data podniku, tˇr´ıdˇen´ a podle typu dat a obsahuj´ı jak aktu´aln´ı, tak historick´e z´aznamy. 5. Data stejn´eho typu jsou uloˇzena spoleˇcnˇe, napˇr. informace o lidech z r˚ uzn´ ych syst´em˚ u jsou spojeny do jedn´e tabulky. 6. Datov´ y sklad je aktualizov´ an periodicky, ne kontinu´ alnˇe. To znamen´ a, ˇze pokud si v´ıce lid´ı pˇred sch˚ uz´ı vygeneruj´ı stejn´ y report, budou v nˇem m´ıt stejn´ a data.
8
3. Integrace dat Podnikov´ a data se proto pˇred uloˇzen´ım do datov´eho skladu mus´ı integrovat a pˇred-zpracovat a mus´ı se do nˇej nahr´avat pravidelnˇe. Data v nˇem jsou pak uˇzivatelsky nemˇeniteln´ a, coˇz znamen´a, ˇze takov´ y sklad nen´ı pˇr´ım´ ym tv˚ urcem dat. Jeden z nejpouˇz´ıvanˇejˇs´ıch proces˚ u pˇr´ıpravy dat pro datov´ y sklad je ETL: extract, transform, load (extrahovat, transformovat, nahr´at). Tento term´ın je zjednoduˇsuj´ıc´ı, protoˇze naznaˇcuje, ˇze proces obsahuje pouze tˇri f´aze, popˇr. ˇze tyto f´ aze jsou od sebe striktnˇe oddˇelen´e. To vˇsak nen´ı pravda a v praxi tˇechto f´ az´ı m˚ uˇze b´ yt mnohem v´ıc a mohou se navz´ajem prol´ınat. F´ aze extrakce ETL procesu se zab´ yv´a z´ısk´av´an´ım dat z r˚ uzn´ ych datov´ ych zdroj˚ u. Naˇcteno je typicky v´ıce dat neˇz je potˇreba, protoˇze v t´eto f´azi se nev´ı, jak´ a data budou ve v´ ysledku potˇreba. Frekvence extrakce se pak liˇs´ı napˇr´ıˇc r˚ uzn´ ymi zdroji, od dn˚ u/hodin aˇz po naˇc´ıt´an´ı dat skoro v re´aln´em ˇcase. Ke kaˇzd´emu oddˇelen´ı v podniku a jejich syst´em˚ um se tak pˇristupuje individu´ alnˇe, podle skuteˇcn´ ych potˇreb. Posl´eze doch´ az´ı k transformaci dat, mˇen´ı se sch´ema, data se ˇcist´ı a integruj´ı. To se m˚ uˇze d´ıt na cestˇe mezi r˚ uzn´ ymi u ´loˇziˇsti nebo pˇr´ımo v operativn´ım u ´loˇziˇsti dat (viz d´ ale). ETL se realizuje jako sada skript˚ u, kter´e vyuˇz´ıvaj´ı specializovan´e softwarov´e n´ astroje. Mezi souˇcasn´e nejzn´amˇejˇs´ı ETL produkty patˇr´ı napˇr. Informatica PowerCentre [10], SAS Data Management [23], IBM Infosphere Information Server [8] a Oracle Warehouse Builder [20]. Pˇri budov´ an´ı datov´eho skladu se ˇcasto vyuˇz´ıv´a nˇekolika dalˇs´ıch mezisklad˚ u. Data pak putuj´ı za pomoc´ı ETL z jednoho meziskladu do druh´eho, aˇz doraz´ı do fin´ aln´ıho datov´eho skladu. Pˇr´ıklady takov´ ych mezisklad˚ u: •
Doˇ casn´ e u ziˇ stˇ e dat (data staging area) je m´ısto, kde jsou kop´ı´ loˇ rovan´ a vˇsechna produkˇcn´ı data pˇred t´ım, neˇz se zaˇcnou transformovat, ˇcistit a integrovat. Pokud se napˇr. poloˇzky v produkˇcn´ı datab´azi rychle mˇen´ı a k pˇresunu dat do datov´eho skladu doch´az´ı jen jednou t´ ydnˇe, pom˚ uˇze doˇcasn´e u ´loˇziˇstˇe takov´e poloˇzky neztratit.
•
Operativn´ı u ziˇ stˇ e dat (operational data store) shromaˇzd’uje jiˇz ´ loˇ integrovan´ a a vyˇciˇstˇen´a data, kter´a mohou b´ yt vyuˇzita i jin´ ymi sys9
3. Integrace dat t´emy v podniku. •
Datov´ e trˇ ziˇ stˇ e (data mart) stoj´ı mezi datov´ ym skladem a koncov´ ymi BI aplikacemi. Shromaˇzd’uje pouze nˇejakou logickou podmnoˇzinu dat z datov´eho skladu, kter´a je spoleˇcn´a specifick´ ym n´astroj˚ um a aplikac´ım, kter´e je pouˇz´ıvaj´ı. Data mohou b´ yt uloˇzena agregovanˇe a pˇr´ıstup k nim optimalizov´an pro konkr´etn´ı konzumenty. Datov´e trˇziˇstˇe je uˇziteˇcn´e zejm´ena ve chv´ıli, kdy datov´ y sklad je pˇr´ıliˇs velk´ y a z´ısk´av´ an´ı dat pomal´e.
Pˇri budov´ an´ı BI ˇreˇsen´ı pomoc´ı ETL nemus´ı b´ yt vˇzdy pouˇzity vˇsechny typy datov´ ych uloˇziˇst’. Je moˇzn´e, ˇze organizace nevyuˇzije datov´ y sklad a pouˇzije jen datov´ a trˇziˇstˇe. Tak´e lze chov´an´ı u ´loˇziˇst’ pˇrizp˚ usobit, napˇr. z doˇcasn´eho u ´loˇziˇstˇe dat udˇelat trval´e. Oddˇelen´ı jednotliv´ ych datov´ ych sklad˚ u a pˇresun dat mezi nimi m˚ uˇze prob´ıhat i na jednom datab´ azov´em serveru. Jedn´a se tedy o oddˇelen´ı logick´e, ne nutnˇe geografick´e. Jak takov´e u ´loˇziˇstˇe vypad´a a kde se nach´az´ı je pouze implementaˇcn´ı detail. Pouˇzit´ı ve velk´ ych a mal´ ych firm´ach se bude liˇsit. Stoj´ı tak´e za zm´ınku, ˇze ETL nen´ı vˇzdy ide´aln´ı zp˚ usob z´ısk´av´an´ı a transformace dat. Jednou z nev´ yhod je napˇr. to, ˇze po sobˇe jdouc´ı operace ˇcten´ı a tranformace dat z r˚ uzn´ ych zdroj˚ u mus´ı b´ yt ˇcasto napl´anovan´e a proveden´e v urˇcit´em poˇrad´ı. Nˇekter´e operace mohou selhat a cel´ y proces zablokovat a zdrˇzet. Alternativou tak m˚ uˇze b´ yt napˇr. ELT: extract, load, transform (extrahovat, nahr´ at, transformovat), coˇz je proces, pˇri kter´em se ukl´adaj´ı data do c´ılov´eho skladu v p˚ uvodn´ı podobˇe a transformace dat prob´ıhaj´ı aˇz pˇr´ımo v c´ılov´em u ´loˇziˇsti. V´ yhodn´e je to zejm´ena v pˇr´ıpadˇe, ˇze chceme pˇri transformac´ıch vyuˇz´ıt funkce datab´azov´eho serveru v takov´em skladu. Dalˇs´ı moˇznost´ı kop´ırov´ an´ı dat je pouˇzit´ı replikace. Zat´ımco ETL a ELT pˇresouvaj´ı data typicky po d´avk´ach v urˇcit´ ych intervalech, pˇri replikaci doch´ az´ı k pˇresunu dat po ˇra´dku, ˇci po transakci a to hned, jakmile dojde k pˇr´ısluˇsn´e operaci (INSERT, UPDATE, DELETE). Vyuˇz´ıv´a se zejm´ena pˇri pˇresunu dat z produkˇcn´ıch syst´em˚ u do doˇcasn´eho u ´loˇziˇstˇe dat. Zajist´ı tak, ˇze se informace o z´ aznamu neztrat´ı.
10
3. Integrace dat
Obr´ azek 3.1: Datov´ y sklad a ETL. Autorem pouˇzit´ ych ikon jsou servery Freepik [7] a Designmodo [4].
3.2
Federovan´ y datab´ azov´ y syst´ em
V pˇredchoz´ı kapitole bylo struˇcnˇe pops´ano, jak vytvoˇrit syst´em pro reportov´ an´ı a anal´ yzy pomoc´ı datov´eho skladu, pomocn´ ych u ´loˇziˇst’ a n´astroj˚ u pro transformace dat. Takov´ y syst´em vˇsak nedisponuje pouze v´ yhodami, n´ ybrˇz disponuje tak´e vlastnostmi, kter´e nejsou vˇzdy ke prospˇechu vˇeci. Jednou z takov´ ych vlastnost´ı je, ˇze vytv´aˇr´ı duplicitn´ı data. Protoˇze jsou data nˇekolikr´ at kop´ırov´ ana a uloˇzena v r˚ uzn´em stavu transformace nebo integrace, v´ ysledkem je nevyhnutelnˇe nˇekolik kopi´ı dat, coˇz, v z´avislosti na velikosti dat p˚ uvodn´ıch, m˚ uˇze b´ yt celkem nezanedbateln´ y n´aklad na potˇrebn´ y hardware. Kop´ırov´ an´ı dat je tak´e n´achyln´e k chyb´am a potˇrebn´e informace se mohou ztratit. Doch´ az´ı tak´e k ukl´ad´an´ı i extern´ıch a nestrukturovan´ ych dat. Pˇred generov´ an´ım report˚ u je nutn´e je m´ıt pˇripraven´e v nˇekter´em u ´loˇziˇsti, aˇckoli tyto data jinak nen´ı potˇreba pˇr´ımo ukl´adat (jiˇz existuj´ı jinde). Tento syst´em vyˇzaduje zapojen´ı nˇekolika datov´ ych uloˇziˇst’ ˇci sklad˚ u, coˇz v pˇr´ıpadˇe pouˇzit´ı komerˇcn´ıch datab´azov´ ych server˚ u m˚ uˇze znamenat vyˇsˇs´ı cenu za licence. Tento bod nemus´ı platit v pˇr´ıpadˇe, ˇze tyto sklady jsou um´ıstˇen´e fyzicky na jednom serveru, popˇr. v situaci, kdy jsou pouˇzit´e datab´aze k 11
3. Integrace dat dispozici bezplatnˇe. Pˇr´ıstup k operaˇcn´ım dat˚ um je bud’ u ´plnˇe nemoˇzn´ y nebo hodnˇe opoˇzdˇen´ y. Jak uˇz bylo uvedeno, BI aplikace jsou od produkˇcn´ıch datab´az´ı a jin´ ych operaˇcn´ıch dat typicky hodnˇe odst´ınˇen´e, data proch´az´ı nˇekolika transformacemi a dostupn´e jsou v ˇr´ ad˚ u dn˚ u nebo t´ ydn˚ u. Nˇekter´e reporty vyˇzaduj´ı detailn´ı pˇr´ıstup k dat˚ um. V tˇechto syst´emech vˇsak b´ yvaj´ı data na konci ˇretˇezce natolik zmˇenˇena, ˇze je nen´ı moˇzn´e k takov´ ym u ´ˇcel˚ um pouˇz´ıt. Nav´ıc rychlost vytv´aˇren´ı nov´ ych report˚ u, pˇr´ıpadnˇe u ´prava tˇech st´ avaj´ıc´ıch, je n´aroˇcn´ y proces a vyˇzaduje zmˇenu ETL skript˚ u, pˇr´ıpravu potˇrebn´ ych u ´loˇziˇst’ apod. A pr´ avˇe pro ˇreˇsen´ı podobn´ ych probl´em˚ u je moˇzn´e do takov´eho BI syst´emu zapojit server pro virtualizaci dat (v angliˇctinˇe data virtualization server)7 . Syst´em, kter´ y takov´ y server pouˇz´ıv´a, je nazv´an federovan´ y datab´azov´ y syst´em8 . Virtualizovan´ y server je vrstva mezi zdroji dat (zejm´ena pˇr´ımo zdroji prim´ arn´ıch produkˇcn´ıch dat) a koncov´ ymi aplikacemi, kter´a se pro tyto koncov´e aplikace tv´ aˇr´ı jako bˇeˇzn´ y datab´azov´ y server (obr´azek 3.2). Virtualizovan´e servery pracuj´ı pˇrev´ aˇznˇe s relaˇcn´ımi daty a proto reprezentace dat a zp˚ usob jak´ ym se s nimi pracuje je tomu uzp˚ usoben. Mapov´ an´ı vstupn´ıch a v´ ystupn´ıch dat je obvykle zajiˇstˇeno tzv. virtu´aln´ımi tabulkami. Ve virtualizovan´ ych serverech se pouˇz´ıvaj´ı dva z´akladn´ı typy virtu´ aln´ıch tabulek. Prvn´ı je tzv. obalovac´ı tabulka (v angliˇctinˇe wrapper table), tabulka, kter´ a pouze obaluje nˇekter´ y extern´ı zdroj dat (p˚ uvodn´ı tabulku v RDBMS9 , ale klidnˇe i nerelaˇcn´ı zdroj dat). M´a tedy stejn´e sch´ema a udrˇzuje a poskytuje o tomto zdroji metainformace. Takov´a tabulka m˚ uˇze vˇedˇet, jak se k prim´ arn´ımu zdroji pˇripojit a pˇr´ıpadnˇe pˇri pˇr´ıstupu k dat˚ um prov´ adˇet nˇejak´e mal´e transformace (konverze datov´ ych typ˚ u, aby jim virtualizaˇcn´ı server rozumˇel). Druh´ y typ tabulek slouˇz´ı k vytv´aˇren´ı nov´ ych pohled˚ u na data. Maj´ı typicky sv´e vlastn´ı sch´ema, pˇriˇcemˇz jednotliv´e atributy jsou namapovan´e z 7. Nˇekdy bude v pr´ aci uveden jako server pro datovou virtualizaci nebo jen jako virtualizaˇcn´ı server. 8. Nejˇcastˇejˇs´ımi zdroji dat jsou datab´ azov´e syst´emy, pˇrestoˇze nejsou jedinn´e. 9. Relational database management system.
12
3. Integrace dat wrapped tabulek nebo z jin´ ych virtu´aln´ıch tabulek. Pro konstrukci virtu´ aln´ıch tabulek se pouˇz´ıvaj´ı r˚ uzn´e jazyky, kter´e um´ı dotazovat data: SQL, jazyky zaloˇzen´e na pr´aci s toky (anglicky flow languages)10 , XSLT11 , XQuery12 a jin´e postaven´e na XML, a tak´e procedur´aln´ı jazyky. Tyto jazyky mohou m´ıt speci´aln´ı funkce, kter´e p˚ uvodn´ı jazyk rozˇsiˇruj´ı. Napˇr. jazyk SQL se ˇcasto v tˇechto syst´emech doplˇ nuje o deduplikaˇcn´ı funkce13 , funkce pro spojov´ an´ı dat na z´akladˇe podobn´e shody (tzv. fuzzy joins), funkce pro anal´ yzu sentimentu14 a tak d´ale. Federovan´ y datab´ azov´ y syst´em nab´ız´ı celou ˇradu v´ yhod. Jiˇz z principu disponuje pˇr´ıstupem k operaˇcn´ım dat˚ um v re´aln´em ˇcase a um´ı tak nab´ıdnout vˇsechna data okamˇzitˇe k dispozici. D´ıky centr´aln´ımu prvku je moˇzn´e jednoduˇse sd´ılet meta-data o datov´ ych zdroj´ıch, datech samotn´ ych a jejich transformac´ıch. Nen´ı tak potˇreba definovat stejn´e vˇeci v´ıcekr´at pro kaˇzd´e u ´loˇziˇstˇe. V´ yhodou v tomto pˇr´ıpadˇe nen´ı jen jednoduˇsˇs´ı spr´ava takov´ ych meta-dat, ale tak´e jejich konzistence. A protoˇze jsou jednotliv´e datov´e zdroje propojen´e na jednom m´ıstˇe, je moˇzn´e rychle a flexibilnˇe vytv´aˇret nov´e reporty, respektive pro nˇe pˇripravit data. Skryt´ı fyzick´eho uloˇzen´ı dat je dalˇs´ı v´ıtanou vlastnosti federovan´ ych datab´ azov´ ych syst´em˚ u. BI aplikace nemus´ı vˇedˇet, ve kter´em u ´loˇziˇsti ˇci skladu data najde, nemus´ı ani vˇedˇet, ˇze se dan´ y datov´ y zdroj pˇresunul ˇci ˇze se zmˇenil datab´ azov´ y syst´em (napˇr. instalace nov´e verze). Zdroje lze mˇenit, aniˇz by bylo potˇreba mˇenit reporty. Zapojen´ı serveru pro virtualizaci dat se obecnˇe ˇcasto zjednoduˇs´ı topologie datov´ ych u ´loˇziˇst’ pro BI. Poˇr´ad m˚ uˇze b´ yt na m´ıstˇe nˇekter´e mezi-sklady zachovat, ale jejich poˇcet se v´ yraznˇe sn´ıˇz´ı. Bohuˇzel i servery pro virtualizaci dat maj´ı sv´e nev´ yhody, kter´e je potˇreba pˇri pˇr´ıpadn´em nasazen´ı zv´aˇzit. Pˇri kaˇzd´em dotazu mus´ı data proj´ıt pˇres
10. Pˇr´ıkladem takov´eho jazyka je napˇr´ıklad Pig Latin. 11. Extensible Stylesheet Language Transformations je jazyk pro definov´ an´ı transformace XML do jin´ ych form´ at˚ u. 12. XQuery je dotazovac´ı jazyk pro extrakci dat ze strukturovan´ ych i nestrukturovan´ ych dokument˚ u. 13. Deduplikaˇcn´ı funkce slouˇz´ı k omezen´ı poˇctu kopi´ı opakuj´ıc´ıch se dat. 14. Snaha o rozpozn´ an´ı postoje pisatele nebo ˇreˇcn´ıka na z´ akladˇe anal´ yzu textu.
13
3. Integrace dat jednu vrstvu nav´ıc, coˇz znamen´a urˇcit´e zpomalen´ı vykon´av´an´ı dotazu, nav´ıc vˇsechny operace prob´ıhaj´ı pokaˇzd´e znovu pro vˇsechny dotazy. V pˇr´ıpadˇe, kdy se pouˇzit´e transformace mus´ı prov´est na nestrukturovan´ ych datech (tˇreba aˇz v BI programu), bude zpomalen´ı zanedbateln´e (dojde k nˇemu tak, jako tak, akor´ at na jin´e vrstvˇe). U strukturovan´ ych dat zase z´aleˇz´ı na pouˇzit´e datab´ azi a zpomalen´ı by opˇet mˇelo b´ yt minim´aln´ı. Probl´emem tak m˚ uˇze b´ yt aˇz spojov´ an´ı dat na u ´rovni virtu´aln´ıho serveru. Toto je probl´em, kter´ y se tyto servery snaˇz´ı ˇreˇsit a zapojuj´ı do procesu r˚ uzn´e optimalizace, ˇcasto zaloˇzen´e na poskytnut´ ych meta-datech. Pokud se tedy zdroje dat dobˇre pop´ıˇsou, bude spojov´ an´ı dat efektivnˇejˇs´ı. Pokud se d´ale uk´aˇze, ˇze prov´adˇen´ı stejn´ ych dotaz˚ u st´ ale dokola nadmˇernˇe zatˇeˇzuje syst´em, je moˇzn´e zapojit vyrovn´avac´ı pamˇet’ (cache). Je potˇreba se vˇsak dobˇre zamyslet nad t´ım, jak a kdy takovou pamˇet’ pouˇz´ıt, protoˇze jej´ım pouˇzit´ım lze ztratit hlavn´ı v´ yhody takov´eho virtualizovan´eho ˇreˇsen´ı. Mezi dalˇs´ı probl´emy patˇr´ı spr´ava, dohled a pˇr´ıpadn´a migrace na jin´ y virtualizaˇcn´ı server. V tomto ohledu se jedn´a o software jako kaˇzd´ y jin´ y. Je potˇreba vybrat vhodn´ y syst´em, kter´ y lze pohodlnˇe spravovat napˇr´ıklad pomoc´ı webov´e konzole ˇci ovl´adat z pˇr´ıkazov´e ˇr´adky a kter´ y m´a dostupn´e n´ astroje pro modelov´ an´ı dat. Znalost tˇechto nov´ ych syst´em˚ u a jejich n´astroj˚ u vˇsak nen´ı tak rozˇs´ıˇren´ a, proto m˚ uˇze b´ yt obt´ıˇzn´e naj´ıt odborn´ıky v t´eto oblasti. A koneˇcnˇe migrace z jednoho virtualizovan´eho serveru na druh´ y m˚ uˇze b´ yt problematick´ a a n´ akladn´a, protoˇze syst´emy v t´eto oblasti pouˇz´ıvaj´ı ˇcasto vlastn´ı, propriet´ arn´ı form´ aty a jazyky. Pˇren´est vymodelovan´ y syst´em dat na jin´ y server tak m˚ uˇze znamenat vytvoˇrit takov´ y model znova. Pouˇzit´ı syst´emu federovan´ ych datab´azov´ ych syst´emu lze naj´ıt v servisnˇe orientovan´ ych architektur´ ach (SOA), spr´avˇe podnikov´ ych dat, business intelligence, internetov´ ych aplikac´ıch, v syst´emech za u ´ˇcelem vytv´aˇren´ı datov´ ych u ´loˇziˇst’ pracuj´ıc´ıch v re´aln´em ˇcase a pro vytv´aˇren´ı datov´ ych firewall˚ u, kter´e umoˇzn ˇuj´ı vystavit nˇekter´a intern´ı data pomoc´ı webov´ ych sluˇzeb tˇret´ım stran´ am. Mezi servery pro virtualizaci dat m˚ uˇzeme ˇradit produkty jako JBoss Teiid (kter´ y je pouˇzit v t´eto pr´ aci) [13], Cisco Data Virtualization Platform [3] ˇci IBM InfoSphere Platform [9].
14
3. Integrace dat
Obr´ azek 3.2: Federovan´ y datab´azov´ y syst´em. Autorem pouˇzit´ ych ikon jsou servery Freepik [7] a Designmodo [4].
15
4 Podnik K-net Firma K-net Technical International Group s.r.o. (d´ale K-net) byla zaloˇzen´a roku 1993 s c´ılem poskytovat sluˇzby v oblasti informaˇcn´ıch technologi´ı. Jedn´a se o ˇceskou firmu dod´ avaj´ıc´ı ˇreˇsen´ı jak veˇrejn´emu, tak priv´atn´ımu sektoru a to firm´ am vˇsech velikost´ı. Z´ akazn´ık˚ um nab´ız´ı pˇredevˇs´ım IT infrastrukturu v podobˇe s´ıt´ı, server˚ u a souvisej´ıc´ıho software. Zajiˇst’uje vzd´alen´ y pˇr´ıstup k firemn´ım dat˚ um odkudkoli a poskytov´ an´ı cloudov´ ych sluˇzeb15 , mezi kter´e patˇr´ı provoz virtu´aln´ıch stroj˚ u, datov´ ych u ´loˇziˇst’ a s´ıt’ov´e infrastruktury (oznaˇcovan´e tak´e jako IaaS16 ), poskytov´ an´ı bˇehov´eho prostˇred´ı a datab´az´ı (PaaS17 ), ale tak´e pˇr´ımo provoz samotn´ ych aplikac´ı, napˇr. r˚ uzn´ ych informaˇcn´ıch syst´em˚ u (SaaS18 ). K-net tak´e realizuje kompletn´ı IT projekty na pˇr´an´ı z´akazn´ıka, implementuje VoIP19 a poskytuje dalˇs´ı IT sluˇzby a servis. K-net zamˇestn´ av´ a moment´alnˇe 45 zamˇestnanc˚ u vˇsech vˇekov´ ych kategori´ı a m´ a poboˇcky v Praze, Brnˇe a Ostravˇe. Podle Evropsk´e komise [33] spad´a do kategorie mal´ ych podnik˚ u, protoˇze m´a do 50 zamˇestnanc˚ u a roˇcn´ı obrat do 10 mili´ on˚ u EUR.
4.1
Poˇ zadavky na integraci dat
ˇ Casto se st´ av´ a, ˇze pracovn´ıci firmy, zejm´ena veden´ı spoleˇcnosti a analytici, potˇrebuj´ı sestavit urˇcit´ y v´ ystup, kter´ y dod´avan´ y program neum´ı anebo je potˇreba propojit dva r˚ uzn´e programy dohromady. K tomuto u ´ˇcelu se v Knetu pouˇz´ıv´ a Microsoft Excel. K-net vyuˇz´ıv´ a nˇekolik informaˇcn´ıch syst´em˚ u, hlavnˇe u ´ˇcetn´ı software ERP Money S5 a software pro ˇr´ızen´ı vztahu se z´akazn´ıky (CRM20 ) SugarCRM 15. Cloud computing je druh poˇc´ıtaˇcov´e architektury, kter´ y vyuˇz´ıv´ a v´ıce server˚ u navz´ ajem propojen´ ych s´ıt´ı, pˇriˇcemˇz koncov´ a aplikace nebo jin´ y klient se ke sluˇzb´ am na t´eto architektuˇre provozovan´ ych pˇripojuje skrze Internet. 16. Infrastructure as a service 17. Platform as a service. 18. Software as a service 19. Technologie pro pˇrenos digitalizovan´eho hlasu. 20. Customer relationship management.
16
4. Podnik K-net [25]. ERP Money S5 je nejvyˇsˇs´ı edice z ˇrady program˚ u od ˇcesk´e spoleˇcnosti C´ıgler software (d´ ale jsou nab´ızeny programy Money S3, Money S4) zamˇeˇren´e na spr´ avu financ´ı. SugarCRM je nab´ızen jako cloudov´a aplikace a prod´avan´ y jako sluˇzba, pˇriˇcemˇz z´ akazn´ıci si mohou vybrat kde pˇresnˇe aplikace pobˇeˇz´ı. Oba programy provozuje K-net v lok´aln´ı instalaci a m´a tak pˇr´ım´ y pˇr´ıstup k jejich datab´ az´ım. Hlavn´ım c´ılem je zjednoduˇsen´ı pr´ace tak, aby se urˇcit´e reporty nemuseli ˇ pokaˇzd´e vytv´ aˇret ruˇcnˇe v tabulkov´em procesoru. Casto m˚ uˇze b´ yt ˇz´adouc´ı, aby v´ ysledn´ y report byl d´ ale editovateln´ y a dal se zpracov´avat, ale vytvoˇren´ı kaˇzd´eho takov´eho reportu vyˇzaduje rutinn´ı u ´lohy, kter´e by se dali automatizovat.
4.1.1 Integrace CSV soubor˚ u Prvn´ım z´ akladn´ım sc´en´ aˇrem, kter´ y firma K-net potˇrebuje ˇreˇsit, je obecn´e propojen´ı dvou soubor˚ u form´at˚ u CSV na z´akladˇe p´arovac´ıch znak˚ u. Tyto soubory b´ yvaj´ı typicky nˇejak´e v´ ystupn´ı exporty z jednoho nebo dvou r˚ uzn´ ych informaˇcn´ıch syst´em˚ u. Po integraci tˇechto dat je ˇz´adouc´ı nad´ale data analyzovat, napˇr. je d´ ale zpracov´avat tabulkov´ ym procesorem (napˇr. programem Excel). Jako uk´ azku takov´ ych dat poskytla firma K-net dva soubory UcetniZapis.csv a Zakazka.csv z u ´ˇcetn´ıho programu, kter´e jsou propojiteln´e poloˇzkami Zak´ azka a K´ od a kter´e jsou d˚ uleˇzit´e pro vyhodnocen´ı zak´azky. Tyto soubory jsou v k´ odov´ an´ı Windows-1250, pouˇzit´ y oddˇelovaˇc je stˇredn´ık a prvn´ı ˇr´adek souboru obsahuje n´ azvy atribut˚ u.
4.1.2 Integrace dat z relaˇ cn´ıch datab´ az´ı Dalˇs´ı integraˇcn´ı probl´em je spojen´ı dat z tabulek, kter´a jsou v r˚ uzn´ ych datab´ azov´ ych serverech, zejm´ena uloˇzen´a v datab´azov´em serveru Microsoft SQL Server, kter´ y K-net ˇcasto pouˇz´ıv´a. Po integraci tˇechto dat je ˇz´adouc´ı nad´ ale data analyzovat podobnˇe jako v pˇr´ıpadˇe integrace CSV soubor˚ u. 17
4. Podnik K-net 4.1.3 Integrace dat z pohledu business intelligence Tato sekce prezentuje konkr´etnˇejˇs´ı sc´en´aˇre, kter´e by firma K-net chtˇela implementovat. Vˇsechny tyto sc´en´aˇre vych´azej´ı z pˇredchoz´ıch dvou obecn´ ych sc´en´ aˇr˚ u: propojov´ an´ı CSV soubor˚ u a datab´az´ı. D´ale vˇsak kladou poˇzadavky na filtrov´ an´ı a dalˇs´ı zpracov´an´ı dat. Pro vytvoˇren´ı podrobn´ ych n´avod˚ u pro tyto sc´en´ aˇre nebyl v pr´ aci prostor, ale jsou zde uvedeny pro ilustraci toho, k ˇcemu takov´ a integrace dat slouˇz´ı. Veden´ı spoleˇcnosti chce kontrolovat pauˇs´aln´ı smlouvy. Potˇrebuje vˇedˇet, zda vˇsechny smlouvy byly v dan´em mˇes´ıci vyfakturov´any, jak´ y tyto smlouvy tvoˇrili obrat a n´ aklady v dan´em mˇes´ıci a jak´ y byl v dan´em mˇes´ıci na smlouv´ ach hospod´ aˇrsk´ y v´ ysledek. Moment´alnˇe je tabulka v´ ynos˚ u a n´aklad˚ u na pauˇs´ aln´ı smlouvy udrˇzov´ ana ruˇcnˇe v tabulce programu Excel, kam se kaˇzd´ y mˇes´ıc ruˇcnˇe kop´ıruj´ı nov´ a data. Proto, aby se mohli vyhodnotit zak´azky a spravedlivˇe ohodnotit z´asluhy jednotliv´ ych lid´ı, chce K-net prov´azat data ohlednˇe obchodn´ıho pˇr´ıpadu evidovan´ a v CRM s finanˇcn´ı realitou konkr´etn´ıho obchodn´ıho pˇr´ıpadu evidovanou v u ´ˇcetnictv´ı Money S5. Syst´em by mˇel umˇet naˇc´ıst data z CRM (oˇcek´ avan´e obraty, zisky, apod.), na z´akladˇe k´odu zak´azky s nimi agregovat definovan´ a data z Money S5 a prov´est definovan´e v´ ypoˇcty, kter´e by zobrazili finanˇcn´ı bilanci zak´ azky. Finanˇcn´ı vedouc´ı potˇrebuje stanovit zisk a body z prodeje zboˇz´ı a sluˇzeb a to na vybran´e zak´ azky podle v´ ybˇeru. V´ ybˇer zak´azek by mˇel umoˇznit vybrat konkr´etn´ı zak´ azku nebo vybrat mnoˇzinu zak´azek podle urˇcit´ ych krit´eri´ı (p´ısmenn´eho k´ odu zak´ azky, numerick´eho k´odu zak´azky, vybran´eho stavu zak´ azky), popˇr. vybrat zak´ azky vˇsechny. K dispozici by mˇel b´ yt jeˇstˇe dalˇs´ı filtr, kter´ y by d´ ale poloˇzky vyb´ıral na z´akladˇe obdob´ı u ´ˇcetn´ıho den´ıku, ˇc´ısla u ´ˇct˚ u, oznaˇcen´ı firmy, jm´ena z´akazn´ıka, popisu zak´azky, akc´ı/etap zak´azky a stˇrediska (divize). Zdrojem dat je u ´ˇcetn´ı den´ık a evidence zak´azek.
18
5 N´ avrh datov´ e federace ve spoleˇ cnosti K-net 5.1
´ Uvod do JBoss Teiid
JBoss Teiid [13] je sada n´ astroj˚ u pro virtualizaci a federaci dat. Jedn´a se p˚ uvodnˇe o produkt firmy MetaMatrix (zal. roku 1998), kter´a byla koupena firmou Red Hat v roce 2007 [14]. Touto akvizic´ı se zmˇenil v´ yvojov´ y model, kdy se z komerˇcn´ıho produktu s uzavˇren´ ym zdrojov´ ym k´odem stal komunitnˇe vyv´ıjen´ y open-source projekt JBoss Teiid. S touto zmˇenou se tak´e zmˇenil samotn´ y produkt. Nˇekter´e jeho ˇc´asti se zmˇenili, jin´e vypustili. Kromˇe komunitn´ı verze firma Red Hat nab´ız´ı tak´e certifikovanoou komerˇcn´ı variantu pod n´ azvem Red Hat JBoss Data Virtualization [21]. Teiid je naps´ an pro bˇeh na aplikaˇcn´ım serveru JBoss Application Server (zkr´ acenˇe JBoss AS). Tento aplikaˇcn´ı server existuje v nˇekolika variant´ach. Komunitn´ı verze byla pˇrejmenov´ana [30] a je novˇe vyd´av´ana pod n´azvem Wildfly [31]. JBoss AS je tak´e moˇzn´e poˇr´ıdit jako komerˇcn´ı certifikovan´ y produkt Red Hat JBoss Enterprise Application Platform [22]. JBoss Teiid je moˇzn´e provozovat bezplatnˇe a v pˇr´ıpadˇe potˇreby pˇrej´ıt na komerˇcn´ı, podporovan´ y, produkt. Vzhledem k tomu, ˇze se jedn´a o opensource projekt, je moˇzn´e se jednoduˇse dostat k seznamu nahl´aˇsen´ ych probl´em˚ u, kontaktovat v´ yvoj´ aˇre, pod´ıvat se na zdrojov´ y k´od a pˇr´ıpadnˇe se i zapojit do samotn´eho v´ yvoje. J´ adrem Teiidu je bˇehov´e prostˇred´ı napsan´e pro aplikaˇcn´ı server JBoss AS, kter´e je optimalizovan´e pro fault-tolerance21 a nab´ız´ı bezpeˇcnostn´ı a administraˇcn´ı funkce. Je navrˇzeno pro enterprise pouˇzit´ı - pro snadn´e ˇsk´alov´an´ı a spr´ avu. Dalˇs´ı d˚ uleˇzitou komponentou je dotazovac´ı stroj. Ten zpracov´av´a relaˇcn´ı, XML, XQuery dotazy a procedur´aln´ı dotazy z federovan´ ych datov´ ych zdroj˚ u. Podporuje homogenn´ı i heterogenn´ı sch´emata, transakce i uˇzivatelsky definovan´e funkce. Teiid m´ a ˇsirokou podporu r˚ uzn´ ych zdroj˚ u dat [12]. Kromˇe cel´e ˇrady relaˇcn´ıch datab´ azov´ ych server˚ u jako MySQL, PostgreSQL a Microsoft SQL 21. Jedn´ a se o vlastnost, kter´ a umoˇzn ˇuje syst´emu, aby nad´ ale pracoval spr´ avnˇe i v pˇr´ıpadˇe selh´ an´ı nˇekter´e jeho souˇca ´sti.
19
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Server podporuje i ostatn´ı typy datab´az´ı oznaˇcovan´ ych jako NoSQL, jmenovitˇe napˇr´ıklad Amazon SimpleDB, Mongo DB ˇci Apache Cassandra. Dostupn´e jsou konektory i pro syst´emy jako SalesForce, webov´e sluˇzby zaloˇzen´e na SOAP22 a REST23 architektur´ach a dostupn´a je i podpora protokolu OData24 [19]. Vzhledem k tomu, ˇze je moˇzn´e vyvinout i vlastn´ı podporu pro libovoln´ y dalˇs´ı syst´em ˇci technologii, mˇela by tato nab´ıdka staˇcit pro naprostou vˇetˇsinu integraˇcn´ıch sc´en´aˇr˚ u. Teiid pracuje s tzv. virtu´aln´ı datab´az´ı. Virtu´aln´ı datab´aze (oznaˇcovan´a tak´e zkratkou VDB) [15] je kolekce metadat ve formˇe model˚ u, kter´a popisuje virtu´ aln´ı a fyzick´e tabulky, jejich zdroje a pˇr´ıpadnˇe definici webov´ ych sluˇzeb. Obsahuje informace o tom, jak se k tˇemto zdroj˚ um pˇripojit, popisuje form´ at uloˇzen´ ych dat (napˇr. datov´e typy, oddˇelovaˇce v CSV souborech, atd.) a transformace dat, kter´e je nad nˇema potˇreba vykonat. Ve chv´ıli, kdy je tato datab´ aze nahr´ ana na server, se klienti (aplikace) mohou k t´eto virtu´aln´ı datab´ azi pˇripojit skrze Teiid, kter´ y veˇsker´e dotazy vykon´a na samotn´ ych zdrojech dat a v´ ysledn´ a data vr´at´ı v poˇzadovan´em form´atu. S Teiid serverem mohou aplikace komunikovat napˇr´ıklad rozhran´ım JDBC25 a protokoly SOAP a OData. Existuj´ı dva typy VDB. Tzv. dynamick´e VDB je XML soubor, kter´ y popisuje integrovan´e zdroje a umoˇzn ˇuje pˇripojit se k nim pˇres rozhran´ı JDBC. Dynamick´e VDB nepodporuje ˇz´adn´e dalˇs´ı abstraktn´ı vrstvy a slouˇz´ı pouze pro z´ akladn´ı integraci dat. Druh´ y, standardn´ı typ VDB, je ve formˇe JAR26 bal´ıˇcku (typicky s pˇr´ıponou .vdb) a umoˇzn ˇuje definovat jak zdrojov´e modely, 22. Simple Object Access protocol je protokol postaven´ y na jazyku XML pro v´ ymˇenu strukturovan´ ych dat mezi webov´ ymi sluˇzbami. 23. Representational State Transfer je typ architektury webov´ ych sluˇzeb zaloˇzen´ y na jednoduch´ ych HTTP vol´ an´ı. Je orientov´ an datovˇe, kde kaˇzd´ y zdroj m´ a svoje URI a REST definuje ˇctyˇri z´ akladn´ı metody pro pˇr´ıstup k nim. 24. Open Data Protocol vyuˇz´ıv´ a koncept REST architektury pro vytvoˇren´ı protokolu urˇcen´eho k vytv´ aˇren´ı a konzumaci webov´ ych API. 25. Java Database Connectivity je standardn´ı rozhran´ı pˇr´ıstupu k relaˇcn´ım datab´ az´ım v jazyce Java. Pro pˇripojen´ı ke konkr´etn´ı datab´ azi je pak potˇreba ovladaˇc, kter´ y typicky poskytuj´ı pˇr´ımo v´ yrobci dan´ ych datab´ azov´ ych server˚ u. V tomto pˇr´ıpadˇe poskytuje JDBC ovladaˇc pˇr´ımo Teiid, se kter´ ym program komunikuje. 26. JAR je souborov´ y form´ at pouˇz´ıvan´ y k distribuci program˚ u a knihoven napsan´ ych pro bˇehov´e prostˇred´ı Java Virtual Machine.
20
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na tak abstraktn´ı pohledov´e relaˇcn´ı a XML modely a vytv´aˇret tak jejich hierarchii. Pro vytv´ aˇren´ı tˇechto virtu´aln´ıch datab´az´ı je potˇreba pouˇz´ıt modelovac´ı n´ astroj Teiid Designer (viz d´ale). Tato pr´ace se bude vˇenovat jen druh´emu typu VDB. K dispozici jsou tak´e n´astroje pro modelov´an´ı, administraci a spr´avu, kter´e pom´ ah´ aj´ı s implementac´ı a provozem Teiidu. Teiid Designer je modelovac´ı n´ astroj a je pops´ an podrobnˇeji v samostatn´e ˇc´asti. Mezi dalˇs´ı programy patˇr´ı Web console a Admin Shell. Web console je administraˇcn´ı rozhran´ı pro Teiid server. Jedn´ a se o plugin do JBoss AS, kter´ y um´ı vytv´aˇret datov´e zdroje, nahr´ avat VDB, mˇenit konfiguraci, spouˇstˇet a vyp´ınat bˇeˇz´ıc´ı sluˇzby a monitorovat stav serveru. Admin Shell slouˇz´ı pro automatizov´an´ı administrativn´ıch ˇcinnost´ı. Jedn´ a se o n´astroj postaven´ y na jazyku Groovy, kter´ y dok´ aˇze zpˇr´ıstupnit Admin API z pˇr´ıkazov´e ˇr´adky a t´ım umoˇzn ˇuje ps´at i skripty. Pomoc´ı Admin Shellu lze napˇr. nahr´at VDB, sledovat vykon´avan´e dotazy a podobnˇe. 5.1.1 Teiid Designer Teiid Designer je vizu´ aln´ı n´astroj pro modelov´an´ı, anal´ yzu a testov´an´ı datov´ ych zdroj˚ u, jejich integraci a vytvoˇren´ı v´ ystupn´ı podoby dat v nich obsaˇzen´ ych. Jin´ ymi slovy pom´ah´a definovat metadata pro pˇr´ıstup k datov´ ym zdroj˚ um, modelovat virtu´ aln´ı datab´aze a popsat v´ ystupn´ı form´at dat bez znalosti programov´ an´ı. Jedn´a se o neoceniteln´eho pomocn´ıka, kter´ y umoˇzn ˇuje pohodlnˇe a vizu´ alnˇe vytvoˇrit virtu´aln´ı datab´azi, kter´a je pozdˇeji konzumov´ ana Teiidem samotn´ ym. Teiid Designer nen´ı distribuov´an jako samostatn´ y program, ale jedn´a se o z´ asuvn´ y modul do Eclipse. Eclipse je integrovan´e v´ yvojov´e prostˇred´ı, kter´e m´ a d´ıky rozs´ ahl´e nab´ıdce z´asuvn´ ych modul˚ u ˇsirok´e pouˇzit´ı. Teiid Designer rozˇsiˇruje jeho moˇznosti pˇrid´an´ım relevantn´ıch n´astroj˚ u a nab´ıdek, pˇriˇcemˇz vˇsak maxim´ alnˇe vyuˇz´ıv´ a jiˇz existuj´ıc´ı prostˇred´ı. Lid´e, kteˇr´ı jiˇz s Eclipse pracuj´ı, jsou proto schopni se v Teiid Designeru rychle zorientovat. Pro definici v´ ysledn´e virtu´aln´ı datab´aze se pracuje s tzv. modely. Model sdruˇzuje vˇsechna metadata o nˇejak´e kolekci dat. Existuj´ı dva z´akladn´ı modely a to zdrojov´ y model (source model) a pohledov´ y model (view model). 21
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Zdrojov´e modely popisuj´ı data, kter´a jsou nˇekde fyzicky um´ıstˇen´a, pohledov´e modely se pouˇz´ıvaj´ı pro popis logick´ ych struktur dat, napˇr. virtu´aln´ıch tabulek a XML v´ ystup˚ u. Zdrojov´ y model proto obsahuje informace o tom, kde jsou data um´ıstˇen´a a jak´ ym zp˚ usobem je pˇreˇc´ıst. To zahrnuje popis struktury dat v z´avislosti na typu datov´eho zdroje (relaˇcn´ı tabulky, atributy, oddˇelovaˇce v CSV souborech, atp.), cestu k souboru ˇci datab´azi, pouˇzit´ y protokol a pˇr´ıpadnˇe pˇrihlaˇsovac´ı u ´daje, pokud dan´ y datov´ y zdroj vyˇzaduje autentizaci. Z´aroveˇ n mus´ı obsahovat mapov´ an´ı pouˇzit´ ych datov´ ych typ˚ u, protoˇze mnoˇzina podporovan´ ych datov´ ych typ˚ u [29] se pravdˇepodobnˇe liˇs´ı. Pohledov´e modely slouˇz´ı, jednoduˇse ˇreˇceno, k transformaci dat. Pohledov´ y model vˇzdy ˇcerp´ a data ze zdrojov´ ych model˚ u nebo jin´ ych pohledov´ ych model˚ u a definuje pro nˇe novou reprezentaci a potˇrebn´e transformace. Teiid Designer um´ı pracovat s nˇekolika typy pohledov´ ycho model˚ u, napˇr. s modelem relaˇcn´ıch tabulek, XML modelem, s modelem webov´e sluˇzby apod. Mezi z´ akladn´ı postupy pro vytvoˇren´ı modelu patˇr´ı importov´an´ı metadat z datov´eho zdroje, transformac´ı ˇci kop´ırov´an´ım jin´eho modelu, nebo definov´ an´ım nov´eho modelu. Ke vˇsem tˇemto postup˚ um nab´ız´ı Teiid Designer odpov´ıdaj´ıc´ı dialogy a pr˚ uvodce. Pot´e, co je model vytvoˇren, je moˇzn´e jej d´ ale upravovat. K tomu slouˇz´ı zejm´ena tzv. diagram bal´ıku (Package Diagram), transformaˇcn´ı diagram (Transformation Diagram) a paleta vlastnost´ı (Properties). Diagram bal´ıku je vlastnˇe diagram dan´eho modelu. Nab´ız´ı pˇrehled toho, co cel´ y model obsahuje. Pomoc´ı kontextov´e nab´ıdky je moˇzn´e s obsahem modelu manipulovat (napˇr. pˇridat novou tabulku). Transformaˇcn´ı diagram se t´ yk´ a definice tabulek. Umoˇzn ˇuje uˇzivateli vizu´alnˇe pˇrid´avat a odeb´ırat zdroje dan´e tabulky, pˇrid´ avat a odeb´ırat atributy a pˇredevˇs´ım definovat samotnou transformaci, coˇz je ve v´ ysledku SQL dotaz. Paleta vlastnost´ı funguje napˇr´ıˇc cel´ ym programem a slouˇz´ı k u ´pravˇe velk´e mnoˇziny metadat jednotliv´ ych objekt˚ u (tabulek, atribut˚ u apod.). Teiid Designer integruje tak´e pr´aci s Teiid serverem. Pˇridat instanci JBoss AS je moˇzn´e pˇres standardn´ı n´astroje pro pr´aci se servery v prostˇred´ı Eclipse a v pˇr´ıpadˇe, ˇze je na t´eto instanci nainstalov´an Teiid, dok´aˇze s n´ım Teiid De-
22
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na signer rovnou komunikovat (nahr´avat virtu´aln´ı datab´aze a dotazovat data). Pot´e, co jsou zdrojov´e a pohledov´e modely pˇripraveny a Teiid Designer m´a k dispozici aplikaˇcn´ı server s Teiidem, umoˇzn´ı uˇzivateli data z jednotliv´ ych model˚ u prohl´ıˇzet pˇr´ımo v prostˇred´ı programu. Ve chv´ıli, kdy jsou jednotliv´e modely definov´any a pˇripraveny k pouˇzit´ı, je potˇreba vymodelovat v´ yslednou virtu´aln´ı datab´azi. To lze tak´e udˇelat vizu´ alnˇe a Teiid Designer nav´ıc zajist´ı, ˇze se do VDB dostanou vˇsechny potˇrebn´e modely. V´ ysledn´ y soubor se pak m˚ uˇze nahr´at na server pˇr´ımo z Teiid Designeru.
23
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
5.2
Instalace
5.2.1 Teiid Jak jiˇz bylo ˇreˇceno, Teiid vyˇzaduje pro sv˚ uj bˇeh aplikaˇcn´ı server JBoss AS. V t´eto pr´ aci bude pouˇzit ve verzi oznaˇcovan´e jako Enterprise Application Platform 6.1.0 Alpha (d´ ale jen EAP), kter´a lze st´ahnout jako arch´ıv ve form´ atu ZIP z ofici´ aln´ıch str´anek
27 .
Instalace tohoto serveru se prov´ad´ı
rozbalen´ım dan´eho arch´ıvu do libovoln´e sloˇzky, kde jsou dostateˇcn´a pr´ava pro z´ apis a spouˇstˇen´ı soubor˚ u. Vˇsechny verze Teiidu jsou ke staˇzen´ı na internetov´ ych str´ank´ach Sourceforge
28 .
Posledn´ı stabiln´ı verze je 8.9.0.Final, ale protoˇze pro modelov´an´ı
bude pouˇzit Teiid Designer, je tˇreba nainstalovat verzi 8.7.0.Final, kter´a je ofici´ alnˇe kompatibiln´ı s vybranou verzi Teiid Designeru (viz d´ale). Na zm´ınˇen´ ych str´ ank´ ach je k dispozici ke staˇzen´ı nˇekolik arch´ıv˚ u, pˇriˇcemˇz pro potˇreby t´eto pr´ ace jsou relevantn´ı tyto: •
teiid-8.7.0.Final-jboss-dist.zip Standardn´ı distribuce Teiidu.
•
teiid-8.7.0.Final-jdbc.jar Ovladaˇc JDBC pro pˇripojen´ı k virtu´aln´ım datab´ az´ım z extern´ıch aplikac´ı. Instalace Teiidu prob´ıh´ a rozbalen´ım staˇzen´eho arch´ıvu teiid-8.7.0.Final-
jboss-dist.zip do adres´ aˇrov´e struktury JBoss AS (struktura Teiid arch´ıvu kop´ıruje strukturu serveru JBoss AS a pouze doplˇ nuje jeho moduly a konfiguraˇcn´ı soubory). Teiid bude t´ımto nainstalov´an v tzv. standalone m´odu. V tomto m´ odu mohou bˇeˇzet aplikace, pokud nepotˇrebujeme centr´aln´ı spr´avu v´ıce instanc´ı aplikaˇcn´ıho serveru. Kdyby v d˚ usledku st´avaj´ıc´ı infrastruktury nebo jin´eho d˚ uvodu bylo potˇreba prov´est instalaci v m´odu domain, lze n´avod naj´ıt v dokumentaci
29 .
Ve vybran´em aplikaˇcn´ım serveru se mus´ı jeˇstˇe vymˇenit modul Resteasy JAX-RS, protoˇze distribuovan´a verze tohoto modulu nen´ı kompatibiln´ı s 27. http://jbossas.jboss.org/downloads.html 28. http://sourceforge.net/projects/teiid/files/teiid/8.7/Final/ 29. https://docs.jboss.org/author/display/teiid87final/ Installation+Guide
24
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Teiid 8.7. Kompatibiln´ı verzi Resteasy JAX-RS (2.3.6, moˇzno st´ahnout i novˇejˇs´ı) je nutn´e st´ ahnout, napˇr. ze str´anek Sourceforge 30 . V tomto arch´ıvu se nach´ azej´ı soubory async-http-servlet-3.0-2.3.6.Final.jar a resteasy-jaxrs2.3.6.Final.jar, kter´e je potˇreba um´ıstit m´ısto star´e verze31 . Nakonec se v souboru module.xml zmˇen´ı n´azvy soubor˚ u na nov´e. EAP 6.1.0 Alpha je multiplatformn´ı a lze jej provozovat jak na linuxov´em operaˇcn´ım syst´emu, tak na Mac OS a Windows. Vyˇzaduje pro sv˚ uj bˇeh JDK32 6 nebo 7, s verz´ı 8 nen´ı kompatibiln´ı. Aplikaˇcn´ı server se spouˇst´ı skriptem standalone.sh, popˇr. standalone.bat (na syst´emech Windows) ze sloˇzky bin. Pro spuˇstˇen´ı bˇehov´eho prostˇred´ı Teiid je nutn´e uveden´ y skript pouˇstˇet s konfigurac´ı uloˇzenou v souboru standalone-teiid.xml, kter´ y najdeme ve sloˇzce standalone/configuration. Cel´ y pˇr´ıkaz na linuxov´ ych syst´emech bude proto vypadat takto: ./standalone.sh -c standalone-teiid.xml. 5.2.2 Teiid Designer Protoˇze je Teiid Designer z´ asuvn´ y modul do Eclipse, je nutn´e vybrat takovou verzi Teiid Designeru, kter´ a funguje jak s pouˇz´ıvanou verz´ı Teiid serveru, tak s konkr´etn´ı verz´ı Eclipse. V t´eto pr´aci se pouˇz´ıv´a Teiid Designer ve verzi 8.6.0 Final z 22. z´ aˇr´ı 2014. Tato verze je urˇcena pro pouˇzit´ı s Teiid 8.7 a Eclipse 4.3, oznaˇcovan´ y tak´e jako Kepler. Eclipse je moˇzn´e st´ ahnout v r˚ uzn´ ych distribuc´ıch, kter´e se liˇs´ı pˇredinstalovan´ ymi z´ asuvn´ ymi moduly. K instalaci Teiid Designeru je potˇreba st´ ahnout Eclipse IDE for Java EE Developers a m´ıt nainstalovan´e bˇehov´e prostˇred´ı Java 6 nebo novˇejˇs´ı. Na str´ank´ach Eclipse [6] je pot´e moˇzn´e vybrat bal´ıˇcek pro konkr´etn´ı platformu, tj. 32-bitovou nebo 64-bitovou edici pro dan´ y operaˇcn´ı syst´em (Mac OS X, Linux, nebo Windows). Pro spuˇstˇen´ı programu staˇc´ı staˇzen´ y bal´ıˇcek rozbalit do sloˇzky s dostateˇcn´ ymi pr´avy a spustit soubor eclipse, popˇr. eclipse.exe (na syst´emech Windows). 30. http://sourceforge.net/projects/resteasy/files/Resteasy% 20JAX-RS/2.3.6.Final/resteasy-jaxrs-2.3.6.Final-all.zip/download 31. Ve sloˇzce modules/system/layers/base/org/jboss/resteasy/resteasy-jaxrs/main aplikaˇcn´ıho serveru. 32. Java Development Kit obsahuje bˇehov´e prostˇred´ı Java Virtual Machine a sadu dalˇs´ıch n´ astroj˚ u pro v´ yvoj a provoz program˚ u pro toto prostˇred´ı.
25
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Po spuˇstˇen´ı je uˇzivatel vyzv´an, aby vybral tzv. workspace. Jedn´a se o sloˇzku, kam bude Eclipse ukl´adat vytv´aˇren´e projekty a jejich soubory, ukl´ adat logy apod. N´ aslednˇe lze doinstalovat potˇrebn´e z´asuvn´e moduly. To se prov´ad´ı z tzv. update sites. V menu Help - Install new software - Add je potˇreba pˇridat URL http://download.jboss.org/jbosstools/updates/ release/kepler/integration-stack/ (napˇr. s n´azvem JBoss Integration Stack), vybrat bal´ıˇcky Teiid DataTools Connectivity, Teiid Designer, Teiid Designer Runtime, Teiid Runtime Clients ze sekce Jboss Data Virtualization Development a dokonˇcit instalaci pomoc´ı tlaˇc´ıtek Next a Finish. T´ımto procesem se ovˇsem nainstaluje Teiid Designer ve verzi 8.3.4.Final. Je tedy nutn´e pˇridat jeˇstˇe jednu update site s URL http://download.jboss.org/jbosstools/updates/release/ kepler/integration-stack/teiiddesigner/8.6.0.Final/ (napˇr. s n´ azvem Teiid Designer 8.6.0) a vybrat celou skupinu Data Virtualization, kter´ a obsahuje v´ yˇse uveden´e 4 bal´ıˇcky, avˇsak ve verzi 8.6.0.Final. Po dokonˇcen´ı instalace je potˇreba jeˇstˇe Eclipse restartovat. Pot´e bude Teiid Designer dostupn´ y. D˚ uvod, proˇc je potˇreba prov´adˇet instalaci dvakr´at je z toho d˚ uvodu, ˇze update site s aktu´aln´ı verz´ı Designeru neobsahuje dalˇs´ı potˇrebn´e z´ avislosti. Alternativnˇe lze Teiid Designer z´ıskat tak´e jako souˇc´ast sady rozˇs´ıˇren´ı JBoss Tools [5]. 5.2.3 Zaloˇ zen´ı nov´ eho projektu Kaˇzd´ a pr´ ace na datov´e federaci v programu Teiid designer se sdruˇzuje do tzv. projekt˚ u. Vytvoˇren´ı nov´eho projektu se prov´ad´ı vyvol´an´ım dialogu z nab´ıdky File - New - Project - Teiid Designer - Teiid Model Project. Potvrzen´ım volby tlaˇc´ıtkem Next je moˇzn´e zadat n´azev projektu (poloˇzka Project name) a vybrat um´ıstˇen´ı projektu (nech´an´ım volby Use default location se projekt vytvoˇr´ı v aktu´ aln´ım workspace). Pracovn´ı sety (Working sets) slouˇz´ı k seskupen´ı nˇekolika relevantn´ıch projekt˚ u dohromady, aby se s nˇema dalo sn´ aze pracovat v prostˇred´ı Eclipse. Pro potˇreby t´eto pr´ace nejsou potˇreba. V dalˇs´ım oknˇe je moˇzn´e pˇridat referenci na jin´ y projekt, coˇz opˇet nen´ı potˇreba. 26
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na V posledn´ı ˇc´ asti dialogu je moˇzn´e si nechat hromadnˇe vytvoˇrit sloˇzky, do kter´ ych se pozdˇeji ukl´ adaj´ı jednotliv´e modely. Vytvoˇren´ı projektu se provede po potvrzen´ı dialogu stisknut´ım tlaˇc´ıtka Finish. Na obr´azku 5.1 je vidˇet novˇe zaloˇzen´ y projekt pojmenovan´ y IntegraceCSV a dvˇe vytvoˇren´e sloˇzky sources a views. Pokud uˇzivatel nen´ı odborn´ıkem na Teiid Designer a potˇrebuje pˇri modelov´ an´ı a vystavov´ an´ı dat pomoci, je moˇzn´e vyuˇz´ıt pˇredpˇripraven´e pr˚ uvodce. Panel s nab´ıdkou pr˚ uvodc˚ u je dostupn´ y z nab´ıdky Window - Show view Other... pod volbou Teiid Designer - Guides. Zobrazen´ y panel lze vidˇet na obr´ azku 5.1. K dispozici je nˇekolik tzv. seznam˚ u akc´ı (Action sets), kter´e sdruˇzuj´ı akce podle kontextu. Akce je pak nˇejak´ yu ´kon, napˇr. definice modelu, vytvoˇren´ı pˇripojen´ı, apod. Pokud d´av´a smysl jednotliv´e akce prov´adˇet v urˇcit´em poˇrad´ı, jsou seˇrazen´e tak, ˇze prvn´ı poloˇzky bude uˇzivatel typicky prov´ adˇet jako prvn´ı. Moment´alnˇe jsou k dispozici tyto seznamy: •
Consume SOAP service pro pˇripojen´ı k webov´e sluˇzbˇe protokolem SOAP a vygenerov´ an´ı relaˇcn´ıch model˚ u na z´akladˇe popisu WSDL33 .
•
Create a REST war pro vytvoˇren´ı webov´e sluˇzby zaloˇzen´e na protokolu REST.
•
Model flat file source pro definici model˚ u z textov´ ych soubor˚ u.
•
Model JDBC source pro definici model˚ u z relaˇcn´ıch datab´az´ı pˇripojen´ ych pomoc´ı JDBC.
•
Model local XML file source pro definici model˚ u z lok´aln´ıch XML soubor˚ u.
•
Model remote XML file source pro definici model˚ u z XML soubor˚ u dostupn´ ych skrz poˇc´ıtaˇcovou s´ıt’.
•
Model Teiid data source pro vyuˇzit´ı Teiidu jako zdroje dat na aplikaˇcn´ım serveru.
•
Teiid pro pr´ aci s Teiid serverem.
33. Web Services Description Language slouˇz´ı k popisu veˇrejn´eho rozhran´ı webov´e sluˇzby.
27
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.1: Novˇe zaloˇzen´ y projekt IntegraceCSV se zobrazen´ ym panelem pr˚ uvodc˚ u.
28
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na 5.2.4 Pˇ rid´ an´ı Teiid serveru Spr´ avn´ a komunikace Teiid Designeru s Teiid serverem umoˇzn´ı uˇzivateli prov´ adˇet v prostˇred´ı Eclipse dalˇs´ı u ´kony, napˇr´ıklad moˇznost n´ahledu dat z pohledov´ ych model˚ u pˇr´ımo v Teiid Designeru nebo nahr´av´an´ı virtu´aln´ıch datab´ az´ı na Teiid server. Je-li Teiid Designer i Teiid spr´avnˇe nainstalov´an, m˚ uˇze uˇzivatel pˇristoupit k vytvoˇren´ı serverov´e instance. Pomoc´ı menu Windows Show view - Other a volby Servers ze sloˇzky Server uˇzivatel vybere panel pro pr´ aci se servery. Potvrzen´ım volby tlaˇc´ıtkem OK se panel zobraz´ı. Kliknut´ım prav´ ym tlaˇc´ıtkem myˇsi na tomto panelu uˇzivatel vyvol´a kontextov´e menu a otevˇre dialog New Server (nov´ y server) vybr´an´ım volby New - Server. Jako typ serveru (poloˇzka Select the server type) uˇzivatel zvol´ı JBoss Enterprise Application Platform 6.1+. D´ale je potˇreba nastavit, odkud a jak se bude server spouˇstˇet. K tomu slouˇz´ı volba Server runtime environment. Kliknut´ım na Add se otevˇre dialog pro definici bˇehov´eho prostˇred´ı serveru (obr´ azek 5.2). Tady je potˇreba nastavit cestu k nainstalovan´emu serveru EAP 6.1.0 Alpha (poloˇzka Home Directory), bˇehov´e prostˇred´ı (verze JRE 34 ) a konfiguraˇcn´ı soubor pouˇzit´ y pˇri spuˇstˇen´ı (Configuration file). Uˇzivatel vybere bˇehov´e prostˇred´ı JRE 6 nebo 7, zad´a cestu k nainstalovan´emu aplikaˇcn´ımu serveru a jako konfiguraˇcn´ı soubor zvol´ı standalone-teiid.xml. Vytvoˇren´ı potvrd´ı kliknut´ım na Finish. Nyn´ı je moˇzn´e jeˇstˇe modifikovat jm´eno serveru a hostname35 (poloˇzky Server’s hostname a Server name). Uˇzivatel dokonˇc´ı definici dov´eho serveru kliknut´ım na Finish. V panelu Servers se objev´ı novˇe definovan´ y server, v tomto pˇr´ıpadˇe pojmenovan´ y JBoss EAP 6.1 Server. Kliknut´ım prav´ ym tlaˇc´ıtkem myˇsi na n´ azev serveru lze vyvolat kontextovou nab´ıdku, ve kter´e lze server ovl´adat. Vybr´ an´ım poloˇzky Start se server spust´ı a v serverov´em panelu je moˇzn´e proch´ azet instanci Teiid serveru pod sloˇzkou Teiid Instance Configuration (obr´ azek 5.3).
34. Java Runtime Environment 35. Oznaˇcen´ı serveru nebo jin´eho zaˇr´ızen´ı v poˇc´ıtaˇcov´e s´ıti.
29
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.2: Definice bˇehov´eho prostˇred´ı pro JBoss EAP.
Obr´ azek 5.3: Zapnut´ y JBoss EAP server zobrazen´ y na panelu server˚ u. 30
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
5.3
Reˇ sen´ı integrace CSV soubor˚ u
Integrace CSV soubor˚ u vyˇzaduje n´asleduj´ıc´ı kroky: 1.
Definovat pˇripojen´ı k textov´ ym soubor˚ um
2.
Vytvoˇrit zdrojov´ y model pro oba CSV soubory
3.
Vytvoˇrit pohledov´ y model s tabulkou, kter´a bude zkonstruov´ana pomoc´ı operace JOIN z tˇechto dvou zdrojov´ ych model˚ u
4.
Definovat a vystavit VDB S daty lze pot´e pracovat pˇr´ımo v Designeru pomoc´ı funkce n´ahledu, vy-
stavit v´ yslednou tabulku pomoc´ı protokolu OData a konzumovat ji pˇr´ımo programem Excel, popˇr. naprogramovat jednoduchou aplikaci, kter´a se k Teiidu pˇripoj´ı pˇres rozhran´ı JDBC a nab´ıdne ke staˇzen´ı v´ ysledn´ y soubor CSV, kter´ y lze d´ ale zpracovat v libovoln´em tabulkov´em procesoru. Pˇri ˇreˇsen´ı tohoto sc´en´ aˇre se uk´azalo, ˇze Teiid Designer umist’uje uvozovky kolem atribut˚ u v dotazech jen v pˇr´ıpadˇe, ˇze jsou atributy v´ıceslovn´e. Soubory UcetniZapis.csv a Zakazka.csv maj´ı atributy uveden´e vˇcetnˇe diakritiky, je proto nutn´e nejprve n´ azvy atribut˚ u pˇrepsat do podoby bez h´aˇck˚ u a ˇc´arek, nebo atributy definovat v pr˚ uvodci ruˇcnˇe. Dalˇs´ı probl´em je bug v pouˇzit´e verzi Designeru, kter´ y ˇspatnˇe generuje zdrojov´ y model pro ˇcten´ı textov´ ych soubor˚ u, pokud jsou v k´odov´an´ı Windows1250. Neˇz bude tato chyba opravena, je potˇreba pracovat se soubory v k´ odov´ an´ı UTF-8. 5.3.1 Definov´ an´ı zdroj˚ u Pˇri ˇreˇsen´ı integrace CSV soubor˚ u lze postupovat pomoc´ı dostupn´eho pr˚ uvodce Model flat file source. N´ asleduj´ıc´ı kroky pˇredpokl´adaj´ı novˇe vytvoˇren´ y projekt ”IntegraceCSV”. Dvojklikem na Create Teiid flat file connection (vytvoˇrit pˇripojen´ı k souboru) se otevˇre pr˚ uvodce pro vytvoˇren´ı pˇripojen´ı. Term´ın flat file zde oznaˇcuje soubor bez vnitˇrn´ı hierarchie. V novˇe otevˇren´em dialogu uˇzivatel vybere Flat file datasource, zad´a n´azev (napˇr. ”CSV soubory”) a potvrd´ı 31
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na volby tlaˇc´ıtkem Next. Na dalˇs´ı obrazovce se vol´ı um´ıstˇen´ı, k´odov´an´ı a form´at soubor˚ u. Um´ıstˇen´ı se definuje jako URI (volba Enter File URI ), nebo jako cesta ke sloˇzce se soubory (Select home folder). K´odov´an´ı (Select charset) a form´ at (Select flatfile style) by mˇely b´ yt nastaven´e na poˇzadovan´e hodnoty, pˇr´ıpadnˇe je lze zmˇenit zvolen´ım jin´e poloˇzky ze seznamu. Tlaˇc´ıtko Finish ukonˇc´ı pr˚ uvodce. Volba Create source model from local flat file source z pr˚ uvodce otevˇre dialog pro definici zdrojov´eho modelu. Na prvn´ı obrazovce uˇzivatel potvrd´ı volbu local files a posune se d´al tlaˇc´ıtkem Next. V nab´ıdce Data file source (obr´ azek 5.4) uˇzivatel vybere pr´avˇe vytvoˇren´e pˇripojen´ı. V nab´ıdce se objev´ı soubor na zvolen´em URI, popˇr. soubory ze zvolen´e sloˇzky. Tady uˇzivatel vybere konkr´etn´ı soubor, v tomto pˇr´ıpadˇe UcetniZapis.csv. V sekci Source Model Definition je potˇreba zvolit sloˇzku, do kter´e se model uloˇz´ı a pod jak´ ym jm´enem. Pro vˇetˇs´ı pˇrehlednost je lepˇs´ı um´ıstit zdrojov´ y model do spoleˇcn´e sloˇzky zdrojov´ ych model˚ u a pouˇz´ıt nˇejakou jmennou konvenci, kter´a umoˇzn´ı jednoduˇse rozeznat zdrojov´e a jin´e modely. Doporuˇcen´ı je tedy pojmenovat model napˇr. ”UcetniZapisSourceModel”a um´ıstit jej do sloˇzky ”sources”. Kliknut´ım na Next se v dialogu zobraz´ı n´ahled dat (obr´azek 5.5). Pokraˇcov´ an´ı pr˚ uvodce n´ asleduje po opˇetovn´em kliknut´ı na Next. Zde je moˇznost nastavit, ˇze jm´ena atribut˚ u se vytvoˇr´ı automaticky z prvn´ıho ˇr´adku CSV souboru (volba Column names in header) a zvolit oddˇelovaˇc (obr´azek 5.6). Ten je potˇreba zmˇenit volbou Edit Delimeter Character, kde uˇzivatel zad´a stˇredn´ık. V sekci Column information se nach´az´ı jednoduch´ y editor atribut˚ u, kde lze atributy pˇrejmenovat a zvolit jin´ y datov´ y typ (standardnˇe jsou vˇsechny atributy typu string, tedy prost´ y text). V pˇr´ıpadˇe souboru UcetniZapis.csv je tedy ˇz´ adouc´ı zmˇenit datov´ y typ atribut˚ u MD, Dal, Cislo radku na ”biginteger”, tj. na celoˇc´ıseln´ y typ, Datum na ”date”a atribut Castka na ”bigdecimal”, pro reprezentaci ˇcasu respektive penˇeˇzn´ı ˇc´astky.
32
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.4: V´ ybˇer souboru UcetniZapis.csv.
33
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.5: N´ahled souboru UcetniZapis.csv.
34
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.6: Nastaven´ı parsov´an´ı.
35
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Pro definov´ an´ı pohledov´eho modelu se uˇzivatel pˇresune na posledn´ı ˇc´ast dialogu tlaˇc´ıtkem Next. Zad´a n´azev modelu (poloˇzka Name), napˇr. ”UcetniZapisViewModel”, um´ıstˇen´ı (poloˇzka Location) a n´azev vznikl´e relaˇcn´ı tabulky (poloˇzka New view table name), napˇr. ”ucetni zapis”a dokonˇc´ı dialog kliknut´ım na Finish. V projektu se objev´ı nov´e .xmi soubory s definic´ı pr´avˇe vytvoˇren´ ych model˚ u UcetniZapisSourceModel.xmi a UcetniZapisViewModel.xmi. V hlavn´ım oknˇe se objev´ı pohledov´ y model s vytvoˇrenou tabulkou ucetni zapis, spolu s pˇrehledem atribut˚ u a jejich datov´ ych typ˚ u (obr´azek 5.7). Na ˇzlut´ y obd´eln´ık oznaˇcuj´ıc´ı tabulku a na jednotliv´e atributy lze kliknout. T´ım dojde k jejich oznaˇcen´ı, panel Properties (vlastnosti, na obr´azku vlevo dole) uk´aˇze jejich aktu´ alnˇe definovan´e vlastnosti a umoˇzn´ı je editovat. Dvojklik na tabulku otevˇre transformaˇcn´ı diagram (obr´azek 5.8). Tady je graficky naznaˇcen´ a transformace dat z textov´eho souboru pomoc´ı procedury GetTextFiles, kter´ a je volan´a na dan´em zdrojov´em modelu UcetniZapisSourceModel. V doln´ı ˇc´asti obrazovky je zobrazen SQL dotaz, kter´ y Teiid pouˇzije pro naplnˇen´ı virtu´aln´ı tabulky ucetni zapis. Zde je moˇzn´e si vˇsimnout, ˇze kromˇe procedury GetTextFiles pro naˇcten´ı souboru je vol´ana jeˇstˇe funkce TEXTTABLE, kter´a vstup parsuje dle definovan´ ych atribut˚ ua zadan´eho oddˇelovaˇce. Jednotliv´e prvky diagramu lze opˇet oznaˇcit a editovat a je moˇzn´e i pˇrepsat vygenerovan´ y SQL dotaz. Protoˇze pouˇzit´ y form´ at atribut˚ u Datum a Castka v p˚ uvodn´ım CSV souboru nen´ı v jednom ze standardnˇe podporovan´ ych form´at˚ u Teiidu, je nutn´e vygenerovan´ y SQL dotaz upravit. To sest´av´a ze dvou krok˚ u, kdy uˇzivatel nejprve zmˇen´ı datov´ y typ u dan´ ych atribut˚ u ve funkci TEXTTABLE na ”string”, ˇc´ımˇz se doc´ıl´ı toho, ˇze nebude pouˇzit´ y v´ ychoz´ı parser, a pot´e uprav´ı v´ ybˇer pˇr´ıkazu SELECT tak, ˇze nad vybran´ ym atributem zavol´a potˇrebn´e funkce, kter´e naˇcten´ y ˇretˇezec zmˇen´ı do poˇzadovan´e podoby. Na atribut Datum se pouˇzije funkce parseDate, kter´e se pouze pˇred´a pouˇzit´ y form´ at, v tomto pˇr´ıpadˇe ˇcesk´e form´atov´an´ı datumu reprezentovan´e ˇretˇezcem ”dd.MM.yyyy”(dd oznaˇcuje dvoucifern´ y z´apis dnu, MM dvoucifern´ y z´ apis mˇes´ıce a yyyy ˇctyˇrcifern´ y z´apis roku). Reprezentace penˇeˇzn´ı ˇca´stky se v Teiidu prov´ad´ı ˇc´ıslem bez mezer, kde
36
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na teˇcka je pouˇzita jako ˇcesk´ a desetinn´a ˇc´arka. Aby bylo moˇzn´e naˇc´ıst ˇc´astky uveden´e v UcetniZapis.csv, je potˇreba nahradit ˇc´arku za teˇcku a odstranit vˇsechny mezery. V´ ysledkem je kombinace vol´an´ı funkc´ı PARSEBIGDECIMAL a REPLACE. Po editaci dotazu se mus´ı zmˇeny jeˇstˇe uloˇzit a to bud’ z menu File - Save nebo kl´ avesovou zkratkou CTRL+S. V´ ysledn´ y SQL dotaz po proveden´ ych zmˇen´ ach je uveden ve v´ ypisu 5.1. Nyn´ı je potˇreba tento postup zopakovat pro soubor Zakazka.csv a vytvoˇrit tak ZakazkaSourceModel.xmi a ZakazkaViewModel.xmi. Analogicky je potˇreba zmˇenit datov´ y typ u atribut˚ u Datum predani a Datum zahajeni a stejnˇe tak upravit v´ ysledn´ y dotaz. Jeho podobu lze vidˇet ve v´ ypisu 5.2. V´ ypis 5.1: Upraven´ y dotaz pro naˇcten´ı souboru UcetniZapis.csv. SELECT A."Cislo radku", parseDate(A.Datum, ’dd.MM.yyyy’ ,→ ) AS Datum, A.MD, A.Dal, A.Zakazka, A."Parovaci ,→ symbol", PARSEBIGDECIMAL(REPLACE(REPLACE(A.Castka ,→ , ’ ’, ’’), ’,’, ’.’), ’#,##0.0#’) AS Castka, A." ,→ Cislo dokladu", A.Stredisko, A."Popis pripadu", A ,→ .cinnost, A."Druh dokladu" FROM (EXEC ,→ UcetniZapisSourceModel.getTextFiles(’UcetniZapis. ,→ csv’)) AS f, TEXTTABLE(f.file COLUMNS "Cislo ,→ radku" biginteger, Datum string, MD biginteger, ,→ Dal biginteger, Zakazka string, "Parovaci symbol" ,→
string, Castka string, "Cislo dokladu" string,
,→ Stredisko string, "Popis pripadu" string, cinnost ,→
string, "Druh dokladu" string DELIMITER ’;’
,→ HEADER) AS A
37
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na V´ ypis 5.2: Upraven´ y dotaz pro naˇcten´ı souboru Zakazka.csv. SELECT A.Kod, parseDate(A."Datum predani", ’dd.MM.yyyy ,→ ’) AS "Datum predani", A.Nazev, parseDate(A." ,→ Datum zahajeni", ’dd.MM.yyyy’) AS "Datum zahajeni ,→ ", A."Nazev stavu", A."Nazev druhu zakazky", A." ,→ Jmeno zodpovedneho pracovnika" FROM (EXEC ,→ ZakazkaSourceModel.getTextFiles(’Zakazka.csv’)) ,→ AS f, TEXTTABLE(f.file COLUMNS Kod string, "Datum ,→
predani" string, Nazev string, "Datum zahajeni"
,→ string, "Nazev stavu" string, "Nazev druhu ,→ zakazky" string, "Jmeno zodpovedneho pracovnika" ,→ string DELIMITER ’;’ HEADER) AS A
5.3.2 Spojen´ı dat Nyn´ı lze pˇristoupit ke spojen´ı tabulek ucetni zapis a zakazky. Po kliknut´ı prav´ ym tlaˇc´ıtkem na n´ azev projektu v pr˚ uzkumn´ıku Model Explorer je moˇzn´e pomoc´ı volby New - Teiid Metadata Model vyvolat dialog pro vytvoˇren´ı nov´eho modelu. Uˇzivatel zde vybere um´ıstˇen´ı modelu (Location), zad´ a n´ azev nov´eho modelu (Model Name), a typ (Model Type). Jako n´azev zad´ a ”UcetniZapisZakazkaViewModel”, vybere typ ”View model”pro vytvoˇren´ı pohledov´eho modelu a jako um´ıstˇen´ı opˇet zvol´ı sloˇzku views. Kliknut´ım na Finish dojde k vytvoˇren´ı pr´azdn´eho modelu UcetniZapisZakazkaViewModel.xmi. Po otevˇren´ı modelu se zobraz´ı tzv. Package diagram. Kliknut´ım na zelenou plochu prav´ ym tlaˇc´ıtkem lze vyvolat nab´ıdku pro pr´aci s diagramem. Volba New child - Table slouˇz´ı k definici nov´ ych tabulek. Po otevˇren´ı dialogu uˇzivatel vypln´ı n´ azev, napˇr. ”ucetni zapis zakazky”a stiskut´ım tlaˇc´ıtka OK potvrd´ı vytvoˇren´ı pr´ azdn´e tabulky. V´ ysledek lze vidˇet na obr´azku 5.9. Dvojklikem na ˇctverec reprezentuj´ıc´ı novˇe vytvoˇrenou tabulku se uˇzivatel pˇresune na jej´ı transformaˇcn´ı diagram. Na lev´e stranˇe transformaˇcn´ıho diagramu je s´erie tlaˇc´ıtek, kter´a umoˇzn ˇuje pˇridat a odeb´ırat zdroje pro danou tabulku. Pokud nyn´ı v oknˇe Model explorer uˇzivatel vybere nˇejakou 38
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na jinou tabulku, zpˇr´ıstupn´ı se na panelu transformaˇcn´ıho diagramu volba Add Transformation Source(s) (Pˇridat transformaˇcn´ı zdroje). Uˇzivatel postupnˇe vybere tabulky ucetni zapis a zakazka a na panelu pro kaˇzdou z nich klikne na tlaˇc´ıtko Add Transformation Source(s). Pot´e se na digramu objev´ı dan´e tabulky na prav´e stranˇe jako zdrojov´e tabulky a jejich atributy se automaticky pˇridaj´ı do tabulky zdrojovy zapis zakazka. Nyn´ı lze opˇet digram d´ale upravovat. Napˇr. po kliknut´ı na libovoln´ y atribut se zv´ yrazn´ı dan´ y atribut v c´ılov´e i zdrojov´e tabulce. Popsanou situaci ilustruje obr´azek 5.10. Pˇri pohledu na SQL dotaz vygenerovan´ y po pˇrid´an´ı zdrojov´ ych tabulek lze vidˇet, ˇze tabulky nejsou jeˇstˇe spr´avnˇe propojeny pomoc´ı atribut˚ u Kod a Zakazka. Uˇzivatel nyn´ı vybere pr´avˇe tyto dva atributy a to postupn´ ym kliknut´ım na kaˇzd´ y z nich pˇri souˇcasn´em stisku kl´avesy CTRL. Pˇres prav´e tlaˇc´ıtko myˇsi vyvol´ a nab´ıdku, ve kter´e vybere Create INNER Join (vytvoˇrit vnitˇrn´ı spojen´ı). Transformaˇcn´ı dotaz se vz´apˇet´ı zmˇen´ı na INNER join na v´ yˇse uveden´ ych atributech. Vytvoˇren´ı virtu´ aln´ı datab´aze a vystaven´ı dat je diskutov´ano spoleˇcnˇe pro oba sc´en´ aˇre v sekci Vystaven´ı dat.
39
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.7: Vytvoˇren´ y pohledov´ y a zdrojov´ y model souboru UcetniZapis.csv.
40
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.8: Transformaˇcn´ı diagram tabulky ucetni zapis.
41
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.9: Diagram modelu s pr´azdnou tabulkou ucetni zapis zakazky.
42
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.10: Pˇridan´e transformaˇcn´ı zdroje v transformaˇcn´ım diagramu modelu UcetniZapisZakazkaViewModel.
43
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
5.4
Reˇ sen´ı integrace datab´ az´ı
Integrace dvou r˚ uzn´ ych datab´az´ı vyˇzaduje n´asleduj´ıc´ı kroky: 1.
Definovat pˇripojen´ı k obˇema datab´az´ım
2.
Vytvoˇrit zdrojov´ y model pro obˇe datab´aze
3.
Vytvoˇrit pohledov´ y model s tabulkou, kter´a bude zkonstruov´ana pomoc´ı operace JOIN z tˇechto dvou zdrojov´ ych model˚ u
4.
Definovat a vystavit VDB Stejnˇe jako pˇri integraci CSV soubor˚ u, lze s daty pot´e pracovat pˇr´ımo v
Designeru pomoc´ı funkce n´ ahledu, vystavit v´ yslednou tabulku pomoc´ı protokolu OData a konzumovat ji pˇr´ımo programem Excel, popˇr. naprogramovat jednoduchou aplikaci, kter´a se k Teiidu pˇripoj´ı pˇres rozhran´ı JDBC a nab´ıdne ke staˇzen´ı v´ ysledn´ y soubor CSV, kter´ y lze d´ale zpracovat v libovoln´em tabulkov´em procesoru. Protoˇze poˇzadavkem je integrovat datab´aze MS SQL Serveru, je potˇreba nejprve tento server nakonfigurovat, aby umoˇznil vzd´alen´e pˇripojen´ı pˇres rozhran´ı JDBC. To zahrnuje povolen´ı pˇr´ıstupu pˇres TCP/IP36 a nastaven´ı portu na 1433 (coˇz je obvykle pouˇz´ıvan´ y port pro MS SQL Server) [16]. Pokud nebude pouˇzita integrovan´ a autentizace ve Windows, je tak´e potˇreba povolit kombinovanou formu pˇrihlaˇsov´an´ı a nastavit uˇzivatelsk´e jm´eno a heslo. Pro tento tutori´ al byly vytvoˇreny dvˇe datab´aze (k-net a k-net2) tak, ˇze se az´ı v datab´azi k-net a tabulka zakazky v datab´azi tabulka ucetni zapis nach´ k-net2. Jednotliv´e tabulky byly importov´any z dodan´ ych CSV soubor˚ u pomoc´ı operace BULK INSERT [17]. 5.4.1 Definov´ an´ı zdroj˚ u Pˇri ˇreˇsen´ı integrace datab´ az´ı lze postupovat pomoc´ı dostupn´eho pr˚ uvodce Model JDBC Datasource. N´asleduj´ıc´ı kroky pˇredpokl´adaj´ı vytvoˇren´ y nov´ y projekt ”IntegraceDatabaze”. 36. Komunikaˇcn´ı model a rodina protokol˚ u pouˇz´ıvan´ ych v s´ıti Internet.
44
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na V pr˚ uvodci uˇzivatel spust´ı akci Create JDBC Connection (vytvoˇrit JDBC pˇripojen´ı). V novˇe otevˇren´em oknˇe New Connection profile (nov´ y profil pˇripojen´ı) vybere typ SQL Server a zad´a n´azev profilu, napˇr. “K-net 1”. Kliknut´ım na Next se otevˇre dialog pro specifikaci pˇripojen´ı. Protoˇze zat´ım nen´ı definovan´ y ovladaˇc pˇripojen´ı k SQL Serveru, je potˇreba jej pˇridat kliknut´ım na New driver definition (definice nov´eho ovladaˇce). Obrazovka pro pˇrid´an´ı nov´eho ovladaˇce je na obr´ azku 5.11. Jako ˇsablonu ovladaˇce vybere uˇzivatel Microsoft SQL Server 2008 JDBC Driver, zad´a libovoln´ y n´azev (poloˇzka Driver name) a v z´ aloˇzce JAR list pomoc´ı tlaˇc´ıtka Add JAR/Zip vybere cestu k ovladaˇci datab´ azov´eho serveru. Ten lze st´ahnout ze str´anek SQL Server Developer Center [24]. K dispozici je ovladaˇc ve dvou verz´ıch: sqljdbc.jar a sqljdbc4.jar. V´ ybˇer spr´ avn´e verze z´aleˇz´ı na verzi JDBC a na verzi JRE [18]. Kliknut´ım na OK bude ovladaˇc pˇrid´an. Po n´ avratu na p˚ uvodn´ı dialog uˇzivatel vypln´ı poloˇzky n´azev datab´aze (Database), host (Host), port (Port number), uˇzivatelsk´e jm´eno (Username) a heslo (Password). V pˇripadˇe pouˇzit´ı integrovan´e Windows autentizace se jm´eno a heslo neuv´ ad´ı. Takto definovan´e pˇripojen´ı je moˇzn´e otestovat pomoc´ı tlaˇc´ıtka Test Connection. Uˇzivatel dokonˇc´ı tvorbu pˇripojen´ı tlaˇc´ıtkem Finish. Z pr˚ uvodce pˇres akci Create source model for JDBC data source (vytvoˇrit zdrojov´ y model pro datov´ y zdroj JDBC) uˇzivatel otevˇre dialog pro vytvoˇren´ı zdrojov´eho modelu. Vybere pr´avˇe definovan´ y profil pˇripojen´ı, jako JDBC Metadata Processor nech´ a SQL Server a potvrd´ı volbu tlaˇc´ıtkem Next. V dalˇs´ım oknˇe je moˇzn´e nastavit, kter´e datab´azov´e metadata (ciz´ı kl´ıˇce, indexy, procedury) a kter´e tabulky (standardn´ı, syst´emov´e, pohledov´e) se budou importovat. Uˇzivatel zde v tomto pˇr´ıpadˇe m˚ uˇze ponechat v´ ychoz´ı hodnoty a pˇresunout se d´ al kliknut´ım na Next. Na obrazovce Select database objects (v´ ybˇer datab´azov´ ych objekt˚ u) uˇzivatel zvol´ı, kter´e tabulky budou importov´any do zdrojov´eho modelu. Jak ilustruje obr´ azek 5.12, v´ ybˇerem sch´ema dbo (v´ ychoz´ı sch´ema pro tabulky v prostˇred´ı MS SQL Serveru) v datab´azi k-net se zobraz´ı seznam tabulek, kde je pr´ avˇe tabulka dbo.ucetni zapis. Po v´ ybˇeru t´eto tabulky lze jeˇstˇe prohl´ıˇzet jej´ı vlastnosti v prav´e ˇc´ asti okna. Tlaˇc´ıtkem Next se zobraz´ı volby pro zdrojov´ y model (obr´azek 5.13).
45
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na Uˇzivatel zad´ a n´ azev modelu (Model name) ”UcetniZapisSourceModel”a vybere um´ıstˇen´ı ve sloˇzce sources. Tlaˇc´ıtkem Finish dojde k vytvoˇren´ı zdrojov´eho modelu UcetniZapisSourceModel.xmi. Stejn´ ym postupem je potˇreba vytvoˇrit profil pˇripojen´ı k datab´azi k-net2 a zdrojov´ y model ZakazkaSourceModel.xmi pro tabulku zakazky.
46
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.11: Definice nov´eho JDBC ovladaˇce.
47
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.12: V´ ybˇer datab´azov´ ych objekt˚ u, kter´e budou souˇc´ast´ı vytv´ aˇren´eho modelu.
48
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.13: Parametry vytv´aˇren´eho zdrojov´eho modelu.
49
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na 5.4.2 Spojen´ı dat Spojen´ı pr´ avˇe definovan´ ych zdroj˚ u lze prov´est stejn´ ym zp˚ usobem jako pˇri integraci CSV soubor˚ u. Uˇzivatel vytvoˇr´ı spoleˇcn´ y model UcetniZapisZakazka.xmi ve sloˇzce views. Pot´e v nˇem vytvoˇr´ı tabulku ucetni zapis zakazky a pˇresune se do transformaˇcn´ıho diagramu. Pˇrid´an´ı zdroj˚ u bude prob´ıhat stejnˇe, s t´ım rozd´ılem, ˇze se pouˇzij´ı tabulky ze zdrojov´ ych, nikoli pohledov´ ych, model˚ u (pˇri vytv´ aˇren´ı zdrojov´ ych model˚ u zaloˇzen´ ych na JDBC jiˇz nedoch´ az´ı k automatick´emu vytv´aˇren´ı pohledov´ ych model˚ u). Uˇzivatel tedy pˇrid´ a tabulky ucetni zapis a zakazky z model˚ u UcetniZapisSourceModel respektive ZakazkaSourceModel a propoj´ı je opˇet operac´ı INNER JOIN. Ve v´ ypisu 5.3 je k vidˇen´ı v´ ysledn´ y transformaˇcn´ı dotaz. Vytvoˇren´ı virtu´ aln´ı datab´aze a vystaven´ı dat je diskutov´ano spoleˇcnˇe pro oba sc´en´ aˇre v sekci Vystaven´ı dat. V´ ypis 5.3: Transformaˇcn´ı dotaz tabulky ucetni zapis zakazky. SELECT * FROM ZakazkaSourceModel.zakazky INNER JOIN ,→ UcetniZapisSourceModel.ucetni_zapis ON ,→ ZakazkaSourceModel.zakazky.Kod = ,→ UcetniZapisSourceModel.ucetni_zapis.Zakazka
50
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
5.5
Vystaven´ı dat
Data lze prohl´ıˇzet i pˇr´ımo v prostˇred´ı Teiid Designeru. Z´aznamy z kter´ekoli tabulky lze zobrazit vyvol´ an´ım kontextov´e nab´ıdky (kliknut´ım prav´ ym tlaˇc´ıtkem myˇsi na tabulku v diagramu nebo na kter´emkoli panelu) a vybr´an´ım volby Modeling - Preview Data. Nen´ı pˇritom potˇreba, aby byla dopˇredu vytvoˇrena virtu´ aln´ı datab´ aze. Jedinn´ ym poˇzadavkem je spr´avnˇe nakonfigurovan´ y a spuˇst’en´ y Teiid na aplikaˇcn´ı serveru, kter´ y je evidov´an na serverov´em panelu programu Eclipse. V tomto n´ahledu dat Teiid Designer standardnˇe zobraz´ı maxim´ alnˇe 500 z´ aznam˚ u. Pokud jich chce uˇzivatel zobrazit v´ıce nebo je naopak omezit, mus´ı upravit volby Max row count a Max display row count v menu Window - Preferences - Data Management - SQL Development - SQL Results View Options. Uk´ azku n´ ahledu dat z tabulky ucetni zapis ilustruje obr´azek 5.14. V lev´e ˇc´ asti panelu lze proch´ azet dˇr´ıve vyvolan´e ˇz´adosti o n´ahled dat, v prav´e ˇc´asti vid´ıme samotn´e poloˇzky. Tento panel lze kdykoli zobrazit vyvol´an´ım nab´ıdky Windows - Show view - Data Management - SQL Results.
Obr´ azek 5.14: N´ahled dat v prostˇred´ı Teiid Designer.
51
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na 5.5.1 Vytvoˇ ren´ı virtu´ aln´ı datab´ aze Pro vystaven´ı dat je potˇreba vytvoˇrit virtu´aln´ı datab´azi. Nejprve vˇsak uˇzivatel vytvoˇr´ı dalˇs´ı sloˇzku v projektu pro ukl´ad´an´ı virtu´aln´ıch datab´az´ı. V pr˚ uzkumn´ıku projektu se nov´a sloˇzka vytv´aˇr´ı kliknut´ım prav´ ym tlaˇc´ıtkem myˇsi na n´ azev projektu a vybr´an´ım volby New - Folder. Pot´e staˇc´ı zadat nov´ y n´ azev, napˇr. ”vdb”, a potvrdit vytvoˇren´ı tlaˇc´ıtkem Finish. K vytvoˇren´ı VDB uˇzivatel pouˇzije akci Define VDB (definovat VDB) z palety Guides, nebo menu File - New - Teiid VDB. V novˇe otevˇren´em dialogu vybere volbu New (nov´a). Zde (obr´azek 5.15) zad´a, kam chce soubor s definic´ı VDB um´ıstit (poloˇzka In folder...), jm´eno virtu´aln´ı datab´aze (VDB name) a volitelnˇe tak´e popis (Description). Um´ıstˇen´ı VDB bude v nov´e sloˇzce vdb a jm´eno uˇzivatel zvol´ı ”Ucetnictvi”. Tlaˇc´ıtkem Add (pˇridat) se vyb´ıraj´ı modely, kter´e budou souˇc´ast´ı t´eto virtu´aln´ı datab´aze. Protoˇze je ˇz´ adouc´ı vystavit jiˇz integrovan´a data, pˇrid´an bude model UcetniZapisZakazka.xmi (ostatn´ı modely, na kter´ ych tento model z´avis´ı, budou pˇrid´any automaticky). Pot´e je moˇzn´e dialog potvrdit tlaˇc´ıtkem Finish a posl´eze i prvn´ı dialog tlaˇc´ıtkem OK. T´ım dojde k vytvoˇren´ı souboru Ucetnictvi.vdb a jeho otevˇren´ı v prostˇred´ı Teiid Designeru. Virtu´ aln´ı datab´ azi lze nyn´ı pouˇz´ıt nˇekolika zp˚ usoby. Volbou Modeling Execute VDB z kontextov´eho menu na souboru Ucetnictvi.vdb se otevˇre tzv. SQL Scrapbook. Jedn´ a se v podstatˇe o textov´ y editor SQL, kter´ y je propojen s VDB. Slovo scrapbook oznaˇcuje v angliˇctinˇe seˇsit na vlepov´an´ı v´ ystˇriˇzk˚ u a tento SQL Scrapbook funguje podobnˇe. Uˇzivatel si do nˇej zapisuje r˚ uzn´e SQL dotazy, kter´e posl´eze m˚ uˇze pustit nad virtu´aln´ı datab´az´ı, aniˇz by musel pro kaˇzd´ y dotaz vytv´ aˇret speci´aln´ı virtu´aln´ı tabulku. Jedn´a se tedy o n´astroj, kter´ y lze vyuˇz´ıt k rychl´emu prototypov´an´ı nebo dotazov´an´ı dat. Jakmile do nˇej uˇzivatel zad´ a dotaz, m˚ uˇze jej spustit pˇres volbu Execute all (spustit vˇse) z kontextov´eho menu. Ale aby bylo moˇzn´e m´ıt v jednom otevˇren´em editoru v´ıce zapsan´ ych dotaz˚ u a libovolnˇe je spouˇstˇet, existuje jeˇstˇe volba Execute selected text (spustit oznaˇcen´ y text), kter´a je dostupn´a po oznaˇcen´ı dotazu. Pouˇzit´ı n´ astroje SQL Scrapbook ilustruje obr´azek 5.16. Dalˇs´ı moˇznost´ı je nahr´ an´ı VDB souboru na Teiid server a jeho zpˇr´ıstupnˇen´ı pˇres rozhran´ı JDBC a OData. Virtu´aln´ı datab´aze se na server nahr´av´a 52
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na pˇr´ıkazem Modeling - Deploy, kter´ y lze opˇet vyvolat z kontextov´eho menu. Pot´e, co dojde k nahr´ an´ı vybran´eho VDB souboru na server, jsou data k dispozici pˇres JDBC i OData automaticky. Pokud chce uˇzivatel vyuˇz´ıt rozhran´ı JDBC, bude potˇrebovat ve sv´em programu pouˇz´ıt Teiid JDBC Driver [26], kter´ y je distribuov´ an spolu s Teiid serverem.
53
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.15: Vytv´aˇren´ı VDB.
54
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.16: Tzv. SQL Scrapbook.
55
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na 5.5.2 Zobrazen´ı dat v programu Excel Pˇripojen´ı programu Microsoft Excel k Teiid serveru je moˇzn´e protokolem OData. Vystaven´ı dat pˇres OData vyˇzaduje, aby sch´ema tabulky obsahovalo prim´ arn´ı kl´ıˇc nebo atribut s omezen´ım typu UNIQUE, tedy aby alespoˇ n jeden atribut zajiˇst’oval unik´atnost z´aznamu. Protoˇze v pˇr´ıkladu virtu´aln´ı datab´ aze Ucetnictvi.vdb jsou integrovan´a data uloˇzena v tabulce ucetni zapis zakazky, je do n´ı potˇreba zan´est informaci o unik´atnosti atributu Cislo radku. Na diagramu modelu UcetniZapisZakazka vyvol´a uˇzivatel kontextov´e menu na v´ yˇse zm´ınˇen´e tabulce a zvol´ı volbu New child - Primary key (pˇridat prim´ arn´ı kl´ıˇc jako potomka). Jako n´azev zvol´ı ”Id”. N´aslednˇe po vybr´ an´ı atributu Id je moˇzn´e zmˇenit jeho vlastnosti v panelu Properties (vlastnosti). Uˇzivatel vybere zmˇenu sloupc˚ u, na kter´e se prim´arn´ı kl´ıˇc vztahuje (poloˇzka Columns). To vyvol´a dialog pro v´ ybˇer sloupc˚ u (obr´azek 5.17). Sloupec Cislo radku je potˇreba pˇresunout do seznamu na prav´e stranˇe a potvrdit tlaˇc´ıtkem OK. Po nahr´ an´ı aktu´ aln´ı virtu´aln´ı datab´aze s definovan´ ym prim´arn´ım kl´ıˇcem je moˇzn´e pˇristoupit ke konzumaci dat. K tomu slouˇz´ı spr´avn´ y tvar URL [27], kter´ y definuje, ke kter´e virtu´aln´ı datab´azi, kter´emu modelu a ke kter´e tabulce m´ a b´ yt pˇristoupeno. D´ ale lze jeˇstˇe specifikovat form´at a dalˇs´ı parametry, jsou-li potˇreba. Dotaz pro zobrazen´ı z´aznam˚ u z tabulky ucetni zapis zakazky je uveden ve v´ ypisu 5.4. V´ ypis 5.4: URL pro pˇripojen´ı pˇres protokol OData. http://localhost:8080/odata/Ucetnictvi.1/ ,→ UcetniZapisZakazka.ucetni_zapis_zakazky V programu Excel je potˇreba vytvoˇrit pr´azdn´ y dokument a na z´aloˇzce Data vybrat From other sources - From OData Data Feed. T´ım se otevˇre dialog pro pˇripojen´ı k datov´emu zdroji (obr´azek 5.18). Tady uˇzivatel vypln´ı URL uvedenou ve v´ ypisu 5.4 (poloˇzka Location of the data feed). D´ale zad´a jm´eno a heslo, protoˇze ve v´ ychoz´ım nastaven´ı je autentizace k serveru Teiid ˇreˇsena z´ akladn´ı HTTP autentizac´ı (oznaˇcovanou jako Basic access authentication). Pokud nebylo jm´eno a heslo zmˇenˇeno, je moˇzn´e pouˇz´ıt uˇzivatele ”user”s heslem ”user”. Po kliknut´ı na Next je uˇzivateli nab´ıdnut v´ ybˇer tabu56
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.17: V´ ybˇer sloupc˚ u pro prim´arn´ı kl´ıˇc. lek (obr´ azek 5.19). Zadan´e URL jiˇz obsahuje informaci o dotazovan´e tabulce, uˇzivatel proto m˚ uˇze dokonˇcit pr˚ uvodce kliknut´ım na Finish a d´ale s daty pracovat v prostˇred´ı tohoto programu.
57
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.18: Pˇripojen´ı k datov´emu zdroji v programu Microsoft Excel.
58
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
Obr´ azek 5.19: V´ ybˇer tabulek v Microsoft Excel.
59
´ vrh datove ´ federace ve spolec ˇnosti K-net 5. Na
5.6
Technick´ e z´ azem´ı a provoz syst´ emu
Po konzultaci s firmou K-net byl pro potˇreby testov´an´ı vytvoˇren virtu´aln´ı stroj s 1 CPU s 64-bitovou architekturou a 640MB pamˇeti RAM. Jako operaˇcn´ı syst´em byl vybr´ an CentOS [2] ve verzi 5.7 a to ze dvou d˚ uvod˚ u. Knet m´ a jiˇz zkuˇsenosti s provozem virtu´aln´ıch server˚ u postaven´ ych na tomto operaˇcn´ım syst´emu a CentOS je deriv´at Red Hat Enterprise Linuxu, coˇz je syst´em, pro kter´ y se Teiid ve sv´e komerˇcn´ı podobˇe prim´arnˇe vyv´ıj´ı a na kter´ y se certifikuje. Poskytnut´ y virtu´ aln´ı stroj disponuje pˇr´ıstupem do vnitˇrn´ı s´ıtˇe a dok´aˇze se tak pˇripojit k intern´ım datab´azov´ ym server˚ um. Takt´eˇz je k dispozici pˇr´ıstup k internetu, d´ıky ˇcemuˇz lze tento stroj obsluhovat vzd´alenˇe a nav´ıc i instalovat potˇrebn´ y software pˇr´ımo z prim´arn´ıch internetov´ ych zdroj˚ u. JBoss Teiid byl na tento stroj u ´spˇeˇsnˇe nainstalov´an pomoc´ı pˇr´ıkazov´e ˇr´ adky pˇripojen´e protokolem SSH [11]. Jedin´ ym probl´emem byla velikost pamˇeti RAM, protoˇze JBoss AS vyˇzaduje ve standardn´ı konfiguraci 1303MB. ˇ sen´ım je bud’ pamˇet’ na serveru nav´ Reˇ yˇsit, nebo upravit konfiguraci v souboru bin/standalone.conf. Jednou z vˇec´ı, kterou je potˇreba po instalaci vyˇreˇsit, je zabezpeˇcen´ı serveru. V´ ychoz´ı nastaven´ı nen´ı bezpeˇcn´e. Autentizace je prov´adˇena oproti neˇsifrovan´emu textov´emu souboru, kde je uveden uˇzivatel user s heslem user. Informace o tom, jak zabezpeˇcen´ı serveru prov´est, jsou uvedeny v dokumentaci [28]. Pro pˇripojen´ı klient˚ u pˇres JDBC je tak´e moˇzn´e pouˇz´ıt SSL37 .
37. Secure Sockets Layer je kryptografick´ y protokol pro zabezpeˇcenou komunikaci.
60
6 Z´ avˇ er Poˇc´ ateˇcn´ım impulsem k naps´an´ı t´eto pr´ace byla potˇreba firmy K-net vytv´aˇret reporty, kter´e nebyly dostupn´e v dosud pouˇz´ıvan´ ych n´astroj´ıch, a snaha vytv´ aˇret i reporty, kter´e ˇcerpaj´ı data z v´ıce r˚ uzn´ ych zdroj˚ u dat najednou, napˇr. propojit data z u ´ˇcetn´ıho software a z programu pro ˇr´ızen´ı vztah˚ u se z´ akazn´ıky. Sezn´ amil jsem se proto s n´astrojem JBoss Teiid, kter´ y jsem firmˇe K-net prezentoval. V pr˚ ubˇehu pr´ace jsme spoleˇcnˇe hledali moˇznosti jeho nasazen´ı a pouˇzit´ı. Diplomov´ a pr´ ace zaˇc´ın´ a definic´ı pojm˚ u business intelligence, datov´a integrace, datov´ a virtualizace a datov´a federace. Vˇsechno jsou to pojmy, kter´e se d´ ale v pr´ aci pouˇz´ıvaj´ı a umoˇzn´ı ˇcten´aˇri pˇresnˇeji vymezit jejich obsah a l´epe se v dan´e problematice orientovat. Dalˇs´ı ˇc´ast teoretick´e pr´ace diskutuje r˚ uzn´e pˇr´ıstupy k integraci dat a vytv´aˇren´ı syst´em˚ u pro business intelligence. Tyto pˇr´ıstupy jsem rozdˇelil do dvou hlavn´ıch oblast´ı: na syst´emy, kter´e pouˇz´ıvaj´ı datov´ y sklad a na syst´emy vyuˇz´ıvaj´ıc´ı centr´aln´ı server pro virtualizaci dat. Popsal jsem, jak pˇristupuj´ı k datov´ ym zdroj˚ um, jak je integruj´ı do sebe, a uvedl jejich siln´e a slab´e str´anky. D´ ale popisuji firmu K-net a jej´ı zamˇeˇren´ı. Uv´ad´ım zde informaˇcn´ı syst´emy, kter´e jsou ve firmˇe pouˇz´ıv´ any a z toho plynouc´ı poˇzadavky na integraci dat a vytv´ aˇren´ı nov´ ych report˚ u. Tak´e jsou zde pops´any dodan´e soubory, na kter´ ych je pozdˇeji pr´ ace s Teiidem ilustrov´ana. JBoss Teiid je pops´ an v samostatn´e ˇc´asti. Ta zmiˇ nuje nˇekter´e jeho z´akladn´ı komponenty a vysvˇetluje, na jak´em principu tento n´astroj funguje. Pops´an je model virtu´ aln´ı datab´ aze v kontextu Teiidu a jeho hlavn´ı souˇc´asti. D´ale uv´ ad´ım podporu protokol˚ u a rozhran´ı, jak pro integraci, tak pro n´asledn´e vystaven´ı dat. Pˇredstaven je tak´e program Teiid Designer, kter´ y slouˇz´ı pro vizu´ aln´ı modelov´ an´ı zm´ınˇen´ ych virtu´aln´ıch datab´az´ı. V textu uv´ad´ım nejˇcastˇejˇs´ı nab´ıdky a n´ astroje, kter´e se v nˇem pouˇz´ıvaj´ı, zejm´ena ty, se kter´ ymi se v t´eto pr´ aci pracuje. Praktick´ a ˇc´ ast obsahuje n´avody pro instalaci, provoz a pouˇz´ıv´an´ı Teiidu i programu Teiid Designer. Vytvoˇril jsem sc´en´aˇre pro integraci CSV soubor˚ ua relaˇcn´ıch datab´ az´ı na z´ akladˇe dodan´ ych dat a popsal postupy, jak s daty d´ale 61
´ ve ˇr 6. Za pracovat a vystavit je pro konzumaci jin´ ymi programy, zejm´ena programem Excel pomoc´ı protokolu OData. Vˇsechny n´avody jsou ilustrov´any pomoc´ı sn´ımk˚ u obrazovky, aby se ˇcten´aˇr v n´avodech l´epe orientoval. Ve firmˇe K-net existuje cel´a ˇrada potenci´aln´ıch integraˇcn´ıch sc´en´aˇr˚ u, pro kter´e lze n´ astroj JBoss Teiid pouˇz´ıt. Bohuˇzel tyto sc´en´aˇre jsou n´aroˇcn´e nejen na znalosti integrace dat obecnˇe, ale tak´e na znalosti pˇr´ımo integrovan´ ych syst´em˚ u a dat. Pˇrestoˇze nebylo moˇzn´e tyto pokroˇcil´e sc´en´aˇre v t´eto pr´aci vyˇreˇsit, postup jejich ˇreˇsen´ı je obdobn´ y tomu ze sc´en´aˇr˚ u v t´eto pr´aci popsan´ ych. K Teiidu a jeho pouˇzit´ı s Teiid Designerem na pˇr´ıkladu re´aln´ ych dat moment´ alnˇe neexistuj´ı ˇz´ adn´e podobn´e zdroje a proto se jedn´a o pomˇernˇe unik´ atn´ı text, kter´ y m˚ uˇze pomoci nejen firmˇe K-net, ale i jin´ ym firm´am, kter´e by r´ ady ˇreˇsili integraci dat pomoc´ı tohoto open-source n´astroje.
62
Literatura [1] About.com [online]. [cit. 2014-09-16]. What Is ’SaaS’ (Software as a Service)? Dostupn´e z WWW:
. [2] CentOS [online]. [cit. 2014-09-16]. CentOS project. Dostupn´e z WWW: . [3] Cisco [online]. [cit. 2014-09-16]. Cisco Data Virtualization Platform.
Dostupn´e z WWW:
products-services/data-virtualization-platform/>. [4] Designmodo [online]. [cit. 2014-09-16]. Dostupn´e z WWW: . [5] Eclipse Marketplace [online]. [cit. 2014-09-16]. Jboss Tools. Dostupn´e z
WWW:
jboss-tools-kepler>. [6] Eclipse [online]. [cit. 2014-09-16]. Eclipse kepler packages. Dostupn´e z WWW: . [7] Freepik [online]. [cit. 2014-09-16].
Dostupn´e z WWW:
freepik.com>. [8] IBM
[online]. [cit. 2014-09-16]. InfoSphere Information Server.
Dostupn´e
z
WWW:
products/en/infosphere-information-server>. [9] IBM [online]. [cit. 2014-09-16]. InfoSphere Platform. z
WWW:
Dostupn´e
infosphere/>. [10] Informatica [online]. [cit. 2014-09-16]. Informatica powercentre. Dostupn´e z WWW: . 63
´ ve ˇr 6. Za [11] Internet Engineering Task Force [online]. [cit. 2014-09-16]. RFC 4252 The Secure Shell (SSH) Authentication Protocol. Dostupn´e z WWW: . [12] JBoss Teiid documentation [online]. [cit. 2014-09-16]. Data Sources.
Dostupn´e z WWW:
display/teiid89final/Data+Sources>. [13] JBoss Teiid [online]. [cit. 2014-09-16]. Dostupn´e z WWW: . [14] JBoss Teiid [online]. [cit. 2014-09-16]. History: Teiid and MetaMatrix.
Dostupn´e z WWW:
history/>. [15] JBoss Teiid [online]. [cit. 2014-09-16]. Virtual Databases. stupn´e
z
WWW:
Do-
virtualdatabases/>. [16] Krovi SQL
Sarma Server
[online]. Express
[cit.
2014-09-16].
through
JDBC.
Connecting Dostupn´e
to z
WWW:
connecting-to-sql-server-express.html>. [17] Microsoft Developer Network [online]. [cit. 2014-09-16]. BULK INSERT (Transact-SQL). Dostupn´e z WWW: . [18] Microsoft Developer Network [online]. [cit. 2014-09-16]. Using the JDBC Driver.
Dostupn´e z WWW:
com/en-us/library/ms378526.aspx>. [19] OData [online]. [cit. 2014-09-16].
Dostupn´e z WWW:
odata.org>. [20] Oracle [online]. [cit. 2014-09-16]. Oracle Warehouse Builder. stupn´e z
WWW:
Do-
´ ve ˇr 6. Za developer-tools/warehouse/overview/introduction/ index.html>. [21] Red Hat [online]. [cit. 2014-09-16]. Red Hat Jboss Data Virtualization.
Dostupn´e z WWW:
technologies/jboss-middleware/data-virtualization>. [22] Red prise
Hat
[online].
Application
[cit.
2014-09-16].
Platform.
Red
Dostupn´e
Hat z
Jboss
WWW:
Enter
//www.redhat.com/en/technologies/jboss-middleware/ application-platform>. [23] SAS [online]. [cit. 2014-09-16]. SAS Data Management. stupn´e z
WWW:
Do-
data-management/sas-data-management.html>. [24] SQL Server Developer Center [online]. [cit. 2014-09-16]. Microsoft JDBC Driver for SQL Server. Dostupn´e z WWW: . [25] SugarCRM [online]. [cit. 2014-09-16]. CugarCRM homepage. Dostupn´e z WWW: . [26] Teiid documentation [online]. [cit. 2014-09-16]. Connecting to a Teiid Server. Dostupn´e z WWW: . [27] Teiid documentation [online]. [cit. 2014-09-16]. OData Support. Dostupn´e
z
WWW:
display/TEIID/OData+Support>. [28] Teiid documentation Dostupn´e
z
[online]. [cit. 2014-09-16]. Security guide.
WWW:
display/teiid89final/Security+Guide>. [29] Teiid documentation
[online]. [cit. 2014-09-16]. Supported Ty-
pes. Dostupn´e z WWW: . 65
´ ve ˇr 6. Za [30] The
Register
[online].
[cit.
2014-09-16].
JBoss application server as WildFly.
Red
Hat
renames
Dostupn´e z WWW:
. [31] Wildfly [online]. [cit. 2014-09-16]. Wildfly homepage.
Dostupn´e z
WWW: . [32] DAVID GRAZIANO, Charles. A performance analysis of Xen and KVM hypervisors for hosting the Xen Worlds Project. Master’s thesis, Iowa State University, Iowa, USA, 2011. [33] Evropsk´ a Komise, Gener´aln´ı ˇreditelstv´ı pro podniky a pr˚ umysl. Nov´ a definice mal´ych a stˇredn´ıch podnik˚ u: Uˇzivatelsk´ a pˇr´ıruˇcka a vzor prohl´ aˇsen´ı. 2006. [s.l.] : 50 s. ISBN 92-894-7917-5. [34] H. INMON, William. Building the Data Warehouse. : QED Technical Publishing Group, 1992. [s.l.] : 272 s. ISBN 9780894354045. ´ ZOV ˇ ´ Petra. Uplatnˇen´ı princip˚ [35] HY A, u Business Intelligence v praxi. : ´ Masarykova univerzita, Filozofick´a fakulta, Ustav ˇcesk´e literatury a knihovnictv´ı, Kabinet knihovnictv´ı, 2006. Brno : 106 s. [36] ROCKOFF, Larry. The Language of SQL: How to Access Data in Relational Databases. : Cengage Learning PTR, 2014. [s.l.] : 256 s. ISBN 978-1-4354-5751-5. [37] VAN DER LANS, Rick. Data Virtualization for Business Intelligence Systems: Revolutionizing Data Integration for Data Warehouses. : Morgan Kaufmann, 2014. [s.l.] : 296 s. ISBN 978-0-12-394425-2.
66
A Pouˇ zit´ e soubory Soubory UcetniZapis.csv a Zakazka.csv jsou uvedeny v elektronick´em arch´ıvu pr´ ace.
67