• Nebyly nalezeny žádné výsledky

N ÁVRH A REALIZACE DATOVÉHO SKLADU

5 NÁVRH A IMPLEMENTACE APLIKACE BI/DW

5.3 N ÁVRH A REALIZACE DATOVÉHO SKLADU

Datový sklad je vytvořen dle principů uvedených v kapitole 2.2.4. Datový sklad je vytvořen tak, aby obsahoval konzistentní, relevantní a tematicky uspořádaná data získávaná z primárního zdrojového systému, který obsahuje data vytvořená transakcemi v rámci standardních činností agentury.

Pro účely aplikace BI a následných analytických operacím je nezbytné vybrat, upravit a transformovat původní data do struktury datového skladu. Těmto účelům jsou určeny procesy ETL – extraction, transformation, loading, kterým se věnuje kapitola 2.2.4.1 této práce.

5.3.1 Fyzický model DWH

Pro účely DWH byla v systému řízení báze dat MS SQL 2000 vytvořena databáze

„Diplomka“ a v ní databázové tabulky jednotlivých dimenzí a tabulek faktů. Dále byly určeny primární i cizí klíče pro zajištění integrity dat.

Fyzický model DWH je znázorněn v obrázku č. 12, jsou zde zobrazeny tabulky dimenzí a faktů a jejich struktury a vzájemné vazby.

Obrázek 12: Fyzický model DWH

5.3.2 ETL – datové pumpy

ETL procesy jsou v rámci diplomové práce řešeny v prostředí MS SQL 2000. Konzole

„Enterprise Manager“ obsahuje nástroje DTS - Data Transformation Services (služby pro transformaci dat), které byly vytvořeny datové pumpy. Pro jejich vytvoření se v DTS využívá třech základních úloh [dle NOV 2004]:

• definice vstupních a výstupních datových zdrojů,

• definice transformačních pravidel,

• definice průběhu transformace.

Pro jednotlivé datové pumpy byl určen výchozí a cílový zdroj dat. DTS umožňuje připojení k širokému okruhu zdrojů jako databáze Oracle, MS Access, MS Excel, TXT soubory, OLE/DB připojení, ODBC, HTML apod. Zdrojem datových pump řešeného DWH jsou soubory „agentura2005_DATA.mdb“ (MS Access) a pomocne.xls (MS Excel). První soubor obsahuje data exportovaná z primárního systému agentury JOBStudent, které jsou zdrojem tabulek faktů a většiny dimenzí. Data agentury byla poskytnuta ke zpracování bez osobních informací (rodná čísla, jména, adresy,…) a bez citlivých informací, které si agentura nepřála zveřejnit (jména a identifikační údaje zákazníků). Druhý soubor byl vytvořen jako zdroj pro pomocné dimenze „Dimenze_pomDen“ a „Dimenze_ZenaMuz“.

Pro provedení výběru, transformace a přenosu dat byl využit tzv. „package editor“

(editor balíčků), který umožňuje uživatelsky příjemným způsobem navrhnout a vytvořit datové pumpy. Z transformačních úloh, které DTS MS SQL serveru poskytuje, byly použity úlohy:

Transform Data Task (dále jen TDT) – všechna data jsou transformována podle stejného scénáře,

Execute SQL task (dále jen EST) – spuštění příkazu jazyka SQL.

Kromě použitých transformačních úloh nabízí DTS mnoho dalších jako např. „Active X Script Task“, „Execute Package Task“, „Analysis Services Processing Task“ a další.

Výsledné datové pumpy jsou spojeny do jediného scénáře transformace tzv. „workflow“, který probíhá dle nastavených pravidel posloupnosti.

5.3.2.1 Návrh a realizace datových pump

Balíček datových pump byl navržen pomocí „DTS package“ editoru v nástroji „SQL Server Enterprise Manager“ nástroji „Analysis services“. Vizuální podoba výsledného balíčku datových pump a transformací je znázorněn na obrázku č. 13.

Obrázek 13: Package datových pump

V každé transformační úloze (TDT) jsou definována připojení k výchozím a cílovým datovým zdrojům. Při transformační úloze je propojen výchozí i cílový zdroj dat a je vybrána zdrojová a cílová tabulka. Pokud cílová tabulka neexistuje, je možné ji v rámci transformace navrhnout a dotvořit. Transformace umožňuje vybrat zdrojové a cílové sloupce tabulek, jejichž data budou přenášena, stejně jako upravovat jejich datové typy, hodnoty apod. Po ukončení návrhu je transformace připravena k použití. Kromě transformací jsou využívány též SQL příkazy (EST)

Nejprve je definován EST „smaze_vse“, který testuje databázi „Diplomka“ na přítomnost definovaných databázových tabulek (dimenzí a faktů) a v případě jejich existence je smaže.

Další EST „vytvori_tabulky“ zajistí vytvoření všech tabulek v databázi „Diplomka“

včetně definice primárních a cizích klíčů. Tabulky jsou vytvářeny prováděním jednotlivých

SQL příkazů, jejichž posloupnost byla přizpůsobena stanoveným pravidlům integrity (tabulka obsahující cizí klíč nemůže být vytvořena dříve než tabulka, na kterou klíč odkazuje).

Další operací jsou dvě transformační úlohy (TDT), které ze zdrojového souboru

„pomocne.xls“ naplní tabulky „Dimenze_pomDen“ a „Dimenze_ZenaMuz“. Obě úlohy pouze kopírují jednotlivé záznamy.

Následuje 5 TDT plnící zbývající dimenze definované v kapitole 5.2.3 –

„Dimenze_lokalita“, „Dimenze_kategorie_zamestnancu“, „Dimenze_zamestnanci“,

„Dimenze_sekce“ a „Dimenze_brigadnici“. Pro transformaci byly využity SQL příkazy, umožňující provádět operace nutné pro výběr a očištění dat. Tyto operace jsou vzhledem k stavu databáze agentury JOBStudent nezbytné.

Další EST do všech záznamů tabulky „Dimenze_brigadnici“ vhodně koncipovaným SQL příkazem přidá odpovídající hodnotu do sloupce „idpoh“, dle stanovených pravidel.

Příkaz využívá skladby rodného čísla, které je unikátní. Vzhledem ke skutečnosti, že rodná čísla nebyla pro vývoj aplikace BI poskytnuta, byl příkaz modifikován na unikátní identifikační číslo zaměstnance-studenta. V případě implementace aplikace na ostrá data by EST byla jednoduše přizpůsobena.

Dále následují tři TDT, které plní jednotlivé pomocí SQL příkazů tabulky faktů:

„Fakta_hodiny“, „Fakta_vyplaty“ a „Fakta_nevykryto“.

Mezi jednotlivými transformacemi jsou definovány pravidla tzv. „workflow“, které určují posloupnost vykonávání jednotlivých transformací. V balíčku je využíváno pouze pravidlo „on success“ (zelenobílá šipka), které umožní vykonávání následující transformace pouze při úspěšném ukončení předchozí transformace.Workflow tak vytváří určitý řád při provádění transformací a v rámci jeho nastavení zajišťuje správné pořadí prováděných úloh.

Realizace navržených datových pump v balíčku se provádí jeho spuštěním („execute package“) pomocí tlačítka „start“. Přenos dat probíhá pro jednotlivé datové pumpy v závislosti na nastavení pravidel workflow. U každé datové pumpy je evidován její aktuální stav, čas přenosu a ukončení, a stav ukončení. V případě chybového ukončení některé úlohy je možnost si zobrazit chybové hlášení s popisem chyby.