+ All Categories
Home > Documents > Bakalarska prace Alexandr Sevrjukov - · PDF fileČestné...

Bakalarska prace Alexandr Sevrjukov - · PDF fileČestné...

Date post: 25-Mar-2018
Category:
Upload: phungxuyen
View: 232 times
Download: 4 times
Share this document with a friend
80
UNICORN COLLEGE Katedra informačních technologií BAKALÁŘSKÁ PRÁCE Výstavba datového skladu s použitím open source technologií Autor: Alexandr Sevrjukov Vedoucí práce: Ing. Miroslav Ždárský 2013, Praha
Transcript

UNICORN COLLEGE

Katedra informačních technologií

BAKALÁ ŘSKÁ PRÁCE

Výstavba datového skladu s použitím open source tec hnologií

Autor: Alexandr Sevrjukov

Vedoucí práce: Ing. Miroslav Ždárský

2013, Praha

Čestné prohlášení Prohlašuji, že jsem svou bakalářskou práci na téma „Výstavba datového skladu s použitím

open source technologií“ vypracoval samostatně pod vedením vedoucího bakalářské práce a s

použitím výhradně odborné literatury a dalších informačních zdrojů, které jsou v práci citová-

ny a jsou také uvedeny v seznamu literatury a použitých zdrojů.

Jako autor této bakalářské práce dále prohlašuji, že v souvislosti s jejím vytvořením

jsem neporušil autorská práva třetích osob a jsem si plně vědom následků porušení ustanovení

§ 11 a následujících autorského zákona č. 121/2000 Sb.

V Praze dne …………….. …….……………………………

Poděkování Děkuji vedoucímu bakalářské práce Ing. Miroslavovi Žďárskému za pomoc s výběrem tématu

a rady při zpracování mé bakalářské práce.

6

Výstavba datového skladu s použitím open source technologií

Building data warehouse using open source technologies

7

Abstrakt

Práce se zabývá využitím open source a bezplatného software pro vybudování datového skla-

du. Motivací je navrhnout implementací datového skladu při malou či střední firmu bez nut-

nosti pořízení komerčního software. Práce stručně rozebírá význam datového skladu a identi-

fikuje jeho základní komponenty. Druhá část práce je věnována výběru technologií a posou-

zení jejích kvalit a vhodnosti pro splnění stanoveného cíle. Závěrečná část pak popisuje ukáz-

kovou implementaci datového skladu s použitím zvolených softwarových produktů, včetně

ukázky reportingu.

Klí čová slova: open source, svobodný software, datový sklad, business intelligence, databáze,

ETL, reporting

Abstract

This bachelor thesis discusses usage of open source and free software for building a data

warehouse. The goal is to design a data warehouse implementation for a small or medium

business without necessity of purchasing commercial software. The thesis briefly explains

data warehouse purpose and identifies its basic components. The second part is dedicated to

choice of the concrete technologies and evaluation of their properties in order to achieve the

defined goal. The last part describes a referential implementation of data warehouse, using the

selected software products, also including reporting examples.

Keywords: open source, free software, data warehouse, business intelligence, databáze, ETL,

reporting

8

Obsah

1. Úvod ................................................................................................................................. 10

2. Význam datového skladu a jeho struktura ....................................................................... 12

2.1 Účel a význam datového skladu............................................................................... 12

2.2 Základní struktura datového skladu ......................................................................... 13

2.3 Softwarové komponenty .......................................................................................... 15

3. Výběr technologií pro implementaci................................................................................ 16

3.1 ETL........................................................................................................................... 16

3.1.1 Scriptella ETL .................................................................................................. 17

3.1.2 Pentaho Data Integration (Kettle) .................................................................... 19

3.1.3 CloverETL........................................................................................................ 22

3.1.4 Talend Data Integration.................................................................................... 25

3.2 Relační databáze....................................................................................................... 29

3.2.1 MySQL............................................................................................................. 30

3.2.2 PostgreSQL ...................................................................................................... 34

3.2.3 Oracle Database Express Edition ..................................................................... 37

3.2.4 Firebird ............................................................................................................. 38

3.2.5 Microsoft SQL Express Edition ....................................................................... 41

3.3 Reportingový software ............................................................................................. 42

3.3.1 JasperReports ................................................................................................... 43

3.3.2 BIRT................................................................................................................. 46

3.3.3 Pentaho Reporting ............................................................................................ 48

3.4 Závěr teoretické části ............................................................................................... 50

4. Praktická část – implementace ukázkového datového skladu.......................................... 52

4.1 Ukázkové řešení – popis problematiky .................................................................... 52

4.2 Ukázkové řešení – implementace............................................................................. 53

4.2.1 Architektura řešení ........................................................................................... 53

4.2.2 Datový sklad – ETL a databáze........................................................................ 54

4.2.3 Reporting.......................................................................................................... 62

5. Závěr................................................................................................................................. 67

6. Seznam použitých zdrojů ................................................................................................. 69

7. Seznam obrázků ............................................................................................................... 76

9

8. Seznam příloh................................................................................................................... 77

8.1 CD s výstupy z praktické části ................................................................................. 78

8.2 Paměťová karta SD s výstupy z praktické části ....................................................... 79

10

1. Úvod

S rostoucím množstvím podnikových dat přestává být doména BI (Business Intelligence) zá-

ležitostí pouze velkých korporací. I manažeři malých a středních firem mohou opřít svoje

rozhodování nejen o svoje zkušenosti a cítění, ale i o reálná data z provozních systémů. V

dnešní době je již téměř nemyslitelné, aby společnost fungovala bez podpory informačních

technologií, a v každé firmě existuje množství dat, ať už uložených v relačních databázích

nebo jiných datových zdrojích, které mohou obsahovat cenné informace pro řízení a operativ-

ní i strategické rozhodování.

Velké podniky obvykle provozují celá specializovaná oddělení, která řeší problemati-

ku Business Intelligence. Tato oddělení mají na starosti budování a správu datových skladů a

reportovacích nástrojů, tvorbu a distribuci reportů konečným konzumentům aj. Pořízení a pro-

voz komerční nástrojů, určených pro BI doménu, bývají však dost nákladné a firmy střední či

menší velikosti si nemohou dovolit do těchto komerčních nástrojů investovat.

Řešením v této situaci je vybudovat podnikovou Business Intelligence za pomocí ná-

strojů a technologií, které jsou k dispozici zadarmo. V současné době (rok 2013) jich existuje

již celá řada a jsou kvalitní a propracované natolik, že umožňují postavit plnohodnotné řešení,

dostačující potřebám menších a středních firem.

Základem každé implementace BI v podniku je datový sklad (Data Warehouse, DWH

– i v česky mluvícím prostředí se často používá anglická terminologie). Tato práce si klade za

cíl provést průzkum dostupných open source nástrojů a technologií, posoudit jejich vlastnosti,

kvality a vhodnost použití pro výstavbu námi uvažovaného datového skladu pro potřeby

střední či malé firmy. Pro účely této práce budeme zkoumat nejen „open source“ software, ale

i „svobodný“ software s uzavřeným zdrojovým kódem. V hledáčku bude tedy veškerý soft-

ware, jehož licenční podmínky umožňují získání a použití softwaru zadarmo1.

Práce je rozdělena na tři části. První část se věnuje krátkému objasnění základních

teoretických principů, rozebírá strukturu datového skladu a identifikuje komponenty potřebné

k jeho vytvoření. Druhá část rozebírá vlastnosti dostupných nástrojů a technologií, porovnává

1 Pojmy „open source“ a „svobodný software“ se v běžném vyjadřování často zaměňují. Bližší informace po-

skytne například článek Proč je užívání pojmu ,,Free Software'' (svobodný software) lepší než ,,Open Source''

(otevřený zdrojový kód). FREE SOFTWARE FOUNDATION, Inc. Operační systém GNU [online]. [cit. 2012-

12-20]. Dostupné z: <http://www.gnu.org/philosophy/free-software-for-freedom.cs.html >

11

je a zkoumá jejich vhodnost pro vybudování datového skladu. Poslední – praktická – část ob-

sahuje ukázkovou implementaci řešení, kdy jsou vybrané produkty nakonfigurovány a propo-

jeny spolu tak, aby tvořily ač malý, ale zcela funkční datový sklad.

12

2. Význam datového skladu a jeho struktura

Tato kapitola se zabývá stručným teoretickým úvodem do problematiky DWH, vysvětluje

strukturu typického datového skladu a identifikuje jeho komponenty, jejíchž implementací

konkrétními produkty se zabývá následující kapitola.

2.1 Účel a význam datového skladu

Datový sklad (anglicky Data Warehouse, zkráceně DWH) je specializována databáze, která

obsahuje data ve formátu vhodném pro reportování a analýzu. Pod pojmem „data“ v této defi-

nici máme na mysli data z celé řady informačních systémů v podniku, která jsou sdružena a

integrována na jednom centrálním místě – datovém skladu. Před vložením do datového skladu

jsou data očištěna a transformována tak, aby byla konzistentní, uniformní, srozumitelná

a snadno analyzovatelná.

Existence datového skladu poskytuje řadu výhod. Díky centralizovanému řešení

umožňuje snadný přístup k datům všem uživatelům. Odstiňuje uživatele od potřeby rozumět

databázím jednotlivých zdrojových systémů a vlastnit přístupová práva ke každému z nich.

Díky počáteční transformaci jsou data různých systémů upravena tak, aby byla v jednotném

formátu a všeobecně srozumitelná, což zjednodušuje úlohu jak vytváření, tak interpretace

reportů. A nakonec, data jsou v datovém skladu prezentována konečnému uživateli v takové

podobě, která je výhodná pro analytické dotazování.2

V provozních systémech jsou databáze obvykle navrženy a optimalizovány tak, aby

poskytovaly rychlou odezvu na dotazy modifikující data – insert, update nebo delete, a aby

umožňovala provádění transakcí při současném přístupu mnoha uživatelů najednou.

V kontextu datových skladů se těmto systémům proto někdy říká transakční systémy. Databá-

ze transakčních systémů jsou většinou normalizované a nejsou připraveny pro exekuci rozsáh-

lých analytických a agregačních dotazů nad velkými množinami dat.

Oproti tomu databáze datového skladu je optimalizována tak, aby provedení takto ná-

ročných dotazů bylo snadnější. Toho lze dosáhnout mimo jiné i částečnou denormalizací dat

a použití některého se specializovaných schémat pro prezentaci dat (dimenzionální přístup –

2 KIMBALL, Ralph a Margy ROSS. The data warehouse toolkit: the complete guide to dimensional modeling.

2nd ed. New York: Wiley, c2002. ISBN 978-0471200246. str. 3-4

13

tabulky fakt, tabulky dimenzí, OLAP kostky aj.).3 Spouštění analytických dotazů nad odděle-

nou DWH databází přináší rovněž tu výhodu, že „šetříme“ provozní systémy a nezpůsobuje-

me jejich zpomalení během vykonávání těchto dotazů.

Datový sklad tedy slouží jako zdroj dat pro vytváření reportů (jak ad-hoc, tak pravi-

delných), pro analytické aplikace, pro data mining, modelovací nástroje aj. Tyto aplikace,

konzumující data z DWH databáze, označujeme souhrnným pojmem Data Access Tools. Ně-

kdy se logicky řadí ještě do datového skladu samotného, jindy se považují naopak za externí

aplikace, které již do datového skladu nepatří.

Nyní se pojďme podívat trochu podrobněji, jak je typický datový sklad implemento-

ván.

2.2 Základní struktura datového skladu

Datový sklad je tvořen řadou spolupracujících komponent. Následující obrázek ukazuje jeho

základní strukturu.4

Obrázek 1 - Struktura datového skladu

Zdroj: vlastní zpracování

Provozní systémy slouží jako zdroj dat pro datový sklad. Nejsou součástí datového skladu

samotného, v diagramu jsou zastoupeny pro větší názornost. Zdrojová data z provozních sys- 3 Detailní popis datových schémat datového skladu přesahuje rámec této práce. 4 KIMBALL, Ralph a Margy ROSS. The data warehouse toolkit: the complete guide to dimensional modeling.

2nd ed. New York: Wiley, c2002. ISBN 978-0471200246. str. 6-15

14

témů jsou obvykle poskytována transakčními RDBMS databázemi, nemusí tomu být však

vždy. Jako vstup mohou posloužit i textové či CSV soubory, sešity ve formátu MS Excel a ji-

ná data generovaná provozními systémy, či dokonce vystavené webové nebo ESB služby.

Úkolem datového skladu je tato data nejprve ze všech zdrojů získat (Extract). Techno-

logie použité v DWH si v tomto kroku musí umět poradit i s velmi heterogenním aplikačním

prostředím - musí umět pracovat s rozlišnými typy databázi, disponovat nástroji pro parsování

textových i jiných souborů, připojovat se na sdílená disková úložiště a v případě potřeby ko-

munikovat i speciálními aplikačními rozhraními.

Data načtená ze zdrojových systémů se nazývají surová data (raw data). Surová data je

následně potřeba podrobit čištění, unifikaci, deduplikaci a reformátování, kombinování

z různých zdrojů atd. Tyto manipulace jsou prováděny v části datového skladu, který se nazý-

vá Data Staging Area. Data Staging Area má svojí vlastní databázi, která slouží k dočasnému

uložení dat procházejících transformací.

Poté, co jsou data takto připravena, následuje jejich načtení (Load) do Data Presentati-

on Area. Data presentation Area je část datového skladu, která je již vystavena konečným

konzumentům pro spouštění analytických dotazů, tvorbu reportu aj. Jedná se o samostatnou

databázi, případně vícero databází nebo schémat. Data v této části datového skladu jsou ob-

vykle uspořádána do tzv. Data Martů. Data Mart je množina dat relevantních pro konkrétní

oddělení v podniku (např. Finance, Prodej, Marketing), případně odrážejících některý

z business procesů.

Data Marty, na rozdíl od běžných aplikačních databází, neužívají normalizovaného

schématu pro prezentaci dat, ale místo toho ukládají data v tzv. dimenzionálním schématu.

V dimenzionálním schématu mohou být data záměrně částečně redundantní, za účelem výraz-

ného zjednodušení a zrychlení analytických dotazů nad masivním množstvím dat díky zmen-

šení počtu spojení tabulek (JOIN).

Poslední vrstvou DWH jsou Data Access Tools, které přistupují k dimenzionálním da-

tům v datamartech. Někdy jsou Data Access Tools považovány za samostatnou vrstvu, již

nepatřící do DWH. Nástroje v této vrstvě slouží k přípravě informací pro konečné konzumen-

ty – jedná se reporty, analýzy a modely a další formy finální prezentace dat.

15

2.3 Softwarové komponenty

Pojďme nyní identifikovat, které softwarové komponenty jsou potřeba, chceme-li vybudovat

nový datový sklad.

ETL (Extract–Transform–Load)

ETL engine má za úkol načtení dat, jejich transformaci a uložení do cílové destinace. Získává

surová data ze zdrojových systémů, nahrává je do Data Staging Area, provádí nad nimi po-

třebné operace a dále je ukládá do data martů v Data Presentation Area. ETL musí umět načí-

tat data z heterogenních zdrojů, podporovat v případě potřeby i komplexní transformační

definice a postupy, dále musí umožnit spouštět pravidelné automatické úlohy a nejlépe i dis-

ponovat přehledným návrhovým rozhraním.

Relační databáze

Relační databáze tvoří základ datového skladu. Slouží jako dočasné úložiště dat v Data Sta-

ging Area a zároveň jako trvalé úložiště pro datamarty v Data Presentation Area. Nakonec

slouží jako úložiště metadat (datových zdrojů, definic transformací, popisů tabulek) a jako

základ pro ETL a reportovací nástroje, které do ní ukládají data potřebná ke svému běhu.

Databáze musí být dostatečně výkonná, robustní a musí umožnit použití optimalizačních

technik pro zrychlení práce se záznamy. Ve velkých robustních řešeních nelze vylučovat pou-

žití vícero instancí pro každý z výše popsaných účelů, či dokonce jiný, specializovaný typ

databáze pro Data Presentation Area, navržený s ohledem na velký nápor čtecích operací.

Analytická / reportovací platforma

Ačkoli někdy již nejsou Data Access Tools zařazovány do datového skladu, budeme v našem

řešení pro malou či střední firmu uvažovat i nástroj pro tvorbu a správu reportů pro koncové

uživatele. Po reportovacím nástroji budeme požadovat možnost snadné tvorby ad-hoc i pravi-

delných reportů, pokročilé možnosti konfigurace, možnost nastavovat přístupová práva uživa-

telů k reportům, definici pravidelných úloh pro spouštění reportů a přehledné a přívětivé uži-

vatelské rozhraní.

V následující kapitole budeme již zkoumat konkrétní implementace těchto komponent proto,

abychom mohli funkční datový sklad implementovat.

16

3. Výběr technologií pro implementaci

V této kapitole se budeme zabývat konkrétním výběrem a porovnáním technologií, které vyu-

žijeme jako základní prvky při budování datového skladu. Technologie rozdělíme do tří kate-

gorií, které jsou popsány v předchozí kapitole: ETL nástroje, relační databáze a reportingové

nástroje. Každou z kategorií budeme pak zkoumat v jednotlivých subkapitolách. Na závěr

z každé kategorie vybereme jeden konkrétní nástroj, který použijeme při sestavení funkčního

ukázkového řešení.

3.1 ETL

V této subkapitole budeme hodnotit volně dostupné ETL (Extract-Transform-Load) nástroje.

ETL můžeme označit za „mozek“ celého DWH řešení, protože je to právě ta komponenta,

která data – ve výsledku to, co konečné konzumenty hlavně zajímá - připravuje.

Úkolem ETL komponenty je především extrakce a transformace dat. Při hodnocení

jednotlivých produktů se budeme dívat na různá kritéria: jaké datové zdroje (relační databáze

i jiné typy vstupů) jsou podporovány, nakolik složitá je tvorba a správa transformačních skrip-

tů a definic, zda nástroj disponuje uživatelským rozhraním pro návrh transformací či pouze

zpracovává ručně psané skripty, zda podporuje načasování pravidelně spouštěných úloh a na

to, nakolik je nástroj výkonný a efektivní. Dále také budeme posuzovat kvalitu dokumentace

a možnosti získání dodatečných informací o produktu (komunita, fóra, newslettery aj).

Jako „kandidáty“ pro hodnocení bylo vybráno sedm následujících ETL technologií:

Scriptella ETL, Pentaho Data Integration (Kettle), CloverETL, Talend Data Integration,

Jaspersoft ETL, Apatar a KETL. Při bližším zkoumání však bylo záhy zjištěno, že skutečná

nabídka produktů není bohužel tak široká. Apatar skončil s vývojem svého software v roce

2011,5 KETL dokonce o tři roky dříve, tedy v roce 2008.6 Přesto, že poslední stabilní verze

obou produktů jsou dostupné ke stažení i nadále, není dle mého názoru vhodné stavět řešení

na „mrtvém“ softwaru, který již nebude nikdy v budoucnu rozvíjen. Portfolio open source

ETL nástrojů se dále zmenšuje o to, že Jaspersoft ETL je postaven na platformě Talend Data

5 Apatar Data Integration/ETL. SourceForge [online]. 2013 [cit. 2013-04-20]. Dostupné z:

<http://sourceforge.net/projects/apatar/files/Apatar%20Data%20Integration_ETL/Apatar%20v1.12.23/> 6 KETL. SourceForge [online]. 2013 [cit. 2013-04-20]. Dostupné z: <http://sourceforge.net/projects/ketl/files/>

17

Integration a jedná se v podstatě o totožný produkt.7 Tyto dva produkty proto nebudeme

zkoumat zvlášť a podrobně se podíváme jen na Talend Data Integration.

3.1.1 Scriptella ETL

Scriptella je lightweight, open source ETL nástroj napsaný v jazyce Java. Scriptella je distri-

buována pod licencí Apache License 2.0.8 Poslední stabilní verze produktu je 1.1, zveřejněná

v prosinci 2012. Produkt si zakládá na jednoduchosti, k dispozici je jediná edice, ve formě

JAR (Java Archive) souboru. Kromě binární distribuce je možno rovněž stáhnout i zdrojové

kódy včetně potřebných knihoven a produkt zkompilovat vlastnoručně.

Technické detaily

Nástroj, jak název trochu napovídá, je určen pro spouštění transformačních skriptů. Skripty

pro nástroj jsou psány v jazyce XML. Struktura skriptu je dost jednoduchá. Nejprve jsou defi-

novány datové zdroje, které slouží jako vstupy a výstupy transformace. Dále jsou definovány

dotazy pro načtení dat, a pro každý z dotazů je definována výkonná část, která typicky data

někam zapíše. Syntaxe jak dotazu, tak výkonné části záleží na typu datového zdroje, se kte-

rým se pracuje. Typicky je to SQL dotaz, ale může to být i regulární výraz v případě textové-

ho/CSV souboru, LDAP query nebo i Java kód. Podporováno je i vyhodnocování výrazů

v syntaxi JEXL (Apache Commons Java Expression Language).9

Datové zdroje jsou realizovány skrze vrstvu tzv. „drivers“, které slouží jako adaptery

pro standardní Java JDBC drivers a dále pro práci s ne-databázovými zdroji dat. Kromě řady

nejrozšířenějších relačních databází jsou podporovány i textové/CSV soubory, sešity ve for-

mátu MS Excel, XPath, Velocity šablony, LDAP, odesílání emailů skrze SMTP a JEXL. Je

7 Jaspersoft ETL Resources. Jaspersoft ETL: The Open Source Data Integration Platform [online]. 2013 [cit.

2013-04-20]. Dostupné z: <http://community.jaspersoft.com/project/jaspersoft-etl/resources> 8 Scriptella ETL Project License. Scriptella [online]. 2013 [cit. 2013-04-15]. Dostupné z:

<http://scriptella.javaforge.com/license.html> 9 Scripts Syntax. Scriptella ETL Reference Documentation [online]. 2013 [cit. 2013-04-15]. Dostupné z:

<http://scriptella.javaforge.com/reference/index.html#Scripts+Syntax>

18

přítomen i generický JDBC adaptér, umožňující použití libovolné databáze, ke které existuje

JDBC driver.10

Scriptella je spouštěna voláním z příkazové řádky s parametrem specifikujícím umís-

tění souboru s transformačním skriptem. Pro běh programu je nutné nainstalovat Java Run-

time Environment ve verzi 5 nebo vyšší. Scriptella neumožňuje naplánování automatických

úloh. Může být integrována s nástrojem Apache Ant, kde transformace může být spouštěna

jako task s potřebnými parametry.

Grafické uživatelské rozhraní

Kvůli své jednoduchosti Scriptella nedisponuje žádným grafickým uživatelským rozhraním,

a to ani jak pro administraci, tak ani pro tvorbu skriptů.

Dokumentace, komunita a podpora

Referenční dokumentace je dostupná na oficiálních stránkách produktu. Dokumentace není

příliš objemná, nicméně vzhledem k povaze produktu je vyčerpávající. Kromě uživatelské

příručky je k dispozici JavaDocs API, které poslouží hlavně vývojářům, a dále DTD reference

popisující strukturu transformačního XML souboru.

Komunita není příliš velká, oficiální stránky doporučují případné otázky pokládat na

webu Stackoverflow nebo v Google User Group „Scriptella ETL“.

Celkové hodnocení

Scriptella je minimalistický, nicméně zajímavý ETL nástroj, který i přes svojí jednoduchost

nabízí vcelku široké možnosti interoperability mezi rozdílnými datovými zdroji. Své místo

najde však spíše v méně náročných aplikacích a řešeních, kde potřebná datová konverze není

příliš komplikovaná. Proti použití Scriptelly jako ETL komponenty v datovém skladu mluví

hodně argumentů – velké množství ručního práce při tvorbě a psaní skriptů, obtížná a pracná

definice náročnějších transformačních úloh, absence plánování úloh, prakticky neexistující

10 Scriptella ETL Drivers Matrix. Scriptella ETL Reference Documentation [online]. 2013 [cit. 2013-04-15].

Dostupné z: <http://scriptella.javaforge.com/reference/drivers.html>

19

přístup pro centrální správu datových zdrojů a transformací a chybějící uspokojivé logování

a monitoring.

3.1.2 Pentaho Data Integration (Kettle)

Pentaho Data Integration (zkráceně PDI) je produktový balíček (souhrn aplikací) vyvíjený

společností Pentaho, určený pro návrh a vykonávání ETL transformací. Balíček také nese

neoficiální název „Kettle“ a je součástí širší produktové rodiny Pentaho Business Analytics.

Data Integration je nabízeno jak v komerční, tak v bezplatné komunitní edici. Komunitní edi-

ce je ochuzená o některé funkcionality a komponenty, například plnohodnotný server pro

správu a běh transformací. Komunitní edice je distribuována pod licencí Apache License

2.0 11, poslední stabilní release byl zveřejněn v listopadu roku 2012 a nese číslování 4.4. Dále

v textu se budeme zabývat právě touto bezplatnou edicí.

Technické detaily

Balíček Kettle se skládá z několika komponent. Ústředním programem balíčku je grafický

designer, který je pojmenován Spoon (jak uvidíme i dále, všechny názvy komponent v rámci

balíčku nesou kuchyňskou tématiku). Spoon je implementován v jazyce Java, nevychází při-

tom předem ze žádné hotové platformy (například Eclipse), i když určitá podobnost s Eclipse

je patrná. Díky Javě je program multiplatformní a je možno jej používat na jakémkoli počítači

s nainstalovaným prostředím JRE.

Aplikace umožňuje graficky navrhovat transformační skripty. Pro svojí práci potřebuje

program předem vytvořit repository, do které ukláda veškeré skripty i metadata. Repository

může být uložena buď v relační databázi (podporována je široká řada RDBMS) nebo

v souborovém systému. Přístup k repository v databázi je řízen uživatelským jménem heslem,

teoreticky to tedy umožňuje práci více uživatelů současně. Synchronizace však není řešena

dostatečně uspokojivě, při pokusech uložit ten samý skript současně dvěma různými uživateli

program generoval chybová hlášení a „zamrzal“.

ETL Skripty jsou v Pentahu jsou rozděleny na dva typy – Joby a Transformace. Trans-

formace jsou skripty nízké úrovně, jejichž účelem by měla být pouhá technická manipulace

11 PDI license. Pentaho Data Integration [online]. 2013 [cit. 2013-04-21]. Dostupné z:

<http://wiki.pentaho.com/display/EAI/PDI+License+FAQ>

20

s daty. Joby jsou úlohy stojící o jednu úroveň výše. Úlohou jobů je zajistit vše proto, aby

transformace mohly pracovat správně – ověřit existenci tabulek nebo souborů, spustit poža-

dované skripty, ověřit validitu XML vstupů, přenést soubory přes FTP, odeslat emailovou

zprávu aj. Joby mohou také pouštět jiné joby, čímž můžeme řídit a modelovat běh složitějších

ETL procesů.12

Při návrhu transformací lze využít skutečně široké palety komponent. Kromě běžných

datových zdrojů a adaptérů pro relační databáze, textové soubory, XML a sešity MS Excel

jsou podporovány i některé komerční informační systémy (např. SAS, SAP, Salesforce) a dále

užitečné adaptéry pro formáty jako Yaml, RSS a emailové zprávy. Podporována jsou i některá

„BigData“ a NoSQL řešení – například Hadoop, Cassandra, HBase a MongoDb. Nabídka

samotných transformačních komponent je standardní, máme na výběr ze široké řady funkcí

pro třídění, vyhledávání, mapování dat, práci s textovými řetězci, rozdělení a spojení sloupců,

normalizaci, denormalizaci aj. Pro ulehčení práce s naplněním datamartů datových skladů je

v nabídce i speciální komponenta pro pohodlný update tabulek dimenzí. Slabou stránkou ná-

vrhového prostředí je ovšem to, že chybí možnost definovat uživatelské customizované trans-

formační kroky nebo alespoň utilitní funkce v některém ze skriptovacích jazyků či přímo

v Javě.13

Podpora metadat sdílených komponentami v rámci jednoho repozitáře není příliš roz-

sáhlá, omezuje se v podstatě jen na definici databázových spojení a možnost definice uživa-

telských proměnných, které pak lze využít při konfiguraci komponent.

Navržené joby a transformace je možné spouštět jak z přímo ze Spoon editoru, tak ex-

terně. Pro externí spouštění slouží programy Kitchen a Pan. Kitchen slouží ke spouštění jobů,

Pan ke spuštění transformací. Oba programy jsou napsány v Javě, jedná se o utility bez gra-

fického rozhraní, ovládané pomocí parametrů předávaných z příkazové řádky. Programy

umožňují spouštět skripty jak přímo z repozitáře (ať už databázového nebo založeného na

souborech), tak samostatné skripty exportované ze Spoonu do XML formátu.

V základním komunitní balíčku je dále nabízen malý webový server pod názvem Car-

te, který poslouží ke vzdáleném spouštění jobů a transformací. Server nedisponuje žádným

12 Job Entry Reference. Pentaho Infocenter [online]. 2013 [cit. 2013-04-22]. Dostupné z:

http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Ftopic_pdi_usr_job_reference.html 13 Transformation Step Reference. Pentaho Infocenter [online]. 2013 [cit. 2013-04-22]. Dostupné z:

<http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Ftopic_pdi_usr_step_reference.html

s>

21

uživatelským administračním rozhraním, nepodporuje ani načasování pravidelných úloh. Jeho

jedinou funkcí je přijímat definice skriptů skrze HTTP protokol a vykonávat je. Carte se však

stává silným nástrojem ve chvíli, kdy použijeme několik jeho instancí na různých serverech

a transformaci navrhneme tak, aby využívala několika Carte instancí v clusteru. Pokud je

transformace správně navržena, můžeme její vykonávání rozložit na vícero fyzických uzlů.14

Dokumentace, komunita a podpora

Komunitní edice platformy sice disponuje poměrně velkým množstvím dokumentace, její

kvalita je však bohužel není vždy zcela uspokojivá. Mezi dva hlavní zdroje informací patří

Pentaho Infocenter a Pentaho Wiki. Účelem Infocentra je poskytnout především instalační a

uživatelské návody pro všechny produkty nabízené společností Pentaho (tedy nejenom Data

Integration). Jsou zde sdruženy manuály jak ke komunitním, tak se komerčně dostupným ver-

zím produktů, což poněkud stěžuje úlohu hledání potřebných informací. Stejné návody jako v

Infocentru jsou částečně duplikovány ve Wiki (postavené na technologii Confluence), avšak

v o něco horší kvalitě. Wiki nabízí, stejně jako Infocenter, například uživatelský manuál

k editoru Spoon, některé stránky jsou však buď zastaralé (popisují předchozí release aplikace)

nebo jsou nedokončené. Orientace ve Wiki je poměrně obtížná, mnohdy je problematické

najít stránku s požadovaným tématem a není jisté, zda uvedené informace jsou správné a plat-

né.

K dalším zdrojům informací patří aktivní Pentaho Community Forums, Pentaho User

Groups, kde je díky dost aktivní komunitě možno dostat odpovědi na otázky, které se nám

nepodařilo dohledat, což může částečně kompenzovat absenci kvalitnější dokumentace.

Celkové hodnocení

Pentaho Data Integration je solidní ETL platforma, která i v Community edici nabízí dosta-

tečné nástroje pro tvorbu a provádění komplexních ETL úloh. Oproti Enterprise verzi je

ochuzena především o plnohodnotný server pro plánování a vykonávání skriptů a o funkční

repozitář, který by umožnil současnou práci nad transformacemi a joby více lidem. Tyto ne-

14 Running a Transformation. Pentaho Wiki [online]. 2013 [cit. 2013-04-22]. Dostupné z:

<http://wiki.pentaho.com/display/EAI/.13+Running+a+Transformation>

22

dostatky však jsou rozhodující spíše pro nasazení ve větším řešení, než o kterém uvažujeme.

Díky možnosti spouštění skriptů v rámci jiných skriptů lze vybudovat i „master“ scénáře na-

příklad pro denního load dat do datového skladu, a pak tento hlavní skript nechat automaticky

spouštět Cronem nebo Plánovačem úloh ve Windows. Hlavním nedostatkem community plat-

formy je především zhoršená kvalita dokumentace, přesto však o využití Kettle jako ETL

platformy v open source datovém skladu lze určitě uvažovat.

3.1.3 CloverETL

CloverETL je označení pro sadu produktů vyvíjených společností Javlin. Základ balíku tvoří

tři produkty: Designer, Server a Engine které mohou být dále rozšířený o doplňky jako Data

Profiler, Cluster nebo Event Analyzer. Designer je grafická desktopová aplikace určená pro

tvorbu transformačních skriptů. Server je serverová aplikace postavená na platformě Java EE,

určená pro vykonávání skriptů, správu naplánovaných úloh, paralelní zpracování a integraci

s dalšími podnikovými aplikacemi.15 Javlin svojí produktovou rodinu v souhrnu popisuje jako

„Platformu pro agilní datovou integraci“.16

Základní nabídka společnosti je komerčního charakteru, nicméně existuje i komunitní

produktová edice, v rámci které jsou nabízeny pouze Designer a Engine, Designer bohužel

oproti komerční verzi s omezenou množinou funkcionalit. Tato komunitní verze Designeru je

distribuována pod proprietární EULA licencí, která umožňuje bezplatné použití programu.17

Ústředním modulem podporujícím celou platformu je CloverETL Engine. Nejedná se

o samostatnou aplikaci, nýbrž o knihovnu napsanou v jazyce Java. Engine slouží ke spouštění

(provádění) transformačních skriptů navržených v Designeru. Je interní součástí jak Designe-

ru, tak Serveru a může být zabudován i do vlastních aplikací. Engine je open source software,

binární a zdrojové balíčky jsou k dispozici volně ke stažení na webu Sourceforge a jeho pou-

žití je řízeno licencí LGPLv2. V následujícím textu se podrobněji podíváme na Designer

Community Edition a na otevřený Engine a posoudíme, nakolik nám jejich funkcionality při

budování datového skladu vystačí.

15 CloverETL Server. Family of CloverETL Products [online]. 2013 [cit. 2013-04-18]. Dostupné z:

<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/docs/cloveretl-

server.html> 16 CloverETL Products. Data Integration Products [online]. 2013 [cit. 2013-04-16]. Dostupné z:

<http://www.cloveretl.com/products> 17 Text licence se zobrazuje při instalaci programu, není dostupný online

23

Technické detaily

CloverETL Designer Community Edition (dále jen „Designer“) je aplikace postavená na open

source platformě Eclipse. Eclipse je známý především jako vývojová platforma (IDE) pro

řadu programovacích jazyků, nicméně modularita aplikace umožňuje budovat na její zákla-

dech zcela nová vývojová prostředí. Platforma ke svému běhu požaduje pouze lokální instala-

ci Java Runtime Environment, je tudíž multiplatformní.

Designer slouží ke grafickému návrhu transformačních skriptů. Community edice je

bohužel oproti placené edici ochuzena o některé transformační prvky, konektory a další funk-

cionality, nicméně základní komponenty zůstávají návrhářům skriptů k dispozici.18 Transfor-

mační skripty, v terminologii CloverETL nazývané „grafy“, jsou vytvářeny přetahováním

jednotlivých komponent z palety do hlavního okna aplikace a jsou spojovány přechody.

Komponenty jsou rozděleny do několika skupin. Najdeme tu Readers, které umožňují čtení a

parsování dat z různých zdrojů (databáze, textový soubor, XML, MS Excel), Writers, které

naopak data zapisují, dále Transformers, které s daty nějakým způsobem manipulují, a něko-

lik dalších komponent (DB Execute pro spouštění SQL příkazů, SystemExecute pro spouštění

systémových procesů a HTTP Connector). Podporována je většina rozšířených relačních da-

tabází (Oracle, MS SQL, MySQL, PostgreSQL, Firebird, MS Access, Sybase a další) a gene-

rický JDBC driver.19

Mezi transformační nástroje patří například Aggregate, Deduplicate, Filter, Sort, Sim-

pleCopy. Zajímavou komponentou je pak Reformat, která umožňuje definici vlastní uživatel-

ské transformace. Definovat transformaci je možné pomocí CloverETL skriptovacího jazyka

CTL (CloverETL Transformation Language), který již nabízí řadu zabudovaných funkcí. Dal-

ší možností je napsat vlastní třídu v jazyce Java, která transformaci provede. Tato třída musí

implementovat speciální rozhraní (a tudíž i příslušné metody). Vzhledem k tomu, že Designer

18 CloverETL Designer. CloverETL Documentation [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/docs/cloveretl-

designer.html> 19 Part VII. Components Overview. CloverETL Designer [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/docs/part-

components-overview.html>

24

je postaven na platformě Eclipse, implementaci je možno vytvořit přímo v prostředí Designe-

ru, bez nutnosti využívat externí nástroj pro kódování a kompilaci.20

Množina podporovaných komponent je bohužel v Community edici značně omezena.

Oproti komerční edici chybí mnohé užitečné funkcionality pro čtení z různých datových zdro-

jů, FTP složek, dále nativní konektory pro rychlý zápis do databází, některé transformační

komponenty a další užitečné funkce, například rychlá tvorba Dimension tabulek pro datamar-

ty, nebo XSL transformery.

Skripty vytvořené v Designeru jsou interpretovány pomocí základní komponenty celé

CloverETL platformy – CloverETL Engine. Engine je realizován jako aplikace napsaná

v jazyce Java. Nemá vlastní uživatelské rozhraní a je spouštěn z příkazové řádky s řadou pa-

rametrů. Engine je distribuován jako JAR (Java Archive) knihovna, což jej umožňuje zabu-

dovat do vlastních aplikací napsaných v jazyce Java.

Dokumentace, komunita, podpora

K celé produktové rodině existuje podrobná a přehledná online dokumentace, dostupná

z hlavních stránek CloverETL. Kromě toho je začínajícím uživatelům k dispozici Quick Start

Guide, který pomůže rychle se zorientovat v základních pojmech a vytvořit svoje první trans-

formační grafy. Dokumentace celkově budí dobrý dojem, je srozumitelná a dobře strukturo-

vaná, učení z ní je velice rychlé. Nevýhodou bohužel je skutečnost, že jsou zdokumentovány

plné (komerční) verze aplikací, tudíž při práci s komunitní edicí může uživatel hledat

v programu některé komponenty zcela marně. Ten samý nedostatek platí i pro ukázkové ETL

projekty, jež jsou volně k dispozici ke stažení – pokud je v některém z projektů použita ko-

merční komponenta, odmítne Designer projekt vůbec otevřít.

Mezi další oficiální zdroje informací patří aktivní CloverETL Forum, kam může uži-

vatel v případě potíží vznést svůj dotaz, a dále CloverETL Blog, kde je zhruba jednou měsíč-

ně publikován nový článek týkající se platformy.

Oficiální podpora je nabízena pouze pro placené distribuce.21

20 Chapter 55. Transformers. CloverETL Designer [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/docs/transformers.

html> 21 CloverCARE Support. CloverETL Services [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://www.cloveretl.com/services/clovercare-support>

25

Celkové hodnocení

CloverETL je funkční a kvalitní ETL platforma, komunitní edice je však bohužel natolik

omezena o moduly a funkcionality, že ji to pro datový sklad činí prakticky nepoužitelnou.

Postrádáme možnost centralizované správy transformací a jejich automatické spouštění (což

jsou funkce podporované Serverem), také Designer je ochuzen o mnohé užitečné komponen-

ty. Community Edition je tedy spíše vhodná pro skutečně jednoduché projekty s malým po-

čtem jednoduchých transformací. Zájemcům o CloverETL platformu by se nejspíše vyplatilo

investovat alespoň do komerční verze Designeru (bez Serveru), jež poskytuje plnou paletu

funkcionalit, nicméně předmětem této práce je free nebo open source software, tuto variantu

proto nebereme v úvahu.

3.1.4 Talend Data Integration

Talend Open Studio For for Data Integration (které dále v textu budeme nazývat také zkráce-

ně „Studio“) je open source produkt společnosti Talend, distribuovaný pod licencí GPLv2.22

Poslední stabilní release produktu nese označení 5.2.2 a byl uvolněn v březnu roku 2013. Stu-

dio je grafický nástroj sloužící k návrhu skriptů pro přístup k datům, jejich transformaci, kom-

binaci a integraci mezi různými zdroji a systémy. Studio je součástí širší rodiny produktů,

mezi něž patří například nástroje pro kontrolu kvality dat (Data Quality), správu metadat (Me-

taData Management), řízení business procesů a další.

Studio je nabízeno zdarma jako samostatná aplikace či pak v rámci rozšířených ko-

merčních balíčků Enterprise Data Integration a Platform for Data Management. Balíčky ob-

sahují kromě Studia navíc i serverové komponenty pro centralizovanou správu skriptů, jejich

vzdálené nasazování a spouštění, load balancing, failover a jiné funkcionality podporující celý

životní cyklus procesů pro datovou integraci. Avšak i v bezplatné edici je Studio zcela plno-

hodnotné a není ochuzeno o žádné funkcionality pro přístup k datům a manipulaci s nimi.23

Pojďme se tedy blíže podívat, co nám tento software umožňuje.

22 Data Integration. TALEND. Download [online]. 2013 [cit. 2013-04-20]. Dostupné z:

<http://www.talend.com/download/data-integration> 23 Data Integration Features Comparison Matrix. TALEND. Data Integration [online]. 2013 [cit. 2013-04-20].

Dostupné z:<http://www.talend.com/products/data-integration/matrix>

26

Technické detaily

Open Studio for Data Integration je - podobně jako CloverETL Designer - postaveno na plat-

formě Eclipse, a tudíž ke svému běhu potřebuje lokální instalaci JRE nebo JDK (Java Deve-

lopment Kit). Z Eclipse je také převzata základní filozofie práce, která je vždy rozdělena na

jednotlivé projekty. V rámci projektů pak vytváříme transformační skripty (které jsou nazý-

vány „jobs“), definujeme metadata jako například databázová spojení, vstupy, výstupy a pí-

šeme vlastní funkce, SQL dotazy a Java kód. Veškerá data jsou v rámci projektu viditelná pro

všechny joby, naopak mezi projekty tato viditelnost neexistuje a pro znovuvyužití v jiném

projektu se musí data ručně exportovat a pak importovat.

ETL skripty (jobs) vytváříme graficky, metodou přetahování komponent z palety, na-

stavením jejich vlastností a spojením přechody. Nabídka komponent je skutečně velmi široká.

Dokumentace uvádí, že k dispozici je přes 450 komponent a konektorů 24, což umožňuje číst a

zapisovat data z/do téměř jakéhokoli zdroje. Kromě možnosti napojení na klasické relačních

databáze máme tu i řadu konektorů do rozšířených komerčních DWH/BI databází a produktů

(Netezza, Teradata, SaS) a samozřejmě spoustu adapterů pro práci se soubory. Podporovány

jsou mimo jiné textové a CSV soubory, MS Excel, práce se ZIP archivy a XML. Mezi poně-

kud méně obvyklé komponenty patří možnost připojování na FTP, MQ (Message Queue) ser-

very, zasílání HTTP requestů, volání SOAP a RESTful webových služeb (včetně zabezpeče-

ných), LDAP a dokonce parsování souborů, jejichž obsahem je emailová zpráva.25

Transformační komponenty nabízí standardní operace – filtrování, agregaci, filtrování,

řazení, normalizaci/denormalizaci (užitečné při výpočtu tabulek faktů), operace nad řetězci

(replace, concat, regexp a další) a jiné. Je možná definice vlastních rutin a procedur používa-

ných v transformacích, kód se píše v jazyce Java. Žádný proprietární skriptovací jazyk není

podporován.

Mezi velmi užitečné komponenty patří tzv. Orchestration komponenty, které umožňují

řídit běh jobu. V rámci jednoho můžeme zavolat jiné joby, či dokonce běh paralelizovat. Pod-

porovány jsou dále dva speciální eventy – Prejob a PostJob, které umožní například provést

před spuštěním jobu určitá iniciální nastavení nebo naopak po doběhnutí po sobě „uklidit“.

24 Data Integration. TALEND. Download [online]. 2013 [cit. 2013-04-20]. Dostupné z:

<http://www.talend.com/download/data-integration> 25 Reference Guide. Talend Open Studio Components v5.2.2 [online]. 2013 [cit. 2013-04-20]. Dostupné z: <htt-

ps://help.talend.com/display/TALENDOPENSTUDIOCOMPONENTSREFERENCEGUIDE52EN/Home>

27

Nabídka komponent není konečná. Uživatelé mohou vytvářet své vlastní komponenty

v jazyce Java přímo v prostředí Studia. Kromě toho, na komunitních webových stránkách

talendforge.org jsou k dispozici stovky volně dostupných custom komponent vyvinutých uži-

vateli a rozšiřujících standardní paletu Studia.

Studio podporuje verzování jobů a metadat v rámci projektu. Můžeme uchovávat více-

ro verzí té samé entity a v případě potřeby vrátit se ke dřívějším verzím. Do prostředí je také

zabudována funkcionalita „Recycle Bin“, kdy odstraněné položky (joby a metadata) se nej-

prve přesouvají do koše a teprve potom mohou být odstraněny trvale.

Navržené joby můžeme spouštět přímo ve Studiu či je exportovat do několika různých

formátů a spouštět je samostatně. Každý job je ve Studiu překládán do samostatné Java třídy,

uživatel si může nechat zobrazit generovaný zdrojový kód. Ve studiu můžeme proto spouštět

joby i v Debug a Trace modech a sledovat velmi podrobně krok po kroku vykovávání jobu.

Takto těsná integrace s Javou umožňuje realizovat i mechanismus exportování jobů pro jejich

spouštění vně Studia.26

První variantou je export pro samostatné spouštění jobu v jakémkoli prostředí, kde je

nainstalováno prostředí JRE (Java Runtime Environment). V této variantě vygeneruje Studio

ZIP archiv obsahující .jar archív se samotným jobem, složku s potřebnými knihovnami (na-

příklad rutiny pro práci s Excel soubory a JDBC konektory), složku s metadata, zdrojové kó-

dy a nakonec .bat a .sh skripty pro pohodlné spouštění jobu ve Windows nebo Linux. Získá-

váme tak zcela samostatný spustitelný balíček bez potřeby cokoli dále konfigurovat nebo in-

stalovat.

Další možností je exportovat job jako webovou službu (Web Service), kterou je mož-

no nasadit na libovolný z Java EE serverů. Studio v tomto případě připraví standardní .war

balíček (Java Web Application Archive), jež je možno rovnou nasazovat. Pro nasazení je vy-

žadován pouze servlet containter (například Apache Tomcat), SOAP protokol je implemento-

ván pomocí knihovny Apache Axis, plný Java EE serverový profil tudíž není vyžadován. Ar-

chív obsahuje pochopitelně všechny potřebné knihovny (včetně Axisu), dále zdrojové kódy a

soubory konfigurující webovou službu (.wsdl, .wsdd).

26 How to run a Job. Talend Open Studio for Data Integration v5.2.2 - User Guide (EN) [online]. 2013 [cit.

2013-04-21]. Dostupné z: <htt-

ps://help.talend.com/display/TALENDOPENSTUDIOFORDATAINTEGRATIONUSERGUIDE52EN/4.2.7+H

ow+to+run+a+Job>

28

Poslední variantou pro export jsou balíčky pro nasazení jobu jako služby do ESB (Enterprise

Servis Bus) platformy. Podporovány jsou JBoss ESB, Petals ESB a dále generický OSGI

formát. V případě nasazení jobu jako enteprise služby bude tento job dostupný všem dalším

aplikacím využívajícím služeb centrální integrační platformy.27

Integrace se SpagoBI serverem

Zajímavou funkcionalitou, kterou Studio nabízí, je export a nasazení jobu na SpagoBI server.

SpagoBI je open-source Business Intelligence platforma, jejíž součástí je Java EE server pro

management a spouštění různých typů analytických a reportingových úloh. Spago disponuje

mimo jiné i podporou pro Talend Open Studio, a z druhé strany Studio umožňuje rychlý

deployment jobu přímo z návrhového prostředí. 28 V rámci SpagoBI serveru je možné vytvářet

rozvrhy pro pravidelná spouštění rozlišných úloh, server nám proto může částečně posloužit

jako náhrada za Talend Jobserver, dostupný pouze v některé z komerčních edicí.

Dokumentace, komunita, podpora

Celá platforma, pochopitelně včetně Studia, disponuje podrobnou dokumentací. Přístup k do-

kumentaci je možný po bezplatné registraci. Dokumentace je rozdělena na několik hlavních

částí – Knowledge Base s odpověďmi na nejčastější otázky a dále samostatné portály pro

každý z produktů, odděleně pro bezplatné a komerční edice. Pro Talend Open Studio for Data

Integration mají uživatelé k nahlédnutí Installation & Upgrade Guide, User Guide a Compo-

nents Reference Guide. Všechny příručky jsou zpracovány pěkně a dostatečně přehledně,

včetně screenshotů a praktických ukázek.

Začínající uživatelé si mohou projít tutoriály pokrývající některé základní úlohy a

stáhnout si k těmto tutoriálům ukázkové projekty do Studia, včetně vzorků zkušebních dat.

27 How to export Jobs. Talend Open Studio for Data Integration v5.2.2 - User Guide (EN) [online]. 2013 [cit.

2013-04-21]. Dostupné z: <htt-

ps://help.talend.com/display/TALENDOPENSTUDIOFORDATAINTEGRATIONUSERGUIDE52EN/5.2.2+H

ow+to+export+Jobs> 28 How to deploy a Job on SpagoBI server. Talend Open Studio for Data Integration v5.2.2 - User Guide (EN)

[online]. 2013 [cit. 2013-04-21]. Dostupné z: <htt-

ps://help.talend.com/display/TALENDOPENSTUDIOFORDATAINTEGRATIONUSERGUIDE52EN/5.7.1+H

ow+to+deploy+a+Job+on+SpagoBI+server>

29

Mezi oficiální zdroje informací dále patří aktivní Talend Community Forum s desítkami tisíc

témat a příspěvků.29 Témata ve fóru pokrývají širokou škálu témat, od instalace, přes návrh

jobů po vytváření vlastních komponent.

Celkové hodnocení

Talend Open Studio for Data Integration je velmi výkonný nástroj pro tvorbu komplexních

transformačních úloh. Disponuje širokou paletou funkcionalit, je výborně ovladatelný a intui-

tivní. Projektově orientovaný přístup k práci a dostupnost verzování skriptů a metadat zjedno-

dušuje správu rozsáhlejších projektů a přináší pořádek. Nevýhodou v tomto pohledu je pouze

absence možnosti ukládat projekty do centrálního repozitáře a umožnit tím současnou práci

více lidí (tato funkce je dostupná až v některé z placených edicí).

Komunitní produktová edice bohužel nenabízí žádný server pro plánování a spuštění

úloh, tento nedostatek však je částečně vyvážen možností exportovat joby jako samostatně

spustitelné programy nebo jako Java EE komponenty (Webové služby, ESB služby). Díky

podpoře vnořených jobů (tedy spouštění jobů v rámci jiných jobů) je možné vybudovat napří-

klad workaround pro celou denní ETL úlohu v podobě jednoho parent jobu a ten pak spouštět

v požadovaném čase pomocí Cron skriptu nebo Plánovaných úloh ve Windows. Rovněž má-

me možnost využití podporované integrace se SpagoBI serverem a přenechat plánování a

spuštění úloh na něj.

Produkt dále disponuje kvalitní dokumentací a aktivní uživatelskou základnou, k dis-

pozici jsou i dodatečné výukové materiály. Celkově vzato, produkt splňuje požadavky pro

využití jako ETL komponenty v datovém skladu a pro tyto účely jej doporučit lze.

3.2 Relační databáze

Databáze tvoří jádro celého datového skladu. Dá se říct, že je jeho nejdůležitější součástí.

V datovém skladu plní databáze hned několik úloh. Za prvé, slouží jako úložiště pro Data

Staging Area (viz první kapitola) – tedy místo pro dočasné uložení surových dat pro účely

jejich transformace a očištění. Dále funguje jako úložiště již transformovaných dat, ve formě

29 Talend Community Forum. Talendforge [online]. 2013 [cit. 2013-04-21]. Dostupné z:

<http://www.talendforge.org/forum/>

30

datamartů, v některém ze vhodných schémat (vločkové, hvězdicové schéma). Této části data-

báze říkáme Data Presentation Area. V neposlední řadě pak také obsahuje metadata ukládaná

samotnými aktivními SW komponentami řešení – ETL a reportingovými nástroji. Příkladem

těchto dat jsou definice datových transformací, datové zdroje, naplánované automatické úlo-

hy, logy, definice reportů, uživatelské účty, seznam oprávnění k jednotlivým reportům aj.

V případě komplexních řešení, implementovaných ve velkých firmách, je velmi prav-

děpodobné, že databáze pro každý z těchto účelů budou oddělené a dedikované. Námi hledané

řešení pro malé a střední podniky je však jednodušší, budeme proto uvažovat jednu databázo-

vou instanci, která bude rozdělena na jednotlivá schémata, zajišťující výše popsané funkcio-

nality.

Relačních databází je na trhu velmi mnoho, a to i těch, které patří do kategorie open

source nebo free software. Je nad rámec jakékoli práce obsáhnout je všechny, bylo tedy nutné

provést předvýběr vhodných „kandidátů“. Volba padla na takové produkty, které jsou široce

známe a rozšířené, s existujícími referencemi, aktivní komunitou a nadějí na další rozvoj

v budoucnu. Dalším kritériem byla robustnost, vhodnost práce s velkými objemy dat a snadná

administrace databáze, což z výběru vyřadilo lightweight a embedded řešení, například

Apache Derby nebo SQLite.

Při finálním posouzení databázového SW za zaměříme především na jeho volnou do-

stupnost, stabilitu, rychlost, licenční omezení pro podporovaný objem dat a maximální míru

využití HW prostředků, dále pak i kvalitu dokumentace, uživatelskou komunitu a samozřejmě

i na podporu dané technologie ze strany samotných ETL a reportingových nástrojů.

3.2.1 MySQL

MySQL patří k nejznámějším a nejrozšířenějším open source databázovým enginům.30 První

verze databáze vznikla koncem devadesátých let jako projekt vývojáře Michaela Wideniuse,

spoluzakladatele společnosti MySQL AB. Společnost byla v roce 2008 odkoupena firmou

Sun Microsystems. V současné době patří MySQL společnosti Oracle, po její akvizici společ-

nosti Sun Microsystems v roce 2010.31

30 DB-Engines Ranking. SOLID IT. DB-engines: Knowledge Base of Relational and NoSQL Database Manage-

ment Systems [online]. [cit. 2013-04-07]. Dostupné z: <http://db-engines.com/en/ranking> 31 Hardware and Software. Engineered to Work Together. ORACLE. Oracle corporation [online]. 2010 [cit.

2013-04-07]. Dostupné z: <http://www.oracle.com/us/sun/index.html>

31

MySQL databáze je distribuována v několika placených edicích – Standard Edition, Enteprise

Edition a Cluster Carrier Grade edition – a dále v bezplatné Community edici, distribuované

pod licencí GPL.32 Nás bude zajímat především tato volně dostupná Community edice.

V době vzniku této práce poslední stabilní verze nesla označení 5.6.10. Dále v tomto textu

budeme hovořit pouze o této edici a budeme jí zkráceně nazývat „MySQL“. Pokud budeme

hovořit o některé z placených verzí, explicitně tuto skutečnost upřesníme.

Databáze je multiplatformní, podporuje jak prostředí Windows, tak i celou řadu Linu-

xových a Unixových operačních systémů.33 Samozřejmostí jsou dostupné zdrojové kódy pro

vlastnoruční kompilaci. Pojďme se nyní blíže podívat na některé detaily, které nás zajímají

z pohledu případného využití této databáze jako základny pro datový sklad.

Technické detaily, HW a SW omezení

MySQL nabízí několik mechanismů ukládání dat (tzv. storage engine), které jsou distribuová-

ny ve standardním instalačním balíčku. Pro účely DWH jsou zajímavé především tři hlavní

mechanismy: MyISAM, InnoDB a Memory. Výhodou je možnost míchání různých mecha-

nismů v rámci jednoho DB schématu (různé tabulky mohou používat rozdílné mechanismy) a

dokonce i v rámci jednoho SQL dotazu.34

InnoDB je primárním doporučovaných mechanismem. Jedná se o plnohodnotný sto-

rage engine podporující ACID transakce, cizí klíče, indexy (B-tree, T-tree, hash, fulltext) a

zamykání na úrovni řádků. Maximální objem uložených dat je omezen na 64 TB. Tento engi-

ne je vhodný především na manipulaci s daty v normalizovaném schématu.

MyISAM je historicky starší storage engine, který nepodporuje transakce ani cizí klíče.

Dále nepodporuje některé typy indexů (např. T-tree a hash). Zamykání probíhá na úrovni celé

tabulky. Výhodou MyISAM je však podpora až 256 TB uložených dat a za některých okol-

ností rychlejší čtení z velkých tabulek, což může být užitečné pro Data presentation area dato-

vého skladu, která je vystavena především velkému náporu SELECT dotazů oproti

INSERT/UDPATE dotazům. Rozdíl ve výkonnosti proti InnoDB ale není jednoznačně jasný a

32 MySQL Editions. MYSQL. MySQL: The world's most popular open source database [online]. 2013 [cit.

2013-04-07]. Dostupné z:< http://www.mysql.com/products/> 33 Installing and Upgrading MySQL. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-04-07].

Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/installing.html> 34 Storage Engines. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-04-07]. Dostupné z:

<http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html>

32

je diskutován. Performance benchmark, vydaný společností Oracle v roce 2011, srovnávající

MyISAM a InnoDB engines doporučuje primárně využívat InnoDB a zároveň uvádí, že MyI-

SAM „zůstává důležitým storage engine pro specifické aplikace vyžadující intenzivní čtení

dat“.35

Memory je speciální storage engine, který, jak název vypovídá, používá pro uložení

dat RAM paměť. Výhodou je vetší rychlost manipulace s daty, kterou lze využít například pro

náročné datové transformace. Na druhou stranu je zde řada nevýhod – server musí disponovat

dostatečným množstvím fyzické RAM paměti, v případě výpadku systému se data ztratí.

Memory engine dále nepodporuje transakce ani cizí klíče. Zamykání probíhá na úrovni celé

tabulky.

MySQL neomezuje uměle maximální objem využité RAM ani počet CPU / jader, to

znamená, že v případě potřeby budou využity všechny dostupné HW prostředky, v závislosti

na konfiguraci. MySQL podporuje multithreading.36

Databáze nabízí možnost partitioningu, k dispozici je několik druhů, dle rozdělovacího

kritéria: Range, List, Columns (využití více sloupců pro rozhodovací pravidlo), Hash a Key.

Je nabízen pouze horizontální partitioning (rozdělení skupin řádků), vertikální (rozdělení

podle sloupců) není podporován. Použití partitioningu nad tabulkou s sebou přináší některá

omezení, například nemožnost používat cizí klíče nebo omezené použití vnořených dotazů a

SQL funkcí.37

Dokumentace a komunita

MySQL nabízí na svých stránkách volně přístupnou, rozsáhlou referenční dokumentaci. Kro-

mě hlavní části, podrobně popisující SQL syntaxi včetně její rozšíření a doplnění příkazy spe-

cifickými pro MySQL, nechybí zde ani velké množství doplňující informace o storage engi-

35 MySQL 5.5: Storage Engine Performance Benchmark for MyISAM and InnoDB: A MySQL® Technical

White Paper. [online]. 2011, s.13 [cit. 2013-04-07]. Dostupné z:

<http://www.oracle.com/partners/en/knowledge-zone/mysql-5-5-innodb-myisam-522945.pdf> 36 MySQL 5.6 FAQ: General. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-04-07]. Dostup-

né z: <http://dev.mysql.com/doc/refman/5.6/en/faqs-general.html> 37 Chapter 17. Partitioning. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-04-08]. Dostupné

z: <http://dev.mysql.com/doc/refman/5.6/en/partitioning.html>

33

nech, instalaci a administraci serveru, zálohování, bezpečnosti, partitioningu a optimalizaci a

nativních konektorech pro programovací jazyky.38

Vzhledem k velké popularitě databáze na internetu existuje velmi rozsáhlá komunita

uživatelů a vývojářů. Na oficiální doméně mysql.com je provozována tzv. Developer zone

s velkým množstvím informací, aktivním fórem čítajícím desítky tisíc témat, články a white

papery.

Administra ční rozhraní a utility

Volitelnou součástí instalačního balíčku je sada administračních a utility aplikací. Aplikace je

rovněž možno zadarmo stáhnout a nainstalovat dodatečně. MySQL Workbench je aplikace

s grafickým uživatelským rozhraním, umožňující modelování, návrh databáze, administraci a

vývoj SQL skriptů.39 Aplikace existuje ve verzích pro různé operační systémy, podporovány

jsou mj. MS Windows, Mac OS X, a některé linuxové distribuce.

MySQL Utilities je sada programů ovládaných skrze příkazovou řádku. Umožňují pro-

vádět operace nad auditními logy, kopírování a zálohování databáze, porovnávání dat, nasta-

vení replikace, klonování serveru a vykonávat některé administrační úlohy. Utilies jsou nabí-

zeny pro operační systémy MS Windows a Oracle a Red Hat Linux. K dispozici jsou rovněž i

zdrojové kódy, pomocí kterých lze zkompilovat vlastní verzi programů pro vybraný operační

systém.

Celkové hodnocení

MySQL je vyzrálý open source databázový systém s dlouhou historií, prověřený velkým

množstvím uživatelů, s kvalitní dokumentací a rozsáhlou komunitou. Po technické stránce

vyhovující, s dostatečnou rychlostí, nabízí rovněž nástroje pro optimalizaci výkonu. Určitou

nevýhodou může být například vlastnictví velkou komerční společností (Oracle), kdy není

jisté, jak bude s databází nakládáno budoucnu a zda nebudou budoucí komunitní verze chudší

o funkcionality, jež budou přesouvány do placených distribucí.

38 MySQL 5.6 Reference Manual: Table of contents. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit.

2013-04-08]. Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/index.html> 39 Chapter 1. MySQL Workbench Introduction. MYSQL. MySQL Workbench: Reference Manual [online]. 2013

[cit. 2013-04-08]. Dostupné z: <http://dev.mysql.com/doc/workbench/en/wb-intro.html>

34

3.2.2 PostgreSQL

PostgreSQL je open source databázový systém. Jeho historie sahá do roku 1986, kdy vznikl

jako projekt pod názvem POSTGRES na kalifornské univerzitě Berkeley. V současné době

není projekt vlastněn žádnou konkrétní firmou, na vývoji se podílí skupina dobrovolníků pod

jménem „PostgreSQL Development Group“. Poslední dostupná stabilní verze databáze je

9.2.4. Software je distribuován pouze v jedné edici, pod vlastní licencí PostgreSQL License,

která vychází z BSD a MIT licencí.40 Není možné zakoupit žádný oficiální support, nicméně

celosvětově existuje řada firem, které nabízí profesionální služby spojené s užíváním a admi-

nistrací PostgreSQL.

Technické detaily, HW a SW omezení

PostgreSQL je multiplatformní, instalační balíčky jsou dostupné pro operační systémy Win-

dows, BSD, MacOS, Solária a řadu Linuxových distribucí. Zdrojový kód je možno stáhnout

z GIT repository, součástí dokumentace je pak kapitola podrobně popisující komplikační pro-

ceduru pro příslušný operační systém.

Databáze je vyvíjena s důrazem na stabilitu a podporu standardů ISO/IEC, které speci-

fikují jazyk SQL. Poslední z těchto standardů byl vydán v roce 2011 pod názvem ISO/IEC

9075:2011. PostgreSQL implementuje většinu z částí popisovaných v této specifikaci,

s výjimkou Persistent Stored Modules a Object Language Bindings.41 Díky velké konformitě

s SQL standardy je PostgreSQL často vývojáři považováno za „open-source Oracle“.

PostgreSQL implementuje svůj vlastní procedurální jazyk PL/pgSQL, podobný Oracle

PL/SQL. K dispozici je navíc řada dalších modulů vyvinutých třetími stranami, které umož-

ňují psát funkce a procedury v Javě, PHP, Pythonu a dalších jazycích.42

Databázový engine nemá žádná omezení, co se týče maxima využité paměti nebo po-

čtu procesorů/jader. Není však podporován multithreading, místo toho je implementován pro-

cesní přístup – pro každé databázové spojení je vytvořen separátní proces v operačním systé-

40 License. PostgreSQL: About [online]. 2013 [cit. 2013-04-10]. Dostupné z:

<http://www.postgresql.org/about/licence/> 41 Appendix D. SQL Conformance. PostgreSQL 9.2.4 Documentation [online]. 2013 [cit. 2013-04-10]. Dostupné

z: <http://www.postgresql.org/docs/9.2/static/features.html> 42 H.3. Procedural Languages. PostgreSQL 9.2.4 Documentation: Appendix H. External Projects [online]. 2013

[cit. 2013-04-10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/external-pl.html>

35

mu. Každý takovýto proces využívá maximálně jedno procesorové jádro, tudíž i náročné do-

tazy jsou zpracovávány vždy pouze v jednom jádře.43

Databáze podporuje základní tabulkový partitioning. K dispozici jsou dva typy rozdě-

lovacích kritérií: Range a List.44 Je možné využít jen horizontálního partitioningu, rozdělení

tabulek podle sloupců není podporováno. Přímo na úrovni SQL jsou podporovány rovněž

tablespaces, což umožňuje rozložit databázové objekty (tabulky, indexy i celá schémata) na

různá fyzická úložiště a tím dosáhnout větší efektivity čtení a zápisu. Při vytváření nového

objektu je možné specifikovat tablespace, ve kterém bude objekt uložen, jinak bude použit

výchozí tablespace. Technika partitioningu dovolí implementovat různé optimalizace, napří-

klad umístit indexy na separátní rychlý SSD disk.

Samozřejmostí je podpora indexování. K dispozici jsou B-Tree, hash, GiST, SP-GiST

a GIN indexy.45 GiST a SP-GiST představují rozhraní pro implementaci indexovací strategie

založené na vyhledávacím stromu (GiST – Generalized Search Tree). Standardní distribuce

obsahuje implementace několika druhů indexování včetně fulltextu, jednorozměrných polí a

víceprvkových indexů. Je možná implementace svých vlastních indexovacích algoritmů jako

rozšíření standardní množiny.

Z hlediska výkonu při provádění SELECT dotazů nabízí PostgreSQL zajímavou funk-

cionalitu zvanou Window functions. Ta spočívá v aplikaci agregačních funkcí pouze nad

podmnožinou dat vracených dotazem. Podmnožina („window“) může být specifikována dle

různých kritérií. Tato funkcionalita může značně zjednodušit psaní analytických dotazů nad

Data presentation area, kde často potřebujeme provést statistické výpočty a aplikovat agre-

gační funkce. Window functions umožňují získat potřebná data už v rámci jednoho dotazu

tam, kde bychom tradičně museli použít vícero dotazů a spojit je pomocí JOINů.

43 PostgreSQL Hardware Performance Tuning. MOMJIAN, Bruce. UNIVERSITY OF LEEDS. PostgreSQL

Hardware Performance Tuning [online]. 2008 [cit. 2013-04-10]. Dostupné z:

<http://momjian.us/main/writings/pgsql/hw_performance/index.html> 44 5.9. Partitioning. PostgreSQL 9.2.4 Documentation: Chapter 5. Data Definition [online]. 2013 [cit. 2013-04-

10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/ddl-partitioning.html> 45 11.2. Index Types. PostgreSQL 9.2.4 Documentation: Chapter 11. Indexes [online]. 2013 [cit. 2013-04-11].

Dostupné z: <http://www.postgresql.org/docs/9.2/static/indexes-types.html>

36

Dokumentace a komunita

Oficiální dokumentace je kvalitní, rozsáhlá, podrobná a přehledná. K dispozici jsou jak online

webová verze, tak PDF pro tisk a offline prohlížení. Tištěná verze dokumentace, včetně pří-

loh, by čítala přes dva a půl tisíce stránek. K nahlédnutí je rovněž i kompletní dokumentace

k předchozím releasům, zpětně až k verzi 6.3.

Dokumentace popisuje všechny aspekty spojené s instalací, administrací a používáním

PostgreSQL. Nechybí informace o API rozhraní, zálohování a monitorování databáze,

PL/pgSQL jazyku, informačním schématu a dalších technických podrobnostech.46

Kromě oficiální dokumentace existuje celé množství komunitních zdrojů informací.

Na doméně postgresql.org je provozována velká skupina mailing listů, rozdělených do mnoha

kategorií (administrace, preformace, SQL, vývoj aj). Listy jsou velmi aktivní – nové dotazy i

odpovědi přibývají každý den ve všech kategoriích. Jako další informační zdroj může poslou-

žit PostgreSQL Wiki přeložená do několika světových jazyků a webové stránky Planet Post-

greSQL, které slouží jako blog pro publikaci článků o databázi. Kromě výše popsaných zdrojů

provozovaných na hlavní doméně postgresql.org existují ještě i nezávislé komunitní zdroje

podporované uživateli v různých zemích. Z českých zdrojů můžeme například uvést wiki na

adrese postgres.cz, spravovanou Sdružením českých a slovenských uživatelů PostgreSQL.

Administra ční rozhraní a utility

Ve standardním instalačním balíčku je distribuován program pgAdmin, který slouží jako

standardní administrační nástroj pro PostgreSQL. Program je licencován pod licencí Postgre-

SQL, stejně jako samotná databáze. PgAdmin je grafický nástroj. Umožňuje správu databázo-

vých instancí, tablespaců, práci s databázovými objekty (vytváření, úpravy), spouštění SQL

dotazů, zobrazuje podrobné informace, statistiky aj. Nástroj obsahuje rovněž grafický query

analyzer, který pomáhá při optimalizaci SQL dotazů.47

46 Table of Contents. PostgreSQL 9.2.4 Documentation [online]. 2013 [cit. 2013-04-11]. Dostupné z: <

http://www.postgresql.org/docs/9.2/interactive/> 47 Features. PgAdmin: PostgreSQL Tools [online]. 2013 [cit. 2013-04-11]. Dostupné z:

<http://www.pgadmin.org/features.php>

37

PgAdmin je určen pro operační systémy MacOS a Windows, ke stažení je i zdrojový kód pro

kompilaci pro jiné platformy. Programu je věnován samostatný web pgadmin.org, kde se

kromě instalačních balíčků nachází i online dokumentace.

Kromě PgAdminu lze využít ještě celou řadu aplikací pro účely administrace, vývoje

SQL a PL/pgSQL, migrace dat, zálohování, provozního reportování a analýzy logů. Aplikace

jsou vyvíjeny třetími stranami. Mnoho z těchto aplikací je doporučeno na oficiálním webu

PostgreSQL v sekci Software Catalogue. Některé z aplikací patří do kategorie svobodného

software, jiné jsou komerční nástroje.

Celkové hodnocení

PostgreSQL je solidní open source databáze s mnohaletou tradicí. K její přednostem patří úsilí

o co nejkompletnější implementaci SQL standardů, široká paleta užitečných funkcionalit a

stabilita. K softwaru existuje kvalitní dokumentace a široká podpora aktivní komunity. Admi-

nistrační rozhraní je vynikající, existuje i široká řada utilit pro správu databáze i dat samot-

ných.

3.2.3 Oracle Database Express Edition

Oracle Database Express Edition (zkráceně Oracle XE) je volně dostupná edice široce známé

relační databáze Oracle. Aktuální verze nabízená společností Oracle je 11g Release 2, což

odpovídá také verzi plných (Standard, Standard One a Enteprise) edicí. Oracle XE je distribu-

ován pod vlastní licencí "OTN Developer License Terms for Oracle Database Express Edition

terms". Licence povoluje libovolné využití databáze pro účely vývoje a provozování aplikací

a distribuci spolu s vlastními aplikacemi. Je však nutno poznamenat, že se nejedná o open

source software – zdrojové kódy nejsou volně dostupné a licence výslovně zakazuje dekompi-

laci a reverse-engineering binárního kódu.48

Instalační balíčky jsou nabízeny pro platformy Windows (pouze 32-bitová verze) a

Linux (pouze 64-bitová verze).

48 Oracle Technology Network Developer License Terms for Oracle Database Express Edition. Oracle Techno-

logy Network: Licenses [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.oracle.com/technetwork/licenses/database-11g-express-license-459621.html>

38

Technické detaily, HW a SW omezení

Express edice nejznámějšího databázového software bohužel trpí mnoha omezeními. Nejzá-

sadnější omezení se týkají vyžití systémových prostředků a maximálního množství dat ulože-

ných v databázi. Oracle XE využije maximálně jeden procesor, nezávisle na tom, kolik proce-

sorů je fyzicky v systému nainstalováno. Maximální množství paměti, které databáze využije,

je jeden GB. A nakonec, objem dat perzistovaných v databázi nesmí překročit 11 GB, včetně

systémových dat a metadat databáze samotné.49

Celkové hodnocení

Omezení zabudovaná v Oracle Express Edition jsou natolik limitující, že bohužel vylučují

možnost použití databáze v datovém skladu. Další vlastnosti databáze jsme proto již nezkou-

mali. Oracle XE zajisté najde své uplatnění při vývoji a testování, stejně jako v nenáročných

aplikacích bez potřeby pracovat s velkými objemy dat, pro které nabídne vysoce stabilní da-

tovou základnu. V datovém skladu však není myslitelné pracovat s horním limitem 11 GB pro

data, stejně jako omezit HW výpočetní prostředky na 1 CPU a 1 GB operační paměti.

3.2.4 Firebird

Firebird je další z open source relačních databázových systémů. Vznik jako fork zdrojového

kódu databáze Borland InterBase v roce 2000. V současné době poslední stabilní release je

označen 2.5.2. Software je distribuován poněkud neobvykle pod dvěma licencemi zároveň.

První, InterBase Public License, se vztahuje na části zdrojového kódu převzaté z původní In-

terBase. Druhá, Initial Developer’s License, pokrývá změny provedené v projektu Firebird

samotném. Obě licence umožňují použití databáze zdarma, provádění změn v kódu a rekom-

pilaci, případně distribuci databáze jako součásti většího projektu.50

49 Installation Guide: 3 Licensing Restrictions. Oracle® Database Express Edition [online]. 2013 [cit. 2013-04-

14]. Dostupné z: <http://docs.oracle.com/cd/E17781_01/install.112/e18803/toc.htm#autoId11> 50 The Firebird licenses. Firebird: Reference Manual [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/qsg25-firebird-

licenses.html>

39

Technické detaily, HW a SW omezení

Firebird je multiplatformní, podporovány jsou OS Windows, Linux, MacOS X. Dále jsou

k dispozici i zdrojové kódy určené pro vlastní kompilaci. Zdrojové kódy i binární instalační

balíčky jsou hostovány na serveru Sourceforge.

Databázový server je nabízen ve třech edicích, ve Firebird terminologii nazývaných

„architektury“ – Classic Server, SuperClassic a Superserver. Edice se liší především ve způ-

sobu zacházení se systémovými prostředky. Kdežto Classic vytváří pro každé spojení nový

proces v operačním systému, SuperClassic a Superserver běží v rámci jediné procesní instan-

ce.51 Zajímavostí je výchozí konfigurační nastavení Superserver edice pro Windows, kdy da-

tabáze použije pouze jedno procesorové jádro. V případě, že administrátor při instalaci pře-

hlédl tuto informaci v dokumentaci, může to zpočátku způsobit výkonnostní problémy. Na-

stavení ovšem lze snadno změnit tak, aby bylo využito maximum systémových prostředků.

Všechny edice jsou nabízeny jak v 32-bitové, tak 64-bitové verzi.

Databáze implementuje standard ISO/IEC SQL-92 Entry Level a částečně SQL:1999.

K dispozici je podpora uložených procedur prostřednictvím jazyka PSQL (FireBird Procedu-

ral SQL). Podporovány jsou rovněž triggery.52 Standardní množinu funkcí lze rozšířit skrze

externí moduly napsané v jazyce C/C++ nebo Delphi (Object Pascal).

Firebird podporuje ACID transakce, včetně dvoufázového commitu a vytváření

transaction savepoints. Databáze využívá tzv. „Multi-Generational Architecture“, kdy pro

různé současně běžící transakce existují různé verze téhož záznamu. To umožňuje transakcím,

které čtou data, neblokovat jiné transakce, které stejná data ve stejný okamžik zapisují.

Pro optimalizaci čtení jsou k dispozici možnost tvorby jednoduchých indexů. Typ (al-

goritmus) indexu nelze v DDL explicitně specifikovat, z podrobné technické dokumentace je

patrné, že se jedná o B-Tree indexování. Podporována je konstrukce „COMPUTED BY“, ve

které lze specifikovat výraz, návratová hodnota kterého je použita při výpočtu indexu. Tento

51 Classic, SuperClassic or Superserver?. Firebird: Reference Manual [online]. 2013 [cit. 2013-04-14]. Dostupné

z: <http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/qsg25-classic-or-

super.html> 52 Overview of Features: Summary of features. Firebird: Reference Manual [online]. 2013 [cit. 2013-04-14].

Dostupné z: <http://www.firebirdsql.org/manual/ufb-about-features.html>

40

způsob indexování je vhodný, pokud dopředu přesně víme, jaké SELECT dotazy budeme nad

tabulkou spouštět, a můžeme index pro tyto dotazy optimalizovat.53

Databáze nenabízí žádnou možnost partitioningu.54

Dokumentace a komunita

Oficiální webové stránky firebirdsql.org poskytují množství dokumentace k databázi, včetně

řady minulých releasů. Některé dokumenty jsou dostupné i v jiných jazycích než anglicky,

včetně češtiny. Většina dokumentace je však psána v anglickém jazyce.

Dokumentace je rozdělena do několika kategorií (Release Notes, Reference Manuals,

White Papers a další). Navzdory tomu je členění v jednotlivých kategoriích poněkud nepře-

hledné, míchají se různé release a různé jazykové verze na jednom místě a ne vždy se podaří

najit požadovanou informaci či dokument na první pokus. Celková úroveň hlavních referenč-

ních příruček je vyhovující, místy možná poněkud chybí hlubší technický vhled do problema-

tiky. Tento nedostatek se snaží pokrýt separátní příručka „Firebird Internals“, která je však

vytvářena hlavně extrakcí ze zdrojových kódů a stále není dokončena.55

Kromě oficiální dokumentace existuje řada dalších informačních zdrojů odkazovaných

z hlavního webu. Jedná se o externí webové stránky, blogy a články, věnující se povětšině

nějakému konkrétnímu implementačnímu problému s využitím Firebird.

Uživatelská a vývojářská komunita je aktivní. Dotaz je možno vznést v některém

z mailing listů, jak v anglickém, tak i dalších jazycích, včetně češtiny, nebo na IRC kanálu

#firebird na serveru freenote.net.

Placený support je možno zakoupit od některé z komerčních společností, zabývajících

se poskytováním profesionální podpory pro databázi.

53 INDEX. Firebird 2.5 Language Reference: DDL statements [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/langrefupd25-ddl-

index.html> 54 Partitioning System (Like Oracle). Firebird Tracker: Firebird Core [online]. 2009 [cit. 2013-04-14]. Dostupné

z: <http://tracker.firebirdsql.org/browse/CORE-777> 55 Introduction. Firebird Internals [online]. 2009 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/fb-internals.html>

41

Administra ční rozhraní a utility

K Firebirdu neexistuje žádný oficiální grafický administrační nástroj. Uživatelé mají na výběr

z řady volně dostupných i placených programů pro správu databáze. Doporučovaným nástro-

jem je FlameRobin.56 FlameRobin je dedikovaný multiplatformní nástroj pro správu Firebir-

du, distribuovaný pod BSD licencí. Poslední stabilní build nese označení 0.9.2.1, z čehož lze

usuzovat, že se zatím ještě nejedná o zcela vyzrálý produkt.

Součástí standardního distribučního balíčku je řada command-line utilit, které umož-

ňují provádět spouštění SQL příkazů, zálohování, administraci uživatelů, výpočet statistik,

opravu poškozených databází a rozdělení souborů na více částí (nejedná se o nástroj umožňu-

jící partitioning, ale o metodu, jak zacházet se velkými soubory, které vzniknou při zálohová-

ní databáze).

Celkové hodnocení

Firebird je volně dostupná databáze, která zajisté najde řadu uplatnění tam, kde například

z nějakých důvodů není možno použít některou z „vyzrálejších“ open source alternativ. Pro

použití v datovém skladu však se nejeví jako vhodná. Kritickým bodem je absence partitio-

ningu a pokročilých indexovacích technik. Ke slabinám rovněž patří slabá konformita s SQL

standardy nebo absence plnohodnotného administračního nástroje. Rovněž v kvalitě doku-

mentace prohrává Firebird konkurenci v podobě MySQL nebo PostgreSQL.

3.2.5 Microsoft SQL Express Edition

Podobně jako Oracle, i společnost Microsoft nabízí jednu z edicí svého SQL Serveru pro vyu-

žití zdarma. Edice se jmenuje Microsoft SQL Server 2012 Express Edition a je dostupná

k použití pod vlastní EULA (End User License Agreement) licencí.57 Licence povoluje použi-

tí databáze ve vlastních aplikacích a distribuci v balíčku s vlastními aplikacemi. Zajímavostmi

v licenčním ujednání jsou zákaz provozování produktu na jiné platformě než Windows (což 56 Third-party Tools. Firebird Downloads [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/en/third-party-tools/> 57 Licenční ujednání není dostupné online, je součástí instalačního balíčku, zobrazuje se v průběhu instalace a po

dokončení instalace je nakopírováno na pevný disk.

42

by bylo stejně dosti obtížné) a zákaz publikace jakýchkoli benchmark testů databáze bez

předchozího souhlasu společnosti Microsoft.

SQL Server 2012 Express je nabízen ke stažení v několika instalačních baličkách, kte-

ré se liší podle obsahu. Lze vybrat pouze samotný SQL Server, nebo balíček s rozšiřujícími

nástroji jako Management Studio, Express Tools a Reporting Services. Všechny balíčky jsou

dostupné pouze pro platformu Windows.

Technické detaily, HW a SW omezení

Edice Express s sebou přináší velká omezení, která jsou velmi podobná omezením obdobného

produktu Oracle XE. Databázový stroj využije výpočetní kapacitu maximálně jednoho proce-

soru, a i to pouze do čtyř jader, a alokuje maximálně jeden gigabajt operační paměti. Objem

dat, které můžeme do databáze uložit, je limitován 10 GB.58 Tato omezení jsou natolik zásad-

ní, že bohužel činí zkoumání dalších vlastností produktu zbytečnými.

Celkové hodnocení

Microsoft SQL Server 2012 Express Edition je obdobou databáze Oracle Express Edition a

nahradí jí pravděpodobně v případech, kdy existuje těsnější integrace na Microsoft prostředí a

aplikace napsané na platformě .NET. Databáze je výrazně limitována, co se týče využití HW

prostředků a množství perzistovaných dat, což vylučuje její nasazení v datovém skladu.

3.3 Reportingový software

Reporting patří k poslední logické komponentě celkového uvažovaného BI řešení. Často však

již není považován za součást datového skladu samotného, nýbrž za separátní modul, který

z Presentation Area datového skladu čerpá data pro naplnění reportů. Cílem této práce není

navrhnout plnohodnotnou reportovací/analytickou vrstvu, nebudeme se zde proto zabývat

komplexními OLAP a Data Mining nástroji a omezíme se na zkoumání dostupných reportin-

gových technologií, kterých využijeme v praktické ukázce pro demonstraci způsobu prezenta-

ce dat konečným uživatelům – konzumentům reportů.

58 Features Supported by the Editions of SQL Server 2012. Microsoft Technet [online]. 2012 [cit. 2013-04-14].

Dostupné z: <http://technet.microsoft.com/en-us/library/cc645993.aspx>

43

Ke zkoumání byly vybrány tři open source reportovací platformy: JasperReports, BIRT a Pen-

taho Reporting. Kritériem výběru byla především dostupnost grafického vývojového nástroje

pro vizuální návrh reportů, možnost exportovat výstupy reportů do různých formátů a dále

dostupnost serverové distribuční platformy pro doručení reportů konečným uživatelům. To ze

seznamu vyloučilo například JFreeReport, což je pouze knihovna interpretující XML definice

reportů, nebo Open Reports a SpagoBI, které slouží pouze jako adaptéry/interpretery pro re-

porty definované v jiných platformách a nenabízí žádný editor reportů.

3.3.1 JasperReports

JasperReports je SW platforma dodávaná společností Jaspersoft, určená pro vývoj a provozo-

vání reportů. Platforma je tvořena řadou produktů. Jaspersoft Studio a iReport Designer jsou

grafická návrhová prostředí, která slouží k vývoji reportů. JasperReports Server je Java EE

serverová aplikace určená ke spouštění reportů a jejich distribuci konečným uživatelům. Po-

slední komponentou je JasperReports Library, což je program, který umožňuje spouštět vy-

tvořené reporty mimo Studio, Designer nebo Server. Library je napsána v Javě a lze jí využí-

vat jak samostatně zavoláním z příkazové řádky, tak zabudovat jako knihovnu do vlastní Java

nebo Java EE aplikace. Library tvoří jádro celé platformy a je interně použita pro ve všech

ostatních aplikacích, včetně Serveru.

Všechny výše popsané komponenty jsou dostupné v řadě komerčních a jedné komu-

nitní edici. Komerční edice nabízí oproti komunitní řadu funkcionalit navíc, například mož-

nost exportovat reporty do formátu Flash či možnost vytvářet Ad Hoc reporty. Předmětem

našeho zájmu je však Community Edition, licencovaná pod GPL (GNU General Public Li-

cence).59 Co se týče verzování, platforma se snaží dodržovat jednotné číslování všech produk-

tů, aktuální major/minor verze je 5.0, jednotlivé komponenty se liší pouze číslem buildu, s

výjimkou Studia, které nese označení 2.0.2. Ke stažení na serveru SourceForge jsou k dispo-

zici jak binární/instalační, tak i zdrojové balíčky.

Pro návrh a vytváření definic reportů slouží hned dvě návrhová prostředí: Jaspersoft

Studio a iReport Designer. Designer je historicky starší aplikace postavená na jádře produktu

NetBeans. Studio je produkt s velmi podobnou funkcionalitou, vybudovaný však na platformě

Eclipse – jedná se o portování funkcí z iReport Designeru. Existence dvou produktů je však

59 Compare Editions. Jaspersoft Business Intelligence Software [online]. 2013 [cit. 2013-04-26]. Dostupné z:

<http://www.jaspersoft.com/editions>

44

pouze dočasný stav, společnost plánuje v budoucnu vývoj starší aplikace iReport Designer

ukončit a podporovat pouze novější Studio.60 Poslední zveřejněný release Studia je 2.0.2, což

nekoreluje s primárním číslováním celé platformy. Po vyzkoušení obou aplikací vzniká (mož-

ná subjektivní) dojem, že Designer je vyzrálejší a stabilní program, kdežto Studio, přesto že

nabízí stejné funkcionality, je hůře ovladatelné a méně přehledné, právě možná díky kratší

vývojové historii.

Technické detaily

Životní cyklus Jasper reportů se skládá ze tří fází - návrhu, kompilace a spuštění. Nejprve je

report vytvořen (navržen) ve Studiu nebo Designeru. Definice reportu je XML soubor, který

obsahuje dotaz nebo skript načítající data z datového zdroje, funkce aplikované na načtená

data a grafickou prezentaci reportu. Obě aplikace umožňují detailní návrh podoby reportu, jak

po grafické, tak po datové stránce. Kromě tabulkového výčtu hodnot je možné využít i něko-

lik typů grafů.

Report je možné spustit (vyzkoušet) přímo v návrhovém prostředí. Spuštění reportu

znamená jeho naplnění daty ze specifikovaného datového zdroje a vytvoření finální vizuální

podoby. Je podporována celá řada výstupních formátů včetně HTML, PDF, MS Excel, XML,

Doc nebo Open Office. Paleta využitelných datových zdrojů je velmi široká, kromě klasic-

kých relačních databázi jsou podporovány XML a CSV soubory, Hibernate, Mondrian OLAP,

JSON, Hadoop, Hive a další. Pro spuštění reportu mimo Studio nebo Designer je potřeba jej

zkompilovat do binární podoby a využit Java programu JasperReports Library pro vygenero-

vání výstupu.61

Zajímavější alternativou je však nasazení reportu na JasperReports Server. Jedná se o

webovou aplikaci napsanou v Java EE. Pro nasazení aplikace jsou podporovány aplikační

servery JBoss, Tomcat a Glassfish. Server lze využít jako centrální místo pro distribuci repor-

tů uživatelům, včetně přidělení uživatelských rolí k reportům. Rovněž je možné plánovat pra-

videlné generování reportů a jejich automatické odesílání konzumentům prostřednictvím

emailu. Server funguje zároveň jako repozitář pro definice reportů a umožňuje Studiu i

60 Introduction to Jaspersoft Studio. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Dostupné z:

<http://community.jaspersoft.com/wiki/introduction-jaspersoft-studio> 61 JasperReports Library - Tutorial. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Dostupné z:

<http://community.jaspersoft.com/wiki/jasperreports-library-tutorial>

45

Designeru ukládat definice reportů centrálně.62 Nasazení reportu na Server je možné buď pří-

mo z návrhové aplikace, či lze nejprve report exportovat do souboru a následně ručně impor-

tovat na server skrze webové rozhraní Serveru.

Dokumentace, komunita

Hlavní dokumentace k platformě je tvořena sadou PDF souborů popisujících jednotlivé pro-

dukty. Část dokumentů je přístupná až po bezplatné registraci. Mezi dokumenty zcela chybí

příručka ke Studiu, pravděpodobně z toho důvodu, že aplikace je mladá a dokumentace zatím

ještě nebyla vytvořena. Pro většinu funkcionalit ale postačí velmi podrobný manuál k iReport

Designeru. Kvalita dokumentů je dobrá, nicméně i online dokumentace by byla určitě plusem,

například kvůli snadnějšímu hledání z Googlu.

Kromě PDF příruček je uživatelům k dispozici volně přístupná Community Wiki, kte-

rá obsahuje přínosné Getting Started, FAQ a Tutorial články pro počáteční seznámení se s

produkty. Kromě toho si můžeme přečíst i odbornější články, pokrývající pokročilejší témata

ohledně konfiguračních nastavení, řešení specifických problémů aj. Orientace ve struktuře

Wiki je zpočátku trochu nepřehledná, ale po krátké chvíli je možno si na ní zvyknout. Podpo-

ru komunity zprostředkovává „Answers“ sekce, kde je možné položit jakýkoli dotaz týkající

se některého z produktů a čekat na odpověď některého z vývojářů či jiných uživatelů. Zběžné

projití seznamu otázek však ukazuje, že většina zůstává alespoň týden nezodpovězena, popří-

padě není zodpovězena vůbec.

Celkové hodnocení

JasperReports Community je solidní open source platforma pro tvorbu rozlišných typů reportů

z rozmanité škály zdrojů dat. Mezi výhody patří přítomnost report serveru a jeho snadná inte-

grace s návrhovou aplikací (Studiem nebo Designerem). Přínosem je též možnost zabudovat

Reports Library do svých vlastních aplikací, například do již existujících manažerských portá-

lů. Nevýhodou je souběžná existence dvou návrhových prostředí - Studia a Designeru - z

nichž novější Studio není zatím plně dokončené a není dostatečně zdokumentováno. Oficiální

dokumentace a Community Wiki poskytují pro vývojáře a administrátory dostatek informací,

62 Getting Started with JasperReports Server. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Dostupné z:

<http://community.jaspersoft.com/wiki/getting-started-jasperreports-server>

46

na zodpovězení otázek členy komunity se však nelze velmi spoléhat. I přes tyto menší nedo-

statky však pro účely malých a středních firem komunitní edice JasperReports postačuje.

3.3.2 BIRT

BIRT (Business Intelligence and Reporting Tools) je open source reportingový systém. Sys-

tém se skládá ze dvou komponent: grafického návrhového prostředí založeného na platformě

Eclipse (Designer) a dále z programu (Engine), který umožňuje vytvořené reporty spouštět.

Engine je možné využívat samostatně nebo jej zabudovat do desktop nebo serverové Java

aplikace. Jak designer, tak engine jsou licencovány pod Eclipse Public License v1.

Projekt BIRT byl založen společností Actuate Corporation ve spolupráci s Eclipse

Foundation v roce 2004.63 Společnost Actuate nabízí rovněž i řadu komerčních produktů za-

ložených na platformě BIRT a rozšiřujících jí o nové funkcionality.64

Technické detaily

BIRT designer je grafické návrhové prostředí určené pro vyvářeni definic reportů. Designer je

postaven na platformě Eclipse, s tím, že přidává do Eclipse nové funkcionality pro vývoj re-

portů a ponechává přitom standardní sadu funkcionalit, čímž se liší od jiných grafických ná-

strojů (Japsersoft Studio, Talend Open Studio), které původní množinu funkcionalit redukují

či odstraňují úplně. BIRT Designer tedy funguje jako rozšíření, které je možné přidat i do již

existující instalace Eclipse.

BIRT reporty se skládají z datového zdroje, datových transformací, business logiky a

grafické prezentace.65 Z datových zdrojů jsou podporovány relační databáze skrze sadu před-

definovaných i generická JDBC spojení, dále soubory MS Excel, CSV, XML, big data

Cassanda a Hive a nakonec volání webové služby. Ze zdrojových dat vytváří uživatel datase-

ty, které jsou základem pro naplnění reportu daty. Tvorba datasetu závisí na typu zdroje dat,

63 Eclipse BIRT: Ride the Open Source Wave of the Future. Actuate, The BIRT Company [online]. 2013 [cit.

2013-04-27]. Dostupné z: <http://www.actuate.com/products/eclipse-birt/summary/> 64 ActuateOne Products for Eclipse BIRT. Eclipse And Acutate BIRT Products [online]. 2013 [cit. 2013-04-27].

Dostupné z: <http://www.birt-exchange.com/be/products/> 65 The Anatomy of a Report. BIRT Overview [online]. 2013 [cit. 2013-04-27]. Dostupné z:

<http://www.eclipse.org/birt/phoenix/intro/>

47

v případě relační databáze se jedná napříkad o vytvoření SQL dotazu namapování získaných

sloupců do položek datasetu.

Datasety mohou být dále dle potřeby rozšířeny o nové dopočítané sloupce, jejichž

hodnotu kalkuluje BIRT, případně podrobeny dalším potřebným agregačním výpočtům a

transformacím. Pro definice transformací a vyhodnocování výrazů v celém BIRTu je použit

jazyk JavaScript.

Datasety jsou vloženy do grafického návrhu reportu. Návrh se vytváří z tabulek, texto-

vých polí, seznamů a jiných elementů, podobně, jako se například vytváří webové stránky

v HTML. Do reportu je možné vložit i graf. Lze vybrat z několika druhů grafů (sloupcový,

koláčový, kombinovaný a další). Pro graf definujeme zdrojová data (která vychází z data setů

definovaných v předchozím kroku), potřebné agregační výpočty, vzhled a další nastavení.

Průvodce pro vytvoření grafu lze přirovnat k podobnému průvodci z aplikace MS Excel. Fi-

nální výstup spuštěného reportu je možno získat v mnoha podobách, mimo jiné HTML, MS

Word, Excel, PDF a PPT, Open Office ODP, ODS a ODT, PDF či Postskript.

Samotná definice každého reportu je jediný XML soubor, ve kterém jsou zapsány

všechny potřebné prvky – datové zdroje, SQL dotazy, grafická prezentace, aktivní prvky aj.

Designer navíc umožňuje použití tzv. libraries, do kterých je možné např. datové zdroje, SQL

dotazy nebo grafické šablony externalizovat a následně sdílet mezi mnoha reporty, či dokonce

jinými vývojáři.

Pokud chceme report spustit vně designeru, můžeme využít Java aplikace Report En-

gine. Engine se pouští z příkazové řádky zavoláním s příslušnými parametry, například cestou

k souboru s definicí reportu. Primárním účelem Engine je ale jeho zabudování do vlastních

aplikací, už desktopových nebo serverových. Součástí Engine jsou Java EE třídy, Servlety a

JSP tagy pro snadnější integraci do webové aplikace.

Standardní balíček obsahuje také již připravenou malou webovou aplikaci, jež slouží

k zobrazování reportů. Aplikace však nabízí pouze základní funkcionalitu zobrazování a ex-

portu a nepodporuje například zabezpečení, uživatelské role či automatické spouštění reportů

a jejich distribuci.

Dokumentace, komunita

BIRT je velmi dobře zdokumentován. Oficiální dokumentace je přehledně sdružena na ofici-

álních webových stránkách a obsahuje všechny potřebné informace spojené s užíváním, ná-

vrhem reportů a vývojem vlastních rozšíření nad platformou. K dispozici jsou kromě tutoriálů

48

a Getting Started článků podrobné reference jak pro návrh reportů v designeru, tak Java API

všech tříd ze zdrojového kódu. Je však poněkud překvapivé, že řada dokumentů je datována

rokem 2004 nebo 2005, kdy projekt teprve začínal.

BIRT disponuje širokou a aktivní komunitou. Jako základna slouží webové stránky

birt-exchange.com podporované společností Actuate. Na těchto stránkách najdeme rovněž

sekci tutoriálů, a dále velmi aktivní fórum s tisíci témat a příspěvků, pokrývajících široké

spektrum témat. Dále tu najdeme i sekci DevShare, kde uživatelé nabízí svoje vlastní rozšíření

platformy, a také tipy a triky pro užití i vývoj.

Celkové hodnocení

BIRT nabízí dobrou platformu pro vývoj reportů. Designer je přehledně uspořádán, je dosta-

tečně intuitivní a snadno ovladatelný. Celá platforma je dobře dokumentována a podporována

aktivní komunitou. Ke slabým stránkám z našeho úhlu pohledu je však absence plnohodnot-

ného serveru pro distribuci reportů uživatelům. Filozofií BIRTu je nabídnout především kva-

litní designer a řešení pro distribuci a konzumaci reportů nechat vývojáře implementovat

podle konkrétních potřeb projektu. Nechceme-li tedy investovat dodatečné prostředky do vý-

voje, není pro nás BIRT správnou volbou.

3.3.3 Pentaho Reporting

Pentaho Reporting Community Edition je open source reportingová platforma distribuovaná

společností Pentaho Corporation pod licencí GPL (General Public License).66 Platforma zahr-

nuje komponenty Pentaho Report Designer, Pentaho Reporting Engine a Pentaho BI Server.

Poslední stabilní verze pod označením 3.9.1 byla zveřejněna v listopadu roku 2012.

Všechny komponenty jsou implementovány v jazyce Java (v případě serveru Java EE),

proto je možné provozovat je v jakémkoli operačním systému, kde je Java nainstalována.

66 Pentaho BI Platform License FAQ. Pentaho Open Source Business Intelligence [online]. 2013 [cit. 2013-04-

28]. Dostupné z: <http://community.pentaho.com/faq/platform_licensing.php>

49

Technické detaily

Pentaho Report Designer je desktopová aplikace sloužící k návrhu definic reportů. Autoři se

rozhodli nevyužít žádné hotové Rich Client platformy (jako například Eclipse nebo NetBeans)

a napsali celé řešení na zelené louce, což se bohužel negativně podepsalo na grafickém vzhle-

du a ovladatelnosti programu. O funkcionality ovšem program ochuzen není a nabízí stejnou

paletu nástrojů jako konkurenční řešení (například JasperReports nebo BIRT, popisované dří-

ve v této kapitole). Definice reportu se opět skládá z datového zdroje, jednoho či více datase-

tů, jež jsou prezentovány v navrženém grafickém rozložení, a transformací na daty, pokud

jsou potřeba. Report akceptuje vstupní parametry, pomocí kterých jej lze učinit interaktivním

– uživatel tak například může změnit období, pro které jsou data vypočtena.

Jako datové zdroje slouží JDBC spojení pro relační databáze a dále Pentaho Data Inte-

gration, Pentaho Analysis (Mondrian), XLS, CSV a XML soubory a volání Java třídy. Nad

načtenými daty lze spouštět uživatelem definované dodatečné skripty, na výběr jsou jazyky

Groovy nebo ECMAScript (JavaScript). Tělo reportu se skládá z řady vodorovných pásem

(hlavička stránky, reportu, patička a další), do kterých myší přetahujeme proměnné a sloupce

z datasetů. Iterace přes řádky datasetu pak způsobí opakované vypsání určených pásem do

výstupu. Do reportu je možno vložit i jeden či více grafů. Jako množina dat pro grafy opět

složí uživatelem definované datasety. Pro práci s daty a psaní výrazů jsou uživateli k dispozici

zabudované utility funkce. Výstup reportu je možný do formátu PDF, MS Excel, HTML,

Text, RTF, XML a CSV.67

Definice reportu navrženého v Designeru je představována binárním .prpt souborem

v proprietárním formátu. Výstup reportu je možno vygenerovat s využitím komponenty Re-

porting Engine. Engine slouží zároveň jako sada knihoven pro zabudování Pentaho Reportin-

gu jak do desktopových, tak do serverových aplikací. Platforma také nabízí již připravený

plnohodnotný Pentaho BI Server určený k nasazování a spouštění reportů. Integrace se serve-

rem je zabudována již do Designeru a umožňuje snadnou publikaci reportu na Server. Server

umožňuje definovat pro reporty uživatelská práva. Je podporována i integrace s LDAP serve-

rem pro získání uživatelských oprávnění z centrálního místa ve firmě.68

67 Pentaho Reporting. Pentaho Reporting Project [online]. 2013 [cit. 2013-04-28]. Dostupné z:

<http://reporting.pentaho.com/> 68 Changing to the LDAP Security DAO. Pentaho Wiki [online]. 2013 [cit. 2013-04-28]. Dostupné z:

<http://wiki.pentaho.com/display/ServerDoc2x/Changing+to+the+LDAP+Security+DAO>

50

Dokumentace, komunita

Dokumentace, která je sdílená pro všechny produkty platformy Pentaho, byla již rozebíraná

v kapitole 3.1.2 (Pentaho Data Integration). Pro dokumentaci pro Pentaho Reporting v zásadě

platí ty samé výtky popsané v uváděné kapitole. Problematická je především Wiki, jejíž část

věnující se Reporting platformě je dosti nekvalitní. Informace ve Wiki jsou bohužel často

roztroušené, nepřehledné, chybí části článků a přítomny jsou dokonce kategorie s názvem

„Seriously Outdated Texts“. Celkově Wiki působí chaoticky nedůvěryhodně, a přesto, že její

účelem je poskytovat jeden z hlavních zdrojů informace pro komunitní edici Pentaho Repor-

tingu, hledání v ní je bohužel nesnadné a není vůbec zaručeno, že uživatel dostupnou infor-

maci nalezne.

Celkové hodnocení

Ačkoli, co se týče funkcionalit, nezaostává Pentaho za jinými obdobnými platformami, od

jejího použití odrazuje poměrně nepřehledné ovládání, neergonomické rozhraní Designeru a

málo kvalitní a roztroušená dokumentace. Výhodou je naopak snadná integrace s jinými pro-

dukty Pentaho, včetně Pentaho Data Integration a Pentaho Analytics. Použití Pentaho Repor-

tingu by tedy mělo svoje odůvodnění v případě, že pro Business Intelligence v našem podniku

již jiné Pentaho produkty využíváme.

3.4 Závěr teoretické části

Ve teoretické části práce jsme se podrobně věnovali průzkumu jednotlivých technologií pro

implementaci tří základních komponent datového skladu – ETL nástroje, relační databáze a

reportovací platformy. Pro každou z kategorií jsem nakonec vybral jeden konkrétní produkt,

který se pro využití v požadovaném řešení hodí svými vlastnostmi nejvíce.

Jako relační databáze byl zvolen produkt MySQL 5.6 Community. Důvodem pro výběr

této databáze je její vyzrálost, mnohačetná referenční nasazení, dobrá výkonnost, možnost

využití různých optimalizačních technik, absence umělých HW a SW omezení a vynikající

dokumentace, spolu s rozsáhlou uživatelskou komunitou. Téměř rovnocennou alternativu

však nabízí i produkt PostgreSQL, rovněž velmi kvalitní software. MySQL bylo nakonec vy-

bráno z důvodu možnosti volby storage engine pro různé typy tabulek i schémat v rámci jedné

51

databázové instance. Záměrem je především využití MyISAM tabulek pro nenormalizované

datamarty, což má zrychlit SELECT dotazy nad úložištěm. Další zkoumané produkty –

Oracle XE, Microsoft SQL Express Edition a Firebird se pro využití v datovém skladu nehodí

ať už z důvodů značných HW a SW omezení nebo nedostatečných funkcionalit a výkonnosti.

Jako ETL nástroj bylo vybráno Talend Open Studio for Data Integration. Tento nástroj

nabízí oproti ostatním produktům nejširší paletu funkcionalit při vytváření transformací, pod-

poruje verzování jobů a export hotových skriptů do několika formátů včetně samostatně spus-

titelných balíčků, což nakonec převážilo nedostatek v podobě absence serverové části pro

nasazení a spouštění transformací. Software disponuje dobrou dokumentací, je snadno ovlada-

telný, přehledný a dostatečně intuitivní. Druhou platformou, která by rovněž přicházela

v úvahu, je Pentaho Data Integration, která disponuje i malým serverem Carte pro běh trans-

formací, Spoon designer je však o něco hůře ovladatelný a ergonomický, velkým mínusem je

dále zhoršená kvalita dokumentace.

Jako reportingová platforma v námi uvažovaném řešení bude využita sada aplikací

JasperReports. Tato platforma byla zvolena díky kvalitnímu a podrobně zdokumentovanému

návrháři iReport Designer a plnohodnotnému JasperReports Serveru, umožňujícímu nasazení

a distribuci připravených reportů. Pentaho Reporting, ač nabízí velmi podobnou škálu funkci-

onalit včetně serverové části, zaostává opět v pohodlí práce a dokumentační části. Dalším

případným řešením by bylo využití platformy BIRT, což by však vyžádalo dodatečný vývoj

pro customizaci nabízeného velmi jednoduchého serveru, popřípadě napsání svého vlastního

serverového řešení.

V následující čtvrté kapitole je představena ukázková implementace datového skladu

s využitím těchto vybraných produktů.

52

4. Praktická část – implementace ukázkového dato-

vého skladu

Praktická část této práce přináší ukázkovou implementaci datového skladu s využitím kompo-

nent, pro které jsme se rozhodli ve druhé kapitole – tedy databáze MySQL, Talend Open Stu-

dio for Data Integration a JasperReports. Ukázkové řešení postavíme na reálném příkladu

z praxe. Výsledkem bude fungující datový sklad, včetně ETL skriptů pro jeho naplnění daty

ze zdrojové databáze a příkladů reportů určených pro konečné uživatele. Plně nakonfigurova-

né řešení je součástí přílohy k práci – paměťové karty, která obsahuje operační systém Win-

dows virtualizovaný v prostředí VMware se všemi implementovanými komponentami.

4.1 Ukázkové řešení – popis problematiky

Fungování datového skladu budeme ilustrovat na příkladu fiktivní společnosti Embex s.r.o,

která podniká v oboru strojního vyšívání. Společnost přijímá objednávky od zákazníků – fi-

rem i fyzických osob – a provádí výšivku na různé druhy zboží i materiálů (trička, košile,

bundy, čepice, ubrusy, ručníky aj.). Vyšití provádí automatické průmyslové stroje, jež je nut-

né naprogramovat – to znamená, že před samotným vyšitím je potřeba na základě grafických

podkladů dodaných zákazníkem vytvořit vyšívací program, který řídí práci stroje. Vyrobení

programu je zákazníkovi účtováno jako jedna z položek objednávky.

Společnosti eviduje zákazníky a objednávky v informačním systému Clios (Clients

and Orders Information Systém). Informační systém ukládá data do relační databáze a nenabí-

zí žádné reportingové funkcionality. Management společnosti má zájem o vytvoření základní-

ho reportingu, aby získal statistiky o objednávkách a mohl lépe přizpůsobit budoucí firemní

strategii.

Řešením je vytvořit jednoduchý datový sklad a postavit nad ním reportingovou vrstvu

tak, aby bylo možno snadno v budoucnu vytvářet i nové typy reportů. Informační zdroje do-

dávající data do datového skladu je možno v budoucnu rozšířit například i o účetní systém,

což umožní kombinovat data z vícero zdrojů a reportovat například zpožděné placení faktur

k objednávkám, případně jiné reporty dle potřeby.

53

4.2 Ukázkové řešení – implementace

4.2.1 Architektura řešení

Následující obrázek ukazuje architekturu řešení:

Obrázek 2 - Architektura řešení

MySQL Community 5.5

Clios

DWH - Data Staging

DWH - Datamart

Jaspersoft DB

Apache Tomcat 7.0

Clios IS

JasperReportsServer

TalendOpen Studio

JaspersoftiReport

Designer

ETL jobyreporty

Systémovýplánováč úloh Definice reportů

generuje

tok dat

vytváří

spouští

generuje

spouští

Řešení vychází z teoretických základů popsaných v druhé kapitole a bude obsahovat čtyři

databázové instance. První z nich je operační databáze informačního systému Clios.69 V této

databázi jsou uložena operační data, která se každý den mění podle toho, jak v systému vzni-

kají nové objednávky. Další dvě DB instance jsou součástí datového skladu. Data Staging

bude obsahovat tabulky pro dočasné uložení dat pro účely jejich transformace a provádění

výpočtů nad nimi. Data Presentation bude představováno jedním datamartem, v němž se bu-

dou nacházet tabulky dimenzí a faktů, ze kterých bude čerpat data reportingový mechanismus.

69 Poznámka – samotný informační systém Clios není součástí nakonfigurovaného ukázkového řešení. Řešení

obsahuje pouze databázi systému se vzorkem anonymizovaných dat

54

Poslední databáze bude využívaná JasperReports Serverem. Server do ní ukládá data nutná

pro svůj běh – jedná se o metadata (definice datových zdrojů a reportů) a dále technická a

konfigurační data, včetně uživatelů a přístupových rolí k jednotlivým reportům.

Z důvodu zjednodušení ukázkové konfigurace, jež je součástí této práce, budou všechny in-

stance reprezentovány jedinou databází MySQL, v níž vytvoříme čtyři separátní schémata. V

reálné praxi je velmi pravděpodobné, že všechny instance budou odděleny, a to i jak na úrovni

instanční, tak i fyzické – DB pro datový sklad a reporting pravděpodobně poběží na jiném

serveru než provozní DB.

Veškeré ETL skripty pro přesun dat mezi databázemi a jejich konverzi budou imple-

mentovány v Talend Open Studio for Data Integration. Skripty (v terminologii Talendu „jo-

by“) budou exportovány do samostatně spustitelné podoby (podrobněji viz kapitola 3.1.4).

Pro pravidelné automatické spouštění jobů bude využit systémový Plánovač úloh, nakonfigu-

rovaný tak, aby spustil ETL joby každý den v 5:00 ráno.

Reporting bude implementován na platformě JasperReports. Definice reportů budou

vytvořeny v návrhovém prostředí iReport Designer a nasazeny na JasperReports Server. Data

pro naplnění reportů budou čerpána z datamartu datového skladu. Uživatelé budou přistupo-

vat k reportům skrze webové rozhraní Serveru za pomocí webového prohlížeče.

Konfiguraci všech komponent si nyní popíšeme podrobněji.

4.2.2 Datový sklad – ETL a databáze

Provozní databáze informačního systému Clios

Databáze Cliosu obsahuje veškerá data nutná pro chod aplikace, nicméně z pohledu zdroje dat

pro reporting nás zajímají především tabulky s daty o zákaznicích, objednávkách a položkách

objednávek. Následující schéma ukazuje tyto tabulky a některé jejich sloupce (výčet je neúpl-

ný, nepodstatné a technické sloupce jsou vynechány):

55

Obrázek 3 - Clios, databázové schéma

CUSTOMERS

CID: INT <<PK>>_________________________ FIRST_NAME: VARCHARLAST_NAME: VARCHARCOMPANY_NAME: VARCHARADDRESS: VARCHAR

ORDERS

ORD_ID: INT <<PK>>__________________________ CID: INT <<FK>>NOTE: VARCHARORDER_NAME: VARCHARMETADATA: VARCHARCREATION_DATE: DATETIME

ORDER_ITEMS

ITEM_ID: INT <<PK>>_______________________ ORD_ID: INT <<FK>>DESCRIPTION: VARCHARITEM_DATA: BLOB

Tabulka ORDERS obsahuje data o objednávkách, cizím klíčem odkazuje na tabulku

CUSTOMERS. Tabulka ORDER_ITEMS obsahuje popis položek objednávek v XML formátu

(sloupec ITEM_DATA: BLOB), opět je využit cizí klíč pro odkaz na řádek s příslušnou ob-

jednávkou.

Jak je zřejmé z diagramu, data v tabulkách jsou normalizována, obsahují údaje za

dlouhé časové období a data jsou formátovaná tak, aby vyhovovala potřebám informačního

systému (například XML reprezentace položky objednávky). Z pohledu reportingu nás ale

budou zajímat například agregované údaje o typech zákazníků nebo o produktů, jež je objed-

náván nejčastěji. Zdrojová data musíme tedy transformovat do podoby vhodné k dotazům

tohoto typu.

Data Staging

Prvním krokem bude načtení zdrojových dat z provozní databáze Cliosu do Data Staging da-

tabáze. Načtení bude probíhat každý den (například brzo ráno) a bude prováděno inkremen-

tálně – vždy se načtou jen nové objednávky vzniklé předešlý den. Tím zajistíme, že vždy ope-

rujeme pouze s malou množinou dat, nikoli s veškerými provozními daty, a navíc odsuneme

výpočty z provozního serveru do dedikované Staging databáze.

Ze zdrojových dat vezmeme nikoli všechny, ale jen potřebné sloupce, a již v tomto

kroku nad nimi provedeme některé transformace: z ORDER_ITEMS.ITEM_DATA XML ře-

tězce vyparsujeme typ položky objednávky a materiál, na který se bude vyšívat, a

z přítomnosti názvu firmy v tabulce zákazníků určíme, zda se jedná o fyzickou osobu nebo

firmu. Data uložíme do tří tabulek, které jsou znázorněny na následujícím diagramu:

56

Obrázek 4 - Data Staging tabulky datového skladu

DWH_STAGING_CUSTOMERS

CID: INT <<PK>>___________________________ CUSTOMER_TYPE: VARCHARADDRESS: VARCHAR

DWH_STAGING_ORDERS

ORD_ID: INT <<PK>>__________________________ CID: INT <<FK>>CREATION_DATE: DATETIME

DWH_STAGING_ORDER_ITEMS

ITEM_ID: INT <<PK>>____________________________ ORD_ID: INT <<FK>>ITEM_TYPE: VARCHARITEM_MATERIAL: VARCHARITEM_PRICE: DOUBLE

Načtení a transformaci má na starosti job LoadToStaging implementovaný v Talend Open

Studio:

Obrázek 5 - Job - LoadToStaging

Job provádí čtení ze zdrojových tabulek, zápis do cílových Staging tabulek, parsování XML a

spouští custom Java kód, jež obsahuje logiku nutnou pro určení typu zákazníka, typu položky

objednávky a materiálu. Oranžové šipky označují tok dat, zelené logickou posloupnost udá-

lostí.

57

Datamart

Poslední databází, kam data přitečou, je Data Presentation Area. Pro účely naší ukázky bude

tato databáze obsahovat jeden jednoduchý datamart. Data budou uspořádaná v dimenzionál-

ním schématu v tabulkách dimenzí a tabulkách faktů:

Obrázek 6 - Tabulky v DWH datamartu

FACT_ORDER

ROW_ID: LONG <<PK>>____________________________ CUSTOMER_TYPE: INT <<FK>>DATE: INT <<FK>> ITEMS_COUNT: INTTOTAL_PRICE: DOUBLE

FACT_ORDER_ITEM

ROW_ID: LONG <<PK>>____________________________ CUSTOMER_TYPE: INT <<FK>>PRODUCT_TYPE: INT <<FK>>MATERIAL_TYPE: INT <<FK>>DATE: INT <<FK>> PRICE: DOUBLE

DIM_CUSTOMER_TYPE

DIM_CUSTOMER_TYPE_ID: INT <<PK>>CUSTOMER_TYPE: VARCHAR <<UNIQUE>>

DIM_MATERIAL_TYPE

DIM_MATERIAL_TYPE_ID: INT <<PK>>MATERIAL_TYPE: VARCHAR <<UNIQUE>>

DIM_DATE

DIM_DATE_ID: INT <<PK>>DATE: DATETIME <<UNIQUE>>YEAR: INTMONTH: INTDAY: INT

DIM_PRODUCT_TYPE

DIM_PRODUCT_TYPE_ID: INT <<PK>>PRODUCT_TYPE: VARCHAR <<UNIQUE>>

Na schématu vidíme čtyři dimenze: sdílené DIM_DATE a DIM_CUSTOMER_TYPE a nesdíle-

né DIM_MATERIAL_TYPE a DIM_PRODUCT TYPE. Dimenze nesou informace o datu vy-

tvoření objednávky, typu objednávajícího zákazníka, typu položky a typu materiálu, na nějž

bude nanesena výšivka. Každá z tabulek obsahuje kromě umělého (surrogate) primárního

klíče ještě i unikátní klíč se samotnou hodnotou, což při aktualizaci tabulek dimenzí při den-

ním loadu zabraňuje vzniku duplicit. Faktové tabulky jsou dvě: FACT_ORDER a

FACT_ORDER_ITEM, odráží jednotlivé objednávky a jejich položky. Tabulka

FACT_ORDER obsahuje navíc agregované údaje o celkovém počtu položek v objednávce a

jejích celkové ceně. Pro tabulky faktů využijeme MySQL engine MyISAM, který vykazuje

58

větší rychlost při čtení velkých objemů dat než výchozí InnoDB (podrobněji viz kapitola

3.2.1).

Načtení dat do datamartu se skládá ze dvou kroků. Nejprve je potřeba aktualizovat tabul-

ky dimenzí (vždy nové datum, případně nový typ materiálu či zákazníka) a teprve potom vlo-

žit nové záznamy do tabulek faktů. Data pro obě operace se získávají z Data Staging Area,

kde je již máme částečně přizpůsobená tak, aby operace byly snadnější. Operace jsou opět

implementovány jako joby v Talend Open Studiu – UpdateDatamartDimensions pro

aktualizaci dimenzí a dva joby pro plnění tabulek faktů, LoadFactOrder a LoadFac-

tOrderItems.

Obrázek 7 - Job UpdateDatamartDimensions

V prvním kroku je z tabulky objednávek pomocí SQL operátoru DISTINCT načten seznam

unikátních datumů vzniku objednávek (v případě denního každodenního běhu jobu byl měl

result set obsahovat pouze jedno – včerejší – datum, nicméně nic nebrání pustit všechny joby

se vstupními parametry tak, aby spočítaly data za delší časové období). Datum je převedeno

59

na řetězec a rozděleno zvlášť na den, měsíc a rok a takto uloženo do tabulky dimenze

DIM_DATE. Insert operace je nastavena tak, aby ignorovala případné duplicity.

Dále, opět pomocí DISTINCT, načítáme typy zákazníků a obdobným způsobem aktu-

alizujeme tabulku DIM_CUSTOMER_TYPE. Nakonec z tabulky s položkami objednávek na-

čítáme informace o typech položek a typech materiálu a opět aktualizujeme příslušné tabulky

dimenzí. Teď, když jsou tabulky dimenzí aktualizované, přikročíme k naplnění tabulek faktů.

Obrázek 8 - Job LoadFactOrder

Načtení záznamů do faktové tabulky objednávek probíhá následovně. Nejprve se spojí údaje o

objednávkách a jejich položkách, za účelem výpočtu agregovaných údajů – celkové ceny ob-

jednávky a počtu položek v každé objednávce. Tyto údaje jsou spočteny ve speciální agregač-

ní komponentě pojmenované count stats. K výsledku připojíme informaci o typu zákaz-

níka, abychom tuto informaci mohli z tabulky faktů referencovat. Nový řádek do tabulky

FACT_ORDER je nakonec spočten v mapovací komponentě, která dohledá hodnoty klíčů

v příslušných tabulkách dimenzí. Vytvoření řádku do tabulky FACT_ORDER_ITEM probíhá

velmi podobně, jen s tím rozdílem, že se neprovádí žádné agregované výpočty a klíče se do-

hledávají ze čtyř tabulek dimenzí, nikoli ze dvou:

60

Obrázek 9 - Job LoadFactOrderItems

Na závěr vytvoříme jeden orchestrační job, jehož úkolem bude spouštět dílčí joby ve správ-

ném pořadí a se správným kontextem. V našem případě kontext slouží k předání jobům dvou

parametrů – dateStart a dateEnd – vymezujících období, pro které celý výpočet prová-

díme. Parametry jsou vhodné ve chvíli, kdy úlohu spouštíme ručně (například kvůli předcho-

zímu výpadku systému) a chceme přepočítat období delší než jeden den. Do jobu navíc při-

dáme komponentu notifikující administrátora při selhání některého z dílčích jobů:

61

Obrázek 10 - DailyLoadMasterJob

Export jobů a vytvoření pravidelné systémové úlohy

Navržené joby nejprve exportujeme z Talend Open Studia do samostatně spustitelné podoby.

Ta představuje balíček Java .jar knihoven, konfiguračních souborů a dále vygenerovaný skript

pro spuštění (.bat v případě Windows, .sh v případě Linux/Unix) celého jobu. Vzhledem

k tomu, že jsme vytvořili jeden „master“ job, který volá dílčí joby, postačí nám export pouze

tohoto jobu. Talend automaticky zahrnuje všechny dílčí joby do exportovaného balíčku.

Talend nenabízí v komunitní edici žádný server, na kterém by bylo možné joby spouš-

tět a plánovat, musíme proto k pravidelnému spouštění využít prostředků operačního systému.

V OS Windows slouží k tomuto účelu systémová komponenta Naplánované úlohy, v Linux a

Unix systémech nástroj Cron. Použití je v obou případech stejné, nástroj nakonfigurujeme tak,

62

aby každý den v 5:00 zavolal .bat (.sh) skript, který spustí master job a provede všechny po-

třebné ETL úlohy.

4.2.3 Reporting

Pro tuto ukázkovou implementaci datového skladu jsem definoval tři typy reportů:

Tržby podle měsíce

Tento report bude ukazovat celkovou sumu tržeb z objednávek rozdělených dle měsíce. Re-

port bude navíc pro každý měsíc zobrazovat i počet položek objednávek a dále kombinovaný

graf prezentující data v grafické podobě.

Typy objednávek

Report bude zobrazovat rozdělení položek objednávek dle typů. Rozlišujeme tři typy položek

– nášivka, výšivka a vytvoření vyšívacího programu. Report bude obsahovat koláčový graf

znázorňující tyto údaje.

Počty objednávek dle typů zákazníka

Tento report bude informovat o celkovém počtu objednávek dle měsíců, rozdělených podle

typu zákazníka. Rozlišujeme tři typy zákazníků – soukromé osoby, firmy a osoby-podnikatele

(OSVČ).

Všechny tyto reporty budou částečně interaktivní - uživatel prostřednictvím vstupního pole

zadá rok, pro který se report má vygenerovat. Data pro všechny reporty budou čerpána

z databáze Clios datamart, která obsahuje tabulky dimenzí a faktů naplněných pomocí ETL

skriptů.

Implementace reportů

Definice reportů jsou vytvořeny v aplikaci Jaspersoft iReport Designer. Definice využívají

JDBC datový zdroj pro připojení k dwh_datamart databázi. V každém reportu je uveden

SQL dotaz, který naplní daty jeden či více datasetů. Data jsou pak zobrazena v tabulkové i

grafické podobě. Každý report obsahuje hlavičku s logem fiktivní firmy Embex s.r.o.

63

Obrázek 11 - Ukázka reportu Tržby dle měsíce

64

Obrázek 12 - Ukázka reportu Typy objednávek

65

Obrázek 13 - Ukázka reportu Objednávky dle typu zákazníka

JasperReports Server

Přístup uživatelů k reportům je realizován skrze webové rozhraní JasperReports Serveru. Ser-

ver je Java EE aplikace nasazená na aplikační server Apache Tomcat 7.0. Na serveru jsou

nakonfigurovány uživatelské účty a přístupové role, umožňující běžným uživatelům vidět

pouze tyto tři reporty. Uživatelé s administračním oprávněním mají přístup také k definici

metadat (např. datové zdroje) a doplňkových zdrojů k reportům (např. obrázky vkládané do

reportů).

66

Spuštění reportu probíhá po kliknutí na název reportu na úvodní obrazovce po přihlášení uži-

vatele, případně po otevření přímého odkazu na report ve webovém prohlížeči. Vzhledem

k tomu, že jsou všechny reporty interaktivní a vyžadují ke svému spuštění vstup – specifikaci

roku, pro který mají být data zobrazena – vyzve server před zobrazením reportu uživatele

k zadání této informace.

67

5. Závěr

Základní motivací této práce bylo navrhnout způsob implementace datového skladu

s využitím pouze volně dostupných bezplatných technologií, ať už s otevřeným zdrojovým

kódem nebo bez. Uživatelem takového datového skladu by měla být firma malé či střední

velikosti, která chce vyřešit potřebu reportování a analýzy podnikových dat, nemá však pro-

středky na to, aby investovala do komerčních Business Intelligence řešení. Práce se zaměřila

především na datový sklad samotný, analytické nástroje byly rozebrány pouze částečně v po-

době reportovací platformy.

V úvodní části práce byla rozebrána základní architektura typického datového skladu a

identifikovány komponenty, kterými je tvořen. Druhá část pak hledala na trhu konkrétní soft-

warové produkty, které by mohly být v roli těchto komponent využity. Byly zkoumány tři

kategorie produktů – ETL (Extract Transform Load) nástroje, relační databáze a reportingová

platforma).

Bylo zjištěno, že bezplatných relačních databází je mnoho, nicméně pouze malá část

z nich splňuje náročné požadavky, které na ně klade využití v datovém skladu. Reálně pak

obstály pouze dvě z nich - MySQL a PostrgreSQL, které jsou si kvalitou takřka ekvivalentní.

Co se týče ETL nástrojů, nabídka bezplatných produktů už není zdaleka tak široká, zřejmě

kvůli poměrně specifickým případům využití tohoto software oproti velmi rozšířeným relač-

ním databázím. Nicméně i mezi open source produkty se našly takové, které by dokázaly svo-

ji funkci v datového skladu plnohodnotně zastat. Ze zkoumání vyšel nejlépe produkt Talend

Open Studio for Data Integration. Nabídka kvalitních reportingových nástrojů je ještě užší než

ETL komponent. Aplikace pro vizuální návrh reportů je komplexní produkt, který se imple-

mentuje obtížně. Z dostupných platforem byla nakonec zvolena JasperReports, která kromě

dobré návrhové aplikace disponuje i serverem pro distribuci reportů.

Vybrané produkty byly následně využity v ukázkové implementaci datového skladu,

aby se ověřila jejich vhodnost a použitelnost. Bylo zjištěno, že vybudovat datový sklad

s jejich využitím je možné a že se jedná o plně funkční řešení. Tímto práce tedy splnila svůj

stanovený cíl.

68

Conclusion (English)

The basic motivation of this bachelor thesis was to propose a way to implement a data ware-

house only using freely accessible, free of charge technologies, either with open source code

or not. A user of such a warehouse would be a small-to-mid size business, which needs to

resolve the urge for data analysis and reporting, but on the other hand doesn’t possess suffi-

cient funds for purchasing a commercial Business Intelligence solution. The thesis focused

mainly on data warehouse itself, touching the analytical tools area only in the form of a re-

porting platform.

The introductory part covered basic data warehouse architecture and identified com-

ponents which it typically consists of. The second part was dedicated to search on the market

for concrete software products, which would fulfill the roles of these components. The follow-

ing three categories were researched – ETL (Extract Transform Load) tools, relational data-

bases and reporting platforms.

It was found out that many relational databases are freely available, although only a

small portion of them fulfills high demands dictated by their potential usage in a data ware-

house. Finally, only two of them stood the test – MySQL and PostgreSQL, both almost equi-

valent in quality. With regards of ETL tools, the offer is far more limited, probably due to

quite specific usage area of such tools, in comparison with widespread relational databases.

Nevertheless, even among open source tools such were discovered, that would fill in their role

in a data warehouse adequately. Based on the research, Talend Open Studio for Data Integra-

tion was chosen. The set of quality reporting tools is even narrower than that of the ETL tools.

A visual reports designer application is a complicated piece of software, uneasy to implement.

Among available products, JasperReports platform was picked, which alongside with the

quality designer app offers also a reports distribution server.

The chosen products were then used in a sample data warehouse implementation, to pro-

ve their qualities and suitability. It was found out that it was indeed possible to build a data

warehouse using them, and that was a fully operational solution. Therefore the thesis

achieved its stipulated goal.

69

6. Seznam použitých zdroj ů

KIMBALL, Ralph a Margy ROSS. The data warehouse toolkit: the complete guide to dimensi-

onal modeling. 2nd ed. New York: Wiley, c2002. ISBN 978-0471200246.

11.2. Index Types. PostgreSQL 9.2.4 Documentation: Chapter 11. Indexes [online]. 2013 [cit.

2013-04-11]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/indexes-types.html>

5.9. Partitioning. PostgreSQL 9.2.4 Documentation: Chapter 5. Data Definition [online].

2013 [cit. 2013-04-10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/ddl-

partitioning.html>

ActuateOne Products for Eclipse BIRT. Eclipse And Acutate BIRT Products [online]. 2013

[cit.2013-04-27]. Dostupné z: <http://www.birt-exchange.com/be/products/>

Apatar Data Integration/ETL. SourceForge [online]. 2013 [cit. 2013-04-20]. Dostupné z:

<http://sourceforge.net/projects/apatar/files/Apatar%20Data%20Integration_ETL/Apatar%20

v1.12.23/>

Appendix D. SQL Conformance. PostgreSQL 9.2.4 Documentation [online]. 2013 [cit. 2013-

04-10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/features.html>

Classic, SuperClassic or Superserver. Firebird: Reference Manual [online]. 2013 [cit. 2013-

04-14]. Dostupné z: <http://www.firebirdsql.org/file/documentation/reference_manuals/

user_manuals/html/qsg25-classic-or-super.html>

CloverCARE Support. CloverETL Services [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://www.cloveretl.com/services/clovercare-support>

70

CloverETL Designer. CloverETL Documentation [online]. 2013 [cit. 2013-04-19]. Dostupné

z: <http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.

docs/docs/cloveretl-designer.html>

CloverETL Products. Data Integration Products [online]. 2013 [cit. 2013-04-16]. Dostupné z:

<http://www.cloveretl.com/products>

CloverETL Server. Family of CloverETL Products [online]. 2013 [cit. 2013-04-18]. Dostupné

z: <http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.

docs/docs/cloveretl-server.html>

Compare Editions. Jaspersoft Business Intelligence Software [online]. 2013 [cit. 2013-04-26].

Dostupné z: <http://www.jaspersoft.com/editions>

CREATE INDEX. Firebird 2.5 Language Reference: DDL statements [online]. 2013 [cit.

2013-04-14]. Dostupné z: <http://www.firebirdsql.org/file/documentation/reference_manuals/

reference_material/html/langrefupd25-ddl-index.html>

Data Integration. TALEND. Download [online]. 2013 [cit. 2013-04-20]. Dostupné z:

<http://www.talend.com/download/data-integration>

Data Integration Features Comparison Matrix. TALEND. Data Integration [online]. 2013

[cit. 2013-04-20]. Dostupné z: <http://www.talend.com/products/data-integration/matrix>

DB-Engines Ranking. SOLID IT. DB-engines: Knowledge Base of Relational and NoSQL

Databáze Management Systems [online]. [cit. 2013-04-07]. Dostupné z: <http://db-engines.

com/en/ranking>

Eclipse BIRT: Ride the Open Source Wave of the Future. Actuate, The BIRT Company [onli-

ne]. 2013 [cit. 2013-04-27]. Dostupné z: <http://www.actuate.com/products/eclipse-birt/

summary/>

Features. PgAdmin: PostgreSQL Tools [online]. 2013 [cit. 2013-04-11]. Dostupné z:

<http://www.pgadmin.org/features.php>

71

Features Supported by the Editions of SQL Server 2012. Microsoft Technet [online]. 2012

[cit.2013-04-14]. Dostupné z: <http://technet.microsoft.com/en-us/library/cc645993.aspx>

Getting Started with JasperReports Server. Jaspersoft community [online]. 2013 [cit. 2013-

04-26]. Dostupné z: <http://community.jaspersoft.com/wiki/getting-started-jasperreports-

server>

H.3. Procedural Languages. PostgreSQL 9.2.4 Documentation: Appendix H. External Pro-

jects [online]. 2013 [cit. 2013-04-10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/

external-pl.html>

Hardware and Software. Engineered to Work Together. ORACLE. Oracle corporation [onli-

ne]. 2010 [cit. 2013-04-07]. Dostupné z: <http://www.oracle.com/us/sun/index.html>

How to deploy a Job on SpagoBI server. Talend Open Studio for Data Integration v5.2.2 -

User Guide (EN) [online]. 2013 [cit. 2013-04-21]. Dostupné z: <https://help.talend.com/

display/TALENDOPENSTUDIOFORDATAINTEGRATIONUSERGUIDE52EN/5.

7.1+How+to+deploy+a+Job+on+SpagoBI+server>

How to export Jobs. Talend Open Studio for Data Integration v5.2.2 - User Guide (EN) [onli-

ne]. 2013 [cit. 2013-04-21]. Dostupné z: <https://help.talend.com/display/TALENDOPEN

STUDIOFORDATAINTEGRATIONUSERGUIDE52EN/5.2.2+How+to+export+Jobs>

How to run a Job. Talend Open Studio for Data Integration v5.2.2 - User Guide (EN) [onli-

ne]. 2013 [cit. 2013-04-21]. Dostupné z: <https://help.talend.com/display/TALENDOPEN

STUDIOFORDATAINTEGRATIONUSERGUIDE52EN/4.2.7+How+to+run+a+Job>

Changing to the LDAP Security DAO. Pentaho Wiki [online]. 2013 [cit. 2013-04-28]. Do-

stupné z: <http://wiki.pentaho.com/display/ServerDoc2x/Changing+to+the+LDAP+

Security+DAO>

Chapter 1. MySQL Workbench Introduction. MYSQL. MySQL Workbench: Reference Ma-

nual [online]. 2013 [cit. 2013-04-08]. Dostupné z: <http://dev.mysql.com/doc/workbench/en/

wb-intro.html>

72

Chapter 17. Partitioning. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-

04-08]. Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/partitioning.html>

Chapter 55. Transformers. CloverETL Designer [online]. 2013 [cit. 2013-04-19]. Dostupné z:

<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/

docs/transformers.html>

Installation Guide: 3 Licensing Restrictions. Oracle® Database Express Edition [online].

2013 [cit.2013-04-14]. Dostupné z: <http://docs.oracle.com/cd/E17781_01/install.112/

e18803/toc.htm#autoId11>

Installing and Upgrading MySQL. MYSQL. MySQL 5.6 Reference Manual [online]. 2013

[cit.2013-04-07]. Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/installing.html>

Introduction. Firebird Internals [online]. 2009 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/fb

-internals.html>

Introduction to Jaspersoft Studio. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Do-

stupné z: <http://community.jaspersoft.com/wiki/introduction-jaspersoft-studio>

JasperReports Library - Tutorial. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Do-

stupné z: <http://community.jaspersoft.com/wiki/jasperreports-library-tutorial>

Jaspersoft ETL Resources. Jaspersoft ETL: The Open Source Data Integration Platform [onli-

ne]. 2013 [cit. 2013-04-20]. Dostupné z: <http://community.jaspersoft.com/project/jaspersoft-

etl/resources>

Job Entry Reference. Pentaho Infocenter [online]. 2013 [cit. 2013-04-22]. Dostupné z:

<http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Ftopic_pdi_usr_j

ob_reference.html>

73

KETL. SourceForge [online]. 2013 [cit. 2013-04-20]. Dostupné z: <http://sourceforge.net/

projects/ketl/files/>

License. PostgreSQL: About [online]. 2013 [cit. 2013-04-10]. Dostupné z:

<http://www.postgresql.org/about/licence/>

MySQL 5.5: Storage Engine Performance Benchmark for MyISAM and InnoDB: A MySQL

Technical White Paper. MySQL 5.5: Storage Engine Performance Benchmark for MyISAM

and InnoDB [online].2011 [cit. 2013-04-07]. Dostupné z: <http://www.oracle.com/partners/

en/knowledge-zone/mysql-5-5-innodb-myisam-522945.pdf>

MySQL 5.6 FAQ: General. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit.

2013-04-07]. Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/faqs-

general.html#qandaitem-B-1-1-8>

MySQL 5.6 Reference Manual: Table of contents. MYSQL. MySQL 5.6 Reference Manual

[online]. 2013 [cit. 2013-04-08]. Dostupné z: <http://dev.mysql.com/doc/refman/5.6/

en/index.html>

MySQL Editions. MYSQL. MySQL: The world's most popular open source database [online].

2013 [cit. 2013-04-07]. Dostupné z: <http://www.mysql.com/products/>

Oracle Technology Network Developer License Terms for Oracle Database Express Edition.

Oracle Technology Network: Licenses [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.oracle.com/technetwork/licenses/database-11g-express-license-459621.html>

Overview of Features: Summary of features. Firebird: Reference Manual [online]. 2013 [cit.

2013-04-14]. Dostupné z: <http://www.firebirdsql.org/manual/ufb-about-features.html>

Part VII. Components Overview. CloverETL Designer [online]. 2013 [cit. 2013-04-19]. Do-

stupné z:<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.

gui.docs/docs/part-components-overview.html>

74

Partitioning System (Like Oracle). Firebird Tracker: Firebird Core [online]. 2009 [cit. 2013-

04-14]. Dostupné z: <http://tracker.firebirdsql.org/browse/CORE-777>

PDI license. Pentaho Data Integration [online]. 2013 [cit. 2013-04-21]. Dostupné z: <http://

wiki.pentaho.com/display/EAI/PDI+License+FAQ>

Pentaho BI Platform License FAQ. Pentaho Open Source Business Intelligence [online]. 2013

[cit.2013-04-28]. Dostupné z: <http://community.pentaho.com/faq/platform_licensing.php>

Pentaho Reporting. Pentaho Reporting Project [online]. 2013 [cit. 2013-04-28]. Dostupné z:

<http://reporting.pentaho.com/>

PostgreSQL Hardware Performance Tuning. MOMJIAN, Bruce. UNIVERSITY OF LEEDS.

PostgreSQL Hardware Performance Tuning [online]. 2008 [cit. 2013-04-10]. Dostupné z:

<http://momjian.us/main/writings/pgsql/hw_performance/index.html>

Proč je užívání pojmu ,,Free Software'' (svobodný software) lepší než ,,Open Source'' (otevře-

ný zdrojový kód). FREE SOFTWARE FOUNDATION, Inc. Operační systém GNU [online].

[cit. 2012-12-20]. Dostupné z: <http://www.gnu.org/philosophy/free-software-for-

freedom.cs.html>

Reference Guide. Talend Open Studio Components v5.2.2 [online]. 2013 [cit. 2013-04-20].

Dostupné z: <https://help.talend.com/display/TALENDOPENSTUDIOCOMPONENTS

REFERENCEGUIDE52EN/Home>

Running a Transformation. Pentaho Wiki [online]. 2013 [cit. 2013-04-22]. Dostupné z:

<http://wiki.pentaho.com/display/EAI/.13+Running+a+Transformation>

Scriptella ETL Drivers Matrix. Scriptella ETL Reference Documentation [online]. 2013 [cit.

2013-04-15]. Dostupné z: <http://scriptella.javaforge.com/reference/drivers.html>

Scriptella ETL Project License. Scriptella [online]. 2013 [cit. 2013-04-15]. Dostupné z:

<http://scriptella.javaforge.com/license.html>

75

Scripts Syntax. Scriptella ETL Reference Documentation [online]. 2013 [cit. 2013-04-15].

Dostupné z: <http://scriptella.javaforge.com/reference/index.html#Scripts+Syntax>

Server Packages. Firebird Downloads [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/en/server-packages/>

Storage Engines. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 2013-04-07].

Dostupné z: <http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html>

Sun to Acquire MySQL. MYSQL. MySQL Press releases: The world's most popular open

source database [online]. 2008 [cit. 2013-04-07]. Dostupné z:<http://www.mysql.com/

news-and-events/sun-to-acquire-mysql.html>

Table of Contents. PostgreSQL 9.2.4 Documentation [online]. 2013 [cit. 2013-04-11]. Do-

stupné z: <http://www.postgresql.org/docs/9.2/interactive/>

Talend Community Forum. Talendforge [online]. 2013 [cit. 2013-04-21]. Dostupné z:

<http://www.talendforge.org/forum/>

The Anatomy of a Report. BIRT Overview [online]. 2013 [cit. 2013-04-27]. Dostupné z:

<http://www.eclipse.org/birt/phoenix/intro/>

The Firebird licenses. Firebird: Reference Manual [online]. 2013 [cit. 2013-04-14]. Dostupné

z: <http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/

qsg25-firebird-licenses.html>

Third-party Tools. Firebird Downloads [online]. 2013 [cit. 2013-04-14]. Dostupné z:

<http://www.firebirdsql.org/en/third-party-tools/>

Transformation Step Reference. Pentaho Infocenter [online]. 2013 [cit. 2013-04-22]. Dostup-

né z: <http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Ftopic_pdi_

usr_step_reference.html>

76

7. Seznam obrázk ů

Obrázek 1 - Struktura datového skladu .................................................................................... 13

Obrázek 2 - Architektura řešení ............................................................................................... 53

Obrázek 3 - Clios, databázové schéma..................................................................................... 55

Obrázek 4 - Data Staging tabulky datového skladu ................................................................. 56

Obrázek 5 - Job - LoadToStaging ............................................................................................ 56

Obrázek 6 - Tabulky v DWH datamartu .................................................................................. 57

Obrázek 7 - Job UpdateDatamartDimensions.......................................................................... 58

Obrázek 8 - Job LoadFactOrder ............................................................................................... 59

Obrázek 9 - Job LoadFactOrderItems ...................................................................................... 60

Obrázek 10 - DailyLoadMasterJob .......................................................................................... 61

Obrázek 11 - Ukázka reportu Tržby dle měsíce....................................................................... 63

Obrázek 12 - Ukázka reportu Typy objednávek ...................................................................... 64

Obrázek 13 - Ukázka reportu Objednávky dle typu zákazníka................................................ 65

77

8. Seznam p říloh

1. CD s výstupy z praktické části

2. Paměťová karta SD s výstupy s praktické části

78

8.1 CD s výstupy z praktické části

CD obsahuje výstupy z praktické části práce. Obsah CD:

Adresář Obsah

DB_scripts SQL skripty pro vytvoření databázových schémat pro

databázi MySQL:

clios_db_content.sql – zdrojová databáze systému Clios

dwh_datamart.sql – datamart s tabulkami dimenzí a

faktů

dwh_staging.sql – Staging area datového skladu

Jaspersoft_report_definitions Definice reportů vytvořené v aplikaci Jaspersoft iRe-

port Designer

Talend_ETL_Jobs Projekt exportovaný z aplikace Talend Open Studio for

Data Integration. Obsahuje definice ETL jobů pro

transformaci a přesun dat mezi databázemi.

79

8.2 Paměťová karta SD s výstupy z praktické části

Paměťová karta obsahuje výstupy z praktické části a image operačního systému Windows 7

Professional virtualizovanou v prostředí VMware.70 Operační systém obsahuje kompletně

nakonfigurované řešení popisované ve čtvrté kapitole. Obsah paměťové karty:

Adresář / soubor Obsah

DB_scripts SQL skripty pro vytvoření databázových schémat pro

databázi MySQL:

clios_db_content.sql – zdrojová databáze systému Clios

dwh_datamart.sql – datamart s tabulkami dimenzí a

faktů

dwh_staging.sql – Staging area datového skladu

Jaspersoft_report_definitions Definice reportů vytvořené v aplikaci Jaspersoft iRe-

port Designer

Talend_ETL_Jobs Projekt exportovaný z aplikace Talend Open Studio for

Data Integration. Obsahuje definice ETL jobů pro

transformaci a přesun dat mezi databázemi.

VMWare_player_setup Obsahuje instalační soubor aplikace VMware Player

5.0.2 použité pro virtualizaci.

Win7_BP Virtuální VMware image operačního systému.

Popis virtualizovaného operačního systému

Celé ukázkové řešení je nakonfigurováno v adresáři C:\DWH. Tento adresář obsahuje:

• ApacheTomcat 7.0 – aplikační server využitý pro nasazení Jaspersoft Serveru. Nain-

stalován jako systémová služba.

70 Licence pro tuto kopii operačního systému byla získána v rámci programu MSDN Academic Alliance, ve

spolupráci Unicorn College a společnosti Microsoft. Licence umožňuje použití operačního systému pro akade-

mické účely zadarmo.

80

• ETL_Jobs – skripty vytvořené v Talend Open Studio for Data Integration, exportova-

né do samostatně spustitelné podoby

• Japsersoft – instalace aplikace iReport tDesigner 5.0.4

• MySQL 5.6.11 – instalace databáze. Nainstalována jako systémová služba.

• Report_definitions – definice reportů vytvořené v aplikaci iReport Designer

• Talend – instalace aplikace Talend Open Studio for Data Integration

Plocha obsahuje následující soubory a odkazy:

• Zkratka do složky C:\DWH

• Soubor hesla.txt – obsahuje hesla ke všem nainstalovaných aplikacím a serverům

• Services – odkaz na administrační program pro služby systému Windows

• Task Scheduler – odkaz na administrační program pro plánování úloh systému Win-

dows

• Talend Open Studio – spustí aplikaci

• HeidiSQL – spustí aplikaci HeidiSQL využívanou pro administraci databáze MySQL

• iReport Designer – spustí aplikaci

• Odkaz JasperSoft Server – otevře v prohlížeči přihlašovací dialog JapserSoft Server

webové aplikace

• Odkaz Report – Trzby – otevře v prohlížeči příslušný report (je vyžadován přihlášení,

viz soubor hesla.txt)

• Odkaz Report – Objednavky - otevře v prohlížeči příslušný report (je vyžadován při-

hlášení, viz soubor hesla.txt)

• Odkaz Report – Polozky Objednavek - otevře v prohlížeči příslušný report (je vyžado-

ván přihlášení, viz soubor hesla.txt)


Recommended