Banner

piatok 28. novembra 2014

Moderný reporting–príprava podkladu (Relačná databáza)

 

Než sa začneme hrať s dashboardmi v Jaspersoft, potrebujeme dátovú základňu. Začnem v niečom, kde sa cítim aspoň trošku “doma”.

Je to MySQL databáza.

V tomto programe si vytvoríme tzv. relačnú databázu. Takže než si nainštalujeme daný program, chcel by som napísať zopár pojmov a užitočných odkazov, ktoré pomôžu. Začnem však veľmi užitočnými článkami od p. Petra Zajíce na LINUXSOFT o MySQL všeobecne.

Pre tých, ktorí si radi po večeroch čítajú knižku odporúčim knihu “mistrovství v MySQL” od Michaela Koflera, ktorá vyzerá takto:

Priznám sa, že čo nedokážem nájsť na nete, tak hľadám v tejto biblii. Vrátim sa však k pojmu relačný databázový systém. Oficiálnu definíciu Vás nechám vygoogliť si, ja prejdem k podstate, ktorú vysvetlím tak trochu “excelovsky”.

image

Predchádzajúca tabuľka je súbor dát, kde stĺpce reprezentujú rôzne premenné (Kto, Kde, Kedy, Koľko a za Koľko predal tovar) a spoločne definujú jeden záznam, teda jedného človeka. Tým pádom, riadok = záznam.

Pozrime sa na túto tabuľku špekulačne – koľko pamäte môže zabrať? Túto otázku budem demonštrovať počtom znakov v každej bunke (Pre výpočet použijem funkciu LEN(), ktorá vráti počet znakov v bunke).

image

Vidíme, že táto malá databázka spotrebuje pamäť o veľkosti 467 znakov. Dá sa však toto množstvo redukovať? Odpoveď znie, áno. Prvé dva stĺpce sa totiž opakujú, preto ak napríklad meno Peter zakódujeme číslom 1 a mesto Praha taktiež, vytvorí sa nám zoznam Predajcov a Miest:

image

Tým pádom, môžeme pôvodnú tabuľku upraviť tak ,že miesto plného názvu mesta a mena predajcu vložíme iba dané tzv. referenčné číslo, alebo kľúč. Tabuľka bude mať v žltých stĺpcoch iba jedno číslo namiesto názvu a celkový počet znakov sa v tabuľke zredukuje na 286.

V prípade, že chceme urobiť pivotku, stačí doplniť pôvodné názvy cez funkciu VLOOKUP() a máme k dispozícii plnohodnotný dataset. Musím podotknúť, že sa pohybujeme v Exceli. MySQL funkciu VLOOKUP nepotrebuje, resp. v tomto prostredí sa nazýva relácia / integrita, ktorá sa medzi tabuľkami využíva pri spájaní.

Ďalšou výhodou je, že ak máme napr. pod číslom 6 Pardubice a zrazu sa niečo stane (Pardubice sa zlúčia s mestom Chrudim a vznikne Pardudim), tak nám stačí pod číslom 6 zmeniť názov a zvyšné data sú vždy aktualizované (počítač alebo my nemusíme ručne prepisovať každý riadok).

Ostanem dúfať, že tento popis stačí na to, aby ste si uvedomili silu a taktiež slabiny takéhoto relačného prepojenia tabuliek.

Existuje niekoľko metód, ako si takto pripraviť záznamy a rozkrájať ich na podtabuľky. Tieto metódy sa nazývajú Normalizačné pravidlá. Tie sú podrobne rozpísané v mnou spomínanej knihe na strane 191. Internetovo založení čitatiela si kliknú na Linuxsoft.

Tieto definície nebudem spomínať, prejdem však k vecnej logike. Pri konštrukcii databáze je veľmi dôležité si uvedomiť, čo s ňou potom budete robiť. Inak povedané, absolutne normalizovaná databáza môže byť nočná mora pre užívateľov, ktorí chcú selektovať data z viacerých tabuliek – vtedy skripty dosahujú veľkosti papiera A4 a ľahko sa pri manipulácii dá pomýliť! Na druhú stranu akákoľvek zmena popisných atribútov je jednoducho aplikovateľná.

Asi najlepší spôsob ako dosiahnúť cit je urobiť si vlastnú databázku a potom sa s ňou hrať, no rozhodne to nie je problematika na zopár článkov na blogu. Ja sa však chcem sústrediť na analytickú prácu, tým pádom náš relačný model mám hotový a bude vyzerať takto:

image

Tento pavúk sa tiež nazýva ERR diagram a slúži na to, aby sa užívateľ zorientoval vo funkcionalite a mohol komfortne selektovať. Len pre pochopenie vzťahov si predstavte, že jednotlivé prerušované čiary sú VLOOKUP funkcie medzi tabuľkami a to tak, že tabuľka z ktorej vychádza trojuholník je tabuľka, do ktorej sa ťahajú informácie z druhej tabuľky. Takže napríklad tabuľka DEALER dopĺňa data do tabuliek COST a SALES.

V budúcom článku si ukážeme ako nainštalovať MySQL a ako vytvoriť databázu spolu s tabuľkami. Kliknutím na odkaz download si môžete stiahnúť Excel s tabuľkou a počtami znakov. Kliknite tiež na facebook a pýtajte sa ak niečomu nerozumiete – potrebujete pomoc Winking smile.

             downloads_normal

utorok 25. novembra 2014

Moderný reporting – Sylabus

 

Ako som už spomínal v predchádzajúcom článku, je na čase naučiť sa niečo nové. Nasledujúce články pojmem v štýle “learn by repeat” a začnem tým, že nadefinujem jednoduchú case study.

Majme na starosti štatistiky predaja automobiliek Škoda vrámci rôznych regiónov v Českej republike.  Momentálne disponujeme predajnými miestami v nasledujúcich mestách: Brno, Hradec Králové, Liberec, Mladá Boleslav, Olomouc, Pardubice, Plzeň a Praha. Slovíčkom “momentálne” som chcel naznačiť, že tento zoznam sa bude meniť v čase, taktiež ako dealeri, ktorí nám zaisťujú tržby:  Peter, Martin, Roman, Milan, Lukáš, Eva, Martina, Angelika, Natália, Jana, Mária, Alžbeta a Markéta.

Čo nás zaujíma je samozrejme zisk. K nemu okrem tržieb patria náklady, spojené s predajom. Takže potrebujeme priebežne evidovať:

1) Koľko ktorý predajca predal áut v danom regióne, pričom platí, že predajcovia kolujú medzi predajňami.

2) Aké auto predal - každý model má inú cenu/maržu a Škoda auto momentálne disponuje modelmi: Citigo, Fabia, Roomster, Rapid, Yeti, Octavia a ich vlajková loď Superb. Tým pádom je jasné, že sa nám bude lepšie dariť, ak predáme 10 Superb-ov, nadopovaných nie skromnou výbavou oproti 10 Citigo vozíkom, určeným na nákupy a ku kaderníkovi.

3) Náklady spojené s predajom alebo odborne Cost of Sales. Pod nimi si môžeme pre jednoduchosť predstaviť rôzne promo akcie, výstavy v supermarketoch, víkendové dni a iné. Ďalšou súčasťou Cost of Sales zľavy na automobil.

4) Mzdové hodnotenie dealerov spolu s bonusovým systémom, aby boli dostatočne motivovaní predávať a predávať.

Pre jednoduchosť nebudeme uvádzať náklady na výrobu automobilu a ďalšie detaily. Taktiež podotknem, že akékoľvek údaje o predajoch a cenách sú generované v MS Excel a nemajú akýkoľvek súvis s realitou v automotive prostredí.

Začneme tým, že si vytvoríme nasledujúcu schému:

DB_illustration

Inak povedané, nastavíme si proces tak, že predajcovia budú mať k dispozícii Excel súbory, ktoré budú prebežne vypĺňať a k určitému dňu v mesiaci odosielať požadované informácie do databázy. Ako ste si všimli z obrázku, mám tam logá dvoch softwareových riešení pre tvorbu databázy.

Začneme tým, že si ukážeme, ako pripraviť relačnú databázu v MySQL a ako challenge som si zaumienil pripraviť riešenie v MongoDB, ktorá je NoSQL typu.

Takto pripravené  databázy napojíme na prostredie Jaspersoft a ukážeme si, ako pripraviť automatizovaný reporting. 

ETL_illustration

V nasledujúcom článku začneme konštrukciou relačnej databázy v MySQL – Step-by-Step. V prípade dotazov neváhajte kliknúť na facebook Winking smile.

štvrtok 13. novembra 2014

Schopnosti kvalitného analytika v budúcnosti

 

Je rozhodne v poriadku ak sa aj napriek spokojnosti s terajším zamestnaním alebo popri štúdiu zaujímate o pracovný trh. Dovolím si tvrdiť, že vzhľadom k dnešnej dobe je táto aktivita priam nevyhnutná.

Pri pohľade na ponuku analytických prác či už na domácom trhu alebo v zahraničí môžem konštatovať, že nároky sa čím ďalej, tým viac sprísňujú.

Pre ilustráciu: Ak ste pred piatimi rokmi ovládali VLOOKUP a kontingenčné tabuľky, tak ste patrili medzi žiadaných ľudí pre rôzne organizácie. V súčasnosti so znalosťou VBA a skriptovaním v SQL taktiež nemáte núdzu o zamestnávateľov, no tvorba pivotiek už nie je terno.

Čo však bude o 5, 10 alebo 15 rokov? To samozrejme nevie nikto a ja sa taktiež neodvážim predpovedať z krištáľovej gule. Avšak message tohto článku bude odzrkadľovať zopár postrehov, z ktorých si každý môže vytvoriť vlastný úsudok.

Prvý postreh: Rozvoj IT. Je fakt, že pred zopár rokmi bol pojem cloud pre 90% ľudí neznámy, respektíve si pod ním predstavili krásny obláčik na nebíčku. Len zopár zainteresovaných písalo svoje diplomové a dizertačné práce na túto problematiku. V súčasnosti tento pojem nabral úplne iný rozmer a množstvo firiem, ktoré chcú mať všetky kľúčové informácie o svojom biznise k dispozícii či už v tablete alebo smartphone rastie.

Druhý postreh: V súčasnosti sa často skloňuje pojem Dashboard. Jeho dostatočne výstižná definícia znie takto:

“A business intelligence dashboard is a data visualization tool that displays the current status of metrics and key performance indicators (KPIs) for an enterprise. Dashboards consolidate and arrange numbers, metrics and sometimes performance scorecards on a single screen. They may be tailored for a specific role and display metrics targeted for a single point of view or department.”

Zdroj: http://searchbusinessanalytics.techtarget.com/definition/business-intelligence-dashboard

Niekto by mohol oponovať, že sa jedná o problematiku Business Inteligence prostredia, avšak pri pohľade na vývoj MS Excel od 95 do 2013 Microsoft urobil významný pokrok. Spomeniem nástroj Power View, ktorého tvorbu som popísal v predchádzajúcich článkoch a ktorý vo finále môže vyzerať napríklad takto (Zdroj web):

Na druhú stranu ukážka dashboard-u, vytvoreného v Jaspersoft studio vyzerá takto (zdroj web):

Budeme súhlasiť, že tieto obrázky sú na prvý pohľad rovnaké. Rozdiel je akurát v tom, že druhá ukážka je zobrazená vo webovom prehliadači a nie je probém tento výstup exportovať a stiahnuť na disk vo forme excelu prakticky kedykoľvek. Túto výhodu však môžeme eliminovať schopnosťou Exelu komunikovať so serverom, ale spotrebovalo by to veľa času, námahy a vo finále by to nedosiahlo komfort, porovnateľný s druhým riešením.

Tretí postreh: Množstvo dat rastie spolu so spoločnosťou. Tento fakt ukážkovo ilustruje napríklad spoločnosť Alza (otravný marťan, ktorý sa nám snaží predať čo najviac elektroniky), ktorá vznikla vo forme živnostenského listu v roku 1994 a v súčastnosti je to obor s obratom cez 9 miliárd CZK ročne. Predstava, akým rozvojom museli prejsť skladovacie možnosti, nákup, distribúcia, monitorovanie zákazníkov, vývoj portfólia, personálne zmeny atď. vyvoláva husiu kožu. 

To všetko sa samozrejme muselo priebežne monitorovať a vyhodnocovať, čo je aspoň pre mňa ešte viac zamrazujúce. Tým pádom si dovolím tvrdiť, že podobné spoločnosti riešia konsolidáciu rôznych databázových skladov a za každú cenu sa snažia štandarzdizovať celý “analytics” proces do jedného celku.

Môj úsudok:

S rozvojom hardware a software sa analytické možnosti rozširujú, tým pádom aj požiadavky na analytika. Často sa stáva, že ich v oddelení ubúda, no agenda a zodpovednosť spolu s ich hodnotou rastie.

Čo sa týka pracovnej náplne, analytici budú musieť zčasti prebrať prácu developera nakoľko ich problematikou už nebude len vyriešiť monitoring dodatočných zmien v biznise, ktoré nebol schopný zachytiť software, ale zároveň ich doň efektívne implenetovať.

Moderný analytik by tým pádom v budúcnosti mal mať taktiež osvojenú problematiku fungovania databáz, základy programovania, ovládanie visual studios pre tvorbu a kontrolu dashboardov, programovací jazyk – orientovaný na web alebo iný BI tool.

Spomenuté hard skills sú cenné hlavne ak má cit pre rozumnú interpretáciu dat. Hovorím o nastavení lievika, ktorý filtruje všetky dostupné informácie tak, aby ich prezentácia bola zrozumiteľná cieľovej skupine, čo prirodzene vyžaduje hladké pochopenie chodu biznisu a ekonomikých pojmov.

Záver:

Excel, aj napriek jeho markantnému vývoju v budúcnosti nebude stačiť tržným nárokom a človek okrem nadobúdania citu pre biznis by sa mal neustále zdokonaľovať vo využívaní analytických nástrojov. Takže nám neostáva nič iné iba pracovať, učiť sa a skúšať nové nástroje, objavovať nové trendy.

Z tohto dôvodu som sa rozhodol implementovať do blogu ďalšie nástroje, ktoré súvisia s analytickou prácou a perfektne doplňujú funkcionalitu Excel-u a zároveň moderznizujú kvality súčasných analytikov.