K praktickému vyzkoušení postupů a technik předvedených na cvičení byla letos sestavena následující úloha.
Cíl: Navržení jednoduchého datového skladu pro zvolené téma.
Zvolte dle vašeho zájmu oblast nebo téma, které chcete modelovat.
Navrhněte model datového skladu, který bude obsahovat alespoň jednu tabulku faktů a dvě dimenzní tabulky.
Pomocí skriptu v Java (případně po zdůvodnění v Pythonu) implementujte ETL, který založí schema v DuckDB databázi, transformuje vhodně data a nahraje je do vytvořených tabulek. Uvažujte možnost opakovaného spuštění skriptu.
Demonstrujte funkčnost návrhu sestavením vhodného analytického SQL dotazu.
Vytvořte dokumentaci popisující navržený model, postup zpracování dat, řešené problémy, použité postupy (i pokusy, které nakonec nevedly k výsledku).
Časová náročnost: 40 hodin
Velikost týmu: 1 student
Nahlášení tématu: během konzultačních cvičení (od 4. 4. 2023) nebo mailem
Prezentace (a následné odevzdání):
| Skupina | 1. termín | 2. termín |
|---|---|---|
| čtvrtek (11:10) | 2. 5. | 9. 5. |
Téma je možné zvolit dle vlastního zájmu. Jako definici tématu pro příklad řešený na cvičení bych považoval Analýza odehraných her ve Stormgate za účelem posouzení kvality párování hráčů. Z toho vyplývá jednak, co použiji za primární data, jednak směr, jakým se bude ubírat modelování dimenzí, aby bylo možné dojít k analytické odpovědi.
Lze použít skutečná i umělá data. V případě, že potřebujete data vygenerovat, ChatGPT může dobře posloužit. Je vhodné nechat si prostor pro transformaci dat, tzn. nemít primární data přímo ve formátu, který chcete použít v modelu (viz myšlenky ve cvičení Modelování dat u analytických datových skladů).
Projekt bude obsahovat následující části:
Styl ani formát dokumentace není striktně daný. Doporučuji následující formáty (sestupně dle preference):
V dokumentaci by mělo zaznít:
Popis výchozí datové sady a jejího kontextu: jaký význam mají jednotlivé záznamy (řádky) a atributy (sloupce)? Uvést zda se jedná o reálná nebo umělá data. U reálných dat uvést, kdo za datovou sadou stojí, jak často se aktualizuje, a podobné informace. U umělých prosím o uvedení, jakým způsobem byla data vytvořena/generována.
Přidejte do dokumentu ukázku vstupních dat.
Popis transformací: jak byla vstupní data zpracována? Na základě čeho byly vytvořeny dimenzní tabulky? Jaké atributy byly zahozeny, odvozeny, agregovány, atd? U operací uveďte i důvod, proč byly provedeny.
Popis modelu: jaké faktové a dimenzní tabulky jsou v databázi vytvořeny? Odkud pochází jednotlivé atributy? Jaké jsou vztahy mezi tabulkami? Došlo k denormalizaci schematu?
Popis analytického dotazu: jaký dotaz byl vytvořen a jaké informace z něj lze získat? Jaké jsou jeho výsledky?
Vyprávění o cestě: jaké nečekané problémy byly řešeny, jaké byly jejich příčiny a jaké byly jejich řešení? Co se nepovedlo vyřešit? Co byste zpětně změnili na výběru tématu či postupu?
Dokumentace by měla být věcná a stručná. Nejde o beletrii, ale o technický popis.
❓ Domluvit, jestli bude prezentace slovem a obrazem na projektoru, nebo jen individuálně předvedená na PC.
Po úspěšné prezentaci student nahraje archiv s projektem (data, skript, databáze, dokumentace) do příslušného portletu na STAG.