Integrace BI open source nástroj·

Transkript

Integrace BI open source nástroj·
ƒeské vysoké u£ení technické v Praze
Fakulta elektrotechnická
Katedra po£íta£·
Diplomová práce
Integrace BI open source nástroj·
Bc. Ivo La²ek
Vedoucí práce:
Ing. Pavel Kordík, Ph.D.
Studijní program: Elektrotechnika a informatika, strukturovaný, Navazující
magisterský
Obor: Výpo£etní technika
10. £ervna 2010
iv
v
Pod¥kování
Na tomto míst¥ bych rád pod¥koval Ing. Pavlu Kordíkovi Ph.D. za cenné podn¥ty, rady a
pomoc p°i psaní této práce a svým blízkým za podporu v pr·b¥hu mého studia.
vi
vii
Prohlá²ení
Prohla²uji, ºe jsem práci vypracoval samostatn¥ a pouºil jsem pouze podklady uvedené
v p°iloºeném seznamu.
Nemám závaºný d·vod proti uºití tohoto ²kolního díla ve smyslu Ÿ60 Zákona £. 121/2000
Sb., o právu autorském, o právech souvisejících s právem autorským a o zm¥n¥ n¥kterých
zákon· (autorský zákon).
V Praze dne 13. 5. 2010
.............................................................
viii
Abstract
The aim of this work is to interconnect the application FAKE GAME with appropriate tools
by Pentaho group. It acquaints readers with the possibilities of Pentaho tools exploitation in
order to solve common business intelligence (BI) tasks. Based on a concrete example of the
data mining application FAKE GAME it demonstrates the use of selected tools to extend a
functionality of other software packages and shows the ways of extending the functionality of
Pentaho platform itself. As a result of this work the application FAKE GAME is enhanced
by the ability to retrieve data from a wide variety of sources with a help of Pentaho Data
Integration. Moreover FAKE GAME application is integrated with Pentaho Data Integration
and Pentaho BI platform.
Abstrakt
Tato práce si klade za cíl propojit aplikaci FAKE GAME s vhodnými nástroji z rodiny Pentaho. Seznamuje £tená°e s moºnostmi nástroj· z této rodiny pro °e²ení problém· z oblasti
business intelligence (BI). Na konkrétním p°íklad¥ data miningové aplikace FAKE GAME
demonstruje vyuºití vybraných nástroj· ve vlastních softwarových balících a ukazuje zp·soby roz²í°ení funkcionality platformy Pentaho. Výsledkem práce je roz²í°ení aplikace FAKE
GAME o schopnost na£ítat data ze ²iroké ²kály zdroj· prost°ednictvím Pentaho Data Integration a integrace aplikace FAKE GAME s nástroji Pentaho Data Integration a Pentaho
BI platform.
ix
x
Obsah
1 Úvod
1
2 Business Intelligence (BI)
5
1.1
1.2
1.3
2.1
2.2
Motivace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Struktura práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Business Intelligence obecn¥ . . . . . . . . . . . . . . .
2.1.1 Vymezení pojmu . . . . . . . . . . . . . . . . .
2.1.2 Typický BI proces . . . . . . . . . . . . . . . .
2.1.3 Architektura BI systému . . . . . . . . . . . . .
2.1.3.1 Zdroje dat . . . . . . . . . . . . . . .
2.1.3.2 Sb¥r dat . . . . . . . . . . . . . . . .
2.1.3.3 Ukládání dat . . . . . . . . . . . . . .
2.1.3.4 Analýza dat . . . . . . . . . . . . . .
2.1.4 Metadata . . . . . . . . . . . . . . . . . . . . .
Typy nástroj· pro BI . . . . . . . . . . . . . . . . . . .
2.2.1 Tabulkové procesory . . . . . . . . . . . . . . .
2.2.2 ETL nástroje . . . . . . . . . . . . . . . . . . .
2.2.3 Nástroje pro vytvá°ení report· . . . . . . . . .
2.2.4 Online analytical processing (OLAP) . . . . . .
2.2.5 Digitální nást¥nky (Dashboards) . . . . . . . .
2.2.6 Dolování dat (Data mining) . . . . . . . . . . .
2.2.7 Dolování proces· (Process mining) . . . . . . .
2.2.8 Informa£ní systémy o území (Local Information
3 Nástroje pro BI na trhu
3.1
3.2
Open Source BI nástroje . . .
3.1.1 Pentaho . . . . . . . .
3.1.2 Palo . . . . . . . . . .
3.1.3 JasperSoft . . . . . . .
3.1.4 Eclipse BIRT Project .
3.1.5 RapidMiner . . . . . .
Proprietární software . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
System)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
5
5
5
6
6
7
7
8
8
8
8
9
9
9
10
10
11
11
13
13
13
13
14
14
14
15
xii
OBSAH
4 Analýza existujících nástroj·
4.1
4.2
4.3
4.4
4.5
4.6
Nástroje z rodiny Pentaho . . . . . . . . . . . . . .
4.1.1 Pentaho Reporting . . . . . . . . . . . . . .
4.1.2 Pentaho Analysis . . . . . . . . . . . . . . .
4.1.3 Pentaho Data Integration (PDI) . . . . . .
4.1.4 Pentaho Data Mining . . . . . . . . . . . .
4.1.5 Pentaho BI platform . . . . . . . . . . . . .
4.1.5.1 Webové rozhraní . . . . . . . . . .
4.1.5.2 Pentaho Design Studio . . . . . .
4.1.6 Pentaho Dashboards . . . . . . . . . . . . .
FAKE GAME . . . . . . . . . . . . . . . . . . . . .
4.2.1 Architektura systému a jeho roz²i°itelnost .
Data Mining a jeho integrace v nástrojích Pentaho
Moºnosti roz²í°ení Pentaho Data Integration . . . .
4.4.1 PDI API . . . . . . . . . . . . . . . . . . . .
4.4.2 Pluginy pro PDI . . . . . . . . . . . . . . .
Moºnosti roz²í°ení Pentaho BI platform . . . . . .
4.5.1 Sekvence akcí . . . . . . . . . . . . . . . . .
4.5.2 Komponenty a pluginy . . . . . . . . . . . .
4.5.3 Jednotlivé sou£ásti pluginu . . . . . . . . .
Záv¥rem . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Realizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Popis PDI API . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2 Závislosti a pouºité knihovny . . . . . . . . . . . . . . . . . .
5.1.3 Roz²í°ení FAKE GAME automatizovaného Data Mining Flow
Testování FAKE GAME s vyuºitím PDI API . . . . . . . . . . . . .
5.2.1 Unit testy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Na£ítání dat z více zdroj· . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Vyuºití PDI API v rámci FAKE GAME
5.1
5.2
6 Plugin pro PDI
6.1
6.2
Realizace . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Nastavení vývojového prost°edí . . . . . . .
6.1.2 Specický class loader . . . . . . . . . . . .
6.1.3 Struktura FAKE GAME pluginu pro PDI .
Testování pluginu pro PDI . . . . . . . . . . . . . .
6.2.1 Unit testy . . . . . . . . . . . . . . . . . . .
6.2.2 Vytvo°ení testovacích transformací . . . . .
6.2.3 Porovnání s výsledky pluginu Weka scoring
7 Plugin pro Pentaho BI platform
7.1
Realizace . . . . . . . . . . . . . . . .
7.1.1 Struktura projektu . . . . . . .
7.1.2 Nastavení vývojového prost°edí
7.1.3 FAKE GAME plugin pro PDI .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
19
20
21
22
22
24
25
25
26
27
29
29
30
31
31
33
35
37
39
39
39
41
41
42
42
43
47
47
48
48
49
50
50
50
51
55
55
55
56
57
xiii
OBSAH
7.2
7.1.4 Roz²í°ení FAKE GAME automatizovaného Data Mining Flow
Testování pluginu pro Pentaho BI platform . . . . . . . . . . . . . .
7.2.1 Unit testy . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Vytvo°ení testovacích sekvencí . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
58
59
59
60
8 Záv¥r
65
Literatura
69
A Seznam pouºitých zkratek
71
B Instala£ní a uºivatelská p°íru£ka - PDI v rámci FAKE GAME
73
C Instala£ní a uºivatelská p°íru£ka - plugin pro PDI
75
D Instala£ní a uºivatelská p°íru£ka - plugin pro Pentaho BI
77
E Ukázky nasazení FAKE GAME pluginu pro Pentaho BI
81
F Obsah p°iloºeného CD
87
8.1
8.2
8.3
Zhodnocení dosaºených cíl· . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Problémy integrace open-source nástroj· . . . . . . . . . . . . . . . . . . . . . 66
Dal²í práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.1 P°edpoklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
B.2 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
B.3 Pouºití . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
C.1 P°edpoklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
C.2 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
C.3 Pouºití pluginu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
D.1 P°edpoklady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
D.2 Instalace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
D.3 Pouºití . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
xiv
OBSAH
Seznam obrázk·
2.1
2.2
Architektura BI systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
P°íklad digitální nást¥nky v rámci Google Analytics . . . . . . . . . . . . . . 10
4.1
4.2
4.3
4.4
Pracovní plocha Pentaho BI platform . . . . . . . . . . . . . . . . . . .
Operation Flow v aplikaci FAKE GAME. P°íklad DMBatchProle [14]
Realizace návrhového vzoru Strategy v rámci FAKE GAME . . . . . .
Skládání report· v rámci FAKE GAME . . . . . . . . . . . . . . . . .
.
.
.
.
23
26
27
28
5.1
Ukázka transformace vytvo°ené pomocí PDI, kterou je FAKE GAME schopný
zpracovat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ukázka £tení dat z transformace za vyuºití návrhového vzoru Observer . . . .
Vyuºití návrhového vzoru Template method pro £tení dat z transformace . . .
Ukázka vy£tení dat z csv souboru . . . . . . . . . . . . . . . . . . . . . . . . .
Transformace pro £tení dat ze dvou r·zných databází . . . . . . . . . . . . . .
Transformace pro £tení dat ze dvou r·zných databází . . . . . . . . . . . . . .
39
40
42
43
44
45
5.2
5.3
5.4
5.5
5.6
6.1
6.2
6.3
6.4
6.5
6.6
7.1
7.2
7.3
7.4
7.5
7.6
7.7
.
.
.
.
.
.
.
.
.
.
.
.
Ukázka rozhraní FAKE GAME pluginu pro PDI . . . . . . . . . . . . . . . . .
Aplikace návrhového vzoru Facade za ú£elem odstín¥ní logiky FAKE GAME
od zbytku PDI pluginu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transformace porovnávající výsledky klasikátor· vytvo°ených ve Wecce a
výsledky klasikátor· vytvo°ených prost°ednictvím FAKE GAME . . . . . . .
Zobrazení dosavadních výsledk· transformace v PDI . . . . . . . . . . . . . .
Transformace pro porovnání výsledk· model· vytvo°ených pomocí FAKE
GAME a Weky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Výsledek transformace pro porovnání výsledk· model· vytvo°ených pomocí
FAKE GAME a Weky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ukázka zobrazeného FAKE GAME reportu v rámci Pentaho BI platform . . .
Dopln¥ní dal²ího zp·sobu na£ítání dat do jiº hotové architektury FAKE GAME
Zm¥na zp·sobu generování obrázk· p°i vykreslení FAKE GAME reportu . . .
Za£len¥ní pluginu do sekvence akcí v prost°edí Design Studio . . . . . . . . .
Výb¥r typu reportu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vizualizace datového souboru - ukázka histogram· z FAKE GAME reportu v
rámci Pentaho BI platform . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Propojení FAKE GAME s komponentou starající se o £tení dat z rela£ní
databáze. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xv
47
50
52
53
54
54
55
59
60
61
61
62
63
xvi
SEZNAM OBRÁZK—
C.1 Ukázka uºivatelského rozhraní FAKE GAME pluginu pro PDI . . . . . . . . . 76
D.1 Pracovní plocha v rámci Pentaho BI platform . . . . . . . . . . . . . . . . . . 78
E.1 Denice jednoduchého workow v prost°edí Action Sequence editoru - uºivatel
je poºádán o výb¥r kongurace reportu, který si p°eje vid¥t. . . . . . . . . . .
E.2 Vyhodnocení úsp¥²nosti klasikátoru pomocí ROC k°ivek. Datový soubor pro
klasikaci kosatc·, testovací strategie cross validation. . . . . . . . . . . . . .
E.3 Jednoduchý formulá° pro výb¥r strategie testování model· porovnávaných
v rámci FAKE GAME reportu. Formulá° je kongurovaný pomocí Action
Sequence editoru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
E.4 Vyhodnocení testování sestavených model· - výb¥r toho nejlep²ího (v tabulce
na obrázku je ozna£ený tu£n¥). Datový soubor pro odhad spot°eby vody mandarinkovníku, data rozd¥lena na trénovací a testovací mnoºinu. . . . . . . . .
E.5 Propojení pluginu s komponentou pro odesílání e-mail· v prost°edí Action
Sequence editoru. Je tak moºné snadno sestavovat sekvence, kde je výsledný
report na záv¥r odeslán mailem. . . . . . . . . . . . . . . . . . . . . . . . . . .
E.6 Andrewsovy k°ivky pro datový soubor EEG novorozenc· v rámci Pentaho BI
platform. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
E.7 Feature ranking pro vstupy z datového souboru Odhad prodejní ceny aut. . .
81
82
82
83
84
85
86
Seznam tabulek
4.1
4.2
4.3
Seznam nejd·leºit¥j²ích servlet· pro práci s Pentaho BI platform . . . . . . . 24
Seznam datových typ· podporovaných v rámci Pentaho BI platform . . . . . 33
Seznam metod rozhraní org.pentaho.core.component.IComponent . . . . . . 34
5.1
Seznam testovaných soubor· dat . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1
Výsledky porovnání klasikátor· vytvo°ených pomocí Weky a FAKE GAME
7.1
Adresá°ová struktura projektu tvo°ícího Pentaho BI plugin . . . . . . . . . . . 56
52
D.1 Seznam vstup· FakeGame pluginu pro Pentaho BI platform . . . . . . . . . . 79
xvii
xviii
SEZNAM TABULEK
Kapitola 1
Úvod
1.1
Motivace
Software tak, jak jsme jej donedávna znali, se m¥ní. Díky internetu dnes vytvá°íme aplikace velmi snadno dostupné pro uºivatele kdekoliv na sv¥t¥. Denn¥ p°icházíme do styku s
mnoºstvím informací, o kterém se nám d°íve ani nesnilo. Práv¥ mnoºství informací a jejich
dostupnost je dnes hybnou silou moderní civilizace. Ov²em informace samy o sob¥ nejsou
zdaleka samospásné. Moºná je²t¥ d·leºit¥j²í neº jejich hromad¥ní je schopnost správn¥ je vyhodnotit, tedy dokázat nashromáºd¥ná data ut°ídit, stanovit jejich d·leºitost a prezentovat
zji²t¥né skute£nosti v p°ehledné form¥.
S rostoucím výkonem moderních po£íta£· a neustále se zvy²ující kapacitou záznamových
médií jiº dnes není problém ukládat do nedávna tak°ka nep°edstavitelné mnoºství dat. Není
v²ak v lidských silách v²echna takto nashromáºd¥ná data rozumov¥ pojmout. Práv¥ zde
p°ichází ke slovu Business Intelligence jako soubor postup· a schopností podpo°ených odpovídajícími informa£ními technologiemi, které nám pomáhají dostupné informace správn¥
vyhodnotit.
šijeme v období digitalizace a s trochou nadsázky by se dalo °íci, ºe papír denitivn¥
prohrává bitvu o své místo na slunci. Díky tomu udrºování rozsáhlých databází dávno není
doménou jen velkých bankovních dom· a nadnárodních spole£ností. Stále více pror·stají
informa£ní technologie do státní správy. I malé rmy pouºívají specializovaný software pro
vedení ú£etnictví, udrºování informací o nabízeném zboºí. Zadávání a plánování práce probíhá p°es softwarové nástroje pro °ízení projekt·. Monitorujeme pohyb nebo aktivitu osob,
a´ uº jsou to zam¥stnanci £i uºivatelé.
V²echny tyto £innosti mají jednoho spole£ného jmenovatele. Tím je velké mnoºství r·znorodých údaj·, které máme ve nále k dispozici. Jejich správná analýza m·ºe p°inést obrovské úspory díky zefektivn¥ní pracovních proces·, lep²ímu cílení reklamy, dokonalej²í kontrole
apod.
Open-source má na tomto poli hrát nemalou roli. Podle prognóz analytické spole£nosti
Gartner Research [15] a [16] se má podíl open-source nástroj· pro Business Intelligence na
trhu do roku 2012 zp¥tinásobit. Hlavním d·vodem, pro£ se rmy k t¥mto nástroj·m uchylují,
je podle výzkumu úspora náklad·. Open-source aplikace zatím v tomto oboru nedosahují
funk£ní úrovn¥ svých velkých komer£ních prot¥j²k·, ov²em míra jejich nasazení rychle stoupá.
1
2
KAPITOLA 1. ÚVOD
Podle Gartner Research se pr·m¥rná cena za ro£ní p°edplatné pohybuje okolo 30 000 dolar·,
ov²em objevují se i zakázky v hodnot¥ aº 500 000 dolar·, coº uº odpovídá sazbám za komer£ní
produkty.
Uºivateli komer£ních °e²ení jsou tradi£n¥ zejména rmy pohybující se ve nan£ním sektoru a telekomunika£ní spole£nosti. Open-source nástroje naproti tomu vyuºívají spí²e st°edn¥
velké rmy a dále je moºné je nalézt i ve vládním a ve°ejném sektoru nebo ve zdravotnictví.
Velká £ást úsp¥chu open-source v oblasti Business Intelligence tkví práv¥ v jeho otev°enosti. Mnoho nezávislých softwarových vývojá°· vyuºívá existující balíky, nebo jejich £ásti a
nasazuje je jako sou£ást vlastních °e²ení na míru. Jednodu²e tak vznikají nové BI platformy
na základ¥ jiº existujícího kódu.
Podle Gartner Research je situace na trhu pro open-source momentáln¥ p°íznivá. Potenciální konkurence v podob¥ poskytování Business Intelligence jako sluºby (software-as-aservice), coby cenov¥ výhodn¥j²í varianta, je minimáln¥ u £ty° hlavních komer£ních hr᣷
v této oblasti (IBM, Microsoft, Oracle a SAP) zatím v plenkách. Pro organizace snaºící se
redukovat své náklady je open-source v sou£asné dob¥ nejsch·dn¥j²í variantou.
ƒinnost rmy Pentaho se v tomto kontextu jeví jako logické vyúst¥ní situace. Její obchodní model spo£ívá v podpo°e tým· vyvíjejících n¥kolik open-source nástroj· a nabízení
t¥chto nástroj· pod svou hlavi£kou koncovým zákazník·m. Vytvá°í pomyslný most mezi vývojá°i a uºivateli jejich d¥l. Zárove¬ tato strategie (sdruºení r·zných v¥tví vývoje pod jednu
st°echu) umoº¬uje t¥ºit ze vzájemných synergií. V neposlední °ad¥ Pentaho sponzoruje jednotlivé týmy a podporuje tak dal²í vývoj. P°edplatné pro uºivatele znamená záruku stability,
technické podpory a pravidelné distribuce aktualizací.
Oblast dolování dat (data mining) je v tomto softwarovém balíku zastoupena velmi známým a hojn¥ pouºívaným programem Weka. Ta v²ak zatím stále p·sobí spí²e jako samostatný program a není p°íli² integrována s ostatními nástroji z rodiny Pentaho. Otevírá se
tak prostor k napojení FAKE GAME - aplikace vyvíjené na ƒVUT, specializované na data
mining a automatickou tvorbu report·. FAKE GAME by tedy mohl slouºit jako zajímavá
alternativa k Wecce.
Krom¥ toho m·ºe hlub²í studium nástroj· z rodiny Pentaho poskytnout cennou inspiraci
pro roz²í°ení funk£nosti FAKE GAME a zacelení n¥kterých mezer jako nap°íklad absence
moºnosti na£ítat data z databáze.
1.2
Cíl práce
Cílem práce je zejména:
• Seznámení se stávající situací v oblasti Business Intelligence s d·razem na open-source
nástroje.
• Seznámení s technologickými moºnostmi nástroj· z rodiny Pentaho.
• Analýza moºností vyuºití nástroj· z rodiny Pentaho jako sou£ásti vlastních °e²ení.
• Roz²í°ení aplikace FAKE GAME o moºnosti na£ítání a integrace dat z r·zných datových zdroj· s vyuºitím technologických prost°edk· nástroj· Pentaho.
1.3. STRUKTURA PRÁCE
3
• Analýza roz²i°itelnosti Pentaho BI platformy o dal²í funkcionalitu.
• Integrace FAKE GAME do Pentaho BI platformy, zp°ístupn¥ní základní funkcionality
aplikace v rámci platformy.
1.3
Struktura práce
Práce je rozd¥lena do n¥kolika £ástí:
•
Teoretický úvod: Vymezení pojmu Business Intelligence a popis jednotlivých technik
a typ· nástroj· spadajících do tohoto oboru. Tato £ást zahrnuje i stru£ný p°ehled
nejroz²í°en¥j²ích aplikací s d·razem na open-source °e²ení. Kapitoly 2 a 3.
•
Analytická £ást: P°edstavení stávající situace, seznámení s aplikacemi z rodiny Pen-
taho a FAKE GAME. Podrobný rozbor jednotlivých nástroj· z rodiny Pentaho, popis
lozoe celého projektu, p°edstavení jeho architektury. Identikace moºností vyuºití
stávajících funkcí ve vlastních aplikacích zejména s ohledem na FAKE GAME. Pr·zkum zp·sob· roz²i°ování funkcionality platformy i aplikace FAKE GAME. Výb¥r
vhodných nástroj· a technik pro následnou realizaci. Kapitola 4.
•
Realizace a testování:
•
Záv¥r:
Vzhledem k tomu, ºe práce sestává v podstat¥ ze t°í projekt·, odpovídají kapitoly 5, 6 a 7 t¥mto projekt·m. Tyto kapitoly tedy obsahují popis
konkrétní realizace jednotlivých projekt·. Rozbor propojení FAKE GAME a Pentaho
za ú£elem na£ítání dat z r·zných zdroj· (kapitola 5). Postup p°i tvorb¥ plugin· pro
n¥které nástroje z rodiny Pentaho (kapitoly 6 a 7). Výb¥r specických poznatk· nasbíraných p°i tvorb¥ °e²ení. Popis tvorby automatizovaných test· pro pluginy Pentaho
BI platformy. Vzorové nasazení implementovaných komponent. P°edstavení výsledk·
testování s reálnými daty.
Zhodnocení dosaºených výsledk·. Nastín¥ní dal²ích moºností integrace obou
projekt·.
4
KAPITOLA 1. ÚVOD
Kapitola 2
Business Intelligence (BI)
2.1
Business Intelligence obecn¥
2.1.1 Vymezení pojmu
Pod pojmem Business Intelligence se obecn¥ rozumí soubor postup·, nástroj·, dovedností
a znalostí vyuºívaných pro podporu rozhodování. N¥kdy bývá tento pojem zam¥¬ován s
termínem Systém pro podporu rozhodování (Decision Support Systems DSS). Zde je t°eba
°íci, ºe v p°ípad¥ BI se jedná o DSS zaloºený na datech. Dal²ími typy DSS mohou být
nap°. DSS zaloºené na modelech nebo znalostní DSS. Zárove¬ [5] poukazuje na fakt, ºe
pojem Business Intelligence má r·zné významy v r·zných kontextech. Z technického hlediska
potom [5] denuje BI jako proces získávání, transformace, správy a analýzy obchodních dat
za ú£elem podpory rozhodování.
Trochu precizn¥j²í denici uvádí [7]. Op¥t BI ozna£uje mnoºinu nástroj· a technik. Ty
umoº¬ují spole£nostem p°em¥nit svá obchodní data na aktuální a p°esné podklady pro rozhodování tak, aby byly dostupné správným osobám v co nejvhodn¥j²í form¥. Systémy pro
Business Intelligence se tedy vyuºívají pro získání komplexního náhledu na stav spole£nosti,
rozpoznání faktor·, které ovliv¬ují její £innost, a zárove¬ pomáhají vytvá°et a rozvíjet nové
obchodní strategie. Cílem je umoºnit rozhodování podloºené reálnými daty za ú£elem získání
konkuren£ní výhody díky schopnosti rychleji identikovat zm¥ny a reagovat na n¥, zvy²ovat
ziskovost a efektivitu a obecn¥ vytvá°et p°idanou hodnotu pro spole£nost.
2.1.2 Typický BI proces
Typický proces v rámci BI sestává podle [11] z p¥ti stup¬·:
•
Sb¥r dat: BI systém je schopný na£ítat data z r·zných zdroj· (nap°. databází, soubor·, webových sluºeb, z výstup· ostatních aplikací a systém·). Sb¥r dat zahrnuje i
jejich p°edzpracování (£i²t¥ní, opravu neúplných záznam·, integraci) a p°ípravu pro
následnou analýzu.
•
Analýza dat:
Dále jsou sesbíraná data p°evedena na uºite£né informace za pomoci
nejr·zn¥j²ích technik zahrnujících tvorbu report·, modelování, vizualizaci dat a jejich
5
6
KAPITOLA 2. BUSINESS INTELLIGENCE (BI)
vyt¥ºování (data mining). Cílem je poskytnout globální a p°ehledný náhled na získaná
data a umoºnit tak fundovaná rozhodnutí.
•
Pochopení situace (Situation awareness): Pod tímto pojmem rozumíme fázi, kdy
jsme jiº díky p°edchozím stup¬·m získali dobrý p°ehled o stávající situaci a máme
tak poloºeny základy pro rozumné rozhodování. Jde tedy zejména o nalezení logických
souvislostí mezi informacemi a odltrování ned·leºitých skute£ností.
•
Posouzení rizika: Celý BI proces je o tvorb¥ rozhodnutí na základ¥ odhadu budoucího vývoje. P°i tomto odhadu vycházíme z dat, která máme k dispozici. P°i tvorb¥
rozhodnutí je tedy t°eba porovnat rizika moºných variant, které se nám otevírají.
•
Podpora rozhodování (Decission support:) Jak jsem jiº zmínil, hlavním cílem BI
je umoºnit manaºer·m rozhodovat se chyt°e podle aktuálních dat.
2.1.3 Architektura BI systému
Typický BI systém sestává podle [5] ze £ty° skupin komponent a z metadat, která umoº¬ují
spolupráci t¥chto komponent. Základní architektura BI systému je nazna£ena na obrázku
2.1.
Obrázek 2.1: Architektura BI systému
2.1.3.1 Zdroje dat
Jako zdroje dat slouºí p°eváºn¥ Online Transaction Processing (OLTP) systémy pro podporu
b¥ºných obchodních proces·. Typickými zástupci jsou nan£ní systémy, nebo nejr·zn¥j²í
nástroje pro personalistiku, °ízení zdroj· a °ízení vztah· se zákazníky. Data je ov²em £asto
2.1. BUSINESS INTELLIGENCE OBECN…
7
t°eba na£ítat i ze zastaralých legacy systém·. Krom¥ strukturovaných dat na£tených nap°. z
rela£ních databází se tak setkáváme i s textovými soubory a excelovskými tabulkami, £asto
vytvo°enými ru£n¥. Velká rozmanitost zdroj· dat a jejich £astá neúplnost klade velké nároky
na jejich následný sb¥r.
2.1.3.2 Sb¥r dat
Sb¥r dat zahrnuje zárove¬ jejich p°edzpracování a skládá se ze t°í fází:
•
Získání dat (Extracting): Zahrnuje na£tení dat z r·zných zdroj·, kterými mohou
být nejr·zn¥j²í databáze, textové soubory, tabulky, výstupy webových sluºeb apod.
•
Transformace dat (Transforming): Vzhledem k r·znorodosti na£tených dat je po-
t°ebujeme p°ed dal²ím zpracováním p°íslu²n¥ upravit. Jedná se o jejich vy£i²t¥ní (odstran¥ní nesmyslných hodnot), sjednocení (p°evod odpovídajících záznam· na stejný
formát) a agregaci (seskupení do logických celk·).
•
Nahrávání dat (Loading):
skladu.
Nakonec jsou data nahrána do centrálního datového
Z anglických výraz· Extract, Transform and Load se pro ozna£ení tohoto sb¥ru a p°edzpracování dat uºívá zkratka ETL. ETL je základní sou£ástí BI systému a determinuje kvalitu
dat pro zpracování v²emi dal²ími komponentami. V £e²tin¥ se pro ETL n¥kdy pouºívá pojem datová pumpa. Jedním z ukazatel· vysp¥losti takové datové pumpy je krom¥ kvality
produkovaných dat i rychlost jejich "pumpování"do datového skladu. Objemy dat, s nimiº
se pracuje jsou totiº obvykle velmi velké.
2.1.3.3 Ukládání dat
Data zpracovaná pomocí ETL jsou dále uchovávána v datovém skladu (anglicky data warehouse). Datové sklady jsou realizovány bu¤ pomocí speciálních datových struktur, nebo s
vyuºitím b¥ºných rela£ních databází. Od rela£ních databází se ov²em li²í. Podle denice
Williama Inmona [2] je datový sklad:
• orientovaný na subjekt (ukládání dat ve snadno £itelných strukturách za cenu zvý²ených nárok· na pam¥´ový prostor - na rozdíl od rela£ních databází kladoucích d·raz
na co nejmen²í redundanci dat)
• zachovávající historii (zpravidla obsahuje i historické údaje a ne jen aktuální stav dat)
• neprom¥nlivý (data se nahrávají ve v¥t²ích dávkách - nap°. jednou denn¥ - a dále uº
se zpravidla nem¥ní)
• integrovaný (data jsou seskupena podle logického významu bez ohledu na jejich zdroj)
Data jsou ukládána s ohledem na rychlé provád¥ní sloºitých analytických dotaz· bez
nutnosti záznamy p°íli² £asto m¥nit. Za tímto ú£elem obsahuje datový sklad faktové tabulky (obsahují vlastní analyzovaná data) a dimenze (tabulky obsahující záznamy slouºící
k t°íd¥ní dat ve faktových tabulkách). Podle hierarchického uspo°ádání dimenzních tabulek
rozeznáváme dv¥ nejoblíben¥j²í schemata datových sklad·:
8
KAPITOLA 2. BUSINESS INTELLIGENCE (BI)
•
Hv¥zda: Dimenzní tabulky jsou p°ímo navázány na faktové.
•
Vlo£ka:
Dimenzní tabulky mohou být na faktové navázány nep°ímo p°es dal²í dimenzní tabulky.
2.1.3.4 Analýza dat
Nad daty v datovém skladu jiº operují nejr·zn¥j²í analytické nástroje. Cílem je poskytnout
p°ehledný náhled na data p°ístupný i pro b¥ºné uºivatele bez hlub²ích technických znalostí
- typicky manaºery rem, kte°í tak dostávají snadno dostupné relevantní podklady pro své
rozhodování. Do této skupiny °adíme reportovací nástroje, OLAP (Online Analytical Processing) nástroje a technologie pro dolování dat (data mining). Dal²í °e²ení pracující s daty
z datového skladu mohou zahrnovat digitální nást¥nky, informa£ní systémy, napojení systém· pro °ízení vztah· se zákazníky (Customer Relationship Management - CRM) apod.
Podrobn¥ji jsou zmín¥né typy nástroj· rozebrány v následující kapitole 2.2.
2.1.4 Metadata
Metadaty rozumíme informace o samotných datech proudících v systému. Jedná se nap°. o
údaje o zdrojích dat, typu úloºi²t¥ v datovém skladu, p°ístupových právech a zp·sobu £tení
a transformace jednotlivých záznam·.
2.2
Typy nástroj· pro BI
Zatím jsme se dívali na BI systém jako na celek a p°edstavili jsme si jeho obecnou architekturu. Existuje nep°eberné mnoºství nástroj·, které je moºné za°adit do kategorie Business
Intelligence, av²ak jedná se jen o díl£í sou£ásti celého systému. Jednotlivé komponenty mohou
docela dob°e fungovat i samostatn¥ a plnit svou funkci nezávisle. Dává smysl nap°. nasadit
reportovací nástroj nad stávající remní databází a nemusíme kv·li tomu nutn¥ vytvá°et
specializovaný datový sklad. Stejn¥ tak m·ºeme vyuºít ETL nástroje pro p°esun a transformaci dat v rámci stávajících remních proces·, aniº bychom p°esunutá data cht¥li nutn¥
analyzovat. Stejn¥ tak dolování dat lze provozovat samostatn¥ bez nutnosti budování datového skladu, mnohé data miningové nástroje zahrnují vlastní moºnosti p°edzpracování dat a
denice vlastních datových tok·. Poj¤me si tedy p°edstavit jednotlivé skupiny BI aplikací.
2.2.1 Tabulkové procesory
Vzhledem k jejich obrovské popularit¥ a vyuºití tém¥° v kaºdé rm¥ je do skupiny BI nástroj·
moºné za°adit i tabulkové procesory. Nejznám¥j²ími zástupci jsou beze sporu Microsoft Excel
a jeho open-source prot¥j²ek OpenOce Calc. Dal²ím zástupcem m·ºe být nap°. rovn¥º
open-source KSpread. ƒasto za£íná proces sb¥ru remních dat práv¥ od jednotlivých soubor·
ve formátu n¥kterého tabulkového procesoru.
Uspo°ádání dat do formátu tabulek je pro BI pom¥rn¥ typické, druhou velkou skupinu
potenciálních zdroj· dat tvo°í rela£ní databáze, kde jsou data rovn¥º organizována tabelárn¥.
2.2. TYPY NÁSTROJ— PRO BI
9
2.2.2 ETL nástroje
Jedná se o nástroje realizující ETL proces popsaný v kapitole 2.1.3.2. Zpravidla je k dispozici
gracké uºivatelské rozhraní, jehoº prost°ednictvím je moºné celý proces £tení, transformace
a nahrávání dat pohodln¥ nakongurovat. Takto nadenovaný proces je následn¥ uloºen a
m·ºe být zpracováván v p°ípad¥ pot°eby dávkov¥. Nejznám¥j²ími open-source nástroji z této
kategorie jsou pravd¥podobn¥ Apatar, CloverETL nebo Pentaho Data Integration. Samoz°ejm¥ i komer£ní hrá£i mají své zástupce v této oblasti, jmenujme nap°. BusinessObjects
Data Integrator, Oracle Warehouse Builder nebo Informaticu.
2.2.3 Nástroje pro vytvá°ení report·
Základním produktem BI systém· jsou reporty. Reportovací nástroje v tomto kontextu slouºí
pro návrh a generování t¥chto report·. Typicky je k dispozici aplikace pro vytvá°ení ²ablon. Zde je moºné nastavit v podstat¥ libovolný vzhled odpovídající remním standard·m.
Nástroje disponují prost°edky pro pln¥ní report· daty z rozli£ných zdroj· po£ínaje r·znými
druhy databází, p°es textové soubory, soubory tabulkových procesor·, XML a HTML soubory aº po webové sluºby a napojení na nejr·zn¥j²í proprietární °e²ení. Reporty je moºné
generovat op¥t do mnoºství formát· jako PDF dokumenty, HTML stránky, XML soubory,
ve formátu soubor· kancelá°ských aplikací atd.
Ú£elem t¥chto nástroj· je vytvá°et p°ehledné obchodní reporty poskytující manaºer·m
nap°. údaje o prodeji, výkonnosti jednotlivých odd¥lení, stavu lidských zdroj· ve rm¥, stavu
nancí apod. Reporty jsou generovány prost°ednictvím provád¥ní p°eddenovaných dotaz·
nad uloºenými daty. Vzhledem k tomu, ºe sestavení t¥chto dotaz· není úpln¥ triviální a
v¥t²inou vyºaduje zásah vývojá°e nebo správce datového skladu, jsou tyto reporty p°eváºn¥
statické a moºnosti jejich ovlivn¥ní ze strany manaºera jsou velmi omezené.
Reportovací nástroje £asto poskytují vlastní rozhraní a je tak moºné jejich funkcionalitu
vyuºít v dal²ích aplikacích, které n¥jakým zp·sobem pot°ebují prezentovat zpracovávaná
data.
2.2.4 Online analytical processing (OLAP)
’ir²í moºnosti, co se interaktivity tý£e, poskytují OLAP (Online Analytical Processing) nástroje. Ty umoº¬ují koncovým uºivatel·m procházet data podle r·zných dimenzí. Dimenzí
se rozumí r·zná kritéria t°íd¥ní dat (nap°. podle regionu, typu výrobku, data, prodejce).
Oproti klasickým report·m m·ºe tak uºivatel exibiln¥ a jednodu²e ovlivnit, jaká data chce
zobrazit. Uspo°ádání dat, tak aby je bylo moºné efektivn¥ ltrovat podle t¥chto dimenzí, se
°íká datová kostka neboli data cube.
OLAP tedy jinými slovy znamená analýzu velkého mnoºství dat v reálném £ase. Na
rozdíl od OLTP systém·, kde typickými operacemi jsou £tení a zm¥na relativn¥ malého
po£tu záznam·, OLAP pracuje s velkými objemy dat a operace jsou zpravidla pouze £tecí.
Sl·vko Online v názvu znamená, ºe p°es obrovské mnoºství zkoumaných dat (typicky mnoho
milion· záznam·, zabírajících °ádov¥ gigabyty), musí systém reagovat dostate£n¥ rychle, aby
bylo moºné data zkoumat interaktivn¥.
10
KAPITOLA 2. BUSINESS INTELLIGENCE (BI)
OLAP nástroje generují £asto velmi komplikované databázové dotazy a je tudíº nutné
data p°edem uspo°ádat, jak jiº bylo popsáno v kapitole 2.1.3.3 o ukládání dat, aby systém
dokázal reagovat rozumn¥ rychle.
Podle toho, v jaké form¥ OLAP servery ukládají data, rozli²ujeme tyto typy:
• MOLAP (multidimensional OLAP) - data jsou na disku ukládána ve strukturách optimalizovaných pro vícerozm¥rný p°ístup.
• ROLAP (relational OLAP) - data jsou uloºena v rela£ní databázi.
• HOLAP (hybrid OLAP) - ukládá nejpodrobn¥j²í záznamy v rela£ní databázi, ale agregované hodnoty udrºuje ve vícerozm¥rných strukturách.
2.2.5 Digitální nást¥nky (Dashboards)
Digitální nást¥nky jsou informa£ní systémy, jejichº jádrem je uºivatelské rozhraní zobrazující
informace sesbírané z r·zných £ástí systému pohromad¥ a jednotným zp·sobem. M·ºe se
jednat nap°íklad o nejd·leºit¥j²í informace shromáºd¥né z r·zných report· apod.
Krom¥ digitálních nást¥nek jako desktopových aplikací se s nimi setkáváme u webových
aplikací, jak nazna£uje obrázek 2.2, nebo jako malých roz²í°ení opera£ního systému, £i webového prohlíºe£e (widgets).
Obrázek 2.2: P°íklad digitální nást¥nky v rámci Google Analytics
2.2.6 Dolování dat (Data mining)
V p°ípad¥ dolování dat (data mining) je cílem odhalit skryté a potenciáln¥ zajímavé informace. Na po£átku tedy na rozdíl od p°edchozích metod nemusíme p°esn¥ znát pravidla
2.2. TYPY NÁSTROJ— PRO BI
11
a souvislosti mezi daty, která se chystáme zkoumat. Základy dolování dat jsou zaloºeny
na statistických metodách jako je regresní analýza, postupem £asu se p°idaly dal²í metody
jako je vyuºití neuronových sítí, genetických algoritm·, rozhodovacích strom· a algoritmy
podp·rných vektor·.
N¥které data miningové nástroje umoº¬ují vytvo°ené modely exportovat do formátu
PMML (Predictive Markup Model Language), coº je formát zaloºený na XML, který umoº¬uje vým¥nu model· mezi jednotlivými aplikacemi. Ze znám¥j²ích open-source nástroj· podporují tento formát nap°. R Project, Weka a KNIME.
2.2.7 Dolování proces· (Process mining)
O n¥co speci£t¥j²í je disciplína dolování proces·. Jde o analýzu záznam· událostí produkovaných informa£ními systémy. Na základ¥ t¥chto záznam· jsou hledány modely pracovních
proces·, p°ípadn¥ jsou záznamy porovnávány s jiº existujícími modely. Pro analýzu záznam·
se vyuºívá tak zvaný α-algoritmus [8].
2.2.8 Informa£ní systémy o území (Local Information System)
Jak uº název napovídá, jedná se o informa£ní systémy poskytující statistická data vztaºená
k n¥jakému místu. M·ºe se jednat nap°. o demogracké údaje.
12
KAPITOLA 2. BUSINESS INTELLIGENCE (BI)
Kapitola 3
Nástroje pro BI na trhu
V p°edchozí kapitole jsme si p°edstavili obecnou architekturu BI systému a popsali jednotlivé
sou£ásti. V praxi ne v²echny nástroje disponují v²emi popsanými funkcemi. V této kapitole se
podíváme na nejvýrazn¥j²í zástupce z oblasti open-source software a stru£n¥ si p°edstavíme
jejich moºnosti. V záv¥ru kapitoly se krátce zmíníme i o n¥kterých proprietárních °e²eních.
3.1
Open Source BI nástroje
3.1.1 Pentaho
Pentaho sdruºuje pod svou hlavi£kou n¥kolik p·vodn¥ samostatných open-source projekt·:
•
Kettle pro ETL, momentáln¥ pod názvem Pentaho Data Integration
•
JFreeReport pro reportování, momentáln¥ pod názvem Pentaho Reporting
•
Mondrian a JPivot pro OLAP, momentáln¥ pod názvem Pentaho Analysis
•
Weka pro dolování dat, momentáln¥ pod názvem Pentaho Data Mining
Vývoj v²ech t¥chto produkt· Pentaho aktivn¥ podporuje a zárove¬ p°idává vlastní nástroj Pentaho BI Platform, coº je v podstat¥ webová platforma sdruºující v²echny nástroje
dohromady a umoº¬ující jejich propojení navzájem. V rámci BI Platform je moºné provozovat dal²í nástroj, jímº jsou digitální nást¥nky - Pentaho Dashboards. Jedná se tedy opravdu
o ucelený balík poskytující kompletní Business Intelligence °e²ení. K dispozici jsou dv¥ verze:
open-source Community Edition a placená Enterprise Edition.
3.1.2 Palo
Dal²ím zástupcem distribuujícím vlastní produkt zdarma je n¥mecká rma Jedox se svým
balíkem Palo. Palo se skládá z následujících základních komponent:
•
Palo OLAP Server: Data jsou organizována vícerozm¥rn¥ a uloºena v pam¥ti, coº
umoº¬uje rychlé zpracování dotaz·. Palo OLAP Server umoº¬uje vyuºít API pro Visual
Basic, PHP, C++, Javu a .NET. Je tak moºné jej relativn¥ jednodu²e roz²í°it o dal²í
funkce.
13
14
KAPITOLA 3. NÁSTROJE PRO BI NA TRHU
•
Palo Web: Podobn¥ jako Pentaho i Palo nabízí pro p°ístup ke v²em svým základním
komponentám prost°ednictvím webového rozhraní. Je tak moºné produkovat webové
reporty, organizovat OLAP databáze a monitorovat ETL procesy v systému.
•
Palo for Excel: K dispozici je roz²í°ení pro Excel (a OpenOce Calc), které slouºí v
podstat¥ jako uºivatelské rozhraní pro práci s OLAP databází.
•
Palo ETL Server: Webový nástroj pro sb¥r dat z r·zných zdroj· zahrnujících rela£ní
databáze, webové sluºby, ale disponující t°eba i p°ímým napojením na SAP.
Obchodní model je podobný jako u Pentaho. Balík je nabízen ve dvou verzích jako opensource a jako placená "premium version".
3.1.3 JasperSoft
Spole£nost JasperSoft je známá p°edev²ím díky velmi populárnímu reportovacímu nástroji
JasperReports. JasperReports je moºné vyuºít jako knihovnu (je napsaný v Jav¥), pokud pot°ebujeme ve vlastních aplikacích produkovat sostikované reporty. Reporty jsou denovány
pomocí soubor· v XML formátu, které mohou být vytvo°eny ru£n¥, generovány automaticky
n¥jakou vlastní aplikací, nebo sestaveny pomocí grackého nástroje (nap°. iReport).
Postupem £asu se v rámci projektu vyvinuly i dal²í BI aplikace a nyní JasperSoft podobn¥
jako p°edchozí dva zástupci nabízí celý balík nástroj·: JasperETL, JasperAnalysis (op¥t
zaloºený na kombinaci Mondrian a JPivot) a JasperServer (sdruºující jednotlivé komponenty
v rámci webové platformy).
3.1.4 Eclipse BIRT Project
Na rozdíl od ostatních se v p°ípad¥ projektu BIRT (Business Intelligence Reporting Tools)
jedná pouze o reportovací nástroj postavený nad vývojovým prost°edím Eclipse. Umoº¬uje
vytvá°et sostikované, interaktivní webové reporty. Sestává z n¥kolika variant nástroj· pro
návrh report· a a dále z nástroj· pro následnou práci s nimi (prohlíºení, interaktivní funkce
apod.). Denice report· se op¥t ukládá v XML formátu a data je moºné £erpat ze ²iroké
²kály zdroj· od SQL databází, p°es XML soubory a webové sluºby aº po staré dobré javovské
objekty (POJO) a Java Data Objects (JDO).
Dal²ím zajímavým aspektem projektu jsou ²iroké moºnosti nasazení vytvo°ených report·.
Krom¥ jiº zmín¥ných prohlíºe£· je k dispozici Java API, umoº¬ující vyuºívání reportovacích
funkcí ve vlastních aplikacích. Krom¥ toho nabízí BIRT i n¥kolik variant webových °e²ení pro
sdílení a práci s reporty od odleh£eného repozitá°e aº po pln¥ funk£ní reportovací server. Nov¥
je na stránkách projektu nabízena i moºnost vyuºití hostovaného °e²ení - Birt onDemand.
3.1.5 RapidMiner
RapidMiner je zam¥°ený zejména na dolování dat. Nicmén¥ disponuje i základními ETL
funkcemi pro na£ítání dat a je moºné doinstalovat roz²í°ení pro produkci report· - zejména
v PDF a HTML formátu. Aplikace umoº¬uje pomocí grackého rozhraní denovat proces
zpracování dat a poskytuje r·zné druhy náhled· na n¥. K dispozici je ²iroká ²kála graf·. Dal²í
3.2. PROPRIETÁRNÍ SOFTWARE
15
aplikace z této rodiny v¥t²inou roz²i°ují funkce RapidMineru nebo na nich dále staví. RapidAnalytics je webový server slouºící jako repozitá°, umoº¬ující plánování report·, vzdálený
p°ístup a správu p°ístupových práv.
Na RapidMineru jsou potom zaloºené nap°. aplikace RapidSentilizer pro sb¥r novinek
na internetu, jejich t°íd¥ní a vyhodnocování publikovaných názor· s pomocí technik pro
dolování dat a dolování informací z text· (je tak moºné nap°. vyhodnocovat úsp¥²nost PR
kampaní) a RapidDoc pro automatickou kategorizaci elektronických dokument·.
3.2
Proprietární software
Pro úplnost jmenujme krátce nejv¥t²í poskytovatele proprietárních BI °e²ení, a£koliv jejich
hlub²í rozbor je nad rámec této práce. K nejvýrazn¥j²ím pat°í gigant Oracle s Oracle Business Intelligence Enterprise Edition Plus, n¥mecká softwarová a konzultantská rma SAP
a jejich BusinessObjects (získaným koupí francouzské rmy Business Object v roce 2007),
IBM a jejich BI °e²ení Cognos nebo Microstrategy a jejich stejnojmenná rodina nástroj·
Microstrategy.
Jedná se o zavedené rmy s velmi silnou pozicí na trhu, ov²em výhodou open-source
aplikací m·ºe být jejich v¥t²í exibilita a schopnost rychleji reagovat na nové trendy, jakými
je nap°. decentralizace BI proces· a v sou£asné dob¥ moderní cloud computing. V této
souvislosti bych rád zmínil je²t¥ t°etí sm¥r, který se snaºí skloubit výhody obou p°ístup· spolehlivost proprietárního °e²ení a nízké po°izovací náklady typické pro open-source. Tímto
p°ístupem je poskytování BI jako sluºby a ne jako balíkového produktu. Jedním ze zástupc·
v této oblasti je i rma s £áste£n¥ £eským obsazením - GoodData. GoodData nabízí BI
nástroje £ist¥ prost°ednictvím webového rozhraní. Data jsou nahrávána na server GoodData
a dále je moºné s nimi pracovat prost°ednictvím webového prohlíºe£e. Tento p°ístup mimo
jiné p°iná²í uº ze své podstaty snaz²í teamovou spolupráci a sdílení jednotlivých projekt·.
Oba dynamické p°ístupy jak open-source, tak BI jako sluºba mohou ale dle mého názoru narazit na jistou konzervativnost velkých institucí, které jsou momentáln¥ uºivateli
komer£ních produkt·. Tito klienti mohou pom¥rn¥ t¥ºce nést riziko nestability a poskytování vlastních dat t°etím stranám související s bezpe£nostními hrozbami. Jakkoliv jsou tyto
d·vody v mnoha p°ípadech spí²e psychologické.
16
KAPITOLA 3. NÁSTROJE PRO BI NA TRHU
Kapitola 4
Analýza existujících nástroj·
Jak jiº bylo nazna£eno v kapitole 1.2 aplikace FAKE GAME zatím nedisponuje ºádným sostikovan¥j²ím nástrojem pro na£ítání dat z r·zných zdroj·. Jako datový zdroj v sou£asnosti
slouºí výhradn¥ textové soubory. Pentaho poskytuje mimo jiné i nástroje slouºící výhradn¥
tomuto ú£elu. Jeví se tedy jako ú£elné prozkoumat je a zjistit, zda není moºné vyuºít jejich
potenciál v rámci FAKE GAME.
Vzhledem k tomu, ºe Pentaho a FAKE GAME jsou si tématicky velmi blízké jako opensource Business Intelligence nástroje, má smysl rovn¥º zjistit, zda je moºné FAKE GAME
n¥jakým zp·sobem s Pentaho integrovat a vyuºít tak potenciál ²iroce pouºívané a uznávané
platformy, kterou Pentaho bezesporu je. Zárove¬ pro Pentaho m·ºe FAKE GAME znamenat
dopln¥ní portfolia data miningových funkcí.
V dal²ích n¥kolika kapitolách tedy podrobn¥ji prozkoumáme oba softwarové balíky, zejména
pak jejich moºnosti propojení s jinými systémy.
4.1
Nástroje z rodiny Pentaho
Jak jiº bylo °e£eno jedná se o celý balík nástroj· pro Business Intelligence. Je to produkt stejnojmenné rmy zaloºené v roce 2004 n¥kolika veterány v oblasti Business Intelligence. Tento
balík tvo°í n¥kolik p·vodn¥ nezávisle vyvíjených nástroj·, které jsou postupn¥ integrovány
navzájem práv¥ pod hlavi£kou Pentaho. Následuje tedy vý£et jednotlivých komponent.
4.1.1 Pentaho Reporting
Jádrem Pentaho Reporting je Pentaho Report Designer (vyvinul se z p·vodn¥ samostatného
nástroje JFreeReport). Jde o klasickou grackou aplikaci ur£enou pro návrh vzhledu report· a
denici zdroj· dat, kterými se má report naplnit. V²echny takto navrºené reporty je moºné
rovnou exportovat do souboru poºadovaného formátu (na výb¥r je PDF, HTML, textové
soubory, CSV soubory, soubory pro Excel a Rich text format soubory).
Druhou moºností je publikovat vytvo°ené soubory p°ímo v rámci Pentaho BI Platform.
Reporty jsou tak dostupné uºivatel·m p°es webové rozhraní. Díky tomu je moºné jim nastavit
r·zná p°ístupová práva, nebo nap°. nastavit jejich pravidelné generování a rozesílání zainteresovaným osobám e-mailem. Tuto moºnost - tedy distribuovat výsledné produkty p°es BI
17
18
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Platform - nabízí, jak pozd¥ji uvidíme v podstat¥ v²echny nástroje z rodiny Pentaho. Tento
p°ístup umoº¬uje jejich vzájemné propojení a tím tvorbu komplexn¥j²ích °e²ení.
Pentaho Report Designer disponuje t°emi typy datových zdroj·:
•
Data source - Je vyuºíván pro p°ístup k rela£ním, OLAP, Pentaho metadata a XML
datovým zdroj·m. Jedná se tedy o nejobvyklej²í zdroje dat.
•
Custom data source - Umoº¬uje vyuºívat datové zdroje, které nejsou p°ístupné
pomocí JDBC nebo XQuery. Tato moºnost vyºaduje naprogramování n¥kolika t°íd v
Jav¥, které umoºní p°ístup k poºadovanému datovému zdroji.
•
Data properties - Pomocí Data properties datového zdroje je moºné p°edat jedno-
duché hodnoty jako nap°. název rmy nebo aktuální datum. Vyuºívá se pro p°edání
t¥chto hodnot jako vstup· v p°ípad¥, ºe je report spou²t¥n v n¥jaké sekvenci akcí v
rámci Pentaho BI Platform (více informací o sekvencích akcí je uvedeno v kapitole
4.5.1).
Pro p°ístup k rela£ním databázím je vyuºíváno JDBC (Java Database Connectivity),
p°ípadn¥ JNDI (Java Naming and Directory Index) pro ur£ení datového zdroje v rámci
webového serveru. Data se získávají b¥ºnými SQL dotazy. Pentaho je standardn¥ dodáváno
s drivery pro tyto databáze:
• Hypersonic
• MySQL
• Postgres
• Derby
• DB2
• H2
• Oracle
Není v²ak problém dodat v p°ípad¥ pot°eby drivery vlastní.
P°ístup k OLAP datovým zdroj·m (v rámci Mondrian) je op¥t realizován p°es JDBC,
ov²em musíme nahrát i soubor s popisem schematu p°íslu²ného zdroje (.mondrian.xml). Data
získáváme pomocí MDX (Multidimensional Expressions), tedy standardního dotazovacího
jazyka pro OLAP databáze).
Pentaho Metadata zdroje jsou p°ístupné rovn¥º p°es JDBC v kombinaci s validním metadata modelem (reprezentovaným .xmi souborem). Informace £teme díky Pentaho MQL
(Metadata Query Language). MQL je syntax, který uplat¬uje Pentaho Metadata pro generování SQL dotaz· nad metadaty.
Pentaho Metadata je projekt vyuºívaný v rámci Pentaho BI Platform a Pentaho Reporting. Jeho cílem je usnadnit koncovým uºivatel·m p°ístup k datovým zdroj·m. Umoº¬uje
administrátor·m denovat ur£itou abstraktní vrstvu nad samotnou databází, která dokáºe
4.1. NÁSTROJE Z RODINY PENTAHO
19
prezentovat uloºené informace koncovým uºivatel·m ve stravitelné form¥. Zárove¬ lze nastavit individuální zabezpe£ení a p°ípadn¥ omezit p°ístup k n¥kterým dat·m nebo upravit
formát dat a lokalizovat uloºené záznamy.
XML datové zdroje jsou p°ístupné standardn¥ p°es XQuery. Je t°eba, aby ve²kerá data
byla uloºena v jednom souboru.
V neposlední °ad¥ je moºné získávat data i z dal²ího nástroje z rodiny Pentaho a tím je
Pentaho Data Integration (popsáno podrobn¥ v kapitole 4.1.3). Díky tomu získáváme zprost°edkovan¥ p°ístup k dal²í obrovské ²kále datových zdroj·, které nemusí p°ímo podporovat
Pentaho Report Designer. Nasazení je jednoduché - musíme pouze vybrat soubor s p°íslu²nou transformací navrºenou pomocí Pentah Data Integration a krok transformace, z n¥hoº
si p°ejeme data £íst.
4.1.2 Pentaho Analysis
Pod krycím názvem Pentaho Analysis se, jak je v p°ípad¥ Pentaho obvyklé, skrývá p·vodn¥
samostatný nástroj Mondrian. Ve dvou v¥tách: Mondrian je OLAP stroj naprogramovaný
v Jav¥. Provádí dotazy napsané v MDX (Multi-Dimensional eXpressions) jazyce, £te data z
rela£ní databáze a prezentuje je ve vícerozm¥rné form¥ prost°ednictvím Java API.
Princip OLAP byl obecn¥ popsán jiº v kapitole 2.2.4. Zde se tedy podíváme na konkrétní
realizaci v rámci Mondrian. Systém se skládá ze £ty° vrstev:
•
Prezenta£ní vrstva - Ozna£uje jednodu²e uºivatelské rozhraní pro koncové uºivatele.
Umoº¬uje klást dotazy a pracovat se získanými daty. Je mnoho zp·sob·, jak zobrazovat
vícerozm¥rné soubory dat. Mezi n¥ pat°í pivotové tabulky (pivot tables ), nejr·zn¥j²í
druhy graf·, ale i pokro£ilé vizualiza£ní nástroje jako interaktivní mapy apod. V p°ípad¥ Mondrian m·ºou jako takovéto klientské rozhraní slouºit komponenty napsané
ve Swingu nebo JSP, grafy vykreslené jako obrázky, nebo mohou být data poslána pomocí XML jiné aplikaci. V²echna klientská °e²ení mají spole£nou gramatiku, ve které
odesílají (MDX) dotazy OLAP serveru a v níº dostávají odpov¥di.
•
Dimenzionální vrstva - Parsuje, validuje a provádí MDX dotazy. Tedy odesílá poºadavky na £tení jednotlivých hodnot sb¥rné vrstv¥.
•
Sb¥rná vrstva - Je zodpov¥dná p°edev²ím za udrºování cache agregovaných záznam·.
Agregovanými záznamy rozumíme p°edpo£ítaný soubor m¥°itelných hodnot (bun¥k)
seskupených podle ur£ité mnoºiny dimenzí. Dimenzionální vrstva tedy vy²le poºadavek na mnoºinu bun¥k. Pokud je tato mnoºina v cache, nebo je moºné ji odvodit
zobecn¥ním uloºených záznam·, je vrácena. V opa£ném p°ípad¥ vy²le správce sb¥rné
vrstvy poºadavek na ukládací vrstvu.
•
Ukládací vrstva - Je zodpov¥dná za uchovávání dat. V p°ípad¥ Mondrian se jedná
o rela£ní databázi. Základní ideou je p°enechat databázi co nejvíce operací. Agregované hodnoty jsou získávány provád¥ním GROUP BY dotaz·. Vedlej²ím efektem tohoto
p°ístupu (kdy Mondrian nevyºaduje ºádné vlastní úloºi²t¥) je velmi snadná integrovatelnost celého systému jako prostého JAR archivu.
20
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Pro klientské aplikace je k dispozici proprietární API, které se ov²em neli²í od JDBC.
Hlavní rozdíl je v dotazovacím jazyce, kdy se místo SQL vyuºívá jiº zmi¬ované MDX. Jednoduchý výpis p°evzatý z dokumentace [17] demonstruje p°ipojení k Mondrian serveru, odeslání
MDX dotazu a získání odpov¥di:
import mondrian.olap.*;
import java.io.PrintWriter;
Connection connection = DriverManager.getConnection(
"Provider=mondrian;" +
"Jdbc=jdbc:odbc:MondrianFoodMart;" +
"Catalog=/WEB-INF/FoodMart.xml;",
null,
false);
Query query = connection.parseQuery(
"SELECT {[Measures].[Unit Sales], [Measures].[Store Sales]} on columns," +
" {[Product].children} on rows " +
"FROM [Sales] " +
"WHERE ([Time].[1997].[Q1], [Store].[CA].[San Francisco])");
Result result = connection.execute(query);
result.print(new PrintWriter(System.out));
Je tedy z°ejmé, ºe pro práci s Mondrian pot°ebujeme n¥jakou klientskou aplikaci. V
p°ípad¥ Pentaho máme takovou aplikaci k dispozici jako webové rozhraní v rámci Pentaho
BI Platform. Ta obsahuje komponentu p°ímo pro p°ístup k Mondrian. Tato komponenta
vyuºívá ke své £innosti JPivot, coº je knihovna JSP tag· speciáln¥ ur£ených pro vykreslování
OLAP tabulek a graf·. JPivot je dal²í samostatný open-source projekt, ale velmi £asto je
vyuºíván práv¥ ve spojení s Mondrian.
Jak tedy nad rela£ní databází vybudujeme vícerozm¥rnou? V p°ípad¥ Mondrian má toto
na starosti kongura£ní soubor ve formátu XML, kde denujeme kompletní datové schema a
namapujeme jej na tabulky v rela£ní databázi. V sou£asné dob¥ je t°eba tyto XML soubory
vytvá°et ru£n¥ pomocí textového editoru.
4.1.3 Pentaho Data Integration (PDI)
Uº nás asi nep°ekvapí, ºe p·vodní název Pentaho Data Integration byl Kettle. Op¥t samostatný projekt, nutno podotknout, ºe z uºivatelského hlediska opravdu povedený. Jedná se
o klasický ETL nástroj. V rámci PDI rozeznáváme dva typy úkon·:
•
Transformation - Rozum¥jme transformaci n¥jakých dat. Typicky se jedná o proces,
který si p°edstavíme pod zkratkou ETL. Tedy vy£tení dat z n¥jakého zdroje, jejich
následná úprava a op¥tovné uloºení.
•
Job - Pod pojmem job rozumíme n¥jaký úkol, zpravidla opakovan¥ spou²t¥ný, nesouvisí
nutn¥ primárn¥ se p°esunem dat. M·ºe se klidn¥ jednat i o spu²t¥ní transformace nap°.
kaºdý první den v m¥síci. ƒasto se jedná o údrºbu, jako pravidelné mazání nebo p°esun
soubor·, rozesílání mail·, spou²t¥ní externích skript· atd.
4.1. NÁSTROJE Z RODINY PENTAHO
21
PDI zahrnuje t°i základní aplikace:
•
Spoon - Nejzásadn¥j²í nástroj z celé skupiny. Je to gracké uºivatelské rozhraní umoº¬ující velmi jednodu²e "naklikat"poºadovanou sekvenci akcí, která se má vykonat. Zárove¬ jsou k dispozici ladící nástroje pro debugging a prolování. V kaºdém kroku je jak je u podobných aplikací obvyklé - moºné zobrazit náhled na aktuální stav dat.
•
Pan
•
Kitchen - Obdobný jako Pan, ov²em v tomto p°ípad¥ se stará o spou²t¥ní Jobs.
- Jednoduchý program, který dokáºe spou²t¥t transformace vytvo°ené pomocí
Spoon z p°íkazové °ádky. Hodí se tedy pro dávkové vyvolávání transformací.
Nabídka operací na výb¥r je opravdu ²iroká. Od základních jako r·zné operace se soubory
v p°ípad¥ Jobs, nebo zám¥ny v °et¥zcích, aritmetické operace apod. v p°ípad¥ transformací
aº po opravdu mocné akce, umoº¬ující zadat v jednom kroku kód v JavaScriptu, Jav¥ nebo
SQL, coº dává vývojá°i prakticky neomezené moºnosti. K tomu p°i£t¥me moºnost tvorby
zano°ených transformací a slu²nou °ádku vstupních a výstupních formát·. Data lze získat
mimo samoz°ejmé vstupy jako jsou databáze a soubory i z OLAP server· (ne jenom Mondrian), RSS, S3, Salesforca, SAP a dal²ích.
V p°ípad¥ transformací prochází celým systémem data v podob¥ jednotlivých °ádek pomyslné tabulky. Je to forma, na kterou se dají namapovat v podstat¥ v²echny podporované
typy vstup·. P°i pokro£ilej²í práci s PDI je dobré mít na pam¥ti, ºe data v aplikaci z pochopitelných d·vod· putují ve streamu jako sekvence t¥chto °ádek. Ke kaºdé °ádce se tedy
kaºdý krok dostane pouze jednou a nem·ºe se jiº vracet. To ovliv¬uje nap°íklad operace typu
JOIN, kde musí práv¥ z t¥chto d·vod· p°icházet na vstupy data jiº se°azená. N¥které kroky
toto obcházejí tak, ºe vyºadují vyhrazení odkládacího souboru. To ale m·ºe £asto znamenat
úzké hrdlo z hlediska výkonu. Streamový p°ístup totiº umoº¬uje paralelní zpracování, kdy
zpracování ve v²ech krocích b¥ºí sou£asn¥ (nad r·znými °ádkami).
Co se nasazení v jiných systémech tý£e, máme na výb¥r. Krom¥ zmi¬ovaných aplikací
Pan a Kitchen umoº¬ujících dávkové spou²t¥ní disponuje PDI i vlastním API, které je moºné
vyuºít v dal²ích Java aplikacích. Podrobn¥ji je tato problematika rozebrána v kapitole 4.4.1.
Z druhé strany mají vývojá°i moºnost roz²i°ovat PDI díky jeho pluginové architektu°e.
Tento p°ístup je popsán v kapitole 4.4.2.
4.1.4 Pentaho Data Mining
Pentaho Data Mining alias Weka (Waikato Environment for Knowledge Analysis). Projekt
vyvinutý na univerzit¥ Waikato, v sou£asné dob¥ distribuovaný pod hlavi£kou Pentaho. Data
miningový nástroj kompletn¥ napsaný v Jav¥, díky tomu velmi snadno p°enositelný. Weka
podporuje standardní data miningové úkoly jako je p°edzpracování dat, klastrování, klasikace, regrese, feature selection. K dispozici je n¥kolik vizualiza£ních nástroj· pro r·zné
náhledy na data.
Lze pouºít p°ímo jako knihovna p°íslu²ných algoritm· ve vlastních programech. Zárove¬
v²ak disponuje grackým rozhraním pro pohodln¥j²í práci. Gracké rozhraní je rozd¥leno do
t°í £ástí:
22
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
•
Explorer je hlavním ovládacím prost°edím. Poskytuje p°ístup k hlavním komponentám programu, s pomocí nabídek v jednotlivých panelech je moºné nastavit kompletní
data miningový proces nad datovým zdrojem, zárove¬ poskytuje gracký náhled na
na£tená data.
•
Knowledge Flow zp°ístup¬uje podobné funkce jako Explorer, ov²em data miningový
proces sestavujeme podobn¥ jako u PDI vkládáním jednotlivých komponent a jejich
propojováním.
•
Experimenter slouºí, jak uº název napovídá, k opakovanému spou²t¥ní a vyhodnocování proces· v r·zných konguracích, p°ípadn¥ s r·znými daty.
Krom¥ grackého rozhraní je moºné ke stejným funkcím p°istupovat i z p°íkazové °ádky.
Weka umí na£ítat data pouze z textových soubor· nebo z rela£ních databází (p°es JDBC).
Tyto omezené moºnosti je ale moºné roz²í°it jejím propojením s PDI. Na druhou stranu
opravdu sostikované moºnosti propojení jsou dostupné pouze v komer£ní verzi Pentaho.
4.1.5 Pentaho BI platform
Nástroje, které jsme zatím vid¥li, fungují do zna£né míry samostatn¥. Je sice moºné nap°.
data pro Pentaho Data Integration £erpat z Mondrian serveru a zárove¬ dále napojit na
Pentaho Report Designer, ale stále nám chybí jednotné rozhraní, kde by bylo moºné toto
provád¥t. Chybí nám Pentaho BI platform.
4.1.5.1 Webové rozhraní
Pro koncové uºivatele je nejzásadn¥j²í webové rozhraní platformy. Na tomto míst¥ bych rád
vyjasnil n¥kolik pojm·. V dal²ím textu rozumím pod pojmem Pentaho BI platform vºdy
toto webové rozhraní. V propaga£ních materiálech Pentaho a v jejich dokumentaci se tento
pojem pouºívá st°ídav¥ pro webové rozhraní systému a zárove¬ pro celý balík jiº probraných
nástroj·. Toto vná²í do text· neskute£ný zmatek a dokáºe za£áte£níkovi °ádn¥ zamotat
hlavu.
ƒili Pentaho BI platform je webová aplikace napsaná v Jav¥, provozovaná implicitn¥ na
aplika£ním serveru Tomcat. Testována byla i na serveru JBoss. Aby zmatk· nebylo málo,
dodám, ºe se jedná vlastn¥ o dv¥ webové aplikace. Jakousi pracovní plochu na jedná stran¥
a administra£ní konzoli na stran¥ druhé.
Stáhneme-li Pentaho BI platform v implicitní konguraci, dostáváme zabalený samotný
aplika£ní server (tedy Tomcat), na n¥mº je jiº aplikace nainstalovaná, zárove¬ je v balíku
dodávána databáze Hypersonic uº napln¥ná pot°ebnými daty. Nicmén¥ migrace na jiné databáze jako MySQL, Oracle nebo PostgreSQL není v tomto p°ípad¥ p°íli² sloºitá a je celkem
dob°e popsaná v dokumentaci [20].
Administra£ní konzole je v open-source verzi pom¥rn¥ okle²t¥ná a není na ní nic sloºitého. Slouºí zejména ke správ¥ uºivatel· a jejich oprávn¥ní, dále je moºné spravovat datové
zdroje (místo ru£ního nastavování JNDI v kongura£ních souborech serveru) a zprost°edkovává informace o na£asování pravideln¥ spou²t¥ných úkol·. Komer£ní verze pak p°idává
monitorovací nástroje pro sledování b¥hu jednotlivých komponent jako PDI, Mondrian atd.
4.1. NÁSTROJE Z RODINY PENTAHO
23
Obrázek 4.1: Pracovní plocha Pentaho BI platform
Kone£n¥ se dostáváme k jádru v¥ci. Po p°ihlá²ení se nám zobrazí pracovní plocha, která
nevypadá zpo£átku nijak mocn¥ (viz obrázek 4.1). Na první pohled nás zaujme moºnost vytvo°it ad-hoc jednoduchý report, nebo si prohlédnout data p°ístupná p°es Mondrian. Pravá
síla se ale skrývá na obrázku v levé £ásti obrazovky. Pracovní plocha je vlastn¥ hodn¥ propracovanou digitální nást¥nkou, která nám dává p°ístup k °e²ením (v anglické terminologii
solution ) uloºeným v repozitá°i platformy.
Na vysv¥tlenou: e²ením je v tomto kontextu adresá°, v n¥mº jsou uloºeny ve²keré zdroje
pot°ebné k dosaºení n¥jakého cíle. Základem jsou zpravidla dva typy soubor·:
• index.xml - Velmi jednoduchý xml kongura£ní soubor. Popisuje, jak se °e²ení zobrazí
v rámci platformy (pod jakým názvem, s jakou ikonou apod.).
• Jeden nebo více .action soubor· - Op¥t xml soubor, tentokrát popisující úkol, který
se má vykonat, v podob¥ jednoduchého workow - sekvence akcí. P°i spu²t¥ní jsou pak
postupn¥ na základ¥ tohoto souboru volány r·zné komponenty systému s parametry
uvedenými práv¥ zde. Výstupy jednotlivých komponent (akcí) je moºné napojovat na
vstupy dal²ích a jednoduchý syntax souboru umoº¬uje i denici základních cykl· a
podmínek. Tyto soubory jsou podrobn¥ rozebrány v kapitole 4.5.1.
Repozitá° pak není nic jiného neº vyhrazený adresá° v rámci aplikace:
PENTAHO_HOME/pentaho-solutions
Sem nahráváme na²e °e²ení. Obsah repozitá°e je pak zobrazen v rámci pracovní plochy podle
toho, k jakým °e²ením máme oprávn¥ní p°istupovat. BI platform totiº disponuje mechanismem pro ud¥lování oprávn¥ní p°ístupu k jednotlivým °e²ením pro r·zné uºivatele.
24
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Adresa servletu
http://localhost:8080/pentaho/Home
http://localhost:8080/pentaho/Login
http://localhost:8080/pentaho/Admin
http://localhost:8080/pentaho/Navigate
http://localhost:8080/pentaho/UserContent
http://localhost:8080/pentaho/getImage
Funkce servletu
Pracovní plocha.
P°ihla²ovací dialog.
Administra£ní rozhraní - lze provád¥t
b¥ºnou údrºbu, obnovovat nastavení
serveru (nap°. vynutit nové na£tení a
inicializaci plugin·), spravovat naplánované úlohy atd.
Pr·zkumník repozitá°e.
P°ehled naplánovaných úloh.
Servlet pro p°ístup k obrázk·m uloºeným v do£asném adresá°i platformy.
Pouºívá se nap°. pro zobrazení graf· a
jiných obrázk· v rámci reportu.
Tabulka 4.1: Seznam nejd·leºit¥j²ích servlet· pro práci s Pentaho BI platform
Zmínil jsem se o komponentách. Pentaho BI platform zp°ístup¬uje základní funkcionalitu
v²ech zatím zmín¥ných nástroj· z této rodiny práv¥ prost°ednictvím komponent. Je k dispozici nap°. komponenta pro rozb¥hnutí PDI transformace a vy£tení dat z ní, komponenta pro
£tení dat z Mondrian serveru, zobrazení reportu, ale i dal²í samostatné komponenty - nap°.
pro odesílání e-mail·, nebo zpracování JavaScriptu. Komponenty jsou podrobn¥ rozebrány
v kapitole 4.5.2.
Takto vytvo°ená °e²ení mohou být pak p°ístupná p°es pracovní plochu p°ímo, nebo prost°ednictvím webové sluºby (pokud to dává smysl - tedy pokud sekvence produkuje smysluplný strukturovaný výstup). Krom¥ toho m·ºeme pomocí platformy naplánovat nap°. pravidelné spou²t¥ní vybraných °e²ení. M·ºeme tak vytvo°it nap°. °e²ení, které vy£te z databáze
údaje o prodejích za poslední m¥síc, vytvo°í z n¥j report a ten ode²le na n¥kolik e-mail·.
Takovéto °e²ení pak naplánujeme na spu²t¥ní kaºdý první den v m¥síci.
Na záv¥r doplním seznam nejd·leºit¥j²ích servlet· pro práci s platformou (adresy p°edpokládají implicitní konguraci, kdy Tomcat naslouchá na portu 8080) - p°ehled je uveden
v tabulce 4.1.
4.1.5.2 Pentaho Design Studio
Velkolep¥ zn¥jící jméno je ve skute£nosti krycí název pro pom¥rn¥ jednoduchý plugin pro
Eclipse. Na stránkách projektu [13] zd·vod¬ují auto°i bombastické pojmenování aplikace
zejména výhledem do budoucna, kdy by Design Studio m¥lo tvo°it jakési jednotné prost°edí
pro vývoj v rámci Pentaho. V sou£asné dob¥ se do této skupiny vejdou dva nástroje.
Prvním je Report Design Wizard (pozor nezam¥¬ovat s Pentaho Report Designer popsaným v kapitole 4.1.1). Tento projekt je v²ak na SourceForge prezentaci projektu ozna£en jako
Legacy. Moºná z d·vod· ur£ité redundance práv¥ se zmín¥ným Pentaho Report Designer.
Zajímav¥j²í je v tomto ohledu Action Sequence Editor. S jeho pomocí je moºné pom¥rn¥
pohodln¥ spravovat .action soubory bez nutnosti editovat ru£n¥ xml. Nejpouºívan¥j²í kom-
4.2. FAKE GAME
25
ponenty mají v rámci tohoto editoru své vlastní dialogy pro intuitivn¥j²í nastavení jejich
kongurace. Pro komponenty mén¥ pouºívané nebo nov¥ doprogramované je pak k dispozici
generické prost°edí pro nastavení vstup·, výstup·, parametr· a zdroj· dat.
4.1.6 Pentaho Dashboards
Pentaho Dashboard je vlastn¥ framework pro denici digitálních nást¥nek, které se následn¥
zobrazují op¥t v rámci Pentaho BI Platform. V sou£asné dob¥ je k dispozici nová verze
tohoto frameworku, která v mnohém zjednodu²ila tvorbu nást¥nek. V p·vodní verzi bylo
nutné denovat nást¥nky pom¥rn¥ zmate£ným zp·sobem v n¥kolika souborech obsahujících
JavaScript, HTML a denici styl· zobrazení nást¥nky. V sou£asné dob¥ se obejdeme pouze
se dv¥ma soubory:
• index.xml - Jako u v²ech °e²ení v rámci Pentaho BI Platform repozitá°e obsahuje název
nást¥nky a její popis.
• template.html - Obsahuje denici samotného obsahu nást¥nky - jak statického obsahu,
tak dynamicky generovaných £ástí.
Dynamicky generované £ásti jsou vlastn¥ javaScriptové objekty, které zpravidla £erpají
obsah z výstup· p°edem denovaných sekvencí akcí. M·ºeme tedy nap°. denovat sekvenci
akcí starající se o vy£tení dat z databáze, která na výstupu generuje graf jako obrázek a
následn¥ tento obrázek zobrazit pomocí javaScriptového objektu typu xaction. Denice by
pak mohla vypadat nap°. takto:
regionVarianceBarChart =
{
name: "myDataChart",
type: "xaction",
solution: "dashboards",
path: "sample_dashboard_components",
action: "myDataChart.xaction",
listeners:\["group"\],
parameters: \[\["GROUP","group"\]\],
htmlObject: "object_2",
executeAtStart: false,
}
K dispozici jsou komponenty pro zobrazení jednoduchého textu, formulá°·, tabulek aº
po ty komplexní vyuºívající nap°. JPivot, nebo Google Maps API.
4.2
FAKE GAME
V p°ípad¥ FAKE GAME se jedná o data miningový software vyvíjený na ƒVUT. Hlavním
cílem projektu je poskytnout nástroj pro automatizovanou tvorbu report· bez nutnosti zásahu uºivatele. Toto je pom¥rn¥ revolu£ní my²lenka, vzhledem k tomu, ºe tvorba report·
pomocí konkuren£ních °e²ení vyºaduje £asto pokro£ilou znalost dané problematiky.
26
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Hlavní devizou FAKE GAME je automatické vytvá°ení model· aniº by bylo nutné je
ru£n¥ nastavovat. Jednotlivé modely jsou r·zn¥ kongurovány a dále ²lecht¥ny nap°. vyuºitím genetických algoritm·. FAKE GAME pro dosaºení lep²ích výsledk· pouºívá ensemble
metody, tedy p°ístup, kdy jsou r·zné modely vzájemn¥ kombinovány.
4.2.1 Architektura systému a jeho roz²i°itelnost
Koncept umoº¬ující automatické zpracování je podle dostupné dokumentace [14] tak zvaný
Operation Flow (sled jednotlivých operací). Jednotlivé operace (po£ínaje na£tením dat, jejich p°edzpracováním aº po vizualizaci dat, tvorbu a vyhodnocení model·) jsou z°et¥zeny v
jednoduché sekvenci, jak je patrné z obrázku 4.2.
Obrázek 4.2: Operation Flow v aplikaci FAKE GAME. P°íklad DMBatchProle [14]
Kaºdá díl£í operace m·ºe vyprodukovat svou £ást výsledného reportu. Zárove¬ mohou
díl£í operace p°edp°ipravovat data pro operace následující. Ve²kerá data putující v systému
mezi jednotlivými operacemi jsou ukládána na Blackboard. Jedná se o hierarchickou stromovou strukturu podobnou souborovému systému.
Sekvence operací m·ºe být r·zná. Jejich uspo°ádání ur£uje v rámci FAKE GAME Prole.
Na obrázku 4.2 je zobrazený p°íklad DMBatchProle. Ten je ur£ený pro dávkové zpracování a
automatickou produkci reportu. Je schopný sám ur£it, o jakou úlohu se jedná (moºnosti jsou:
samoorganiza£ní problém, regresní problém nebo klasika£ní problém). Jednotlivé proly je
dále moºné kongurovat pomocí XML soubor·.
Jak je z obrázku patrné, typický prol sestává z inicializa£ní fáze následované na£tením
dat (v tomto p°ípad¥ z textového souboru), pokra£uje p°edzpracováním dat, jejich p°ípadnou
redukcí. Dále se provádí r·zné vizualizace, sestavení model· na základ¥ p°edané kongurace
a jejich testování a vyhodnocení výsledk·.
Výsledky operací jsou shrnuty v reportu.
4.3. DATA MINING A JEHO INTEGRACE V NÁSTROJÍCH PENTAHO
27
Je tedy z°ejmé, ºe pro dopln¥ní funkcionality do FAKE GAME je t°eba upravit stávající
DMBatchProle, nebo vytvo°it prol nový. Sestavování prol· funguje ve FAKE GAME na
základ¥ návrhového vzoru Strategy [6]. Jeho konkrétní realizace je znázorn¥na na obrázku
4.3.
Obrázek 4.3: Realizace návrhového vzoru Strategy v rámci FAKE GAME
Pro realizaci prvního úkolu tedy bude nejjednodu²²í nahradit v kontextové t°íd¥
OperationFlow operaci ImportFile operací, která provede PDI transformaci a na£te z ní pot°ebná data. Obdobn¥ m·ºeme postupovat p°i pot°eb¥ dodání jakékoliv dal²í operace. Jediné,
co je v·£i FAKE GAME t°eba splnit je implementace p°íslu²ného interface IOperation.
Dal²ím zajímavým aspektem je tvorba výsledného reportu. Jak jiº bylo °e£eno, kaºdá operace m·ºe vyprodukovat £ást výsledného reportu reprezentovanou rozhraním ISubreport.
Konkrétní t°ídy implementující toto rozhraní zpravidla obsahují instanci t°ídy
SubreportContainer, coº je skute£ná reprezentace "subreportu". Kaºdá £ást reportu se totiº
skládá z r·zných objekt· (obrázky, texty tabulky apod.). Tyto objekty se p°idávají práv¥
do instance t°ídy SubreportContainer. Tato skute£nost je zachycena zjednodu²eným class
diagramem na obrázku 4.4. Kaºdý SRObject umí vyvolat instanci t°ídy, která jej dokáºe
vykreslit. Zp·sob vykreslení závisí na konkrétní implementaci abstraktní t°ídy SRRenderer.
Takovou konkrétní implementací je nap°. SRHTMLRenderer, který vytvá°í report ve formátu
HTML.
4.3
Data Mining a jeho integrace v nástrojích Pentaho
Pokud uvaºujeme nad moºnostmi propojení FAKE GAME a Pentaho je nasnad¥ prozkoumat,
jak je data mining jiº implementován v rámci platformy. P°i hlub²ím pátrání objevíme n¥kolik
jednodu²²ích plugin· pro PDI. Jmenovit¥ jde o Univariate Statistics plugin, který ned¥lá nic
sv¥toborného. Pouze je na výstupu schopný vyprodukovat n¥které statistické hodnoty jako
je minimum, maximum, po£et poloºek na vstupu, aritmetický pr·m¥r atd.
Dal²ím je ARFF Output Plugin, pro ukládání dat ve formátu ARFF (Attribute-Relation
File Format) a Reservoir Sampling Plugin, který umoº¬uje vybrat pevný po£et °ádek ze
28
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Obrázek 4.4: Skládání report· v rámci FAKE GAME
vstupu (aniº bychom p°edem znali jejich celkový po£et), p°i£emº kaºdá °ádka má stejnou
pravd¥podobnost být vybrána.
Nicmén¥ vlajkovou lodí Pentaho v oblasti data mining je Weka, takºe nás asi nep°ekvapí,
ºe nejzajímav¥j²í implementace vyuºívají práv¥ ji. Jedná se o komponentu pro provád¥ní
wekovských knowledge ows v rámci Pentaho BI platform a o dva pluginy pro PDI.
Ov²em pouze první plugin - Weka Scoring Plugin - je dostupný jako Open Source. V
podstat¥ v²echny modely sestavené pomocí Weky je moºné exportovat jako serializované
Java objekty. Weka Scoring Plugin umoº¬uje takto serializované modely na£íst a aplikovat
na vstupní data. Výsledkem je pro kaºdou vstupní instanci bu¤ její klasikace, nebo £íselný
odhad výstupní hodnoty. V p°ípad¥ klasikace máme dv¥ moºnosti reprezentace výsledku:
p°ímo jako výstupní t°ídu, nebo nep°ímo jako vý£et pravd¥podobností p°íslu²nosti ke v²em
t°ídám (output probabilities ).
V rámci placené verze PDI Pentaho dodává navíc Knowledge Flow Plugin, který umoº¬uje na£ítat a provád¥t knowledge ows vytvo°ené pomocí Weky. Dokonce je moºná jejich
úprava p°ímo v prost°edí PDI. Jeho zprovozn¥ní vyºaduje navíc p°idání pluginu i do samotné
Weky. Tento plugin umoºní Wecce p°ijímat v rámci knowledge ow data z PDI transformací.
Dal²í funkcí zp°ístupn¥nou jen platícím uºivatel·m je speciální komponenta pro BI platform, která umí zrealizovat v podstat¥ to samé jako Knowledge Flow Plugin, tedy na£íst a
provést knowledge ow vyexportované z Weky. Tentokrát ale p°ímo ve webovém prost°edí
BI platform.
Funk£n¥ se tak poslední dv¥ zmín¥né implementace dost kopírují, nicmén¥ mají pravd¥podobn¥ své opodstatn¥ní vzhledem k pom¥rn¥ vysoké po°izovací cen¥ BI Platform se jist¥
najde hodn¥ uºivatel·, kte°í vyuºívají v komer£ní verzi nap°. jen PDI v kombinaci s Wekou.
4.4. MOšNOSTI ROZ’͐ENÍ PENTAHO DATA INTEGRATION
29
Z hlediska FAKE GAME vidím na základ¥ t¥chto poznatk· dv¥ zajímavé moºnosti.
První je obdoba Weka Scoring Plugin. FAKE GAME disponuje modely, které Weka nemá.
Pro uºivatele Petaho m·ºe tedy být zajímavé tyto r·zné implementace porovnat. Zárove¬
je v tomto sm¥ru práce obou program· dosti podobná a plugin pro FAKE GAME by mohl
fungovat velmi podobn¥ jako jiº známé a zaºité °e²ení. FAKE GAME totiº také disponuje
moºností exportovat modely v serializované podob¥.
Dal²í uºite£nou implementací by z mého pohledu byla integrace FAKE GAME p°ímo do
BI platform. Zde dob°e zapadá do celkového konceptu platformy, kdy nad daty, která získáme
nap°. pomocí PDI nebo vy£teme z Mondrian serveru dokáºe provést b¥ºné data miningové
operace (v tomto p°ípad¥ se velmi hodí celková lozoe tvorby report· bez nutnosti zásahu
uºivatel·) a vyprodukovat komplexní zprávu zobrazitelnou p°ímo v prost°edí pracovní plochy
platformy. Za tímto ú£elem by tedy bylo t°eba vytvo°it komponentu pro BI platform, která
umoºní za°adit FAKE GAME mezi akce pouºitelné prost°ednictvím kongurace .action
soubor·.
4.4
Moºnosti roz²í°ení Pentaho Data Integration
Dosavadní pr·zkum ukázal relativn¥ velký potenciální p°ínos, který skýtá vyuºití PDI a to
hned dv¥ma zp·soby. Jednak jako knihovnu, kdy FAKE GAME bude vyuºívat PDI API pro
interpretaci a spou²t¥ní transformací vytvo°ených pomocí PDI. FAKE GAME tak získá nejen
opravdu ²irokou paletu zdroj·, z nichº bude schopný na£ítat data, ale i mnoºství uºite£ných
nástroj· pro p°ípravu t¥chto dat, jejich £i²t¥ní apod. Opa£ným sm¥rem jde nasazení FAKE
GAME jako pluginu pro PDI. V této kapitole si popí²eme technické nároky obou t¥chto
implementací.
4.4.1 PDI API
Základem PDI API je t°ída Trans reprezentující kompletní transformaci. Obsah transformace je uchováván v instanci t°ídy TransMeta. Transformaci spustíme metodou execute, s
volitelnými parametry. Celé zpracování probíhá ve vláknech, proto je t°eba po£kat na dokon£ení jejich práce metodou waitUntilFinished. Uvádím krátký p°íklad provedení takové
transformace na£tené ze souboru:
public static void runTransformation(String filename) {
try {
StepLoader.init();
EnvUtil.environmentInit();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);
trans.execute(null);
trans.waitUntilFinished();
if ( trans.getErrors() > 0 )
{
throw new RuntimeException( "Errors during transformation execution." );
30
}
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
}
}
catch ( KettleException e ) {
System.out.println(e);
}
Pomocí PDI API lze transformaci i r·zn¥ upravovat. Na tomto míst¥ bych ale cht¥l
podotknout, ºe se ve skute£nosti nejedná o API v pravém slova smyslu, tedy o ve°ejn¥ deklarované rozhraní pro ostatní aplikace, které garantuje alespo¬ elementární zp¥tnou kompatibilitu. V p°ípad¥ sloºit¥j²ích operací s transformací je vývojá° nucen pono°it se pom¥rn¥
hluboko do vnit°ní implementace PDI a vystavuje se tak hrozb¥ nekontrolovatelných zm¥n
v dal²ích verzích programu.
I uvedený p°íklad je platný pro PDI do verze 3. Ve verzi 4 do²lo k pom¥rn¥ rozsáhlým
zm¥nám a dokonce v rámci takto jednoduchého p°íkladu je t°eba volání
StepLoader.init();
EnvUtil.environmentInit();
nahradit
KettleEnvironment.init();
P·vodní volání bohuºel není zp¥tn¥ kompatibilní.
4.4.2 Pluginy pro PDI
P°íslu²ná dokumentace[1] je pom¥rn¥ strohá. Lep²ím zdrojem informací je zkoumání zdrojových kód· existujících plugin·. Kaºdý plugin pro PDI musí obsahovat minimáln¥ £ty°i t°ídy
implementující následující rozhraní:
• StepMetaInterface - Uchovává informace o nastavení pluginu, umoº¬uje jeho ukládání
a na£ítání, denuje mnoºinu vstupních a výstupních hodnot, s nimiº plugin pracuje.
• StepInterface - Samotné výkonné jádro pluginu. Mimo jiné implementuje metodu
processRow, která zpracovává jednotlivé °ádky dat proudící systémem.
• StepDataInterface - T°ída implementující toto rozhraní je ur£ena pro udrºování provozních informací jako nap°. otev°ené soubory, r·zné kurzory a streamy. Význam t°íd
implementujících toto rozhraní není úpln¥ jednozna£n¥ z°ejmý. N¥které existující pluginy je trochu zmate£n¥ vyuºívají i jako odkladi²t¥ uºite£ných funkcí.
• StepDialogInterface - Denuje uºivatelský dialog pro úpravu nastavení pluginu.
Vzhledem k pom¥rn¥ komplikované struktu°e rozhraní StepMetaInterface a
StepInterface, která ob¥ p°edepisují p°ibliºn¥ 50 metod k implementaci se doporu£uje zd¥dit v¥t²inu metod od t°íd BaseStepMeta a BaseStep a p°epsat jen metody, které se mají
4.5. MOšNOSTI ROZ’͐ENÍ PENTAHO BI PLATFORM
31
chováním li²it od implicitního. Toto není úpln¥ ²´astný p°ístup z hlediska kvality návrhu.
Kaºdopádn¥ vnit°ní struktura PDI je trochu zmate£ná, coº spolu s absencí kvalitní dokumentace v této oblasti vývojá°e k takovému p°ístupu v podstat¥ nutí a v¥t²ina plugin· t°etích
stran této obezli£ky vyuºívá.
Na názvech konkrétních t°íd záleºí. PDI o£ekává, ºe jméno t°ídy implementující
StepMetaInterface bude kon£it na Meta a jméno t°ídy implementující StepDialogInterface
bude kon£it na Dialog. Prex musí mít ob¥ t°ídy stejný. Tedy nap°. MujPluginMeta a
MujPluginDialog.
Samotná instalace pluginu je velmi jednoduchá. Plugin tvo°í .jar soubor se zkompilovaným zdrojovým kódem pluginu, dále ikona reprezentující plugin v grackém rozhraní,
volitelné dal²í knihovny pot°ebné pro chod pluginu a soubor plugin.xml v tomto formátu:
<?xml version="1.0" encoding="UTF-8"?>
<plugin
id="UnikatniOznaceniPluginu"
iconfile="Ikona.png"
description="Popis pluginu"
tooltip="Kratky popisek cinnosti - tooltip"
category="Skupina, kam se ma plugin v menu zaradit
(Transform, Input, Output apod.)"
classname="cz.plne.jmeno.meta.tridy.MujPluginMeta">
<libraries>
<library name="cesta/k/archivu_obshaujicimu_plugin.jar"/>
<library name="volitelne_dalsi_knihovny.jar"/>
</libraries>
</plugin>
V²echny tyto soubory je nutné nakopírovat do adresá°e PDI_HOME/plugins/steps.
4.5
Moºnosti roz²í°ení Pentaho BI platform
4.5.1 Sekvence akcí
Jak jsme vid¥li v kapitole 4.1.5 základním zp·sobem roz²í°ení funk£nosti Pentaho BI platform je denice vlastního °e²ení. Tedy sestavení .action souboru. Poj¤me se nyní podívat
podrobn¥ji na jeho strukturu:
<?xml version="1.0" encoding="UTF-8"?>
<action-sequence>
<title>Nazev reseni</title>
<version>1</version>
<logging-level>ERROR</logging-level>
<documentation>
<author>Ivo Lasek</author>
<description>Popis reseni</description>
<help>Navod k pouziti</help>
32
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
<result-type/>
<icon/>
</documentation>
<inputs/>
<outputs />
<resources />
<actions>
<action-definition />
</actions>
</action-sequence>
Vidíme tedy, ºe kaºdá sekvence akcí obsahuje na po£átku popisnou £ást denující vesm¥s
zp·sob jejího zobrazení v rámci pracovní plochy a úrove¬ logování. Dále je moºné denovat
vstupy, výstupy a zdroje. Jako vstupy mohou slouºit parametry p°edané v url p°i vyvolání
sekvence, nebo data p°ijatá p°i volání webové sluºby. Výstupy vytvá°í jednotlivé komponenty v pr·b¥hu zpracování sekvence. V poli outputs tedy m·ºeme deklarovat, které z nich
sekvence opravdu vrací. Pole resources obsahuje seznam soubor·, které pot°ebují pouºité
komponenty ke své £innosti - m·ºe se jednat nap°. o uloºenou PDI transformaci.
Následuje vlastní seznam akcí. Volání komponent je popsáno v £ásti action-definition.
Pro ilustraci uvádím p°íklad volání komponenty provád¥jící PDI transformaci:
<action-definition>
<component-name>KettleComponent</component-name>
<action-type>Pentaho Data Integration</action-type>
<action-resources>
<transformation-file type="resource"/>
</action-resources>
<action-outputs>
<kettle-execution-log type="string" mapping="execLog"/>
<kettle-execution-status type="string" mapping="execStatus"/>
<transformation-output-rows type="result-set" mapping="outRows"/>
<transformation-output-rows-count type="integer" mapping="outRowsCount"/>
</action-outputs>
<component-definition>
<monitor-step><![CDATA[Output Step]]></monitor-step>
<kettle-logging-level><![CDATA[rowlevel]]></kettle-logging-level>
</component-definition>
</action-definition>
Denujeme tedy název komponenty, kterou chceme volat. Dále máme podobn¥ jako
u celé sekvence moºnost denovat vstupy, výstupy a zdroje pot°ebné pro £innost komponenty. V uvedeném p°íklad¥ denujeme jako zdroj soubor s transformací, jehoº název o£ekáváme jako vstup celé sekvence p°edaný parametrem transformation-file. Komponenta je
4.5. MOšNOSTI ROZ’͐ENÍ PENTAHO BI PLATFORM
Název datového typu
content
bigdecimal
inputstream
integer
list
long
object
property-map
property-map-list
result-set
string
string-list
33
Podporované hodnoty
Stream dat vyprodukovaný komponentou.
Odpovídá typu BigDecimal v Jav¥.
Odpovídá typu InputStream v Jav¥.
Odpovídá typu Integer v Jav¥.
Odpovídá typu java.util.List v Jav¥.
Odpovídá typu Long v Jav¥.
Odpovídá typu Object v Jav¥.
Mapa °et¥zc·.
Seznam map °et¥zc· - v podstat¥ p°ipomíná tabulku.
Seznam polí objekt·. Umoº¬uje reprezentovat data ve
form¥ tabulky. Na rozdíl od typu property-map-list je s
jeho pomocí moºné p°edávat r·zné datové typy, nejenom
°et¥zce. Reprezentován rozhraním IPentahoResultSet.
Odpovídá typu String v Jav¥.
Seznam °et¥zc·.
Tabulka 4.2: Seznam datových typ· podporovaných v rámci Pentaho BI platform
schopna vrátit prom¥nné execStatus, outRows apod. Ty namapujeme na výstupy s názvem
kettle-execution-log a transformation-output-rows atd.
V £ásti component-definition uvádíme konstantní nastavení komponenty, které nepot°ebujeme ovliv¬ovat vstupními parametry. Tyto denice akcí je moºné °et¥zit a napojovat
výstupy akcí na vstupy jejich následník·. Velmi primitivním zp·sobem tak m·ºeme sestavovat jednoduché skripty.
Jednotný formát dat pro p°enos mezi komponentami je °e²en konverzí na n¥kolik jednoduchých datových typ·, které jsou platformou podporovány. Jejich vý£et je uveden v tabulce
4.2.
4.5.2 Komponenty a pluginy
Uº mnohokrát jsem se zmi¬oval o komponentách jako hlavních funk£ních jednotkách v rámci
platformy. Je tedy na £ase podívat se podrobn¥ji, jak taková komponenta funguje. Pokud
vyvolám v rámci platformy n¥jakou sekvenci akcí, a´ uº jako webovou sluºbu, p°es aplikaci t°etí strany nebo prost°ednictvím uºivatelského rozhraní, dochází k následujícímu cyklu
zpracování:
1. Volající si vyºádá spu²t¥ní sekvence.
2. Daná sekvence je vyhledána a na£tena z repozitá°e.
3. Dochází k její validaci, tedy k validaci .action souboru.
4. V²echny obsaºené komponenty jsou na£teny a inicializovány.
34
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Metoda
done
executeAction
getLogger
init
validateAction
validateSystemSettings
ƒinnost metody
Volána po ukon£ení £innosti komponenty. Vhodná pro
úklid, jako nap°. uzav°ení pouºívaných zdroj·.
Samotné provedení stanoveného úkolu.
Vrací logovací objekt pro komponentu.
Volána po na£tení komponenty. Obsahuje inicializa£ní rutiny.
Zde by si komponenta m¥la ov¥°it, zda má v²echny pot°ebné vstupy a zdroje. Pokud metoda vrátí false, sekvence se p°eru²í a úkol komponenty se nevykoná.
Chová se podobn¥ jako p°edchozí metoda s tím rozdílem,
ºe by m¥la ov¥°it správnost systémových nastavení, jako
je nap°. p°ipojení k databázi, nastavení p°ipojení k mailovému serveru apod.
Tabulka 4.3: Seznam metod rozhraní org.pentaho.core.component.IComponent
5. Následuje fáze validace jednotlivých komponent, kdy si kaºdá komponenta nap°. ov¥°í,
zda dostává správné vstupy, p°ípadn¥ zda jsou správn¥ o²et°eny výstupy.
6. Spustí se provád¥ní celé sekvence, které spo£ívá v postupném spou²t¥ní komponent
podle .action souboru.
7. Sekvence je ukon£ena, p°ípadné výstupy jsou vráceny volajícímu.
Aby na²e vlastní komponenty mohly fungovat v rámci BI platform, musí jako vºdy implementovat p°íslu²né rozhraní. V tomto p°ípad¥ se jedná o IComponent. Jeho metody jsou
shrnuty v tabulce 4.3.
Doposud vypadá toto °e²ení pom¥rn¥ sch·dn¥. Bohuºel samotná implementace rozhraní
nesta£í. Komponenta se n¥jakým zp·sobem musí dostat ke svým vstup·m, prezentovat výstupy, £íst systémová nastavení a pro tyto informace je t°eba sáhnout pom¥rn¥ hluboko
do útrob celého systému. Vývojá°i tedy shrnuly nejb¥ºn¥j²í úkony v jakémsi API [9], které
p°edstavuje t°ída ComponentBase. Podobn¥ jako u plugin· pro PDI je tedy vývojá° nucen
d¥dit od této t°ídy, coº m·ºe být v mnoha p°ípadech svazující. Nemluv¥ o nep°ehlednosti
rozsáhlého kódu zd¥d¥ného od rodi£ovské t°ídy.
Na kaºdý pád se díky tomuto p°ístupu stávají komponenty pom¥rn¥ úzce závislé na
vnit°ní implementaci celého systému a tak náchylné ke zkáze zp·sobené potenciálními zm¥nami struktury projektu v jeho dal²ích verzích.
Na²t¥stí zde na rozdíl od PDI existuje zda°ilá alternativa v podob¥ lépe zvládnuté pluginové architektury, která se v platform¥ objevila teprve nedávno (s verzí 3.0 a byla dále
rozpracována ve verzi 3.5 - tedy v posledním stabilním vydání). Pluginy a zejména v jejich rámci zp°ístupn¥né Akce p°edstavují odleh£enou variantu komponent bez návaznosti na
vnit°ní strukturu celého projektu. Podrobn¥ji je tato problematika rozebrána v následující
kapitole.
4.5. MOšNOSTI ROZ’͐ENÍ PENTAHO BI PLATFORM
35
4.5.3 Jednotlivé sou£ásti pluginu
Pluginy v rámci Pentaho BI platform poskytují hned n¥kolik zp·sob·, jak upravit chování
platformy. K dispozici jsou následující moºnosti:
•
Úprava menu pracovní plochy. Spo£ívá v prosté denici p°íslu²né poloºky v kongura£ním souboru pluginu plugin.xml, o n¥mº bude °e£ vzáp¥tí.
P°ekrývání existujícího obsahu.
•
V sou£asné dob¥ je moºné p°izp·sobit pouze
spou²t¥cí obrazovku a menu v rámci pracovní plochy. Vyuºívá se XUL (XML User
interface Language), coº je standard pro denici uºivatelských rozhraní vyvinutý v
rámci projektu Mozilla. V p°ípade BI platform umis´ujeme jeho denici op¥t do souboru plugin.xml.
•
Denice statického obsahu.
•
Denice nových typ· obsahu. BI platform standardn¥ umí zpracovat n¥které typy
Nový statický obsah implementujeme v rámci platformy velmi jednodu²e. Denujeme cestu k p°íslu²nému souboru a url, pod níº bude
dostupný v plugin.xml.
soubor·. e£ byla o .xaction souborech, podobn¥ je tom nap°. u denic report·
(.prpt soubory). V rámci pluginu máme moºnost denovat dal²í obsah, který zatím
platforma nepodporuje a ur£it t°ídu, která umí p°íslu²ný obsah zpracovat (tak zvaný
ContentMetaProvider).
•
Generátor obsahu. Jde o javovskou t°ídu implementující rozhraní IContentGenerator.
Základem t°ídy je metoda createContent, která - jak uº název napovídá - dokáºe vyprodukovat n¥jaký obsah a p°edat jej do výstupního streamu. Ten je pak platforma
schopna zobrazit uºivateli.
•
Lifecycle listener.
•
Nové komponenty.
Asi nejzajímav¥j²í moºností je p°edstavení nových funk£ních
celk· - velmi podobných komponentám popsaným v p°edchozí kapitole. V rámci plugin· je budeme nazývat Akcemi. Na rozdíl od komponent není t°eba d¥dit od ºádné
t°ídy. Musíme pouze implementovat p°íslu²ný interface. Velmi p°íjemná je práce se
vstupy a výstupy. Akce by se m¥la chovat jako klasická javovská beana. Ve²keré nastavování vstup· a výstup· se d¥je na základ¥ reexe pomocí klasických setter· a getter·.
Vývojá° se tak nemusí starat o to, kde a jak jsou data v rámci platformy uloºena.
•
Webové sluºby. A£koliv v podstat¥ v²echny Akce je schopna platforma vystavit jako
Pentaho nám dává moºnost provést n¥které p°ípravné rutiny v
r·zných fázích ºivota pluginu. M·ºeme reagovat na t°i typy událostí: inicializace pluginu (init), jeho na£tení (loaded) a jeho deaktivace (unloaded). Za tímto ú£elem je
t°eba vytvo°it t°ídu implementující rozhraní IPluginLifecycleListener a platformu
upozornit na jeho existenci op¥t prost°ednictvím souboru plugin.xml.
webové sluºby na základ¥ jejich rozhraní, máme k dispozici moºnost denovat i webové
sluºby jako takové v p°ípad¥, ºe vzhledem k jejich funkcionalit¥ nedává p°íli² smysl
prezentovat je b¥ºným uºivatel·m v rámci pracovní plochy.
36
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
•
GWT RPC sluºby.
Od poslední vydané verze podporuje Pentaho i vytvá°ení sluºeb vyuºívajících GWT RPC (Google Web Toolkit Remote Procedure Call). V rámci
platformy je k dispozici GWT RPC proxy servlet. Ten dokáºe nasm¥rovat p°íchozí poºadavky p°íslu²ným objekt·m, které je umí obslouºit. V²echny poºadavky z klientské
£ásti aplikace musí tedy sm¥°ovat práv¥ na tento servlet. Vyuºití známého frameworku
GWT vná²í do jinak pom¥rn¥ statických plugin· notnou dávku interaktivity a do budoucna vypadá jako velmi slibný trend. Vzhledem k tomu, ºe je ale tento mechanismus
pom¥rn¥ mladý, je dostupná jen základní dokumentace a ºádná nativní komponenta
jeho moºnosti v sou£asné dob¥ nevyuºívá, ozna£il bych jeho nasazení zatím spí²e za
experimentální.
Typický plugin tvo°í soubor plugin.xml a adresá° lib, který obsahuje pot°ebné JAR
soubory. Strukturu souboru plugin.xml nazna£uje následující výpis:
<?xml version="1.0" encoding="UTF-8"?>
<plugin title="M·j Plugin">
<lifecycle-listener>
<lifecycle-listener class="my.plugin.MyLifecycleLister"/>
</lifecycle-listener>
<static-paths>
<!-- Definice cest k soubor·m se statickým obsahem -->
</static-paths>
<menu-items>
<!-- Vý£et poloºek menu, které chceme p°idat -->
<menu-item/>
</menu-items>
<overlays>
<!-- Definice p°ekryvného obsahu -->
<overlay/>
</overlays>
<content-types>
<!-- Vý£et nových typ· obsahu -->
<content-type/>
</content-types>
<!-- Identifikace t°ídy generující vlastní obsah -->
<content-generator/>
<!-- Identifikace t°ídy reprezentující novou akci -->
<bean/>
</plugin>
4.6. ZÁV…REM
37
Jak vidíme soubor plugin.xml tvo°í jakýsi rozcestník, podle kterého jsou inicializovány
a zaregistrovány v²echny sou£ásti pluginu p°i jeho na£tení platformou. P°edstavený p°ístup
umoº¬uje pluginy do platformy exibiln¥ p°idávat a zase je z ní odebírat, aniº bychom se
jakkoliv museli dotknout struktury samotné aplikace.
4.6
Záv¥rem
Na základ¥ prezentovaných informací jsem se rozhodl za ú£elem napln¥ní cíl· stanovených v
úvodu (v kapitole 1.2) vytvo°it t°i projekty. V prvním p°ípad¥ jde spí²e o dopln¥ní funkcí do
stávajícího projektu, tedy o roz²í°ení FAKE GAME o volání PDI API a zpracování takto získaných informací. V dal²ích dvou p°ípadech jde o vytvo°ení plugin· za ú£elem zp°ístupn¥ní
základní funkcionality FAKE GAME v rámci Pentaho. Prvním je plugin pro PDI, velmi podobný jiº existujícímu Weka Scoring pluginu. Díky n¥mu je moºné velmi snadno porovnávat
v prost°edí PDI modely vytvo°ené pomocí FAKE GAME a modely vytvo°ené prost°ednictvím Weky. T°etím a posledním °e²ením je plugin p°ímo pro BI platform, který tvo°í jakýsi
most mezi FAKE GAME a zbylými nástroji z rodiny Pentaho. Dal²í £len¥ní práce do kapitol
tedy odpovídá jednotlivým projekt·m.
38
KAPITOLA 4. ANALÝZA EXISTUJÍCÍCH NÁSTROJ—
Kapitola 5
Vyuºití PDI API v rámci FAKE
GAME
Obrázek 5.1: Ukázka transformace vytvo°ené pomocí PDI, kterou je FAKE GAME schopný
zpracovat.
5.1
Realizace
5.1.1 Popis PDI API
Samotný zp·sob nasazení PDI API je pom¥rn¥ p°ímo£arý a popsal jsem jej jiº v kapitole
4.4.1. Zde se podíváme na n¥která úskalí, na n¥º jsem b¥hem práce narazil a která bohuºel
nejsou v materiálech Pentaho moc dob°e zdokumentovaná. Zdrojový kód uvedený v kapitole
4.4.1 sice ukazuje, jak transformaci spustit, ale uº není p°íli² z°ejmé, jak z ní dostat n¥jaká
data. V tomto ohledu máme dv¥ moºnosti.
39
40
KAPITOLA 5. VYUšITÍ PDI API V RÁMCI FAKE GAME
První °e²ení spo£ívá v provedení celé transformace a vy£tení výsledku metodou getResult().
Následující fragment kódu ukazuje, jak m·ºe takový postup vypadat.
trans.execute(null);
// Transformace se vykonává paraleln¥,
// proto je pot°eba vy£kat na ukon£ení v²ech vláken.
trans.waitUntilFinished();
// Nakonec na£teme výsledek, z n¥hoº je moºné získat seznam °ádek.
List<RowMetaAndData> rows = trans.getResult().getRows();
Záhy ale zjistíme, ºe je takto získaný výsledek krom¥ n¥kterých statistických údaj· (jako
doba provád¥ní, po£et zpracovaných záznam· apod.) prázdný. Samotná data musíme do výsledku zkopírovat zvlá²tním korkem transformace s názvem Copy rows to result z kategorie
Job. Tento krok musí za°adit bu¤ p°ímo uºivatel p°i vytvá°ení transformace, nebo je t°eba
vyuºít ²ir²ích moºností PDI API a p°idat jej automaticky. Postup je popsaný v dokumentaci [18].
Je z°ejmé, ºe takovéto °e²ení skýtá mnohá úskalí. Krom¥ problém· s identikací správného místa pro automatické vloºení kroku Copy rows to result u sloºit¥j²ích transformací
vidím hlavní problém ve zp·sobu práce s daty. Celá transformace se provede a následn¥ jsou
ve²kerá výsledná data zkopírována do jednoho úloºi²t¥ v pam¥ti. Vzhledem k jejich potenciáln¥ velkému rozsahu bychom tak vytvo°ili zbyte£n¥ úzké hrdlo v podob¥ omezené kapacity
pam¥ti.
Druhý p°ístup, který jsem nakonec zvolil, spo£ívá ve vytvo°ení instance vlastní t°ídy
naslouchající na vybraném kroku a zpracovávající jednotlivé °ádky dat po jedné. Tedy ve
zkratce vyuºití návrhového vzoru Observer [6]. Základní princip je znázorn¥n na obrázku 5.2.
T°ída OutputRowListener tedy implementuje zejména metodu rowWrittentEvent p°ijímající data z výstupu sledovaného kroku a p°eposílá takto získaná data dále do útrob FAKE
GAME.
Obrázek 5.2: Ukázka £tení dat z transformace za vyuºití návrhového vzoru Observer
5.1. REALIZACE
41
Op¥t je t°eba dávat pozor na n¥které záludnosti. Oproti kódu z kapitoly 4.4.1 musíme
transformaci p°ed spu²t¥ním p°ipravit - tedy nalézt vybraný krok (podle jeho názvu) a p°edat
mu ná² OutputRowListener.
trans.prepareExecution(null);
BaseStep step = trans.findRunThread(outputStepName);
step.addRowListener(new OutputRowListener());
Samotnou transformaci pak nelze spou²t¥t metodou execute, která by p°epsala námi
vloºené nastavení, nýbrº metodou startThreads, tedy:
trans.startThreads();
trans.waitUntilFinished();
5.1.2 Závislosti a pouºité knihovny
FAKE GAME vyuºívá pro správu projektu nástroj z dílny Apache - Maven. PDI krom¥
Subversion pro správu verzí nevyuºívá ºádný specializovaný nástroj. Ve²keré závislosti si
vývojá° stáhne z repozitá°e projektu umíst¥né v adresá°i libext/. Pentaho BI platform vyuºívá pro správu závislostí rovn¥º nástroj z dílny Apache, ov²em tentokrát je jím odleh£ené
Ivy. Nicmén¥ p°íslu²né repozitá°e jsou alespo¬ v p°ípad¥ Pentaho kompatibilní s Mavenem.
Vzhledem k tomu, ºe Pentaho BI platform obsahuje i komponentu pro provád¥ní PDI transformací do²el jsem k záv¥ru, ºe je moºné tyto závislosti p°ece jen z repozitá°· Pentaho
vydolovat.
Tento nápad jsem i zrealizoval a vyprodukoval seznam závislostí jak ve formátu pro
Maven, tak ve formátu Ivy. Bohuºel v pr·b¥hu práce do²lo ke zm¥n¥ verze PDI z verze 3
na verzi 4. Rozhodl jsem se vlastní kódy p°izp·sobit verzi 4, coby aktuáln¥j²ímu vydání. K
t¥mto kód·m v²ak v repozitá°ích je²t¥ nejsou k dispozici odpovídající knihovny. Bylo tedy
nakonec p°eci jen nutné nahrát p°íslu²né knihovny do repozitá°· projektu FAKE GAME.
5.1.3 Roz²í°ení FAKE GAME automatizovaného Data Mining Flow
Zbývá tedy upravit stávající DMBatchProfile znázorn¥ný na obrázku 4.2. V n¥m jsem roz²í°il
krok ImportFile tak, ºe pokud je p°i spu²t¥ní p°edána cesta k souboru s transformací a název
kroku, z n¥hoº chceme £íst data, pouºije se místo implicitního na£ítání dat ze souboru m·j
krok, který spustí PDI transformaci a p°edá na£tená data do FAKE GAME. Zjednodu²ený
diagram konkrétní realizace je na obrázku 5.3.
Denoval jsem novou operaci ImportPDI ekvivalentní ke stávající operaci ImportFile.
Její kongurace, tedy zejména cesta k souboru s transformací a název kroku z n¥hoº £teme
data p°ená²í instance t°ídy ImportPDIConfig. Ta je na po£átku b¥hu programu uloºena na
Blackboard, odkud je moºné ji kdykoliv získat, jak je v rámci FAKE GAME zvykem.
Abych dosáhl co moºná nejvy²²í znovupouºitelnosti kódu, navrhl jsem mechanismus na£ítání dat podle návrhového vzoru Template method [6] realizovaného t°ídou AbstractImport,
která obstarává logiku na stran¥ FAKE GAME - zejména úpravy po na£tení dat (jako nap°.
42
KAPITOLA 5. VYUšITÍ PDI API V RÁMCI FAKE GAME
Obrázek 5.3: Vyuºití návrhového vzoru Template method pro £tení dat z transformace
zji²t¥ní, o jaký data miningový problém se jedná apod.). Samotná logika na£tení dat je
soust°ed¥na v rámci konkrétních potomk· abstraktní t°ídy AbstractBaseLoader. V tomto
p°ípad¥ tedy LoadPDIPreprocessor zaji²´uje kompletní logiku volání PDI API popsanou
d°íve.
5.2
Testování FAKE GAME s vyuºitím PDI API
Pro otestování funk£nosti v²ech t°í projekt· jsem zvolil dva p°ístupy. Jak automatizované
testování v podob¥ unit test·, tak i testování s reálnými daty. Jako data pro testování jsem
vybral n¥kolik soubor·, které byly jiº d°íve vyuºívány bu¤ pro testování projektu FAKE
GAME, nebo p°ímo k °e²ení reálných problém·. Krom¥ - v data miningové oblasti obligátního - souboru pro klasikaci kosatc· jsem testoval s údaji o prodejních cenách aut, EEG
novorozenc· a spot°eb¥ vody mandarinkovníku. Podrobnosti o jednotlivých souborech dat
jsou uvedeny v tabulce 5.1. Datové soubory jsem vybíral tak, aby pokrývaly jak regresní, tak
klasika£ní problémy, je zde zastoupen p°ípad neúplného datového soubor (Cars) a datový
soubor obsahující v¥t²í mnoºství záznam· pro výkonnostní testování (EEG).
5.2.1 Unit testy
B¥hem testovací fáze jsem doplnil unit testy pro nov¥ doprogramované t°ídy v rámci projektu
FAKE GAME. Poda°ilo se mi dosáhnout 92% pokrytí t¥chto nov¥ p°idaných t°íd (m¥°eno
nástrojem EclEmma). Nepokryté £ásti kódu zahrnují p°edev²ím o²et°ení vnit°ních chyb PDI,
které není dost dob°e moºné explicitn¥ vyvolat.
43
5.2. TESTOVÁNÍ FAKE GAME S VYUšITÍM PDI API
Ozna£ení Instancí Vstupních atribut· Výstupních atribut· Typ problému
Iris
Cars
Mandarin
EEG
150
160
4139
42027
4
45
11
54
3
1
1
4
klasika£ní
regresní
regresní
klasika£ní
Tabulka 5.1: Seznam testovaných soubor· dat
5.2.2 Na£ítání dat z více zdroj·
P°i testování integrace dvou r·zných softwarových balík· je klí£ové vyty£it hranici, kdy je²t¥
testujeme nov¥ dodanou funk£nost a kdy uº testujeme p·vodní balíky, které by m¥ly být
otestované samostatn¥. Vzhledem k tomu, ºe hlavní zodpov¥dnost mnou dodaného °e²ení je
p°etransformovat data vy£tená pomocí PDI API a p°edat je do aplikace FAKE GAME k
dal²ímu zpracování, leºí hlavní úskalí práv¥ v r·zných typech dat.
V první fázi testování jsem tedy vytvo°il n¥kolik jednoduchých transformací, které v podstat¥ jen vy£tou data z datových soubor·. P°íklad takové opravdu jednoduché transformace
je na obrázku 5.4. Následn¥ jsem opakovan¥ spou²t¥l FAKE GAME v reºimu DMBatchReport
s r·znými vstupními parametry (zejména typy testování) a nastavoval postupn¥ tyto transformace jako zdroje dat. Sledoval jsem, zda produkované reporty odpovídají report·m vyprodukovaným p·vodním p°ístupem - tedy £tením dat p°ímo ze souboru. N¥které soubory nebylo moºné p·vodním p°ístupem zpracovat, protoºe vyºadovaly ur£ité p°edzpracování (které
umoº¬uje práv¥ vyuºití PDI), ale nebylo sloºité vyhodnotit správnost mnou produkovaných
report· i bez porovnání.
Obrázek 5.4: Ukázka vy£tení dat z csv souboru
Testování prokázalo, ºe FAKE GAME s vyuºitím PDI API je schopný v²echny tyto
soubory zpracovat. Transformace na obrázku 5.4 je sice velmi jednoduchá, na druhou stranu
v p°ípad¥ na£ítání dat pouze z jednoho zdroje není £asto t°eba ºádných komplikovaných
struktur.
V druhé fázi testování jsem p°ikro£il k na£ítání dat z r·zných datových zdroj·. Vytvo°il
jsem op¥t n¥kolik testovacích transformací, které by m¥ly co nejkomplexn¥ji pokrývat p°edpokládané vyuºití PDI. Cílem je zjistit, zda je FAKE GAME schopný tyto transformace
vykonat, vy£íst z nich data a zpracovat je. Testované zdroje dat zahrnují p°edev²ím databázové tabulky, textové soubory, CSV soubory, excelovské tabulky a XML soubory. Data
jsou následn¥ upravována a agregována s vyuºitím transforma£ních krok·. Tyto testovací
transformace jsou k dispozici na p°iloºeném CD v adresá°i etc/tests/pdi_trans.
44
KAPITOLA 5. VYUšITÍ PDI API V RÁMCI FAKE GAME
P°íklad takové transformace je uveden na obrázku 5.1. Zde dochází k na£ítání dat pro
klasikaci kosatc·. Pro pot°eby tohoto experimentu jsem na£etl p°íslu²ná data do databáze
a £ást uloºil do csv souboru. Dal²í £ást dat jsem rozd¥lil mezi excelovskou tabulku a textový
soubor tak, ºe data v textovém souboru obsahují pouze seznam rozm¥r· kosatc· a excelovská tabulka obsahuje t°ídy odpovídajících záznam·. Záznamy v obou t¥chto souborech jsou
ozna£eny identika£ními £ísly, aby bylo moºné je navzájem spárovat. Záznamy jsou tedy
na po£átku se°azeny, následn¥ spojeny operací JOIN, po mapování názv· sloupc· tak, aby
korespondovaly se záznamy z ostatních zdroj·, jsou data sjednocena. Pro testovací ú£ely p°idávám i na£ítání £ásti dat z XML souboru. Mapování do odpovídajícího výstupního formátu
je dosaºeno s pomocí kroku umoº¬ujícího vykonání krátkého programu v JavaScriptu.
Obrázek 5.5: Transformace pro £tení dat ze dvou r·zných databází
V transformaci uvedené na obrázku 5.5 jsou data na£tena ze dvou r·zných databází
a následn¥ propojena. Propojení op¥t probíhá na základ¥ identika£ního £ísla p°i°azeného
záznam·m v obou tabulkách. Pro zajímavost jsem doplnil do vstupních dat je²t¥ dva sloupce
s náhodnými hodnotami, jednou se jedná o náhodn¥ vygenerované £íslo, v druhém p°ípad¥
je toto £íslo vºdy umocn¥no na druhou.
Je pom¥rn¥ zajímavé sledovat, jak dopadl feature ranking, kdy se náhodné vstupní parametry umístily p°ekvapiv¥ vysoko. Výsledek vyst°iºený z výsledného reportu vyprodukovaného pomocí FAKE GAME uvádím na obrázku 5.6 (na obrázku jsou náhodn¥ generované
vstupy znázorn¥ny ºlutou a alovou barvou). Tento výsledek m·ºe být zp·soben men²ím
po£tem instancí a relativn¥ ²irokou ²kálou vstupních parametr·, kdy ºádná díl£í hodnota
jednotlivých vstup· opravdu pravd¥podobn¥ neovliv¬uje kone£ný výsledek p°íli² výrazn¥.
5.2. TESTOVÁNÍ FAKE GAME S VYUšITÍM PDI API
Obrázek 5.6: Transformace pro £tení dat ze dvou r·zných databází
45
46
KAPITOLA 5. VYUšITÍ PDI API V RÁMCI FAKE GAME
Kapitola 6
Plugin pro PDI
Obrázek 6.1: Ukázka rozhraní FAKE GAME pluginu pro PDI
6.1
Realizace
Zatímco roz²í°ení funkcí FAKE GAME jsem implementoval p°ímo v rámci projektu, pro PDI
plugin jsem vytvo°il samostatný projekt, který hostuji v rámci Google Project Hosting [3].
Zde je dostupný i Subversion repozitá°, odkud je moºné získat lokální kopii projektu. Plugin
funguje velmi podobn¥ jako jiº zmín¥ný Weka Scoring plugin. Je schopný na£íst serializovaný
objekt reprezentující model nebo klasikátor vyprodukovaný pomocí FAKE GAME. Klasikátory a modely jsou jiº kompletn¥ nastavené a nau£ené. Samotná £innost pluginu spo£ívá
v tom, ºe nad p°ivedenými daty provede výpo£et odpovídající nahranému modelu a výsledkem je £íselné ohodnocení kaºdé instance reprezentující bu¤ odhadnutou hodnotu nebo (v
p°ípad¥ klasikátoru) t°ídu, do které instance pat°í. U klasikátor· je moºné p°epnout na
zobrazení pravd¥podobností p°íslu²nosti k jednotlivým t°ídám (output probabilities ).
47
48
KAPITOLA 6. PLUGIN PRO PDI
6.1.1 Nastavení vývojového prost°edí
Samostatnou kapitolou p°i vývoji plugin· pro Pentaho nástroje je nastavení vývojového
prost°edí. Není úpln¥ triviální, proto se zde o této problematice krátce zmíním. Pentaho pro
tvorbu v podstat¥ v²ech projekt· vyuºívá vývojovou platformu Eclipse. V°ele doporu£uji ji v
p°ípad¥ práce na nich vyuºívat rovn¥º. Z repozitá°e je pak £asto moºné stáhnout kompletní
projekt i s nastavením (toto se týká zejména Pentaho BI platform).
Pluginy pro PDI jsou na£ítány dynamicky p°i spu²t¥ní aplikace z adresá°e
PDI_HOME/plugins/steps. P°i p°ímo£arém p°ístupu by tak vývoj pluginu znamenal neustále
opakování t¥chto £inností:
1. Uloºení zm¥n.
2. Kompilace zdrojových kód· a vytvo°ení JAR archivu.
3. Nakopírování JAR archiv· a kongura£ního souboru plugin.xml do adresá°e s pluginy.
4. Spu²t¥ní PDI.
A takto stále dokola p°i kaºdé zm¥n¥ kódu. Abychom mohli výsledný plugin rozumn¥
ladit je t°eba provést malý trik. Krom¥ projektu s pluginem vytvo°íme je²t¥ jeden projekt,
kam stáhneme z repozitá°e lokální kopii PDI. V projektu, kde je umíst¥no PDI vytvo°íme
v adresá°i plugins/steps sloºku pro ná² nový plugin a nakopírujeme sem p°íslu²ný soubor plugin.xml, kde jsou uvedeny cesty ke knihovnám, na nichº je ná² nový plugin závislý.
M·ºeme sem nakopírovat i tyto knihovny, ale nekopírujeme archiv se samotným pluginem!
V projektu s na²ím pluginem nastavíme závislost na projektu s PDI. Zbývá nastavit parametry spou²t¥ní v projektu s na²ím pluginem. Jednak je t°eba zm¥nit pracovní adresá° na ko°enový adresá° projektu s PDI a jako hlavní (Main) spustitelnou t°ídu nastavíme
org.pentaho.di.ui.spoon.Spoon. Díky této úprav¥ m·ºeme spou²t¥t PDI v rámci prost°edí
Eclipse i s pln¥ nakongurovaným vlastním pluginem.
6.1.2 Specický class loader
P°edchozí postup nám umoºní pohodln¥ vyuºívat v²ech ladících moºností vývojového prost°edí. Jeden typ chyb takto ale neodhalíme. Pokud b¥ºí PDI samostatn¥ vyuºívá pro pluginy
zvlá²tní class loader. P°i aplikaci vý²e uvedeného postupu nám na£tení v²ech pot°ebných t°íd
zajistí vývojové prost°edí. V p°ípad¥ FAKE GAME se tak projevily problémy aº p°i ostrém
nasazení.
N¥které t°ídy FAKE GAME vyuºívají pro dynamické nahrávání t°íd (nap°. na základ¥
informací zapsaných v kongura£ních souborech) systémový class loader, tedy volání:
Class c = ClassLoader.getSystemClassLoader().loadClass(className);
Závislosti pluginu tak nebyly dostupné (musí se k nim p°istupovat p°es class loader
vyhrazený pro pluginy).
Tato informace byla ve zdrojových kódech napevno zapsaná a nebylo moºné class loader
zm¥nit nap°. voláním p°íslu²ného setteru, jak je tomu zvykem v p°ípad¥ n¥kterých jiných
6.1. REALIZACE
49
projekt·. Musel jsem tedy p°istoupit k p°epsání takto implementovaných t°íd. Abych zachoval jejich p·vodní funkcionalitu zvolil jsem °e²ení, kdy pro dynamické na£ítání t°íd pouºívám
class loader, jenº nahrál volající t°ídu. Tedy:
Class c = getClass().getClassLoader().loadClass(className);
Takto je zachována v podstat¥ p·vodní funkcionalita, kdy se za b¥ºných okolností pouºívá
implicitn¥ systémový class loader a zárove¬ je FAKE GAME schopný fungovat i jako plugin.
V takovém p°ípad¥ vyuºívá class loader, který jej na£etl.
6.1.3 Struktura FAKE GAME pluginu pro PDI
Struktura pluginu odpovídá p°edepsané struktu°e popsané v kapitole 4.4.2. Jednotlivé názvy
základních t°íd respektují p°edepsané jmenné konvence:
• FakeGamePlugin Obsahuje samotnou výkonnou £ást programu, tedy volání logiky týkající se vyhodnocení jednotlivých instancí za pouºití p°íslu²ného modelu.
• FakeGamePluginData V tomto p°ípad¥ není t°eba ukládat n¥jaké mezivýsledky, takºe
neobsahuje ºádnou zvlá²tní logiku, pouze metody, které implementuje v podstat¥ kaºdý
plugin pro PDI.
• FakeGamePluginMeta Stará se o práci s kompletní kongurací pluginu, o její ukládání
a na£ítání, volá logiku deserializace model· a klasikátor·.
• FakeGamePluginDialog Zobrazuje a obsluhuje uºivatelské rozhraní v podob¥ kongura£ního dialogu.
V této souvislosti bych ale rád zmínil je²t¥ jeden aspekt návrhu architektury pluginu.
FAKE GAME rozli²uje dva typy model·:
• ConnectableModel pro regresní problémy a
• ConnectableClassifier pro klasika£ní problémy.
Od t¥chto t°íd d¥dí v²echny klasikátory a modely. Samotné tyto dv¥ t°ídy v²ak nemají
spole£ného p°edka ani spole£né rozhraní a není k nim tedy moºné p°istupovat jednotn¥.
Vzhledem k tomu, ºe by bylo pon¥kud ne²ikovné a nep°ehledné p°i jakékoliv práci s
nimi neustále rozli²ovat, o který typ se jedná, doplnil jsem jisté zjednodu²ení s vyuºitím
návrhového vzoru Facade [6]. PDI plugin totiº od obou typ· vyºaduje v podstat¥ stejné
operace:
• Na£íst objekt na základ¥ jeho serializované podoby.
• Vyhodnotit instanci reprezentovanou p°edanou °ádkou dat a vrátit výsledek v podob¥
jednoho nebo více sloupc· p°idaných do této °ádky.
• Dal²í drobné operace, jako vrácení po£tu a názv· vstup· apod.
50
KAPITOLA 6. PLUGIN PRO PDI
Výsledek je znázorn¥n na zjednodu²eném diagramu na obrázku 6.2. Je z n¥j patrné, ºe
plugin, reprezentovaný zde t°ídou FakeGamePluginMeta je kompletn¥ odstín¥n od vnit°ní
logiky FAKE GAME prost°ednictvím t°ídy ModelsFacade a nadále komunikuje pouze s ní.
ModelsFacade pak deleguje úkoly na p°íslu²né t°ídy FAKE GAME (v diagramu ozna£ené
mod°e). Nejenºe ModelsFacade skrývá rozdíly mezi klasikátory a modely, ale zárove¬ p·sobí
jako obálka na jejich libovolný po£et. V souboru m·ºe být uloºeno i více serializovaných
model·. V takovém p°ípad¥ zobrazí plugin výsledek vyhodnocení kaºdého z nich. I tuto
logiku zapouzd°uje ModelsFacade.
Obrázek 6.2: Aplikace návrhového vzoru Facade za ú£elem odstín¥ní logiky FAKE GAME
od zbytku PDI pluginu.
6.2
Testování pluginu pro PDI
6.2.1 Unit testy
Vytvá°ení unit test· pro PDI plugin bylo o n¥co sloºit¥j²í, neº v p°ípad¥ testování vyuºití
PDI API. P°ed vyvoláním konkrétních test· bylo £asto t°eba simulovat z velké £ásti nakongurované prost°edí PDI. To si samoz°ejm¥ vyºádalo rozsáhlej²í práci s vnit°ní strukturou
PDI, od které je jinak vývojá° b¥hem vytvá°ení plugin· do zna£né míry odstín¥n. I z t¥chto
d·vod· se poda°ilo dosáhnout pouze 75% pokrytí kódu pluginu, kdy zbytek se ukázalo jako
efektivn¥j²í otestovat jinou cestou. Do automatizovaných test· v této £ásti nezahrnuji t°ídy
starající se výhradn¥ o zobrazení grackého uºivatelského rozhraní, jejichº automatické testování je zpravidla komplikované a b¥ºen¥ bývá efektivn¥j²í testovat je jinými zp·soby.
6.2.2 Vytvo°ení testovacích transformací
V p°ípad¥ testování pluginu pro PDI není t°eba experimentovat s r·znými typy transformací, protoºe data do pluginu p°ichází ve stále stejné podob¥ dané vnit°ním rozhraním PDI
nezávisle na tom, odkud byla na£tena. Co m·ºe p·sobit problémy jsou r·zná data. Op¥t
jsem tedy vyuºil soubory dat vyuºívané jiº d°íve pro FAKE GAME, popsané v kapitole 5.2.
Sestavil jsem n¥kolik transformací, které jsou schopné vy£íst data z datových soubor·,
vyhodnotit je pomocí mého pluginu a uloºit výsledky do souboru. Pomocí uºivatelského
rozhraní FAKE GAME jsem vygeneroval n¥kolik model· a uloºil je v serializované podob¥.
6.2. TESTOVÁNÍ PLUGINU PRO PDI
51
Tyto modely jsem následn¥ nahrál prost°ednictvím pluginu, spou²t¥l sestavené transformace
a sledoval, zda výsledky odpovídají výsledk·m získaným s pomocí FAKE GAME.
Je t°eba podotknout, ºe v sou£asné dob¥ je FAKE GAME schopný vhodným zp·sobem
exportovat pouze jednoduché modely jako polynomiální, lineární, exponenciální apod. Do
budoucna je v²ak po£ítáno s moºností exportovat kompletní ²kálu pouºitelných model·,
kterými program disponuje, do formátu zpracovávaného pluginem pro PDI.
Krom¥ testování s daty jsem ov¥°oval manuáln¥ i funk£nost pluginu, kterou nebylo moºné
dob°e pokrýt unit testy. Tedy zejména funkce uºivatelského rozhraní a správné ukládání a
na£ítání nastavení pluginu jak do soubor· s denicemi transformací, tak do repozitá°· PDI.
Testované transformace jsou op¥t uloºené v adresá°i etc/tests/pdi_plug na p°iloºeném
CD. Krom¥ testovacích ú£el· mohou slouºit i jako výborný zdroj p°íklad· pouºití pluginu,
protoºe pokrývají v podstat¥ v²echna jeho moºná nasazení.
6.2.3 Porovnání s výsledky pluginu Weka scoring
Ve nále jako jakýsi "Proof of concept"jsem sestavil rovn¥º p°íklad jiº avizovaného nasazení ve spolupráci s pluginem Weka Scoring. Ve Wecce jsem vytvo°il neuronovou sí´ typu
Multilayer Perceptron a nau£il ji klasikovat na vzorovém souboru dat o kosatcích z UCI
databáze [23]. S pomocí FAKE GAME jsem vytvo°il klasikátor sloºený z polynomiálních
model·, dále klasikátor na bázi sít¥ GAME a kone£n¥ t°i polynomiální modely, které na
výstupu modelují vºdy jednu z klasikovaných t°íd. Jako trénovací mnoºinu pro nau£ení model· jsem ve v²ech p°ípadech pouºil polovinu záznam· z datového souboru. Záznamy jsem
vybral náhodn¥ tak, aby byly zastoupeny v²echny t°ídy rovnom¥rn¥.
V prost°edí PDI jsem vytvo°il p°íslu²nou transformaci s vyuºitím plugin· Weka Scoring
a FAKE GAME (viz. obrázek 6.3). Transformace na£te testovací data a p°id¥lí jim identika£ní £ísla, aby bylo moºné jednotlivé instance klasikované r·znými klasikátory lépe
slu£ovat. Data jsou rozdistribuována p°íslu²ným plugin·m. FAKE GAME plugin je schopný
v rámci jednoho kroku klasikovat pomocí více klasikátor·, pro názornost jsem v²ak pro
kaºdý klasikátor vytvo°il krok vlastní. Kaºdý plugin tedy p°id¥lí na základ¥ vstupních dat
kaºdé instanci odhadnutou výstupní t°ídu. Výsledky jsou slou£eny, sjednoceny a uloºeny do
souboru.
Vytvo°ení této transformace bylo pon¥kud svízelné. Jak jsem se jiº zmi¬oval v pr·b¥hu
mé práce do²lo k vydání nové verze PDI, která pom¥rn¥ zásadním zp·sobem m¥ní rozhraní
plugin·. Díky t¥mto zm¥nám nefungují v poslední verzi PDI v podstat¥ ºádné dosavadní pluginy a tedy ani Weka Scoring plugin. Abych mohl transformaci ve £tvrté verzi PDI spou²t¥t,
musel jsem mírn¥ p°epracovat i Weka Scoring plugin, coº bylo na²t¥stí moºné vzhledem k
dostupnosti jeho zdrojových kód·. Jedná se v²ak pouze o provizorní úpravy pro pot°eby této
práce. Kompletní upgrade pluginu nechávám rad¥ji jeho autorovi.
V kaºdém bod¥ transformace je moºné zobrazit výsledky dosavadních krok·. Úsp¥²nost
klasikace tak m·ºeme sledovat p°ímo v prost°edí PDI, nebo jej uloºit do libovolného výstupního formátu pro p°ípadné dal²í zpracování. Na obrázku 6.4 je ukázka zobrazení výsledk· v
prost°edí PDI. V prvním sloupci vidíme referen£ní hodnoty klasikovaných t°íd. Následují
výsledky klasikace pomocí wekovské neuronové sít¥ a dále výsledky klasikátor· FAKE
GAME (polynomiální a GAME). Poslední t°i sloupce ukazují výsledky model· modelujících
vºdy jednu z výstupních t°íd.
52
KAPITOLA 6. PLUGIN PRO PDI
Obrázek 6.3: Transformace porovnávající výsledky klasikátor· vytvo°ených ve Wecce a
výsledky klasikátor· vytvo°ených prost°ednictvím FAKE GAME
Klasikátor
Multilayer Perceptron
Polynomiální klasikátor
Sí´ GAME
Pouºitý software Po£et chyb Po£et chyb v %
Weka
FAKE GAME
FAKE GAME
2
2
3
2.7 %
2.7 %
4.0 %
Tabulka 6.1: Výsledky porovnání klasikátor· vytvo°ených pomocí Weky a FAKE GAME
Výsledky porovnání klasikátor· uvádím v tabulce 6.1. Zde je uveden pro kaºdý pouºitý
klasikátor po£et chybn¥ klasikovaných instancí. Vidíme, ºe nejh·°e dopadla v tomto p°ípad¥ sí´ GAME, stejnou úsp¥²nost pak m¥la vícevrstvá neuronová sí´ a klasikátor sloºený
z polynomiálních model·.
Inkriminovaná transformace je uloºena v adresá°i etc/tests/pdi_plug/iris na p°iloºeném CD.
V dal²ím experimentu jsem provedl podobnou proceduru, tentokráte pro regresní problém
- ur£ování spot°eby vody mandarinkovníku. Op¥t jsem datový soubor rozd¥lil náhodn¥ na
dv¥ £ásti - 2998 instancí jsem pouºil jako trénovací data, 1141 instancí potom jako data
testovací. Sestavil jsem o n¥co komplexn¥j²í transformaci (na obrázku 6.5), která op¥t na£te
trénovací data, rozdistribuuje je, následn¥ sjednotí výsledky a v tomto p°ípad¥ rovnou i
spo£ítá celkovou chybu jednotlivých model· metrikou RMS (Root Mean Square).
Jako modely vytvo°ené pomocí FAKE GAME jsem pouºil lineární regresní model a polynomiální model. V rámci Weky jsem vytvo°il lineární regresní model. Výsledek práce transformace je zobrazen na obrázku 6.6. Vidíme tedy, ºe výsledky lineárních model· vytvo°ených
pomocí Weky a FAKE GAME se p°íli² neli²í. Nejlep²ích výsledk· v²ak v tomto p°ípad¥ do-
6.2. TESTOVÁNÍ PLUGINU PRO PDI
Obrázek 6.4: Zobrazení dosavadních výsledk· transformace v PDI
sáhl model polynomiální vytvo°ený pomocí FAKE GAME.
53
54
KAPITOLA 6. PLUGIN PRO PDI
Obrázek 6.5: Transformace pro porovnání výsledk· model· vytvo°ených pomocí FAKE
GAME a Weky
Obrázek 6.6: Výsledek transformace pro porovnání výsledk· model· vytvo°ených pomocí
FAKE GAME a Weky
Kapitola 7
Plugin pro Pentaho BI platform
Obrázek 7.1: Ukázka zobrazeného FAKE GAME reportu v rámci Pentaho BI platform
7.1
Realizace
Podobn¥ jako v p°ípad¥ PDI pluginu jsem vytvo°il samostatný projekt hostovaný v rámci
Google Project Hosting [4]. Zde je op¥t moºné získat lokální kopii zdrojových kód· ze Subversion.
7.1.1 Struktura projektu
Pro vytvo°ení samotného projektu je velmi výhodné vyuºít p°edp°ipravený groovy skript,
který je moºné stáhnout ze stránek projektu Suboor [22]. Jeho pouºití je velmi jednoduché:
55
56
KAPITOLA 7. PLUGIN PRO PENTAHO BI PLATFORM
Adresá°
src/
test-src/
dist/
lib/
package-res/
solutions/
Obsah adresá°e
Zdrojové kódy.
Unit testy.
Adresá° s distribucí pluginu
JAR archivy, na kterých plugin závisí - v tomto p°ípad¥
game-core.jar a v²echny jeho závislosti.
Dal²í soubory, které plugin pot°ebuje ke své £innosti. V tomto p°ípad¥ nap°. kaskádové styly denující vzhled reportu.
Adresá° obsahuje vzorová °e²ení vyuºívající plugin. P°i volání
ant install jsou tato °e²ení nakopírována do repozitá°e BI serveru.
Tabulka 7.1: Adresá°ová struktura projektu tvo°ícího Pentaho BI plugin
groovy ~/bin/projcreator.groovy mujprojekt -o acme -p -d /cesta/k/bi-serveru
Tento skript vytvo°í kompletní adresá°ovou strukturu pro vývoj Pentaho BI pluginu a
nastaví p°íslu²né Ant skripty. P°íkazem ant pak projekt zkompilujeme a p°ipravíme k distribuci. P°íkazem ant install jej nasadíme na server. Seznam základních adresá°· projektu
a jejich obsahu je uveden v tabulce 7.1.
7.1.2 Nastavení vývojového prost°edí
Jak jsem jiº uvedl, pro vývoj Pentaho je velmi výhodné vyuºívat Eclipse. V p°ípad¥ Pentaho
BI platform je to tém¥° nutnost. Abychom mohli pluginy pro platformu ladit, musíme si
opat°it její zdrojové kódy. Za tímto ú£elem je nutné p°ipravit si následující nástroje: Java
Development Kit, aplika£ní server Tomcat, sestavovací nástroj Ant a vývojové prost°edí
Eclipse s pluginy XML Task, Subclipse a IvyIDE.
Pokud je máme úsp¥²n¥ nainstalované, m·ºeme se pustit do stahování zdrojových kód·
platformy. Jedná se o 22 projekt· z Pentaho repozitá°e, jejichº seznam je uvedený v dokumentaci [21]. Z repozitá°e by se nám m¥ly stáhnout kompletní projekty pro Eclipse i s
nastavením závislostí mezi sebou navzájem. Závislosti na knihovnách t°etích stran °e²í Ivy,
lépe °e£eno v rámci Eclipse plugin IvyIDE. P°i zapnuté volb¥ Build Automatically je tento
proces automatický. V mém p°ípad¥ ale do²lo k problém·m s n¥kterými závislostmi, které
bu¤ nebyly v repozitá°ích uloºeny v·bec, nebo nebyly zrovna dostupné. Tento problém je
asi nejjednodu²²í °e²it dohledáním p°íslu²ných knihoven na internetu a uloºením v lokální
cache p°ípadn¥ v lokálním repozitá°i Ivy.
Te¤ musíme p°ipravit Tomcat s nainstalovanou Pentaho BI platform. V projektu
bi-platform-build nastavíme v souboru dev_override.properties cestu k lokální instalaci Tomcatu a spustíme p°íslu²ný Ant skript p°íkazem:
ant -f dev_build.xml dev-rebuild
Skript zkompiluje v²echny staºené projekty, v rámci workspace vytvo°í kopii aplika£ního
serveru a provede instalaci celé aplikace. V rámci r·zných opera£ních systém· je adresá°ová
7.1. REALIZACE
57
struktura nainstalovaného Tomcatu r·zná. P°ed spu²t¥ním zmín¥ného skriptu je nutné dbát
na to, aby v nastaveném domovském adresá°i Tomcatu byly p°ítomny tyto sloºky: server/,
common/, logs/ a lib/. V mém p°ípad¥ (instalace pod linuxovou distribucí Ubuntu) bylo
t°eba vytvo°it symbolický link do adresá°e server/lib/.
V Eclipse je potom t°eba nakongurovat takto vytvo°ený aplika£ní server tak, aby bral
v úvahu v²echny staºené zdrojové kódy. Postup je popsaný v dokumentaci [12]. P°ed spu²t¥ním serveru je t°eba dbát na to, aby ºádná jiná aplikace nevyuºívala port 8080 a aby byla
spu²t¥na databáze a nakongurována pro Pentaho. Nejjednodu²²í zp·sob, jak toho docílit je
spustit databázi Hypersonic, která je p°ibalena do distribuce vytvo°ené pomocí zmín¥ného
Ant skriptu. V mém p°ípad¥ se v této fázi i p°esto objevily problémy s p°ipojením k databázi, protoºe b¥hem procesu nasazování aplikace na server skript nenahraje p°íslu²ný JDBC
ovlada£. Situaci je moºné °e²it p°idáním ovlada£e na Class Path serveru p°ímo v prost°edí
Eclipse.
V této fázi je po spu²t¥ní serveru pomocí Eclipse konzole dostupná Pentaho BI platform
na adrese http://localhost:8080/pentaho. Pokud p°idáme projekt s na²ím pluginem mezi
zdrojové kódy v nastavení aplika£ního serveru a nahrajeme jej na server, m·ºeme jej pohodln¥
ladit v prost°edí Eclipse.
7.1.3 FAKE GAME plugin pro PDI
K vytvo°ení pluginu pro BI platform jsem zvolil p°ístup prost°ednictvím Akcí - tedy odleh£ené verze Komponent - popsaný v kapitole 4.5.3. Samotná realizace na stran¥ Pentaho je pom¥rn¥ p°ímo£ará a spo£ívá v implementaci p°íslu²ného rozhraní - v mém p°ípad¥
IStreamingAction, které nazna£uje, ºe se jedná o akci schopnou vrátit n¥jaká rozsáhlej²í
data v podob¥ streamu. V mém p°ípad¥ Akce vrací kompletní HTML report. Ten je pak
moºné zobrazit uºivateli. Akce vlastn¥ vrací dva streamy. Jeden p°edstavuje kompletní report ve formátu HTML (zobrazitelný uºivateli) a druhý stream obsahuje tento report zabalený v ZIP archivu tak, aby jej bylo moºné p°edat dal²ím komponentám (nap°. komponent¥
schopné rozesílat e-maily).
Hlub²ím prozkoumáním ostatních komponent jsem zjistil, ºe v podstat¥ v²echny sou£ásti Pentaho schopné £íst a p°edávat dál strukturovaná data je p°edávají ve form¥ typu
result-set (viz tabulka 4.2). Akce produkující FAKE GAME report tedy na vstupu p°ijímá tento datový typ a dále jej p°evádí na formát vhodný pro FAKE GAME. Dal²í vstupy
jsou kongura£ní. Chování Akce je moºné ovlivnit její kongurací v rámci .action souboru
následujícím zp·sobem:
<action-definition>
<component-name>FakeGameAction</component-name>
<action-type>FAKE GAME Action</action-type>
<action-inputs>
<data type="result-set"/>
</action-inputs>
<action-resources>
<configZip type="resource"/>
</action-resources>
58
KAPITOLA 7. PLUGIN PRO PENTAHO BI PLATFORM
<action-outputs>
<zippedReport type="content"/>
<response type="content"/>
</action-outputs>
<component-definition>
<experimentSeries><![CDATA[false]]></experimentSeries>
<trainTestStrategy><![CDATA[whole-set]]></trainTestStrategy>
</component-definition>
<action-name>Test FAKE GAME Action</action-name>
<logging-level>DEBUG</logging-level>
</action-definition>
Nep°ekvapí nás, ºe na vstup komponenty tedy p°ivedeme data. Její chování m·ºeme
ovlivnit volbami experimentSeries a trainTestStrategy. Ty odpovídají nastavení, kterým
lze chování FAKE GAME ovlivnit p°i spou²t¥ní z p°íkazové °ádky a indikují, zda se mají
experimenty opakovat (volby "true"nebo "false") a ur£ují testovací strategii (volby: "crossvalidation", nebo "train-test", nebo "whole-set"). Tyto volby mohou být zadané napevno p°i
volání komponenty, nebo mohou být p°ivedeny na vstup z jiných zdroj· (nap°. parametry
p°edané v url).
Akce vyºaduje na vstupu rovn¥º ZIP archiv s kongurací samotných model·, které se
mají v rámci reportu vyhodnotit. FAKE GAME pouºívá za tímto ú£elem adresá°, v n¥mº
jsou uloºeny soubory s kongurací konkrétních model·. To se p°íli² neslu£uje s lozoí ostatních komponent Pentaho, které obvykle p°ijímají takováto nastavení v podob¥ streamu jako
kongura£ní soubory. Tomu odpovídá i celý framework pro provád¥ní Sekvencí akcí a p°edávání vstup· Akcím. Abych tuto disproporci odstranil, p°istoupil jsem práv¥ k na£ítání
zabaleného kongura£ního adresá°e. Akce potom archiv vnit°n¥ zpracuje a do FAKE GAME
p°edává uº cestu k rozbalenému adresá°i, jak je pro n¥j typické.
Nastavení komponenty je samoz°ejm¥ moºné provád¥t i pohodln¥ji v generickém prost°edí
Design Studia (kapitola 4.1.5.2).
7.1.4 Roz²í°ení FAKE GAME automatizovaného Data Mining Flow
Pro p°ípad na£ítání dat v rámci BI platform a generování report· zobrazitelných v jejím
prost°edí bylo t°eba FAKE GAME poupravit o n¥co více neº v p°ípad¥ práce s PDI API. Za
tímto ú£elem jsem v rámci pluginu vytvo°il nový prol DMPentahoBIProfile vycházející ze
stávajícího DMBatchProfile. Li²í se ve zp·sobu importu dat, kdy místo t°ídy ImportFile
potaºmo ImportPDI nasazuje novou t°ídu ImportPentahoBI, která je schopna p°eloºit data
ve formátu IPentahoResultSet. S výhodou je vyuºito jiº existujícího nasazení návrhového
vzoru Template method popsaného v kapitole 5.1.3 tak, ºe ImportPentahoBI pouze dopl¬uje
zpracování nového formátu dat v podob¥ t°ídy LoadResultSetPreprocessor, zbytek úprav
v rámci FAKE GAME obstarává jiº hotová t°ída AbstractImport. Situace je znázorn¥na na
obrázku 7.2. Jedná se o dopln¥ní jiº hotové struktury z obrázku 5.3. T°ídy p°idané v rámci
pluginu pro BI platform jsou vyzna£eny oranºov¥.
Krom¥ jiných vstup· bylo pot°eba upravit i výstup prolu, tedy generovaný report.
Formát HTML sice vyhovuje pot°ebám BI platform velmi dob°e, ov²em problém je v generování cest k obrázk·m. K t¥m se v rámci platformy p°istupuje p°es k tomu ur£ený servlet
7.2. TESTOVÁNÍ PLUGINU PRO PENTAHO BI PLATFORM
59
Obrázek 7.2: Dopln¥ní dal²ího zp·sobu na£ítání dat do jiº hotové architektury FAKE GAME
getImage (viz. tabulka 4.1). Musel jsem tedy doplnit nový "vykreslova£"report·, coº díky
exibilnímu systému jejich generování v rámci FAKE GAME (popsanému v kapitole 4.2.1)
nep°edstavovalo velký problém. Realizace je znázorn¥na na obrázku 7.3. Oranºovou barvou
jsou vyzna£eny nov¥ dodané t°ídy, které si vyºádal plugin pro Pentaho BI platform. Jak je
vid¥t, z valné £ásti bylo moºné vyuºít jiº existující t°ídy.
7.2
Testování pluginu pro Pentaho BI platform
7.2.1 Unit testy
P°i automatickém testování pluginu pro BI platform jsem zvolil pon¥kud odli²ný p°ístup neº
v p°edchozích dvou p°ípadech. Zde je totiº moºné s výhodou vyuºít za tímto ú£elem p°edprogramované mikroplatformy, jejímº prost°ednictvím je moºné v rámci unit test· jednotlivé
pluginy spou²t¥t. Vytvo°il jsem n¥kolik jednoduchých sekvencí akcí skládajících se z p°edání
testovacích vstup· a volání mnou naprogramovaného pluginu. Mikroplatforma sekvenci vykoná a vrátí její výstup. Ten je pak moºné vyhodnotit. V tomto p°ípad¥ se tedy jedná z
v¥t²í £ásti o regresní testování. Bez tohoto p°ístupu by bylo automatické testování velmi
komplikované z podobných d·vod· jako testování pluginu pro PDI - tedy nutnost dostat
p°ed v¥t²inou test· prost°edí BI platform do konzistentního stavu. Testovací sekvence jsem
navrhl tak, aby obsahovaly data jak k °e²ení klasika£ních problém·, tak k °e²ení regresních
s vyuºitím r·zných metod vyhodnocování výsledných model·, dosáhl jsem tak 86% pokrytí.
Automatizované testy jsou dostupné v adresá°i projektu (src/FGPentahoBIPLugin) na
p°iloºeném CD.
60
KAPITOLA 7. PLUGIN PRO PENTAHO BI PLATFORM
Obrázek 7.3: Zm¥na zp·sobu generování obrázk· p°i vykreslení FAKE GAME reportu
7.2.2 Vytvo°ení testovacích sekvencí
Krom¥ automatizovaných test· jsem op¥t sestavil i n¥kolik scéná°· pro ru£ní testování v
podob¥ sekvencí akcí. První p°i²lo na °adu testování s r·znými daty. S výhodou jsem vyuºil
jiº vytvo°ených PDI transformací popsaných v kapitole 5.2.2. Ty jsem za£lenil do sekvencí
akcí s pomocí komponenty Pentaho Data Integration a takto na£tená data (jejich p°ehled
je uveden v tabulce 5.1) p°edal mé komponent¥ Fake Game Action. Na obrázku 7.4 je ukázka
integrace pluginu v sekvenci akcí v prost°edí Design Studia, v tomto p°ípad¥ se jedná o
na£tení dat o prodejních cenách aut prost°ednictvím PDI.
Vzhledem k tomu, ºe komponenta poskytuje na výstupu report ve formátu HTML nebo
zazipovaný, je moºné jej zobrazit p°ímo uºivateli, nebo nechat odeslat e-mailem. Cílem tedy
bylo ov¥°it odolnost komponenty proti r·zným typ·m vstupních dat a schopnost zpracovat i
jejich v¥t²í mnoºství. Komponenta je schopná zpracovat v²echny testované zdroje dat, zpracování se m·ºe u v¥t²ích datových soubor· protáhnout, zejména kv·li vnit°ním výpo£t·m
FAKE GAME. Doba provád¥ní je závislá krom¥ mnoºství dat i na po£tu testovaných model· a na testovací strategii, kdy nejdéle zpravidla trvá výpo£et se strategií cross validation
implicitn¥ nastavenou na 10 opakování.
Krom¥ testování s r·znými daty jsem v n¥kterých sekvencích akcí testoval i s r·znými
konguracemi. Pentaho BI platform umoº¬uje vyºádat si od uºivatele zadání pot°ebných
vstup·, jak je vid¥t na obrázku 7.5. Sestavil jsem t°i typy kongurací. V rámci reportu je
tedy moºné zobrazit:
• Vizualizaci dat
• Feature ranking
• Výsledky testování jednotlivých model· - v tomto p°ípad¥ je dále moºné zvolit typ
testování
7.2. TESTOVÁNÍ PLUGINU PRO PENTAHO BI PLATFORM
61
Obrázek 7.4: Za£len¥ní pluginu do sekvence akcí v prost°edí Design Studio
Obrázek 7.5: Výb¥r typu reportu
Pro ilustraci uvádím na obrázku 7.6 výsek vyprodukovaného FAKE GAME reportu zobrazující vizualizaci dat v podob¥ histogram· pro jednotlivé vstupy v rámci °e²ení problému
spot°eby vody mandarinkovníku.
V dal²í fázi jsem testoval správnou integraci v platform¥ tak, ºe jsem zkombinoval mou
komponentu s ostatními v rámci sekvencí akcí a sledoval, zda jsou schopné mezi sebou komunikovat. D·raz jsem kladl krom¥ zpracování PDI transformací na na£ítání dat z databáze
(na obrázku 7.7) a propojení s komponentou odesílající e-maily. Dal²í ukázky nasazení FAKE
GAME pluginu pro Pentaho BI platform sesbírané b¥hem testování uvádím v obrazové p°íloze E.
V²echny zmín¥né sekvence akcí jsou dostupné na p°iloºeném CD (v rámci Pentaho BI
serveru je to sloºka pentaho-solutions/bi-developers/FakeGame). V¥t²inu by m¥lo být
moºné spou²t¥t nezávisle na umíst¥ní, n¥které v²ak z pochopitelných d·vod· vyºadují p°izp·sobení podmínkám na lokálním stroji (nap°. nastavení p°ipojení k databázi, SQL skripty
pro vytvo°ení p°íslu²ných tabulek jsou v takovém p°ípad¥ rovn¥º uloºeny na p°iloºeném CD).
62
KAPITOLA 7. PLUGIN PRO PENTAHO BI PLATFORM
Obrázek 7.6: Vizualizace datového souboru - ukázka histogram· z FAKE GAME reportu v
rámci Pentaho BI platform
7.2. TESTOVÁNÍ PLUGINU PRO PENTAHO BI PLATFORM
63
Obrázek 7.7: Propojení FAKE GAME s komponentou starající se o £tení dat z rela£ní databáze.
64
KAPITOLA 7. PLUGIN PRO PENTAHO BI PLATFORM
Kapitola 8
Záv¥r
8.1
Zhodnocení dosaºených cíl·
V rámci této práce jsem navrhl a implementoval t°i °e²ení integrace dvou open-source nástroj·. Zejména FAKE GAME takto získal ²irokou ²kálu dal²ích moºností práce s daty a v
rámci platformy i n¥kolik dal²ích kanál· distribuce výsledných report·. Uve¤me si základní
p°ehled nových funkcí podle implementovaných °e²ení.
FAKE GAME s vyuºitím PDI API m·ºe nov¥:
• Na£ítat data z p·sobivého mnoºství zdroj· zahrnujícího valnou v¥t²inu pouºívaných
rela£ních databází, XML soubory, textové (nejenom CSV) soubory, excelovské tabulky,
webové sluºby, OLAP databáze a mnoho dal²ích v£etn¥ napojení na proprietární software jako nap°. SAP.
• Datové zdroje libovoln¥ kombinovat, zejména slu£ovat a provád¥t r·zné druhy JOIN
operací a to i mezi r·znými typy zdroj·. Není tedy problém nap°. na£ítat £ást dat ze
soubor· a £ást z databází.
• Roz²í°it své schopnosti p°edzpracování dat. V rámci transformací je moºné data redukovat, £istit, provád¥t konverze a mapovat výstupní hodnoty. S pomocí JavaScriptu
m·ºe uºivatel velmi exibiln¥ dopl¬ovat vlastní funkce p°ed tím, neº jsou data p°edána
ke zpracování pomocí samotného FAKE GAME.
FAKE GAME plugin pro PDI:
• Roz²i°uje ²kálu wekovských model·, které je moºné v rámci PDI vyuºít, o modely
specické pro FAKE GAME.
• Vzhledem k tomu, ºe je s jeho pomocí moºné velmi snadno porovnávat výsledky model·
vyprodukovaných pomocí FAKE GAME a výsledky model· z Weky, m·ºe slouºit k
efektivnímu výb¥ru nejlep²ího °e²ení.
FAKE GAME plugin pro Pentaho BI platform zprost°edkovává b¥h FAKE GAME
v rámci platformy, £ímº mu dává moºnosti v²ech jejích klasických komponent, tedy:
65
66
KAPITOLA 8. ZÁV…R
• Moºnost °adit FAKE GAME do sekvencí akcí a tak vyuºívat schopností ostatních
komponent jako jsou r·zné zdroje dat (v£etn¥ PDI transformací), moºnost odesílat výsledné reporty e-mailem, nebo je tisknout, sestavovat jednoduché work ows zahrnující
generování report·.
• Moºnost plánovat automatická spou²t¥ní produkce report·.
• Moºnost denovat jednoduché uºivatelské rozhraní pro zadání základních kongura£ních parametr·.
• Kompletní správu p°ístupových práv k jednotlivým report·m, ²iroké moºnosti sdílení
report· v rámci platformy.
Krom¥ napln¥ní zmín¥ných cíl· otevírá integrace FAKE GAME v rámci populární Pentaho BI platformy dal²í moºnosti propagace tohoto nástroje mezi komunitou uºivatel· opensource BI.
V samotné práci jsem se pokou²el vypíchnout aspekty vývoje pro Pentaho, které nejsou
p°íli² dob°e (nebo v·bec) popsány v dokumentaci projektu. M¥la by tak poslouºit mimo
jiné i jako základ pro práci dal²ích vývojá°·, kte°í by m¥li o n¥který nástroj z této rodiny
zájem. Po stru£ném úvodu do problematiky BI práce obsahuje ucelený p°ehled nástroj· z
rodiny Pentaho, které jsou v¥t²inou v projektové dokumentaci popisovány samostatn¥ bez
nazna£ení ²ir²ích souvislostí.
8.2
Problémy integrace open-source nástroj·
Integrování open-source °e²ení skýtá r·zná úskalí z nichº nejpal£iv¥j²ím je ur£itá ºivelnost jejich vývoje. B¥hem práce jsem n¥kolikrát musel £elit problém·m zp·sobeným zm¥nou vnit°ní
struktury projekt·, kdy nov¥ implementované funkce nejsou zp¥tn¥ kompatibilní s p·vodn¥
vyuºívanými. Nejproblemati£t¥j²í byla práce s PDI, které b¥hem psaní této práce prod¥lalo
p°erod od verze 3 k verzi 4, tedy zm¥na majoritní verze. Ta s sebou nesla zm¥ny základní
lozoe projektu, které se projevily ve v²ech oblastech integrace - v mém p°ípad¥ i b¥hem
tvorby pluginu i p°i vyuºití PDI API. Na základ¥ takto nabytých zku²eností bych doporu£oval, pokud je to jen trochu moºné, zakotvit na vybrané stabilní verzi a té se drºet. ƒasto to
ale moºné není, u open-source projekt· p°iná²ejí mnohdy nové verze opravu kritických chyb
a je velmi ºádoucí drºet krok s jejich vývojem.
V takovém p°ípad¥ se mi b¥hem práce osv¥d£ilo maximáln¥ odd¥lit dv¥ integrovaná °e²ení
s vyuºitím nap°. návrhového vzoru Facade. Jde v podstat¥ o jistou formu loose coupling, kdy
nap°. plugin nedovoluje integrovaným projekt·m komunikovat p°ímo.
Pokud se poda°í provést takovýto £istý °ez a zapouzd°it p°íslu²nou funkcionalitu, je
zohledn¥ní p°ípadných zm¥n v jednom projektu snaz²í a minimalizujeme riziko zanesení
chyb i do druhého integrovaného °e²ení.
8.3
Dal²í práce
Zejména v p°ípad¥ plugin· a´ uº pro PDI nebo Pentaho BI platform je jist¥ prostor pro dopln¥ní dal²ích funkcí. Pokud FAKE GAME bude v budoucnosti podporovat moºnost tvorby
8.3. DAL’Í PRÁCE
67
knowledge ows tak, jak je známe nap°. z Weky, otevírá se moºnost vytvo°ení dal²ího pluginu
pro PDI, který by tyto knowledge ows dokázal zpracovat v prost°edí PDI, podobn¥ jako je
tomu u pluginu Weka KnowledgeFlow.
Hlavní p°íleºitost ale vidím p°ímo v BI platform¥ a v t¥sn¥j²í integraci FAKE GAME.
Stávající °e²ení je moºné roz²í°it tak, aby fungovalo jako webová sluºba v kontextu platformy.
Takovou úpravou se otevírají ²iroké moºnosti nasazení FAKE GAME nikoliv jako softwarového balíku, který je nutné instalovat a udrºovat, ale jako p°edp°ipravené data miningové
sluºby. Nejenom samotní uºivatelé, ale i aplikace by pak mohly p°istupovat p°es jednotné
rozhraní a vyuºívat schopností FAKE GAME daleko jednodu²²ím a transparentn¥j²ím zp·sobem neº doposud.
V poskytování softwaru jako sluºby osobn¥ vidím dal²í vývojový stupe¬ sou£asných aplikací. Tento p°ístup °e²í dne²ní obvyklé problémy s distribucí aplikací, s jejich p°ípadným
zpoplatn¥ním, správou aktualizací apod. Snadná pouºitelnost takových °e²ení vede následn¥
k daleko ²ir²ím moºnostem nasazení.
68
KAPITOLA 8. ZÁV…R
Literatura
[1] J. Bleuel. Writing your own Pentaho Data Integration Plug-In.
http://wiki.pentaho.com/display/EAI/
Writing+your+own+Pentaho+Data+Integration+Plug-In, stav ze 5. 4. 2010.
[2] W. H. Inmon. What is a data warehouse? Prism Tech Topic, 1(1), 1995.
[3] I. La²ek. FakeGame plugin for Pentaho Data Integration.
http://code.google.com/p/fakegame-pdi-plugin/, stav z 10. 4. 2010.
[4] I. La²ek. Plugin for Pentaho BI enabling production of FAKE GAME reports.
http://code.google.com/p/fakegame-pentaho-bi-plugin/, stav z 10. 4. 2010.
[5] L. Niu, J. Lu, and G. Zhang. Cognition-Driven Decision Support for Business Intelligence, chapter Business Intelligence, pages 1929. Springer Berlin / Heidelberg, 2009,
2009.
[6] R. Pecinovský. Návrhové vzory, volume 1. Computer Press, 1st edition, 2007.
[7] S. Rizzi. Encyclopedia of Database Systems, chapter Business Intelligence, pages 287
288. Springer US, 2009.
[8] W. van der Aalst, A. Weijter, and L. Maruster. Workow mining: Discovering process models from event logs. IEEE Transactions on Knowledge and Data Engineering,
16:2004, 2003.
[9] Internal BI Component API - BI Platform - Pentaho Wiki.
http://wiki.pentaho.com/display/ServerDoc2x/Internal+API, stav ze 8. 4. 2010.
[10] The Pentaho BI Platform 3.0.
http://wiki.pentaho.com/display/ServerDoc2x/
BI+Server+2.x-3.x+Community+Documentation, stav ze 26. 4. 2010.
[11] Business Intelligence - What is Business Intelligence?
http://www.cmis.csiro.au/bi/what-is-BI.htm, stav ze 4. 3. 2010.
[12] Debugging with Tomcat in Eclipse in 2.0.
http://wiki.pentaho.com/display/ServerDoc2x/
05.+Debugging+with+Tomcat+in+Eclipse+IDE+in+2.0+using+Sysdeo+
Eclipse+Tomcat+Launcher, stav z 10. 4. 2010.
69
70
LITERATURA
[13] Design Studio - BI Platform - Pentaho Wiki.
http://wiki.pentaho.com/display/ServerDoc2x/Design+Studio, stav z 5. 4. 2010.
[14] FAKE GAME Automated Data Mining Flow.
http://fakegame.sourceforge.net/doku.php?id=developer_fakeflow,
4. 4. 2010.
stav
ze
[15] Gartner Predicts that Open-Source Business Intelligence Tools Production Deployments
Will Grow Five-Fold through 2012.
http://www.gartner.com/it/page.jsp?id=1246990, stav ze 2. 3. 2010.
[16] Open-Source Business Intelligence Tools Production Deployments Will Grow Five-Fold
through 2012.
http://www.gartner.com/DisplayDocument?id=1210513, stav ze 2. 3. 2010.
[17] Pentaho Commercial Open Source Business Intelligence - mondrian Architecture.
http://mondrian.pentaho.org/documentation/architecture.php, stav ze 3. 4. 2010.
[18] Internal BI Component API - BI Platform - Pentaho Wiki.
http://wiki.pentaho.com/display/EAI/
Pentaho+Data+Integration+-+Java+API+Examples, stav z 10. 4. 2010.
[19] Latest Pentaho Data Integration (aka Kettle) Documentation.
http://wiki.pentaho.com/display/EAI/
Latest+Pentaho+Data+Integration+(aka+Kettle)+Documentation,
26. 4. 2010.
stav
z
[20] Conguring the Platform for Other Databases.
http://wiki.pentaho.com/display/ServerDoc2x/
Configuring+the+Platform+for+Other+Databases, stav ze 30. 3. 2010.
[21] Exploring the Pentaho Repository in 2.0.
http://wiki.pentaho.com/display/ServerDoc2x/
02.+Exploring+the+Pentaho+Repository+in+2.0, stav z 10. 4. 2010.
[22] Suboor - Template Ant scripts to help you get started building complex Java projects
quickly.
http://code.google.com/p/subfloor/
wiki/HowToCreateANewProject, stav z 10. 4. 2010.
[23] UC Irvine Machine Learning Repository.
http://archive.ics.uci.edu/ml/index.html, stav z 15. 4. 2010.
P°íloha A
Seznam pouºitých zkratek
ARFF
BI
Attribute-Relation File Format
Business Intelligence
CRM
Customer relationship management
DSS
Decision support system
ERP
Enterprise Resource Planning
ETL
Extract, Transform, and Load
GWT
Google Web Toolkit
HTML
JAR
Java ARchive
JDBC
JDO
Java Database Connectivity
Java Data Objects
JNDI
JSP
HyperText Markup Language
Java Naming and Directory Interface
Java Server Pages
MDX
Multi-dimensional eXpressions
MQL
Metadata Query Language
OLAP
Online Analytical Processing
OLTP
Online Transaction Processing
POJO
Plain Old Java Object
PDF
Portable Document Format
PDI
Pentaho Data integration
71
72
PR
PÍLOHA A. SEZNAM POUšITÝCH ZKRATEK
Public Relation
RMS
Root Mean Square
RPC
Remote Procedure Call
RSS
Really Simple Syndication
SQL
Structured Query Language
XML
eXtensible Markup Language
XUL
XML User interface Language
P°íloha B
Instala£ní a uºivatelská p°íru£ka PDI v rámci FAKE GAME
B.1
P°edpoklady
• Nainstalovaný Java Runtime Environment verze 6
B.2
Instalace
P°iloºené CD obsahuje v adresá°i fakegame verzi FAKE GAME zkompilovanou pro pouºití z
p°íkazové °ádky. Zárove¬ obsahuje v adresá°i pentaho/pdi-ce PDI 4.0, ve kterém je moºné
jednodu²e vytvá°et transformace z nichº je FAKE GAME schopen £íst data. Pouºití je velmi
jednoduché. P°íslu²né adresá°e sta£í nakopírovat na lokální disk.
B.3
Pouºití
Pomocí PDI vytvo°íme v podstat¥ libovolnou transformaci, která vy£te z n¥jakého zdroje
data a upraví je do formátu vhodného pro FAKE GAME. To znamená, ºe výsledný krok by
m¥l obsahovat pouze £íselné vstupy a názvy sloupc· ozna£ující výstupní atributy musí být
ozna£eny vyk°i£níkem na za£átku (nap°. !price). V p°ípad¥ klasika£ních problém· je t°eba
zakódovat výstupní t°ídy kódem 1 z N a v²echny p°íslu²né sloupce musí být op¥t ozna£eny
vyk°i£níkem na za£átku.
V transformaci m·ºeme zvolit libovolný krok, u kterého data na výstupu spl¬ují vý²e
popsané poºadavky (nemusí být nutn¥ poslední). P°i volání FAKE GAME potom tento krok
identikujeme podle jeho názvu. Transformaci uloºíme do souboru.
Spu²t¥ní FAKE GAME tak, aby pouºil jako zdroj vytvo°enou transformaci je velmi
jednoduché a spo£ívá v p°edání cesty k souboru s transformací (parametr -p) a názvu kroku
z jehoº výstupu chceme data £erpat (parametr -s). Krom¥ toho je moºné pomocí dal²ích
volitelných parametr· p°edat obvyklé volby FAKE GAME jako zp·sob testování model·.
Povinným parametrem z·stává cesta k adresá°i s konguracemi model·. Volání z p°íkazové
°ádky m·ºe tedy vypadat nap°. takto:
73
74PÍLOHA B.
INSTALAƒNÍ A UšIVATELSKÁ PÍRUƒKA - PDI V RÁMCI FAKE GAME
java -jar game-batch.jar -p "/path/to/transformation/file.ktr" -s "Output"
cfg/fake/quick_linear
V tomto p°íkladu spustíme transformaci uloºenou v souboru
/path/to/transformation/file.ktr a data vy£teme z kroku nazvaného Output. Výsledný
report je uloºen do adresá°e se zdrojovou transformací.
V rámci p°iloºeného CD obsahuje adresá° etc/tests/pdi_trans celou ²kálu vzorových
transformací. Pro správnou funkci n¥kterých z nich je t°eba nastavit databázové p°ipojení
odpovídající lokální konguraci a naimportovat p°íslu²né databázové tabulky (sql exporty
jsou rovn¥º uloºené v tomto adresá°i).
P°íloha C
Instala£ní a uºivatelská p°íru£ka plugin pro PDI
C.1
P°edpoklady
• Nainstalovaný Java Runtime Environment verze 6
C.2
Instalace
Na p°iloºeném CD je k dispozici kompletní instalace PDI 4.0 1 s jiº integrovanými pluginy
pro FAKE GAME a Weku v adresá°i pentaho/pdi-ce. Sta£í nakopírovat tuto instalaci do
libovolného adresá°e na lokálním disku a spustit skript spoon.sh (p°ípadn¥ spoon.bat pro
Windows). Po startu m·ºeme vytvo°it repozitá° PDI (v databázi, nebo jako soubor na disku).
Tato operace v²ak není nutná a nabídku je moºné bez obav zav°ít.
C.3
Pouºití pluginu
Co se pouºívání PDI tý£e, doporu£uji projít dokumentaci projektu [19]. Samotný FakeGame
plugin je umíst¥n ve skupin¥ krok· Transform. Jeho ovládání je velice jednoduché. V ovládacím dialogu (obrázek C.1) m·ºeme zvolit soubor s uloºeným serializovaným modelem
vyprodukovaným pomocí FAKE GAME. Pokud vybereme soubor s klasikátory je moºné
volbou Show output probabilities ovlivnit zobrazení výsledku klasikace. Na modely nemá
tato volba vliv. Po nahrání modelu si m·ºeme prohlédnout jeho serializovanou podobu v
záloºce Serialized model/classier (pro kontrolu).
Na vstupy pluginu je t°eba p°ivést data ve stejn¥ pojmenovaných sloupcích jako byly
sloupce dat p°i u£ení pluginu (na po°adí nezáleºí). P°ípadné p°ejmenování sloupc· je asi
nejjednodu²²í realizovat pomocí kroku Select Values ze skupiny Transform. Toto mapování
1
Pozor, verze PDI p°iloºená na CD je vývojová verze, protoºe stabilní vydání PDI 4.0 nebylo v dob¥ psaní
této práce je²t¥ k dispozici. V této verzi nejsou podporovány n¥které star²í pluginy jako nap°. práv¥ plugin
pro Weku. Ten jsem upravil alespo¬ tak, aby v hotových transformacích dokázal zpracovat p°íslu²ná data není v²ak moºné m¥nit jeho nastavení.
75
76
PÍLOHA C. INSTALAƒNÍ A UšIVATELSKÁ PÍRUƒKA - PLUGIN PRO PDI
Obrázek C.1: Ukázka uºivatelského rozhraní FAKE GAME pluginu pro PDI
je moºné zkontrolovat v záloºce Fields mapping. V²echny sloupce musí mít sv·j namapovaný
ekvivalent. V opa£ném p°ípad¥ transformace selºe.
Na p°iloºeném CD v adresá°i etc/tests/pdi_plug jsou umíst¥ny vzorové transformace
vyuºívající FakeGame plugin. Ty jsou asi nejlep²ím zdrojem, jak se seznámit s tímto pluginem.
P°íloha D
Instala£ní a uºivatelská p°íru£ka plugin pro Pentaho BI
D.1
P°edpoklady
• Nainstalovaný Java Development Kit (JDK) verze 6
• Nastavená systémová prom¥nná JAVA_HOME na cestu k adresá°i s JDK
D.2
Instalace
Na p°iloºeném CD v adresá°i pentaho/bi-platform je op¥t k dispozici p°edp°ipravená
instalace BI pltaform 1 i s aplika£ním serverem a integrovaným FakeGame pluginem. Instalace je tak velmi jednoduchá a spo£ívá v nakopírování adresá°e biserver-ce na lokální
disk. Server i s p°íslu²nou databází spustíme pomocí skriptu start-pentaho.sh (p°ípadn¥
start-pentaho.bat pod Windows). Tomcat naslouchá implicitn¥ na portu 8080, pokud tedy
nedojde k n¥jakým konikt·m s jiº b¥ºícími aplikacemi, bude BI platform dostupná pomocí
prohlíºe£e na adrese http://localhost:8080/pentaho. První zobrazení stránky m·ºe chvíli trvat, protoºe Tomcat pot°ebuje n¥jaký £as na nastartování.
D.3
Pouºití
Manuál pro pouºití Pentaho BI platform je k dispozici na webu [10]. V tomto popisu se zam¥°ím zejména na aspekty týkající se p°ímo FakeGame pluginu. P°edpokládám tedy znalost
práce se sekvencemi akcí popsané ve zmín¥né dokumentaci.
Pro p°ihlá²ení vybereme n¥kterého z existujících uºivatel· (nejlépe Joe s administrátorskými právy). Po p°ihlá²ení budeme p°esm¥rováni na pracovní plochu (obrázek D.1). Zde
1
Bohuºel i v p°ípad¥ Pentaho BI platform nebyla v dob¥ psaní této práce k dispozici stabilní verze s
podporou plugin·. Z toho d·vodu jsem na p°iloºené CD musel umístit vývojovou verzi, která obsahuje
n¥které chyby. Ty se projevují nap°. p°i editaci p°ístupových práv, nebo £asování spou²t¥ní jednotlivých
sekvencí akcí. Na samotný chod FakeGame pluginu by v²ak tyto chyby nem¥ly mít vliv.
77
78PÍLOHA D.
INSTALAƒNÍ A UšIVATELSKÁ PÍRUƒKA - PLUGIN PRO PENTAHO BI
je p°ipravena sloºka FakeGame se vzorovými transformacemi. V¥t²inu transformací je moºné
spou²t¥t rovnou. N¥které v²ak vyºadují nastavení p°ipojení k databázi a vytvo°ení p°íslu²ných tabulek (pot°ebné SQL skripty jsou rovn¥º k dispozici na p°iloºeném CD).
Obrázek D.1: Pracovní plocha v rámci Pentaho BI platform
Hlavní síla pluginu v²ak spo£ívá v jeho za£len¥ní do vlastních sekvencí akcí, ty je moºné
vytvá°et pomocí nástroje Design Studio [13]. Název p°íslu²né komponenty je FakeGameAction
a její vstupy jsou uvedeny v tabulce D.1. Krom¥ vstup· je t°eba akci p°edat je²t¥ zazipovaný adresá° s kongurací reportu a jednotlivých model·. Ten se p°edává jako zdroj, tedy v
terminologii Pentaho resource. Jeho název je configZip.
Na výstupu potom komponenta vrací dva streamy, v Pentaho terminologii ozna£ené jako
content. Výstup ozna£ený jako response nese report ve formátu HTML a je ur£ený pro
zobrazení koncovým uºivatel·m v rámci pracovní plochy. Výstup s názvem zippedReport
obsahuje archiv s reportem ve formátu HTML a v²emi pot°ebnými soubory pro jeho zobrazení. Oba výstupy je pak moºné p°edat dal²ím komponentám, zippedReport je nap°íklad
vhodný v kombinaci s komponentou na odesílání e-mail·.
79
D.3. POUšITÍ
Název vstupu
experimentSeries
trainTestStrategy
data
Popis vstupu
Indikuje, zda se mají provád¥t série experiment· (moºné
hodnoty: true, false).
Zp·sob testování model· (moºné hodnoty: train-test,
cross-validation, whole-set)
Samotná vstupní data ve formátu result-set. Vstupní data
by m¥la být v £íselném formátu. Názvy výstupních hodnot
pro u£ení jsou ozna£eny vyk°i£níkem (nap°. !output), p°ípadné výstupní t°ídy jsou zakódovány kódem 1 z N.
Tabulka D.1: Seznam vstup· FakeGame pluginu pro Pentaho BI platform
80PÍLOHA D.
INSTALAƒNÍ A UšIVATELSKÁ PÍRUƒKA - PLUGIN PRO PENTAHO BI
P°íloha E
Ukázky nasazení FAKE GAME
pluginu pro Pentaho BI
Tato obrazová p°íloha obsahuje ukázky nasazení FAKE GAME pluginu pro Pentaho BI
platform. Jde zejména o ukázky vyprodukovaných report· a prost°edí pro konguraci práce
pluginu v rámci platformy.
Obrázek E.1: Denice jednoduchého workow v prost°edí Action Sequence editoru - uºivatel
je poºádán o výb¥r kongurace reportu, který si p°eje vid¥t.
81
82
PÍLOHA E. UKÁZKY NASAZENÍ FAKE GAME PLUGINU PRO PENTAHO BI
Obrázek E.2: Vyhodnocení úsp¥²nosti klasikátoru pomocí ROC k°ivek. Datový soubor pro
klasikaci kosatc·, testovací strategie cross validation.
Obrázek E.3: Jednoduchý formulá° pro výb¥r strategie testování model· porovnávaných v
rámci FAKE GAME reportu. Formulá° je kongurovaný pomocí Action Sequence editoru.
83
Obrázek E.4: Vyhodnocení testování sestavených model· - výb¥r toho nejlep²ího (v tabulce
na obrázku je ozna£ený tu£n¥). Datový soubor pro odhad spot°eby vody mandarinkovníku,
data rozd¥lena na trénovací a testovací mnoºinu.
84
PÍLOHA E. UKÁZKY NASAZENÍ FAKE GAME PLUGINU PRO PENTAHO BI
Obrázek E.5: Propojení pluginu s komponentou pro odesílání e-mail· v prost°edí Action
Sequence editoru. Je tak moºné snadno sestavovat sekvence, kde je výsledný report na záv¥r
odeslán mailem.
85
Obrázek E.6: Andrewsovy k°ivky pro datový soubor EEG novorozenc· v rámci Pentaho BI
platform.
86
PÍLOHA E. UKÁZKY NASAZENÍ FAKE GAME PLUGINU PRO PENTAHO BI
Obrázek E.7: Feature ranking pro vstupy z datového souboru Odhad prodejní ceny aut.
P°íloha F
Obsah p°iloºeného CD
.
|
|-|
|
|-|-|
|
|-|
|
|
\--
etc
|-- data
\-- tests
fakegame
pentaho
|-- bi-platform
\-- pdi-ce
src
|-- game-core
|-- FakeGamePlugin
\-- FGPentahoBIPlugin
text
|-- pdf
\-- tex
\-- figures
Testovaná data
Transformace vyuºité p°i testování
Instalace FAKE GAME
Instalace Pentaho BI pltaform
Instalace PDI
Zdrojové kódy projektu FAKE GAME
Zdrojové kódy pluginu pro PDI
Zdrojové kódy pluginu pro BI platform
Text práce ve formátu pdf
Zdrojový text práce ve formátu LaTeX
Pouºité obrázky
87

Podobné dokumenty