SAS Slovakia Newsletter / Biznis analytika

Optimalizácia dátového skladu

Modelovanie dát dátového skladu je zvláštna disciplína, v rámci ktorej denormalizujeme štruktúry pre lepší výkon, aby sme potom z tejto denormalizácie urobili normu a z nej potom zase výnimky. Všetko s cieľom sprehľadniť, zrýchliť, skrátka po všetkých stránkach zdokonaliť prístup k informáciám. Aby sme z nich mohli vyťažiť želaný „strategický prínos", ktorý pomôže zlepšiť fungovanie nášho podniku a ľudského života vôbec… Keď sme už teda investovali toľko úsilia do vylepšovania, aké potreby a túžby nás ženú k ďalšej optimalizácii?

Iste, dá sa povedať, že na vylepšovanie je priestor vždy, otázkou však zostáva, aký je pomer investovaného úsilia k skutočným prínosom. Teda – jednoducho povedané, či sa nám to oplatí. Z tohto pohľadu si všimnime dve kategórie vylepšenia, ktoré dávajú ekonomický zmysel.
Prvá z nich reaguje na situáciu, kedy aj najmohutnejší výpočtový systém začína byť dýchavičným, druhá umožňuje nechať si zahrať za málo peňazí viac muziky.

Keď sa silák zadýcha

Rast výkonu počítačov je dnes skutočne ohromujúci, alebo ako tiež často počujeme, dramatický. To, čo bolo včera špičkou, je teraz hodné len zhovievavého úsmevu. Zdalo by sa, že stačí len chvíľu počkať a nebude problém poradiť si s akýmkoľvek objemom dát. Zatiaľ čo vymýšľame akokoľvek inteligentnú optimalizačnú techniku, vynaložíme viac úsilia a peňazí, než keby sme si jednoducho zaobstarali niekoľkokrát výkonnejší hardvér. Veď jeho sila sa násobí každý rok, každý deň, každú hodinu!

Počítače sú síce stále výkonnejšie, je ich stále viac a sú dostupnejšie a dokážu riešiť a podporovať stále viac agend a činností, na ktoré by sme predtým ani nepomysleli, avšak výsledkom tohto šírenia je obrovský – a stále sa zrýchľujúci - nárast veľkosti spracovávaných dát. Nie je to tak dávno, čo nastal zlom a ročná dátová produkcia po prvýkrát v histórii celosvetovo prevýšila rast dostupného priestoru pre jej uloženie na diskových pamätiach.

Dátové sklady bývajú skutočne budované ako robustné systémy s rezervou pre spracovanie rozsiahlych dát. Časom však nastáva takmer zákonite okamžik, keď získanie potrebnej informácie vyžaduje vzhľadom na rast dátovej základne omnoho viac kapacity a času, než je akceptovateľné. Systém sa zahlcuje, aj keď výstupy sú stále také isté. Dôvodom je, že nájsť patričné dáta mu teraz dá o mnoho viac práce než predtým.  Prichádza rozčarovanie – taký krásny a drahý systém a on nestíha!  Čo s tým? Posilnenie hardvéru je samozrejme jednou z ciest, ale donekonečna to určite nepôjde. Takže nezostáva nič iné než optimalizovať. Teda zariadiť, aby sme systému uľavili, ale „aby súčasne nestratil tvár".

Partitioningujme smelo!

Našťastie, tak ako už predtým v iných prípadoch, je aj tu po ruke elegantná myšlienka. Napriek tomu, že dáta, z ktorých ťaháme informácie, stále rastú, objem týchto „vyťažených" informácií je zhruba úplne rovnaký. Ľudia proste majú tiež len určitú kapacitu pre ich spracovanie. A k tomu sa dá ľahko vypozorovať, že sú tu veľké rozdiely v početnosti prístupu k určitým dátovým oblastiam a položkám. Niektoré dáta sú ťažené dosť intenzívne, iné skôr náhodne a existujú aj také, na ktoré sa nesiaha prakticky vôbec. Pri ďalšom dôkladnom pozorovaní obvykle zistíme, že tých prvých je výrazná menšina, zatiaľ čo tých druhých väčšina. Takže sa ponúka rozdeliť ich na menšie časti, ktoré sa prehľadajú mnohokrát, až rádovo rýchlejšie a pritom niektoré z tých malých častí pokryjú väčšinu požiadaviek. Hovorí sa tomu logický partitioning (logický preto, že je to niečo iné než fyzický partitioning na úrovni hardvéru alebo operačného systému).

V praxi budovania dátových skladov nie je otázkou či, ale ako partitioningovať. Účelné je rozdeliť dáta do logických celkov, ktoré budú uložené napr. v niekoľkých menších databázových tabuľkách a s menšími indexmi, a to tak, aby jednotlivé malé celky uspokojili väčšinu dotazov. Napríklad oddeliť údaje o tržbách po jednotlivých rokoch, keď nás zaujímajú analýzy len za posledné obdobie. Ako vždy, aj tu je niečo za niečo – v tomto prípade prestane aktuálny partitioning vyhovovať, ak by sa hodilo rozdelenie dát podľa iného kritéria (napríklad podľa výrobných radov produktov).

Duálna granularita

V optimalizácii však môžeme ísť ešte ďalej. Pretože je známe, že 90% analytických dotazov pracuje s agregovanými a nie s detailnými dátami, môžeme si súhrnné ukazovatele predpočítať a tiež uložiť do samostatných tabuliek. Pre získanie informácií, ktoré nevyžadujú detail (a ktorých je tých 90%), pracujeme už len s týmito agregátmi, čo je oveľa rýchlejšie.
Dokonca môžeme obe predchádzajúce metódy kombinovať a ukladať dáta pre rôzne obdobia s rôznou granularitou – teda čerstvé dáta v kompletnom detaile a staré iba sumarizované.

Obe metódy vyžadujú samozrejme veľkú obozretnosť – jednak platí, že čo raz agregujeme, podstatne menej ľahko (ak je to vôbec možné) rozagregovávame, takže sa musíme zmieriť, že niektorú trinástu komnatu si môžeme navždy uzavrieť – a okrem toho si musíme dávať pozor pri zápise nových informácií, aby sme správne aktualizovali všetky úrovne granularít na všetkých miestach, kde máme príslušné dáta uložené…

Buďme kreatívni!

Tak a teraz sa konečne dostávame k sľubovanej muzike za málo peňazí. Metódou, ktorej uplatnením môžeme málo stratiť a veľa získať, je uplatnenie kreatívnych indexov. Slovo index je tu používané v jeho pôvodnom latinskom význame– teda zoznam. Táto metóda vlastne neznamená nič iné, než to, že sa niektoré položky ocitnú na indexe (teda na zozname). Väčšinou ide o zoznamy subjektov hodných zvláštnej pozornosti (ako tomu ostatne bolo v histórii často), aj keď v tomto prípade býva táto pozornosť či už negatívna alebo pozitívna. Príkladom môžu byť zoznamy 10 najpredávanejších výrobkov, 100 najbonitnejších zákazníkov, najdôležitejších partnerov, ale aj najrizikovejších klientov, neplatičov, atď. Tieto zoznamy je možné vytvárať a udržiavať zvlášť. Pri dotazovaní a analýze umožňujú dostať sa rýchlo k potrebným dátam bez toho, aby sme museli prehľadávať a analyzovať celú databázu.

Ako ďalej?

Uvedené príklady predstavujú drobné, aj keď užitočné metódy, ktoré sa snažia vyrovnať s lavínovitým prívalom spracovávaných informácii. Tušíme, že nám pomôžu, ale ich účinnosť je obmedzená. Aby však manipulácia so strategickými informáciami vydržala s dychom, aj keď má čeliť informačnej explózii, cítime, že je nutné učiniť zásadnejšie, koncepčnejšie kroky. O tých si povieme nabudúce.

Vladimír Kyjonka, SAC Business Advisor