Skladištenje podataka

Skladno skladištenje

Piše: Dražen Oreščanin

Svaki sustav poslovne inteligencije temelji se na podacima. Za potrebe analize podaci se prikupljaju u skladišta podataka, a to je pojam koji ste sigurno već puno puta čuli. Ali, što je zapravo skladište podataka, po čemu se razlikuje od transakcijske baze podataka i kako se kreira? Ako tražite odgovore na ta pitanja, u ovom tekstu ćete ih pronaći…

Pojam skladišta podataka nije uopće toliko dugo prisutan u informatičkim rječnicima, iako je sam koncept bio upotrebljavan i prije, ali bez teoretske formalizacije. Skladište podataka je prije svega skup podataka orjentiran analitičkom korištenju, što znači da je optimiziran za puno SELECT upita koji dohvaćaju veću količinu podataka. Za razliku od skladišta podataka, transakcijski sustav je orjentiran na veliki broj istovremenih korisnika, te brzo zapisivanje, čitanje i izmjenu malih količina podataka, najčešće samo jednog sloga.

Sve je službeno počelo 1992. godine kad je “kum” skladištenja podataka Bill Innmon definirao skladište podataka kao “skup subjektno orjentiranih, integriranih, vremenski ovisnih i  nepromjenjivih podataka za podršku poslovnom odlučivanju”. Svaka od ove četiri značajke zaslužuje malo detaljnije pojašnjenje.

Subjektna orjentiranost znači da podaci u skladištu podataka organizirani tako da daju informacije o pojedinom poslovnom subjektu (proizvodu, kupcu,…), a ne da čitaju ili zapisuju pojedinu transakciju. Integriranost podrazumijeva dosljednost u sadržaju, nazivima i formatima podataka koji dolaze iz različitih izvora. Primjerice, formati zapisa datuma u različitim transakcijskim sustavima na različitim platformama mogu biti različiti, ali u skadištu podataka takvih razlika ne smije biti. Vremenska ovisnost znači da podaci u skladištu imaju vremensku dimenziju, odnosno da se skladište podataka sastoji od «snapshotova» transakcijskih podataka uzetih u redovnim vremenskim periodima. Nepromjenjivost određuje da se podaci jednom učitani u skladište podataka više ne mogu promijeniti, osim ponovnim učitavanjem s transakcijskog sustava.

Glavni građevni elementi skladišta podataka su činjenične tablice (engl. Fact tables) koje sadrže kvanitativne, numeričke podatke koji se analiziraju, te dimenzijske tablice (engl. Dimension tables), koje sadrže kvalitativne, strukturne podatke koji služe za kreiranje hijerarhija za sumarizaciju i analizu. Više o dizajnu i modeliranju skladišta podataka možete naći u okviru.

Još jedna vrlo bitna značajka skladišta podataka je veličina, možda je čak ispravnije reći ogromnost. Naime, zbog velikog povijesnog perioda koji podaci u skladištu podataka pokrivaju, zbog broja aplikacija iz kojih dolaze, te zbog činjenice da u procesu punjenja podataka dolazi do denormalizacije i kreiranja dodatnih kolona u tablicama, skladišta podataka su načešće vrlo velika. U tom kontekstu skladište od 100 GB smatra se relativno malim skladištem, dok se u velika skladišta mogu ubrojati ona veličine od preko 1 TB. Najveća svjetska skladišta podataka od gotovo 30 TB mogu se naći u telekomunikacijskim tvrtkama. Naravno, porast količine podataka ne donosi povećanje dimenzija samo diskovnog prostora, nego i procesorske memorijske snage  i komunikacijske propusnosti sustava, kako bi svi podaci pravovremeno bili učitani.

Izvori podataka

Izvori podataka mogu biti različiti, a u osnovi se dijele na interne i eksterne. U većini slučajeva prevladavaju interni podaci koji dolaze iz transakcijskih sustava. Velike tvrtke imaju više različitih transakcijskih sustava, pogotovo ako su nastajale kao posljedica integracija više tvrtki koje su imale različite sustave. Podaci iz svih tih sustava najčešće su potrebni za analizu i izvještavanje, te ih je potrebno napuniti u skladište podataka.

Također se ponekad koriste i podaci iz drugih nestrukturiranih izvora, najčešće Excel tablica, kojima se podaci koji ne postoje na transakcijskoj razini nadopunjuju. Iz tih izvora često dolaze i eksterni podaci, poput podataka od Zavoda za statistiku ili marketinških istraživanja.

ETL i kvaliteta podataka

Iz različitih izvora podaci se moraju učitati u skladište podataka, te nadupunjavati u redovnim vremenskim intervalima. Za to služi grupa alata poznatih pod nazivom Extraction, Transformation and Loading Tools (ETL) koji služe automatiziranju procedura za ekstrakciju, transformaciju i čišćenje podataka. Često su to vrlo skupe, moćne i sofisticirane platforme, ali također postoje i jeftinije i jednostavnije solucije koje mogu zadovoljiti većinu korisnika.

Kod velikih korisnika i velikih skladišta podataka vrlo je bitno u što kraćem vremenskom razdoblju prebaciti što veću količinu podataka u skladište, te ih u tom procesu transformirati i konsolidirati, te u tom slučaju investicija u moćnu i skupu ETL platformu koja ima ugrađeno mnoštvo transformacija koje “odrađuje” u memoriji bez višestrukog zapisivanja podataka na disk, ima poslovnog smisla.

Poseban problem predstavlja i kvaliteta podataka. Naime, transakcijski sustavi zbog brzine rada često nemaju ugrađene kontrole ispravnosti podataka, te se u podacima nalazi dosta “smeća”. To je posebno slučaj kod tvrtki koje rade s krajnjim korisnicima, kod kojih se dešava da se ista osoba vodi pod nekoliko različitih imena i adresa, ili da se ista ulica u podacima za različite klijente piše na različite načine. Ulica Miroslava Kraljevića 2, Kraljevićeva 2, M. Kraljevića 2 i još desetak raznih inačica su ispravni načini zapisivanja adrese i svi znače isto, ali su zapisani različito. Alati za kvalitetu podataka omogućavaju da se sve inačice koje su slične nađu i “isprave”, te da se podaci dedupliciraju i isčiste. Naravno, uvijek ostaje problem podataka koji izgledaju potpuno ispravno, ali u biti to nisu…

Metapodaci

Metapodaci su podaci o podacima – oni govore od kuda koji podatak dolazi, na koji način se transformira, gdje, kako i tko ga koristi na koji način. Metapodaci su doslovno vezivno tkivo skladišta podataka i BI sustava. Object Management Group razvija Common Warehouse Metamodel, zajednički standard metapodataka koji već podržavaju mnogi proizvodi na tržištu, što korisnicima život počinje činiti puno lakšim.

Star schema i Snowflake schema

Kod učitavanja podataka u skladište vrši se denormalizacija i i optimizacija podataka za analitičke upite. Dva najzastupljenija načina modeliranja su zvjezdasta (Star) i pahuljičasta (Snowflake) shema. Zvjezdasta shema podrazumijeva da je svaka dimenzija za analizu u potpunosti denormalizirana, dok pahuljičasta shema nije u potpunosti denormalizirana. Denoramalizacija se radi kako bi broj tablica koje se dohvaćaju u korisničkom upitu bio što manji, te kako bi upiti radili brže. Dimenzijske tablice obavezno trebaju imati primarne ključeve, kojima se vežu na tablicu činjenica. Vrlo je česta pojava tzv. sporo promjenjivih dimenzija u kojima subjekti mijenjaju neki od ključnih atributa (npr. klijent banke koji se preselio iz jednog grada u drugi), koje se mogu u skladištu podataka tretirati na nekoliko načina. Teorija poznaje tri osnovna tipa takvih dimenzija, a detaljnije razmatranje njihovog tretiranja odvelo bi nas vrlo duboko u teoriju i van dosega teme ovog teksta…

Skladište podataka i Data mart

Jedan od također često koristenih izraza u teoriji skladišta podataka je i Data Mart, što podrazumijeva podskup podataka iz skladišta podataka namijenjenih za korištenje od strane pojedine poslovne funkcije ili djelatnika na jednoj lokaciji. OLAP kocke o kojima će kasnije biti riječi, nejčešći su pojavni oblik multidimnzionalnog Data Marta. Prije je u velikim tvrtkama čest slučaj bio da su pojedine organizacijske jedinice (prodaja, nabava, financije) kreirale vlastite Data Martove, koje je kasnije teško integrirati u jedinstveni sustav zbog već pomenutog problema integriranosti. Danas je najčešći pristup kreiranje centralnog korporativnog skladišta podataka, iz kojeg se rade podskupovi, tj. data martovi za pojedinu poslovnu funkciju, čime se osigurava integriranost i konzistentnost podataka.

Query & Reporting

Prvi i prilično standardan zahtjev za korištenje informacija je kreiranje statičnih izvještaja i ad-hoc upita na podatke u skladištu – to nije jako sofisticiran i zahtjevan posao ako niste suočeni s tablicama od stotina miliona redaka, s nekoliko stotina korisnika i nekoliko tisuća izvještaja koje dnevno trebate isporučiti. U slučaju da niste suočeni s tim problemom, zadovoljiti će vas Access ili neki jednostavniji Report Generator. U slučaju da jeste, morati ćete posegnuti za snažnijom platformom. Današnje reporting platforme uglavnom imaju isključivo web sučelja. Velike mogućnosti za kreiranje izvještaja i jednostavnost sučelja za krajnjeg korisnika se za sve ozbiljne platforme podrazumijevaju.

OLAP

Vjerojatno je najomiljeniji i najpoznatiji način iskorištavanja podataka iz skladišta podataka OLAP (On-Line Analytical Processing). Iako je kao pojam nastao prilično davno, tek je u zadnjih 6-7 godina je postao vrlo omiljen, a napredak tehnologije omogućio je nastajanje zaista moćnih OLAP platformi. Ideja OLAP-a je da je poslovanje kompanije i funkcioniranje ljudskog uma u biti višedimenzionalno – ako želimo analizirati prodaju proizvoda svoje tvrtke, onda je želimo analizirati u vremenu, po regijama, po prodajnim mjestima, po artiklima, po kupcima… Kad bismo za svaku tu dimenziju radili zasebnu sumarizacijsku tablicu za potrebe izvještavanja, to je dugačak i mukotrpan posao.

Ideja OLAP-a se zasniva na tehnologiji koji takve višedimenzionalne sumarizacije kreira automatski i daje ih korisniku na raspolaganje, čime se stvara mogućnost kombiniranja najrazličitijih uvjeta koji, neovisno o svojoj smislenost, korisniku daju odgovor na postavljeni upit u realnom vremenu.

OLAP tehnologije dijele se na tri osnovne vrste. Prva je MOLAP (Multidimensional OLAP), koji je od izvorne relacije napravi multi-dimenzionalnu kocku – njegova prednost bila je brzina, a mana ogromno zauzeće prostora u slučaju postojanja većeg broja dimenzija. Drugi je ROLAP (Relational OLAP) koji je na postojeću relaciju dodao samo sumarizacije – njegova prednost je mali prostorni overhead, što je plaćano smanjenom brzinom. Na kraju je prevladao hibridni HOLAP koncept (Hybrid OLAP), koji samo sumarizacije drži u multi-dimenzionalnoj kocki, dok elementarni nivo podataka drži u izvornoj relaciji i njima pristupa pomoću drill-trough procedura – na taj način objedinjene su i velika brzina pristupa i relativno malo zauzeće prostora.

Prednost relacijskog reportinga pred OLAP-om je u činjenici da ne postoji faza izgradnje multi-dimenzionalne kocke, koja kod kreiranja kocaka od stotina milijuna slogova može biti jako dugačka. S druge strane, mogućnosti analize koje pruža OLAP su daleko veće.

Data Mining

Najzahtjevniji način korištenja informacija za analizu je Data Mining, kojem je posvećen zaseban tekst unutar teme. Za sada, dovoljno je reći da Data Mining platforme koriste sofisticirane matematičke i statističke algoritme kako bi se otkrili oku nevidljivi uzorci u podacima, a tekstova o data Miningu već ima podosta na sajtu.

A što mi skladištimo?

Prije nekoliko godina još je imalo smisla razgovarati o tome koja od hrvatskih tvrtki ima skladište podataka kao podlogu za Business Intelligence platformu, ali danas su takva razmatranja potpuno besmislena, budući da gotovo svaka veća hrvatska tvrtka posjeduje neki oblik skladišta podataka, a u Hrvatskoj zaista postoji dovoljan broj stručnjaka koji znaju implementirati skladišta podataka na svim vodećim platformama. Možda bi imalo više smisla raspravljati o tome koliko uspješno pojedina tvrtka koristi podatke koje ima u skladištu podataka i koliko su ti podaci kvalitetni i potpuni. Drugim riječima, nije toliko bitno što tvrtka ima, nego koliko se tvrtka koja to nešto ima time koristi i ponaša poslovno inteligentno. (D.O.)