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

Transkript

Výstavba datového skladu s použitím open source
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
Č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.
Výstavba datového skladu s použitím
open source technologií
Building data warehouse using
open source technologies
6
Abstrakt
Práce se zabývá využitím open source a bezplatného software pro vybudování datového skladu. Motivací je navrhnout implementací datového skladu při malou či střední firmu bez nutnosti pořízení komerčního software. Práce stručně rozebírá význam datového skladu a identifikuje jeho základní komponenty. Druhá část práce je věnována výběru technologií a posouzení jejích kvalit a vhodnosti pro splnění stanoveného cíle. Závěrečná část pak popisuje ukázkovou 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
7
Obsah
1.
Úvod ................................................................................................................................. 10
2.
Význam datového skladu a jeho struktura ....................................................................... 12
3.
2.1
Účel a význam datového skladu............................................................................... 12
2.2
Základní struktura datového skladu ......................................................................... 13
2.3
Softwarové komponenty .......................................................................................... 15
Výběr technologií pro implementaci................................................................................ 16
3.1
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
4.
ETL........................................................................................................................... 16
Závěr teoretické části ............................................................................................... 50
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
8
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
9
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 operativní i strategické rozhodování.
Velké podniky obvykle provozují celá specializovaná oddělení, která řeší problematiku 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 provoz 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ý software, 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. 201212-20]. Dostupné z: <http://www.gnu.org/philosophy/free-software-for-freedom.cs.html >
10
je a zkoumá jejich vhodnost pro vybudování datového skladu. Poslední – praktická – část obsahuje ukázkovou implementaci řešení, kdy jsou vybrané produkty nakonfigurovány a propojeny spolu tak, aby tvořily ač malý, ale zcela funkční datový sklad.
11
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 definici 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áhlý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
12
tabulky fakt, tabulky dimenzí, OLAP kostky aj.).3 Spouštění analytických dotazů nad oddělenou DWH databází přináší rovněž tu výhodu, že „šetříme“ provozní systémy a nezpůsobujeme 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 pravidelný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 implementová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 sys3
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
13
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 jiná 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). Technologie 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 komunikovat 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 Presentation 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 obvykle 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ýrazné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 datů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é konzumenty – jedná se reporty, analýzy a modely a další formy finální prezentace dat.
14
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 potř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 disponovat 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 Staging 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 pravidelných reportů, pokročilé možnosti konfigurace, možnost nastavovat přístupová práva uživatelů k reportům, definici pravidelných úloh pro spouštění reportů a přehledné a přívětivé uživatelské rozhraní.
V následující kapitole budeme již zkoumat konkrétní implementace těchto komponent proto,
abychom mohli funkční datový sklad implementovat.
15
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ří kategorií, 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 skriptů 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/>
16
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 distribuová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 definová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 který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 formá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>
17
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ístění souboru s transformačním skriptem. Pro běh programu je nutné nainstalovat Java Runtime 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>
18
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í edice 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řitom 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. Transformace jsou skripty nízké úrovně, jejichž účelem by měla být pouhá technická manipulace
11
PDI
license.
Pentaho
Data
Integration
[online].
<http://wiki.pentaho.com/display/EAI/PDI+License+FAQ>
19
2013
[cit.
2013-04-21].
Dostupné
z:
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žadované 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é transformač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š rozsáhlá, omezuje se v podstatě jen na definici databázových spojení a možnost definice uživatelský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 externě. 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 grafické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 Carte, 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>
20
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 verzí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 platné.
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í dostateč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
<http://wiki.pentaho.com/display/EAI/.13+Running+a+Transformation>
21
[cit.
2013-04-22].
Dostupné
z:
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 napří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 platformy 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 Designeru, 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/cloveretlserver.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
22
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ákladech zcela nová vývojová prostředí. Platforma ke svému běhu požaduje pouze lokální instalaci 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ší funkcionality, nicméně základní komponenty zůstávají návrhářům skriptů k dispozici.18 Transformač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ěkolik 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 databází (Oracle, MS SQL, MySQL, PostgreSQL, Firebird, MS Access, Sybase a další) a generický JDBC driver.19
Mezi transformační nástroje patří například Aggregate, Deduplicate, Filter, Sort, SimpleCopy. Zajímavou komponentou je pak Reformat, která umožňuje definici vlastní uživatelské 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/cloveretldesigner.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/partcomponents-overview.html>
23
je postaven na platformě Eclipse, implementaci je možno vytvořit přímo v prostředí Designeru, 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 zdrojů, 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 datamarty, 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 parametrů. Engine je distribuován jako JAR (Java Archive) knihovna, což jej umožňuje zabudovat 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í transformační grafy. Dokumentace celkově budí dobrý dojem, je srozumitelná a dobře strukturovaná, 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 komerční komponenta, odmítne Designer projekt vůbec otevřít.
Mezi další oficiální zdroje informací patří aktivní CloverETL Forum, kam může uživatel 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].
<http://www.cloveretl.com/services/clovercare-support>
24
2013
[cit.
2013-04-19].
Dostupné
z:
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é komponenty. 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áceně „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. Studio je grafický nástroj sloužící k návrhu skriptů pro přístup k datům, jejich transformaci, kombinaci 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 (MetaData Management), řízení business procesů a další.
Studio je nabízeno zdarma jako samostatná aplikace či pak v rámci rozšířených komerčních balíčků Enterprise Data Integration a Platform for Data Management. Balíčky obsahují 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 plnohodnotné 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>
25
Technické detaily
Open Studio for Data Integration je - podobně jako CloverETL Designer - postaveno na platformě Eclipse, a tudíž ke svému běhu potřebuje lokální instalaci JRE nebo JDK (Java Development 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, nastavení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) servery, zasílání HTTP requestů, volání SOAP a RESTful webových služeb (včetně zabezpečený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žívaný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. Podporová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>
26
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živateli 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ícero 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 nejprve 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 (napří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 instalovat.
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 implementován pomocí knihovny Apache Axis, plný Java EE serverový profil tudíž není vyžadován. Archí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>
27
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 dokumentaci 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 Components 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>
28
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 intuitivní. Projektově orientovaný přístup k práci a dostupnost verzování skriptů a metadat zjednoduš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 dispozici 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].
<http://www.talendforge.org/forum/>
29
2013
[cit.
2013-04-21].
Dostupné
z:
datamartů, v některém ze vhodných schémat (vločkové, hvězdicové schéma). Této části databá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é úlohy, 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 pravdě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ázovou instanci, která bude rozdělena na jednotlivá schémata, zajišťující výše popsané funkcionality.
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 dostupnost, 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>
30
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 Linuxový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 mechanismů 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ý storage 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 engine 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 okolností rychlejší čtení z velkých tabulek, což může být užitečné pro Data presentation area datové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>
31
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 MyISAM „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. Kromě hlavní části, podrobně popisující SQL syntaxi včetně její rozšíření a doplnění příkazy specifický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>
32
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í provádět operace nad auditními logy, kopírování a zálohování databáze, porovnávání dat, nastavení 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>
33
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 administrací PostgreSQL.
Technické detaily, HW a SW omezení
PostgreSQL je multiplatformní, instalační balíčky jsou dostupné pro operační systémy Windows, 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í proceduru pro příslušný operační systém.
Databáze je vyvíjena s důrazem na stabilitu a podporu standardů ISO/IEC, které specifikují 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 procesní 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>
34
mu. Každý takovýto proces využívá maximálně jedno procesorové jádro, tudíž i náročné dotazy 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 funkcionalitu 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 agregač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>
35
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 PostgreSQL, 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í PostgreSQL, stejně jako samotná databáze. PgAdmin je grafický nástroj. Umožňuje správu databázový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].
<http://www.pgadmin.org/features.php>
36
2013
[cit.
2013-04-11].
Dostupné
z:
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. Administrační rozhraní je vynikající, existuje i široká řada utilit pro správu databáze i dat samotný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 distribuová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 dekompilaci 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].
<http://www.oracle.com/technetwork/licenses/database-11g-express-license-459621.html>
37
Dostupné
z:
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žených v databázi. Oracle XE využije maximálně jeden procesor, nezávisle na tom, kolik procesorů 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ž nezkoumali. 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í datovou 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í InterBase. 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 rekompilaci, 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-firebirdlicenses.html>
38
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í instance.51 Zajímavostí je výchozí konfigurační nastavení Superserver edice pro Windows, kdy databáze použije pouze jedno procesorové jádro. V případě, že administrátor při instalaci přehlédl tuto informaci v dokumentaci, může to zpočátku způsobit výkonnostní problémy. Nastavení 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 Procedural 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 (algoritmus) 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>
39
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řehledné, 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 problematiky. 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-ddlindex.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é
<http://www.firebirdsql.org/file/documentation/reference_manuals/reference_material/html/fb-internals.html>
40
z:
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ástrojem je FlameRobin.56 FlameRobin je dedikovaný multiplatformní nástroj pro správu Firebirdu, 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žňují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 partitioningu 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ě dokumentace 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žití 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.
41
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, které 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 procesoru, 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ásadní, ž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 reportingových technologií, kterých využijeme v praktické ukázce pro demonstraci způsobu prezentace 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>
42
Ke zkoumání byly vybrány tři open source reportovací platformy: JasperReports, BIRT a Pentaho 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 reporty 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 provozová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. Poslední komponentou je JasperReports Library, což je program, který umožňuje spouštět vytvoř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é komunitní 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 Licence).59 Co se týče verzování, platforma se snaží dodržovat jednotné číslování všech produktů, 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 dispozici 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>
43
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ěkolik 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ě klasický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 vygenerová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 reportů uživatelům, včetně přidělení uživatelských rolí k reportům. Rovněž je možné plánovat pravidelné 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>
44
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ě importovat na server skrze webové rozhraní Serveru.
Dokumentace, komunita
Hlavní dokumentace k platformě je tvořena sadou PDF souborů popisujících jednotlivé produkty. Čá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, která 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. Podporu 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á integrace 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>
45
na zodpovězení otázek členy komunity se však nelze velmi spoléhat. I přes tyto menší nedostatky 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. Systé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ů založ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 reportů 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ředdefinovaný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 datasety, 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/>
46
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, textový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. Finá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 Engine. 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 exportu 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ů
47
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 dostateč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 plnohodnotného serveru pro distribuci reportů uživatelům. Filozofií BIRTu je nabídnout především kvalitní 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 zahrnuje 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>
48
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 vzhledu 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 datasetů, 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 Integration, 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 Reporting Engine. Engine slouží zároveň jako sada knihoven pro zabudování Pentaho Reportingu 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 serverem 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 serverem 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>
49
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 Reportingu, hledání v ní je bohužel nesnadné a není vůbec zaručeno, že uživatel dostupnou informaci 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 produkty Pentaho, včetně Pentaho Data Integration a Pentaho Analytics. Použití Pentaho Reportingu 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 vybráno z důvodu možnosti volby storage engine pro různé typy tabulek i schémat v rámci jedné
50
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í, podporuje verzování jobů a export hotových skriptů do několika formátů včetně samostatně spustitelný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 ovladatelný, 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 transformací, 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 funkcionalit 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ů.
51
4. Praktická část – implementace ukázkového datového skladu
Praktická část této práce přináší ukázkovou implementaci datového skladu s využitím komponent, pro které jsme se rozhodli ve druhé kapitole – tedy databáze MySQL, Talend Open Studio 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ě nakonfigurované řešení je součástí přílohy k práci – paměťové karty, která obsahuje operační systém Windows 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ů – firem 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 nutné 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 dodá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.
52
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í
Apache Tomcat 7.0
MySQL Community 5.5
Talend
Open Studio
Clios IS
Clios
generuje
vytváří
JasperReports
Server
DWH - Data Staging
reporty
ETL joby
spouští
spouští
DWH - Datamart
generuje
Systémový
plánováč úloh
Definice reportů
Jaspersoft DB
Jaspersoft
iReport
Designer
tok dat
Ř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 vznikají 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 budou 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
53
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 instance 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 implementovány v Talend Open Studio for Data Integration. Skripty (v terminologii Talendu „joby“) 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, nakonfigurovaný 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řistupovat 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úplný, nepodstatné a technické sloupce jsou vynechány):
54
Obrázek 3 - Clios, databázové schéma
CUSTOMERS
CID: INT <<PK>>
_________________________
FIRST_NAME: VARCHAR
LAST_NAME: VARCHAR
COMPANY_NAME: VARCHAR
ADDRESS: VARCHAR
ORDERS
ORD_ID: INT <<PK>>
__________________________
CID: INT <<FK>>
NOTE: VARCHAR
ORDER_NAME: VARCHAR
METADATA: VARCHAR
CREATION_DATE: DATETIME
ORDER_ITEMS
ITEM_ID: INT <<PK>>
_______________________
ORD_ID: INT <<FK>>
DESCRIPTION: VARCHAR
ITEM_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 objedná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 objedná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 databáze. Načtení bude probíhat každý den (například brzo ráno) a bude prováděno inkrementálně – vždy se načtou jen nové objednávky vzniklé předešlý den. Tím zajistíme, že vždy operujeme 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 řetě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:
55
Obrázek 4 - Data Staging tabulky datového skladu
DWH_STAGING_ORDER_ITEMS
DWH_STAGING_CUSTOMERS
DWH_STAGING_ORDERS
CID: INT <<PK>>
___________________________
ORD_ID: INT <<PK>>
__________________________
CUSTOMER_TYPE: VARCHAR
ADDRESS: VARCHAR
CID: INT <<FK>>
CREATION_DATE: DATETIME
ITEM_ID: INT <<PK>>
____________________________
ORD_ID: INT <<FK>>
ITEM_TYPE: VARCHAR
ITEM_MATERIAL: VARCHAR
ITEM_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í.
56
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álním schématu v tabulkách dimenzí a tabulkách faktů:
Obrázek 6 - Tabulky v DWH datamartu
DIM_DATE
DIM_MATERIAL_TYPE
DIM_DATE_ID: INT <<PK>>
DATE: DATETIME <<UNIQUE>>
YEAR: INT
MONTH: INT
DAY: INT
DIM_MATERIAL_TYPE_ID: INT <<PK>>
MATERIAL_TYPE: VARCHAR <<UNIQUE>>
FACT_ORDER_ITEM
FACT_ORDER
ROW_ID: LONG <<PK>>
____________________________
CUSTOMER_TYPE: INT <<FK>>
DATE: INT <<FK>>
ITEMS_COUNT: INT
TOTAL_PRICE: DOUBLE
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_PRODUCT_TYPE
DIM_CUSTOMER_TYPE_ID: INT <<PK>>
CUSTOMER_TYPE: VARCHAR <<UNIQUE>>
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ílené DIM_MATERIAL_TYPE a DIM_PRODUCT TYPE. Dimenze nesou informace o datu vytvoř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 denní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
57
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 tabulky 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 LoadFactOrderItems.
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
58
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 aktualizujeme 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 objedná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ákazní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 dohledávají ze čtyř tabulek dimenzí, nikoli ze dvou:
59
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ávné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ředchozímu výpadku systému) a chceme přepočítat období delší než jeden den. Do jobu navíc přidáme komponentu notifikující administrátora při selhání některého z dílčích jobů:
60
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,
61
aby každý den v 5:00 zavolal .bat (.sh) skript, který spustí master job a provede všechny potř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. Report 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.
62
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
JasperReports Server
Přístup uživatelů k reportům je realizován skrze webové rozhraní JasperReports Serveru. Server 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ů).
65
Spuštění reportu probíhá po kliknutí na název reportu na úvodní obrazovce po přihlášení uživatele, 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.
66
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 prostř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 podobě 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í softwarové 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 svoji 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 implementuje 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.
67
Conclusion (English)
The basic motivation of this bachelor thesis was to propose a way to implement a data warehouse 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 sufficient 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 reporting platform.
The introductory part covered basic data warehouse architecture and identified components 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 following three categories were researched – ETL (Extract Transform Load) tools, relational databases 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 warehouse. Finally, only two of them stood the test – MySQL and PostgreSQL, both almost equivalent 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 Integration 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 prove 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.
68
6. Seznam použitých zdrojů
KIMBALL, Ralph a Margy ROSS. The data warehouse toolkit: the complete guide to dimensional 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. 201304-10]. Dostupné z: <http://www.postgresql.org/docs/9.2/static/features.html>
Classic, SuperClassic or Superserver. Firebird: Reference Manual [online]. 2013 [cit. 201304-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>
69
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 [online]. 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>
70
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. 201304-26]. Dostupné z: <http://community.jaspersoft.com/wiki/getting-started-jasperreportsserver>
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>
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>
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) [online]. 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) [online]. 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]. Dostupné z: <http://wiki.pentaho.com/display/ServerDoc2x/Changing+to+the+LDAP+
Security+DAO>
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>
71
Chapter 17. Partitioning. MYSQL. MySQL 5.6 Reference Manual [online]. 2013 [cit. 201304-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]. Dostupné z: <http://community.jaspersoft.com/wiki/introduction-jaspersoft-studio>
JasperReports Library - Tutorial. Jaspersoft community [online]. 2013 [cit. 2013-04-26]. Dostupné z: <http://community.jaspersoft.com/wiki/jasperreports-library-tutorial>
Jaspersoft ETL Resources. Jaspersoft ETL: The Open Source Data Integration Platform [online]. 2013 [cit. 2013-04-20]. Dostupné z: <http://community.jaspersoft.com/project/jaspersoftetl/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>
72
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/faqsgeneral.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]. Dostupné z:<http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.
gui.docs/docs/part-components-overview.html>
73
Partitioning System (Like Oracle). Firebird Tracker: Firebird Core [online]. 2009 [cit. 201304-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ř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-forfreedom.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>
74
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]. Dostupné 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]. Dostupné z: <http://infocenter.pentaho.com/help/index.jsp?topic=%2Fpdi_user_guide%2Ftopic_pdi_
usr_step_reference.html>
75
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
76
8. Seznam příloh
1. CD s výstupy z praktické části
2. Paměťová karta SD s výstupy s praktické části
77
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 iReport 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.
78
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 iReport 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. Nainstalová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 akademické účely zadarmo.
79
•
ETL_Jobs – skripty vytvořené v Talend Open Studio for Data Integration, exportované 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 Windows
•
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řihlášení, viz soubor hesla.txt)
•
Odkaz Report – Polozky Objednavek - otevře v prohlížeči příslušný report (je vyžadován přihlášení, viz soubor hesla.txt)
80

Podobné dokumenty

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE

UNICORN COLLEGE BAKALÁŘSKÁ PRÁCE Vedoucí BP: RNDr. Ondřej Kučera 2014 Praha

Více

Integrační nástroje a jejich vazba k CASE a modelování vůbec

Integrační nástroje a jejich vazba k CASE a modelování vůbec Datový sklad Datový sklad (Data Warehouse) je definováno jako centralizované úložiště pro veškerá data organizace. Je navržen tak, aby poskytoval uživatelům ucelená data o klientech, produktech, v...

Více

Přednáška v PDF.

Přednáška v PDF. Dobrá dokumentace Světově jeden z nejčastějších (od tvůrců PHP) Editor ZendStudio (trial zdarma) Pro databáze PDO Ukázka: jednoduchá aplikace Ukázka: srovnání dalších FW

Více

ZDE - KOMIX

ZDE - KOMIX Kdy je IS zastaralý? – IHNED Kdy je IS čistý? … Jaký informační systém je čistý? V posledních letech jsme si zvykli na to, že se budují „zelené“ informační systémy (dále jen IS), „zelená“ datová ce...

Více

Luděk Skočovský COMPUTER SCIENCE ENJOYER

Luděk Skočovský COMPUTER SCIENCE ENJOYER vůbec je v současném stadiu vývoje lidské společnosti nezbytná pro každého jedince, který se podílí na rozhodování. Specialisté v různých oborech mají dnes k dispozici obecně zaměřené informační te...

Více

it produkt roku 2010

it produkt roku 2010 ucelený produkt, se kterým už nebudou mít žádnou práci,“ říká Lauren Statesová, viceprezidentka pro cloud computing ve firmě IBM. Dosud byl CloudBurst postaven pouze na bázi základních serverů řady...

Více

1 ISSN: 1805-4951 - Acta Informatica Pragensia

1 ISSN: 1805-4951 - Acta Informatica Pragensia Rozdílné hodnoty CAR této a jiných studií mohou být způsobeny odlišným obdobím, které bylo zkoumáno. Zatímco jiní autoři zkoumali období předcházející roku 2008, tato studie se zabývá obdobím mezi ...

Více