Professional Documents
Culture Documents
VidMalesevicDiplomskiRad PDF
VidMalesevicDiplomskiRad PDF
ELEKTROTEHNIČKI FAKULTET
STUDIJSKI PROGRAM RAČUNARSTVO I INFORMATIKA
Vid Malešević
Ključne riječi:
Skladišta podataka
OLAP
Transakcije
Star i snowflake šeme
Integracioni servisi
ETL
Izvještavanje
Denormalizacija baze podataka
Multidimenzionalno modelovanje baze podataka
Kandidat:
Vid Malešević
UNIVERZITET U BANJOJ LUCI
ELEKTROTEHNIČKI FAKULTET
KATEDRA ZA RAČUNARSTVO I INFORMATIKU
8. MULTIDIMENZIONALNO MODELOVANJE......................................................... 51
8.1 Implementacija koncepata multidimenzionalnog modelovanja podataka u SSAS ..... 52
8.2 Integracija SSAS i SSRS............................................................................................ 57
9. ZAKLJUČAK ................................................................................................................. 59
LITERATURA........................................................................................................................ 61
U današnje vrijeme dosta vremena i novca se ulaže u poslovne aplikacije poput ERP
(eng. Enterprise Resource Planing), SCM (eng. Supply Chain Management) i CRM (eng.
Customer Relationship Management) sisteme. Primarna motivacija za takva ulaganja je
postizanje veće kontrole nad svakodnevnim operacijama u poslovnim sistemima. Opšte
mišljenje je da se navedeni poslovni sistemi mogu iskoristiti kao izvori podataka koje će ciljni
sistem koristiti kao podršku pri donošenju odluka. Na osnovu navedenog, potrebno je
projektovati sistem koji će na najbolji način iskoristiti ogromnu količinu podataka dobijenih iz
poslovnih transakcija (narudžbe, prodaje, vođenje evidencija o događajima itd.) radi pružanja
boljeg uvida u rad organizacije, kao i podrške pri donošenju ključnih odluka.
1
U trećem poglavlju objašnjen je pojam dimenzionalnog modelovanja, navedene su
prednosti i mane tog načina projektovanja BI (eng. Business Intelligence) sistema. Dat je i
detaljniji pregled koncepata star šema, snowflake šema i OLAP (eng. Online Analytical
Processing) kocka. Takođe, objašnjen je pojam fact tabela, granularnosti fact tabela i
aditivnosti mjera kao i postupci projektovanja fact tabela. U nastavku trećeg poglavlja
pokazani su načini za projektovanje dimenzionalnih tabela u sistemima poslovne inteligencije
kao i veza dimenzionalnih tabela i dimenzionalnog modela. Uveden je SCD (eng. Slowly
Changing Dimensions) koncept dimenzija koje se sporo mijenjaju i analizirani su mehanizmi
implementacije ovog koncepta.
2
2. OSNOVNE KARAKTERISTIKE I ISTORIJSKI RAZVOJ
SISTEMA POSLOVNE INTELIGENCIJE
U periodu “Poslovne inteligencije 1.0”, devedesetih godina prošlog vijeka, dva glavna
zadatka poslovne inteligencije bila su generisanje izvještaja i podataka, kao i predstavljanje
sadržaja na razumljiv način. Dva značajna problema koja su tada bila prisutna su
kompleksnost i vrijeme. Postojeća BI rješenja bila su razvijana isključivo za IT eksperte i bila
je potrebna značajna obuka u oblasti analitike da bi korisnici iz BI sistema mogli izvesti
zaključke. Pristup podacima je bio veoma spor a generisanje izvještaja je dugo trajalo zbog
lošeg načina smještanja podataka.
4
Počevši od 2000. godine oblast poslovne inteligencije prošla je kroz intenzivan proces
dorade i poboljšanja. Danas se BI alati dizajniraju za veoma specifične namjene, poput
vojske, zdravstvenog sektora, robnog i materijalnog poslovanja itd. Razvoj alata za specifične
namjene napravio je značajan doprinos brzom usvajanju sistema poslovne inteligencije u
različitim organizacijama. “Samoposlužni” alati (korisnik može da koristi BI sistem bez
obzira da li je domenski ekspert) i alati za vizuelizaciju podataka se oslanjaju jedni na druge
da bi mogli da napreduju i da se razvijaju. Alati za vizuelizaciju su evoluirali na način da sada
uključuju i krajnjeg korisnika u kompletan proces, tj. krajnjem korisniku daju sve moćnije
alate da bi on samostalno mogao iskoristiti i istraživati podatke, bez dodatne obuke ili
objašnjavanja.
5
razumljivi za krajnje korisnike, a ne samo za programere. Struktura tih podataka mora na neki
način da podsjeća na same poslovne procese unutar organizacije koje BI sistem modeluje.
U BI sistemima vrijeme figuriše kao veoma bitan faktor, pa oni u skladu sa tim moraju
da prezentuju informacije u vremenski korektnom redoslijedu. Sirovi podaci moraju imati
kontekst i značenje u vremenskom domenu (npr. sati, minute, itd). Osim toga, BI sistemi
moraju biti otporni na napade različitih eksternih faktora koji za cilj potencijalno imaju krađu,
promjenu podataka ili bilo kakvo ugrožavanje rada sistema i organizacije [1]. Nakon
dizajniranja BI sistema, puštanja u produkciju i testiranja, korisnici sistema uglavnom imaju
slike o tome kako sistem radi i koliko je on pouzdan. BI sistemi treba da budu pouzdani i
stabilni zbog toga što se koriste kao podrška pri odlučivanju i upravljanju organizacijom, što
je jedna od glavnih namjena BI sistema. Okruženje u kome se BI sistem nalazi mora da ga
prihvati kao realno rješenje koje može da bude od velike koristi u jednoj organizaciji i tek
tada BI sistem može da doprinese sveukupnom radu organizacije.
6
3. DIMENZIONALNI MODEL
Najčešće korišćena tehnika modelovanja baza podataka je treća normalna forma (3NF)
zbog prednosti koje se ogledaju u visokoj strukturiranosti modela, lakom razumijevanju
modela, efikasnom smještanju podataka, dobrim performansama itd. Negativne osobine ovog
pristupa su [6]:
Zbog navedenih nedostataka 3NF modela, ovaj model nije pogodan za upotrebu pri
projektovanju skladišta podataka, pa je bilo neophodno napraviti novi, pogodniji model.
Glavni zahtjevi koje je novi model morao zadovoljiti su [6]:
Uveden je novi model koji ispunjava sve navedene zahtjeve pod nazivom „Dimenzionalni
model“ [1].
7
3.1 Fact tabele
Termin fact predstavlja poslovnu mjeru, što možemo predstaviti sljedećim primjerom.
Ako posmatramo jednu poslovnu jedinicu trgovačkog lanca dolazimo da zaključka da
zaposleni prodaju artikle određene količine u određeno vrijeme, određenom kupcu po cijeni
koja je važila u trenutku prodaje uz određeni popust. Primjer takve fact tabele prikazan je na
slici 3.1. Na slici su prikazane i dimenzionalne tabele o kojima će više biti riječi u odjeljku
3.2.
3.1.1 Granularnost
Svaki red u jednoj fact tabeli odgovara jednom mjernom “događaju”, a podaci u
svakom redu specifikovani su na određenom nivou detalja. Ta osobina se naziva
“granularnost” i indikator je toga do koje mjere su prikupljeni podaci detaljni. Načelno, svi
redovi u fact tabeli moraju biti na istom nivou granularnosti što takođe pokriva i problem
duplog brojanja. Ukoliko generišemo izvještaj na osnovu fact tabele sa niskom granularnošću,
neće se javiti problem sa pojavljivanjem duplih redova budući da ne obuhvatamo veliki broj
kolona i vjerovatnoća za pojavljivanje istih vrijednosti je manja. Suprotno tome, ukoliko u
izvještaju obuhvatimo veći broj kolona, vjerovatnoća za pojavljivanje istih vrijednosti se
povećava te u krajnjem slučaju može doći do dupliranja redova.
U fact tabelama se vrlo rijetko nalaze tekstualni podaci prvenstveno zbog svoje
slobodnije prirode. Veoma je komplikovano parsirati ili u opštem slučaju dati kontekst
tekstualnom komentaru koji se smješta kao polje u tabelu. Iz tog razloga, fact tabele sadrže
8
uglavnom numeričke vrijednosti koje su u stvari strani ključevi (najčešće dva ili više) koji
referenciraju primarne ključeve dimenzionalnih tabela. Kada svi ključevi u fact tabeli imaju
svoj ekvivalent u odgovarajućim dimenzionalnim tabelama, kažemo da tabele zadovoljavaju
referencijalni integritet i tada fact tabeli pristupamo kroz njoj pridružene dimenzionalne
tabele. Fact tabela ima svoj primarni ključ koji se sastoji od podskupa stranih ključeva koji se
naziva kompozitni ključ [2].
Rijetko kada se iz skladišta podataka pomoću upita zahtijeva ekstrakcija samo jednog
reda tabele, već uglavnom više redova nad kojima se mogu vršiti različite operacije od
interesa, poput agregatnih funkcija, pa je aditivnost mjera od suštinskog značaja u BI
sistemima.
Najjednostavniji tip mjera su one koje se mogu agregirati pomoću SUM agregatne
funkcije nad svim dimenzijama koje mogu biti npr. količine ili sume. Na primjer, ako bi
ukupna prodaja artikla A iznosila 1.000 KM, a artikla B 2.000 KM, tada bi ukupna prodaja
artikala A i B iznosila 3.000 KM. Mjere koje se mogu sumirati nad svim dimenzijama se
nazivaju aditivne mjere.
Neke mjere nisu aditivne ni nad jednom dimenzijom, kao na primjer procenti. Tako na
primjer korišćenje agregatne funkcije AVERAGE nad takvim dimenzijama ne bi donijelo
smislene rezultate. Na primjeru procenata, neaditivnost je moguće demonstrirati korišćenjem
agregatne funkcije SUM nad vrijednostima koje predstavljaju popust na kupovinu artikala, u
procentima. Nakon sumiranja iznosa popusta za više prodanih artikala, bilo bi moguće preći
vrijednost od 100% što kao sumarna informacija ne daje uvid u stvarno stanje.
Potpun BI sistem treba da sadrži i tabele u kojima će se čuvati istorija promjena, na
primjer ko, kada i zašto je mijenjao, dodavao ili brisao određene redove u tabelama BI/DW
sistema, na koliko redova su uticale izvršene promjene i sl. Osim toga, od interesa je čuvati i
informacije o tome koliko je trajalo izvršavanje svih upita ili transakcija u svrhu određivanja i
poboljšanja sveukupnih performansi BI sistema. Treba reći i da je čuvanje ovakvih podataka
korisno samo u slučaju ako će se analizom tih podataka izvući korisne informacije i preduzeti
konkretne mjere za poboljšanje performansi sistema. U suprotnom, zauzeće prostora bi bilo
veliko, a sami podaci bi bili beskorisni.
Ponekad je poželjno utvrditi odakle i kada je neki red u dimenzionalnoj ili fact tabeli
generisan, tj. potrebno je utvrditi njegovo porijeklo (eng. lineage). Kao najjednostavniji način
za implementaciju opisanog svojstva, moguće je dodati kolonu u odgovarajuću
fact/dimenzionalnu tabelu u koju će biti smješteni navedeni podaci [1], što će biti detaljnije
objašnjeno u dijelu rada u kojem se govori o ETL procesu.
9
Da bi se mogli prikupljati ovakvi podaci, potrebno je izvršiti modifikacije ETL procesa
koji se koristi u BI/DW sistemu. Nove kolone koje se dodaju radi čuvanja istorije promjena
nikada ne treba da budu dostupne krajnjem korisniku. Ove kolone ne smiju da se pojavljuju
na izvještajima i nad njima ne smiju da se vrše operacije (poput pivotiranja).
Dimenzionalne tabele (dimenzije) uglavnom imaju veći broj kolona i nije neobično da
ih ponekad bude pedeset do sto budući da služe za opis entiteta koji mogu da imaju mnoštvo
atributa. One imaju veliki broj kolona, ali mali broj redova, što je suprotno u odnosu na fact
tabele koje imaju ogroman broj redova, a manji broj kolona koje su uglavnom strani ključevi.
Svaku dimenziju karakteriše jedan primarni ključ koji služi kao osnova za
referencijalni integritet sa bilo kojom fact tabelom kojoj je pridružena. dimenzionalni atributi
služe kao primarni izvor ograničenja u upitima jer se po njima vrše sortiranja, grupisanja,
sumiranja i sl., te oni čine osnovu za upotrebljivost i razumljivost DW/BI sistema. Skladište
podataka je dobro samo onoliko koliko su dobri dimenzionalni atributi, a analitička moć
DW/BI okruženja direktno je proporcionalna kvalitetu i dubini dimenzionalnih atributa, pa je
zato vrlo bitno dobro definisati ove atribute.
10
u kojem se koriste privatne dimenzije za prodaju robe kupcima, pa tada nije moguće uporediti
prodaju i stanja na računima za određenog kupca jer fact tabele koje se tiču prodaje i vođenja
računa (konkretno, stanja na računima) ne bi dijelile iste dimenzije koje se tiču podataka o
kupcu.
Postoji čest problem u vezi sa dimenzijama u skladištu podataka vezan za podatke koji
su podložni čestim promjenama. U klasičnim OLTP bazama podataka, ovo uglavnom nije
problem jer kada je potrebno izvršiti promjenu podataka, sve što je potrebno uraditi jeste
ažurirati podatak. U BI/DW sistemima, potrebno je čuvati istoriju promjena, kao što je
prethodno objašenjeno, pa se postavlja pitanje koji je optimalan način da se to uradi. Potrebno
je ustanoviti tačne vrijednosti podataka koji se sačuvaju, npr. da li se čuvaju samo poslednje
(najnovije) vrijednosti podatka ili je od interesa i početna (stara) vrijednost, razlika stare i
nove vrijednosti i slično. U BI/DW žargonu, ovaj problem se naziva Dimenzije koje se sporo
mijenjaju – SCD.
1
Pivot tabela je alat za agregaciju podataka, najčešće ugrađen u programe za rad sa tabelama, BI alate i druge
programe koji služe za manipulaciju skupovima podataka. Upotrebom pivot tabele nad podacima je moguće
vršiti operacije poput sumiranja, sortiranja, računanja prosječne vrijednosti i dr. Podaci su, nakon primjene
agregatnih operacija, smješteni u tabelu koja se naziva pivot tabela i njena struktura ne zavisi od originalne
strukture podataka.
11
rješavanje ovog problema je dodavanje dvije kolone koje označaju opseg važenja
podatka (datum od i datum do). Za trenutno važeći podatak, vrijednost datuma do je
null.
Tip 3 – dodaje se nova kolona koja reflektuje promjene nad podacima. Na primjer, u
jednoj dimenziji može biti kolona trenutno mjesto prebivališta. SCD tip 3 se
implementira tako što se dodaje kolona “Prethodno mjesto prebivališta”. Tip 3 nije
naročito popularan zbog gomilanja broja kolona jer za svaki podatak treba da postoji
dodatna kolona u kojoj se čuva istoriju promjena (za samo jedan podatak).
Primjer na kojem možemo uočiti još jedan bitan faktor u BI sistemima je vođenje
evidencije o klijentima. Da bi smo na korektan način čuvali takvu istoriju, moramo imati neki
atribut koji jedinstveno identifikuje klijenta kroz istoriju promjena i taj atribut treba da bude
nepromjenljiv. Jedan način realizacije je da koristimo poslovni ključ klijenta jer se on u OLTP
bazama podataka ne mijenja [1], [2].
12
Dimenzionalni model koji je implementiran u multidimenzionalnim bazama podataka
se naziva OLAP kocka, što je prikazano na slici 3.4 a). S druge strane, dimenzionalni model
koji je implementiran u relacionom sistemu za upravljanje bazama podataka se naziva “star
šema” [1], zbog svojstva da mu struktura podsjeća na zvijezdu (slika 3.4 b)).
Star šema je dobila svoje ime zato što struktura šeme baze podataka izgledom
podsjeća na zvijezdu. Centralna tabela se naziva fact tabela koju okružuje više tabela koje se
nazivaju dimenzije, a o njima će biti više riječi kasnije. Logički, jedna star šema pokriva
jednu oblast poslovanja, kao na primjer Internet prodaju ili odnose sa kupcima. Skladište
podataka se sastoji iz više star šema koje pokrivaju različite oblasti poslovanja [1].
(a) (b)
Slika 3.4 – Pod (a) je prikazana OLAP kocka [9] a pod (b) je prikazana star šema [10]
Zvijezde i OLAP kocke dijele zajednički logički dizajn, ali se u smislu implementacije
razlikuju na fizičkom nivou. Kada se podaci učitaju u OLAP kocku, pohranjuju se i
indeksiraju koristeći formate i tehnike koji su dizajnirani za dimenzionalne podatke. Najčešće
se koriste tri tipa OLAP analize:
Upotrebom OLAP kocke i star šeme moguće je vršiti razbijanje podataka po logičkim
cjelinama i pregledati podatke u zavisnosti od posmatranog konteksta dodavanjem ili
uklanjanjem atributa iz analize. OLAP kocke pružaju robusnije i naprednije analitičke
funkcije koje prevazilaze one koje su dostupne u standardnom SQL-u. Mana pristupa sa
OLAP kockama u odnosu na pristup sa star šemom je što su performanse znatno lošije,
naročito ukoliko je skup podataka veliki. Pristup koji će biti korišćen u ovom radu je da će se
razvijati prvenstveno star šeme, a zatim će se po potrebi OLAP kocke puniti sa atomičnim
podacima iz star šema.
13
3.4 Snowflake šema
Star šema čije su dimenzije normalizovane naziva se snowflake šema jer podsjeća na
snježnu pahulju, što je prikazano na slici 3.5.
14
4. ETL PROCES
Razvoj ETL procesa u BI/DW sistemu zahtjeva značajno vrijeme i napor najviše zato
što postoji ogroman broj vanjskih faktora i ograničenja poput poslovnih zahtjeva,
nekonzistentnosti i nepredvidivosti izvornih podataka sa kojima radimo, budžeta, vremena
potrebnog za procesiranje i obučenosti kadrova.
Dizajn dobrog ETL sistema može da zavisi od više faktora poput načina na koji se
skladište izvorni podaci, ograničenja vezanih za same podatke, vještina zaposlenih kao i od BI
alata. Ovakva neodređenost vrlo lako postane izgovor za ETL dizajnere da sistem grade tako
da on u startu bude nestrukturiran što bi u najgorem slučaju dovelo do velikog broja loše
strukturiranih tabela, skripti, trigera (eng. triggers), administrativnih poslova (eng. jobs) i sl.
Prikupljajući znanje i iskustvo duži vremenski period, nekoliko ETL dizajnera je zajednički
ustanovilo smjernice za razvoj dobrog ETL sistema [1] koji nije poput prethodno opisanog,
nestrukturiranog pristupa dizajnu. Oni su došli do zaključka da je najbolja praksa da svako
dimenzionalno skladište podataka ima 34 obavezna podsistema i zbog toga je dizajn ETL
procesa u BI sistemu veliki poduhvat koji zahtjeva mnoštvo resursa.
15
indikatora performansi (eng. Key Performance Indicators, KPI) [13] koje projekat treba da
podrži. Indikatori performansi se odnose na mjere koje je moguće kvantifikovati uz
poštovanje dogovora o faktorima koji su bitni za uspjeh organizacije i razlikuju se od
organizacije do organizacije.
Kvalitet podataka. Ovo svojstvo je veoma bitno za najviši, strateški, nivo bilo koje
organizacije, jer za dobro donošenje značajnih i dugoročnih odluka podaci moraju biti
maksimalno vjerodostojni i kvalitetni. Ustaljeno je mišljenje, ali i potreba onih koji donose
odluke da se podaci koriste za donošenje odluka. Druga stavka o kojoj je potrebno voditi
računa je integracija podataka, budući da su podaci distribuirani u nekim slučajevima čak i
širom svijeta, te ih je potrebno integrisati i tek onda koristiti na pravi način. Treća stavka koju
je potrebno razmotriti je nagli porast zahtjeva koji se tiču usaglašenosti podataka, što znači da
nema tolerancije u smislu lošeg rukovanja podacima, i sve se mora obaviti na efikasan način.
Prilikom praktične realizacije ETL procesa, potrebno je napraviti listu elemenata (podataka)
za koje je od ranije poznato da ne zadovoljavaju kriterijume koji se tiču kvaliteta podataka,
kao i listu već riješenih problema u vezi sa tim podacima. Navedene liste moraju često biti
preispitivane da bi se u svakom trenutku obezbijedio maksimalan kvalitet podataka.
Naslijeđeni softver. Često prije razvoja DW/BI sistema mogu postojati prethodna BI
rješenja koja je kompanija ranije kupila ili razvila. Osoblje na najvišem organizacionom nivou
kompanije (strateški nivo) mora da odluči šta želi da uradi sa postojećim softverom, da li da
zadrži softver, da li da i dalje plaća licence za stari softver ili nesto drugo. Organizacija koja
prilikom razvoja novog DW/BI sistema iskoristi stari softver za dizajn i izgradnju ETL
procesa, ne može značano da unaprijedi sistem zbog ograničenog broja funkcionalnosti iz
starog softvera.
16
Integracija podataka. Ovaj zahtjev je vrlo bitan za BI/DW sisteme, jer jedan BI
sistem ima za cilj da integriše različite podsisteme jedne organizacije i da pristup
informacijama bude omogućen na krajnje intuitivan, pouzdan i siguran način. U mnogim
slučajevima, integracija podataka mora da se izvrši prije nego što podaci stignu u skladište
podataka, ali tako nešto se dešava rijetko jer bi to značilo da posmatrana organizacija mora da
ima savršen MDM (eng. Master Data Management) sistem [14]. MDM sistem se odnosi na
spisak podataka koje aplikacije dijele u jednom poslovnom sistemu. Integracija podataka
podrazumijeva korišćenje conforming dimenzija i fact tabela, odnosno zajedničkih
dimenzionalnih atributa kroz više razdvojenih baza podataka tako da bi se izvještaji koji
koriste ove atribute mogli lako generisati. Kod korišćenja zajedničkih fact tabela potrebno je
prethodno uspostaviti zajedničku poslovnu metriku poput KPI, i to u više odvojenih baza
podataka kako bi se podaci mogli porediti matematički kroz računanje razlika i proporcija.
“Pročišćavanje” podataka. Kroz ovaj proces pronalaze se svi podaci koji nisu
očekivani niti validni u BI/DW sistemu. Moguće je na više načina provjeriti validnost
podataka, poput provjere da li su neke od vrijednosti null, da li podaci imaju vrijednosti iz
dozvoljenog skupa vrijednosti itd. Ukoliko se pronađu podaci koji nisu validni, postoje tri
mogućnosti obrade takvih slučajeva:
Stara vrijednost atributa se mijenja novom vrijednošću atributa pri čemu se ne čuva
nikakva istorija promjena. Ovaj SCD mehanizam se koristi u slučaju kada podaci koji
se mijenjaju nisu vremenski osjetljivi, odnosno ako prethodne vrijednosti za neku
kolonu nisu od interesa.
19
procesu koji je odgovoran za razrješenje tih problema. Lookup najčešće uključuje lookup
tabelu, a kolizije koje se dešavaju u vezi sa ključevima su u nadležnosti ovog sistema.
Višeznačne dimenzionalne vezne (eng. bridge) tabele. U sklopu ETL procesa, uloga
ovog podsistema je da održava vezne tabele za hijerarhije promjenljive dubine ili hijerarhije
koje bi inače imale dimenzionalne tabele sa vezama više naprema više (M:M). Na primjer,
ukoliko bi poslovni sistem za koji se implementira skladište podataka čuvao podatke o prodaji
artikala, često se desi da je u jednoj prodaji učestvovalo više prodavaca. Kod relacionih baza
podataka, ovakav slučaj bi se prevazišao upotrebom dodatnog entitetskog skupa u kojem bi se
čuvali podaci o prodavcima (šifarnik prodavaca). Prilikom projektovanja skladišta podataka,
moguće je koristiti sličan pristup za prevazilaženje problema višeznačnih dimenzija. Ponekad,
fact tabela mora da istovremeno referencira više redova iz jedne dimenzionalne tabele, kao u
navedenom primjeru sa prodajom artikala gdje bi na primjer tabela FactSales referencirala
više redova iz dimenzije DimSalesPerson. U tom slučaju potrebno je formirati veznu tabelu
između odgovarajuće fact tabele i dimenzionalne tabele iz koje je potrebno referencirati više
redova. Nakon toga, u veznu tabelu je potrebno upisati podatke koji čine željene grupe
podataka – to bi u navedenom slučaju bili podaci o prodaji artikala. Na taj način, u fact tabeli
će se na mjestu ključa odgovarajuće dimenzionalne tabele naći ključ iz vezne tabele koji
obuhvata podatke definisane unutar te grupe.
Male, srednje i velike firme sve više vide stvarni potencijal rješenja baziranih na
sistemu poslovne inteligencije, kao i menadžmentu performansi na nivou korporacije (eng.
Corporate Performance Management, CPM), jer one moraju da dostave podatke unutar firme
u prave ruke uzimajući u obzir strateške promjene i dinamiku poslovanja.
Nakon što je započela ekonomska kriza 2008. godine, analitička kompanija Gartner je
objavila da se broj upita vezanih za oblast poslovne inteligencije udvostručio. Firme su tražile
način da sa relativno malo ulaganja stabilizuju poslovanje kroz moćne analitičke alate i
optimizaciju poslovnih procesa, tako da gubici budu što manji. Nije iznenađujuće što
softverski giganti poput IBM, SAP, Oracle i Microsoft vrše velika ulaganja u softver koji se
tiče poslovne inteligencije, uglavnom kroz akvizicije drugih, manjih kompanija kao i kroz
razvoj unutar same kompanije.
Vođe – imaju najviši skor na oba kriterijuma. To su uglavnom veće, zrelije kompanije
sa tradicijom dobrog poslovanja.
Izazivači – imaju veći skor na dijelu koji se tiče sposobnosti provođenja plana, a
manji skor na kompletnosti vizije. Uglavnom se radi o većim, stabilnijim preduzećima
koja imaju dobre predispozicije da uspiju na tržištu ali ih istovremeno sputava
nedostatak strategije za plasman proizvoda ili usluga unutar nekog tržišnog segmenta.
Vizionari – imaju niži skor na dijelu koji se tiče sposobnosti provođenja plana a viši
skor za kompletnost vizije. Tipično, radi se o manjim kompanijama.
Novajlije – imaju niži skor na oba kriterijuma. Radi se o kompanijama koje su tek
dospjele u Magični kvadrant.
21
Slika 5.1 - Gartner BI Magic Quadrant [15]
Na osnovu analize, izvedeno je mnogo zaključaka, kao npr. da giganti poput IBM,
SAP, Oracle i MicroStrategy nisu uspjeli da obezbijede dovoljno dobre funkcionalnosti za
otkrivanje novih podataka i trendova.
22
broju kriterijuma i filtara. Mjerenjem performansi je dokazano da su Tableau BI rješenja deset
do sto puta brža od konkurencije [16]. Što se tiče same prodaje Tableau softvera, rezultati
nisu podjednako dobri kao oni koji se tiču zadovoljstva korisnika, najviše zbog nefleksibilnog
sklapanja ugovora sa klijentima, strogih pravila i manjka prostora za pregovaranje sa
klijentima [15] [16].
Tableau danas ima dosta principalnih klijenata poput The Coca Cola Company, BNP
Paribas, Dow Jones and Company, Bank of America, University of California i drugi [16].
5.2 Microsoft
U magičnom kvadrantu, Microsoft je izgubio visoku poziciju koju je imao duže
vrijeme, najviše iz razloga što nisu ponudili nova i inovativna rješenja u oblasti poslovne
inteligencije. Kompanija Gartner im je dala nisku ocjenu za dio koji se tiče konzumacije BI
usluga sa mobilnih uređaja budući da još uvijek nemaju nativno rješenje za Apple iOS
platformu [18]. Dio Microsoftove ponude koji je unapređen je podrška za Power View u
Microsoft Excel-u uz mogućnost korišćenja HTML5 formi kao i podrška za SAP Business
Objects. Predviđa se da će u narednom periodu konkurencija postati sve veća, i da će rješenja
Excel Power BI, Power Query i Power View biti značajno unapređena od strane Microsofta
kako bi ostali konkurentni na tržištu.
Microsoft-ovo provjereno dobro rješenje je SQL Server koji uključuje SQL Server
Integration Services (SSIS), SQL Server Analysis Services (SSAS), SQL Server Reporting
Services (SSRS) kao i SharePoint bazirana rješenja. O SSIS, SSAS i SSRS će biti više riječi
kasnije, u praktičnom dijelu rada. Jedna stavka kod Microsoftovih BI cloud-baziranih rješenja
na koju su korisnici imali najviše prigovora je previsoka cijena koja se plaća za korišćenje
softvera na godišnjem nivou.
23
na način da se kreiraju Extranet ili Internet Web stranice gdje se pristup informacijama može
kontrolisati upotrebom domenske autentifikacije [15],[17].
Microsoft ima veliku bazu korisnika a SharePoint koriste velike firme poput Chevron,
CAT, Volvo Car Corporation, Universal Music Group, The Weather Channel i drugi [18].
Kao glavne negativne osobine SharePointa korisnici su naveli spor odziv sistema i
povremenu kompleksnost radnog okruženja. Budući da se sa Microsoft SharePoint-om mogu
kreirati „rješenja po mjeri“, dizajneri ponekad ne prepoznaju potrebe SharePoint korisnika i to
je razlog za nastajanje navedenih problema. To znači da bi svaka firma koja koristi
SharePoint trebala da ima SharePoint administrator, što nije uvijek jeftino rješenje.
SharePoint je moguće koristiti u Apple sistemu samo uz preuzimanje odgovarajućih eksternih
aplikacija, a trenutno ne postoji plan od strane Microsofta da SharePoint orijentišu ka Apple
Macintosh platform, zbog čega gube sve veći udio na tržištu BI softvera.
5.3 SAP
Prema kompaniji Gartner, SAP je u magičnom kvadrantu poboljšao svoju
metodologiju provođenja planova, ali izgubio potpunost vizije [18]. SAP Business Objects je
rješenje koje je vrlo sporo za implementaciju i trenutno je glavni fokus na ubrzanju i
generalnom unapređenju implementacije softvera.
Glavni BI proizvod kompanije SAP je SAP Business Objects koji omogućava pristup
BI podacima i krajnjim korisnicima bez ikakve intervencije IT osoblja. Većina BI platformi
teže da obuhvate jednu funkciju kompanije (na primjer ljudske resurse, obračun plata, robno i
materijalno poslovanje, finansije, itd.), dok SAP Business Objects platforma pruža šira
rješenja koja mogu kombinovati više modula jednog tipičnog poslovnog informacionog
sistema. Korisnici mogu vršiti BI analizu iz višestrukih izvora podataka, agregirati,
transformisati podatke i vršiti druge operacije sa podacima. Takođe, prednost SAP BI
platforme je što omogućuje integraciju podataka sa programskim jezikom Java kao i
Microsoft SharePointom te je sistem moguće učiniti još fleksibilnijim razvijajući dodatke za
bazni sistem. Business Objects rješenje podržava kontrolu pristupa sadržaju na način da je
moguće definisati opsege vidljivosti skupova podataka za ciljne korisnike.
24
Mogućnosti koje pruža SAP Business Objects:
pregled agregiranih podataka na
OLAP, jednom mjestu,
prediktivna analiza, finansijska predviđanja i planiranje
indikatori trendova i Key budžeta,
Performance Indicators, mobilne BI aplikacije.
intuitivan korisnički interfejs,
detaljno izvještavanje,
Najvažniji korisnici SAP BI rješenja su 3M, Dow Corning, T-Mobile, Proctor &
Gamble, Pennsylvania State University i drugi [19].
Korisnici smatraju SAP-ov ERP softver za neintuitivan i potencijalno može biti vrlo
teško naučiti korisnike navigaciji unutar samog softvera. Od trenutka kada je SAP počeo da
nudi svoja BI rješenja, proces licenciranja je naročito komplikovan, a same licence skupe
budući da se za jedan funkcionalan sistem mora kupiti više BI modula.
Zbog slojevitosti i kompleksnosti, mnogi SAP eksperti koji pružaju podršku osoblju
koje koristi sistem su kvalifikovani samo u jednom području ili softverskom modulu. Ovo
može izazvati dodatne troškove kao i smanjenu efikasnost pri radu zbog potrebe za
koordinisanjem osoblja koje može da pruži tehničku podršku korisnicima u slučaju da se javi
potreba za tim.
5.4 IBM
IBM (International Business Machines) je ranije bio jedan od lidera u oblasti razvoja
softvera za poslovnu inteligenciju, ali su u poslednjih deset godina značajno izgubili na
rejtingu. Njihovo glavno BI rješenje je IBM Cognos. U magičnom kvadrantu IBM drži jaku
poziciju povodom potpunosti vizije i u tom segmentu su vodeća kompanija u magičnom
kvadrantu. Razlog za to je što imaju bogatu ponudu BI rješenja za različite profile
organizacija i oblasti primjene. Nakon akvizicije kompanije “SPSS” 2009. godine, IBM je
značajno upotpunio svoju ponudu BI alata dodajući podršku za rudarenje podataka,
operacione analitike i procjene rizika.
Sa druge strane, IBM Cognos je online platforma za poslovnu inteligenciju koja nudi
potpun skup BI rješenja za praktično bilo kakve ciljeve organizacije. Cognos se sastoji od
preko trideset različitih proizvoda i uzima se da je jedan od lidera u oblasti poslovne
inteligencije. IBM aktivno sluša primjedbe od strane korisnika softvera i zbog toga odlično
poznaje potrebe svojih klijenata, pa u skladu sa tim može da kreira softverska rješenja koja
njima najviše odgovaraju. Podržane su i mogućnosti za napredno analitičko donošenje odluka
što omogućava organizacijama da donose bolje poslovne odluke i da u njih budu u potpunosti
sigurni. Slično kao i ostala BI rješenja, nova verzija Cognos-a je uvela podršku za integraciju
podataka iz velikog broja izvora što omogućava centralizaciju sistema za obradu podataka.
Glavni korisnici IBM Cognos-a su: Nike, British Airways, Chemring, Lufthansa
Cargo, Michigan State University i drugi [20].
5.5 Jaspersoft
Prilikom kreiranja BI rješenja Jaspersoft, kompanija TIBCO je pokušala da izgradi
softver koji je čvrsto baziran na standardima, kako bi bio što fleksibilniji i modularniji. Zbog
ove karakteristike, Jaspersoft omogućava jednostavan i intuitivan pregled podataka, na više
računarskih platformi i infrastrukturnih okruženja. Treba reći i da je Jaspersoft open source
rješenje koje je moguće brzo i lako implementirati pa je iz tog razloga pogodno za
implementaciju i u manjim firmama kojima nisu potrebna kompleksna i prilagođena rješenja
koja nude velike softverske kompanije.
Ono što karakteriše Jaspersoft je upotreba Big Data koncepta koji je potpuno prisutan,
jer se ovaj softverski alat može vrlo lako uvezati sa Cassandra Analytics, MongoDB
Analytics, Hadoop Analytics itd. Izvještaje je moguće kreirati na osnovu podataka iz skladišta
podataka i nije neophodno pomjerati podatke u drugu bazu podataka.
26
Mogućnosti koje pruža Jaspersoft Business Intelligence:
OLAP, izvještavanje,
prediktivna analitika, grafička analitika,
indikatori trendova, mjerenje performansi.
Glavni klijenti kompanije Jaspersoft koji koriste Jaspersoft Business intelligence su:
Sierra Club, Puma, Kronos, University of Nebraska, United States Marine Corps, USDA i
drugi [21].
27
6. PRAKTIČNA REALIZACIJA SKLADIŠTA PODATAKA
Za potrebe izrade praktičnog dijela rada, najpogodnija su Microsoft-ova rješenja
budući da uključuju sve aspekte koncepta poslovne inteligencije koji su od interesa za ovaj
rad. Sa Microsoft BI alatima moguće je dizajnirati skladište podataka, sistem za izvještavanje,
vršiti multidimenzionalnu analizu podataka itd. S obzirom na to da je Microsoft SQL Server
globalno jedan od najkorišćenijih SUBP, BI rješenja implementirana korišćenjem Microsoft
alata bi bila dugoročno podržana i eventualni problemi bi bili lakše otklonjeni zbog velike
baze znanja generisane od strane postojećih korisnika. Konkretno, za izradu praktičnog dijela
rada biće korišćeni Microsoft SQL Server 2014, Visual Studio 2013 i Office 2013.
region, prevoznik,
teritorija, zaposleni,
proizvod, narudžba,
kategorija proizvoda, detalji narudžbe,
dobavljač, kupci.
28
Na osnovu identifikovanih tabela i preporuka koje su navedene ranije, biće izvršena
denormalizacija baze podataka na način da će se formirati jedna fact tabela kao i potrebne
dimenzije.
Skladište podataka će biti kreirano u Microsoft SQL Server Integration Services
razvojnom okruženju, na osnovu Northwind baze podataka. Izvještaji će biti kreirani u SQL
Server Reporting Services razvojnom okruženju, dok će multidimenzionalno izvještavanje i
analiza podataka biti demonstrirana pomoću SQL Server Analysis Services razvojnog
okruženja.
Nakon izvršene analize strukture baze podataka Northwind, prvi korak je formiranje
dimenzionalnih tabela. Dimenzije treba da detaljnije opišu konkretan poslovni proces,
odnosno u ovom slučaju prodaju artikala.
Prva dimenzija koja će biti formirana je DimCustomers. Ona čuva podatke o kupcima
(partnerima) u sistemu poput naziva kompanije, adrese, broja telefona, faksa i drugih
podataka. Kolona IDDimCustomer predstavlja surogat ključ za navednu dimenziju koja je
naknadno dodana, dok je porijeklo ostalih kolona iz Northwind OLTP baze podataka. Kolona
CustomerID predstavlja poslovni ključ i ta vrijednost je jedinstvena. Podaci o kupcima
preuzeti su iz tabele Customers iz Northwind baze podataka. Kolone EffectiveDate i
ExpiryDate služe za implementaciju SCD tipa 2 i biće korišćene na isti način i u ostalim
dimenzijama. Kolona EffectiveDate se odnosi na datum od kojeg odgovarajući red u dimenziji
važi dok se kolona ExpiryDate odnosi na datum do kojeg red važi, a on se popunjava nakon
što se red proglasi za nevažeći. Na slici 6.2 prikazana je struktura dimenzije DimCustomers.
30
Slika 6.4 - Dimenzija DimLogistics
32
Slika 6.8 - Dimenzija DimDate
33
6.1.2 Formiranje fact tabele
Nakon što je postupak dizajniranja dimenzija završen, moguće je preći na dizajn fact
tabele. Budući da je baza podataka Northwind orijentisana ka prodaji i da sadrži sve potrebne
informacije o prodaji, možemo formirati fact tabelu FactSales koja će sadržavati podatke o
prodaji artikala.
Dimenzije služe kao podrška tabeli FactSales i sadrže detaljnije informacije o prodaji
artikala. Struktura fact tabele je prikazana na slici 6.9. Ona sadrži kolone koje su strani
ključevi ka dimenzijama i to IDDimSupplier, IDDimProduct, IDDimCustomer,
IDDimLogistics, IDDimTerritory, IDDimEmployee, IDDimDate. Veza između fact tabele i
njenih dimenzija je 1:M (1 na strani dimenzija, a M odnosno više na strani fact tabele).
34
ključu. Nakon toga, u odgovarajuću kolonu fact dimenzije upisan je pronađeni surogat ključ.
Nakon faze logičkog dizajna, skladište podataka ima izgled kao na slici 6.10.
Sam alat je vrlo moćan i dozvoljava definisanje naprednih radnih tokova koji
uključuju korišćenje Web servisa, parsiranje XML dokumenata i drugih mogućnosti koje su
podjeljene u dvije glavne kategorije:
Realizacija svih navedenih zadataka vrši se unutar paketa koje je potrebno kreirati u
SSIS alatu. Svaki paket predstavlja zasebnu cjelinu i uglavnom se odnosi na jedan logički
zadatak koji je potrebno obaviti. Paketi međusobno mogu biti povezani i njihovo izvršavanje
je uslovljeno izvršavanjem drugih paketa ili kontrolnim promjenljivim. SSIS takođe podržava
i druge mogućnosti poput rukovaoca događajima (eng. event handler), pa je moguće
implementirati interaktivan tok izvršavanja paketa. Nakon dizajna paketa i verifikacije
35
ispravnosti potrebno je izvršiti stavljanje paketa u produkciju (eng. deployment) na SQL
Server. Nakon toga, oni se mogu izvršavati periodično kao poslovi (eng. jobs) na nivou SQL
Servera pri čemu se može definisati i plan izvršavanja paketa.
U paketu Extract prvo se obavlja backup baze podataka Northwind, a zatim kreiranje
baze podataka koja će da postane skladište podataka pod nazivom Northwind_DW. Zatim se
formiraju dimenzije koje su dizajnirane u prethodnom koraku i na kraju se formira fact tabela.
Kompletan proces je vidljiv na slici 6.11, pri čemu strelice određuju redoslijed izvršavanja
zadataka u paketu.
36
U ovom trenutku, tabele su samo kreirane izvršavanjem DDL (eng. Data Definition
Language) skripti i u njima se ne nalaze nikakvi podaci. Konekcioni menadžer Northwind
definisan u paketu je tipa OLE DB (Microsoft SQL Server) i referencira OLTP bazu podataka
Northwind na osnovu koje će biti kreirano skladište podataka. Takođe, definisan je i
konekcioni menadžer Northwind_Extract koji služi kao podrška za pravljenje rezervne kopije
baze podataka Northwind, kao i konekcioni menadžer Northwind_DW koji će referencirati
skladište podataka. Baza podataka Northwind_DW ne mora nužno da postoji kao preduslov
za kreiranje konekcionog menadžera koji će je referencirati pa je iz tog razloga potrebno
uključiti opciju Delay validation da bi SSIS nastavio sa izvršavanjem paketa sve dok se taj
konekcioni menadžer ne bude koristio.
Punjenje dimenzija i fact tabele podacima urađeno je korišćenjem opcije Execute SQL
Task. Podaci su u tabele napunjeni direktno, SQL skriptama, i identični su onima iz originalne
baze podataka uz dodatak da su surogat ključevi automatski generisani. Pojedinačni zadaci se
opet nalaze u Sequence container-u da bi se prvo napunile sve dimenzije, a tek na kraju fact
tabela jer bi u suprotnom mogla da se desi greška na nivou SQL Servera zbog toga što uslov
referencijalnog integriteta nije zadovoljen. Korišćeni su konekcioni menadžeri Northwind i
Northwind_DW.
37
Slika 6.13 – Paket Load – Punjenje podataka
38
Slika 6.15 – Paket Load – SCD Data Flow za dimenziju DimProducts
Na slici 6.16 prikazan je izgled data flow elementa za izvoz podataka o kupcima iz
dimenzije DimCustomers u Excel datoteku naziva „Sifarnici_NorthwindDW.xls”, u radni list
„Kupci”. Prilikom izvoza podataka potrebno je izvršiti mapiranje kolona u odredišnoj Excel
datoteci. Najjednostavniji način da se to uradi je da se u Excel datoteci automatski kreiraju
kolone sa istim nazivima kao u izvorišnoj tabeli pri čemu se neke kolone mogu izostaviti
ukoliko je to od interesa.
39
6.2.5 Paket WebServis
GetInfoByAreaCode,
GetInfoByCity,
GetInfoByState,
GetInfoByZIP.
kod države,
grad,
kod područja,
vremenska zona,
ZIP kod (ekvivalent poštanskog broja).
40
Slika 6.17 – Paket WebServis, formiranje result set-a i dodavanje privremenih kolona
Nakon što smo preuzeli ZIP kodove iz skladišta podataka i formirali neophodne
kolone, potrebno je pozvati Web servis za svaki od ZIP kodova, a zatim dobijene podatke
smjestiti u skladište podataka. S obzirom na to da su ZIP kodovi iz skladišta podataka pristigli
u obliku result set-a koji je složena kolekcija podataka, potrebno je iterirati kroz taj skup
podataka da bi mogli da ih iskoristimo. Iz tog razloga, neophodno je koristiti for each petlju
da bismo mogli da pristupimo svakom pojedinačnom elementu.
U SSIS postoji implementacija foreach petlje koja se naziva foreach loop container i
pogodna je za upotrebu u ovom konkretnom slučaju. Potrebno je definisati parametre foreach
loop container-a tako da je izvorni skup podataka result set koji sadrži ZIP kodove gradova.
Kako je result set formiran na osnovu podataka iz Microsoft SQL Server baze podataka,
koristimo foreach ADO enumerator pogodan za procesiranje podataka iz Microsoft baza
podataka i podešavamo vrijednost iteracije na varijablu TerritoryID koja predstavlja jedan
ZIP kod grada iz skladišta podataka.
Unutar Foreach Loop Container-a vršimo poziv Web Servisa prilikom čega koristimo
konekcioni menadžer kreiran za poziv Web Servisa, pod nazivom HttpConnectionManager.
HttpConnectionManager poziva Web servis na već navedenom URL-u i pri tome se ne koristi
proxy server niti je potrebna autentikacija da bi se koristio Web servis. Web servis nakon
poziva vraća XML sadržaj i taj sadržaj je potrebno smjestiti na proizvoljnu lokaciju, a zatim i
parsirati. Za potrebe smještanja XML sadržaja na disk, kreiran je konekcioni menadžer pod
nazivom „rezultat.xml“ i on je tipa file connection manager. Nakon poziva Web servisa i
preuzimanja rezultata, SSIS kreira fajl „rezultat.xml“ na proizvoljnoj lokaciji na disku i u
datoteku smješta preuzeti XML sadržaj. Takođe, prethodno je kreirana i datoteka koja sadrži
opis Web servisa (eng. WSDL file) pri čemu je WSDL datoteku moguće preuzeti i automatski,
prilikom poziva Web servisa.
41
podataka će biti obavljen u Data Flow zadatku koji je nazvan „Import podataka“. Kontrolni
tok paketa WebServis ima izgled kao na slici 6.18.
Sa slike 6.18 takođe je vidljivo da će zadatak „Prilagođenje dimenzije“ biti izvršen
nakon uspješnog izvršavanja jedne iteracije foreach loop container-a, budući da je takvo
ponašanje definisano ograničenjem (eng. constraint) tipa Completion. U ovom zadatku biće
obrisane privremene kolone definisane radi smještanja podataka dobijenih iz Web servisa.
Data flow dio paketa WebServis ima izgled kao na slici 6.19.
UPDATE dbo.DimTerritories
SET
dbo.DimTerritories.TerritoryDescription = CITY,
dbo.DimTerritories.RegionDescription = STATE
43
Slika 6.20 – Paket Main
44
7. IZVJEŠTAVANJE U SISTEMIMA POSLOVNE
INTELIGENCIJE
Prilikom stavljanja sistema u produkciju, mora da postoji instanca SQL Servera koja
će da podrži SSRS i na njoj će biti kreirane dvije baze podataka neophodne za funkcionisanje
SSRS [22]:
ReportServer – služi za smještanje samih izvještaja odnosno definicija izvještaja,
korisničkih podešavanja vezanih za izvještaje, istorije izvršavanja izvještaja,
ReportServerTempDb – baza podataka u koju se privremeno smještaju izvještaji koji
treba da se izvrše kao i drugi meta-podaci.
45
7.1 Tehnike kreiranja izvještaja u SSRS
Drugi korak je specifikovanje izvora podataka (eng. Data source) iz kojeg će biti
ekstrahovani podaci koji će se pojaviti u izvještaju. U praktičnom dijelu rada kreiran je izvor
podataka Northwind_DW koji referencira skladište podataka Northwind_DW. Slično kao kod
SSIS, izvor podataka može da bude definisan na nivou projekta (eng. Shared data source) ili
na nivou jednog izvještaja (vidljiv samo u izvještaju u kojem je definisan).
Nakon što su definisani izvor i skup podataka, na raspolaganju imamo spisak polja
koja smo specifikovali u SELECT upitu i njima možemo manipulisati na način da ih
ispisujemo u izvještaju, kreiramo nova izračunata polja na osnovu postojećih, formatiramo ih
itd. U SSRS postoji i veliki broj ugrađenih polja poput:
46
tabela – služi za prikaz podataka, moguće je dodavati redove i kolone i formatirati je
po potrebi,
matrica – slična tabeli ali sadrži i dio sa „detaljima“ odnosno vrijednostima koje se
nalaze na presjeku redova i kolona,
pravougaonik – element koji može da služi kao „spremnik“ za druge elemete odnosno
da omogući da neki elementi budu sakriveni a neki prikazani,
lista – moguće je kreirati liste koje podsjećaju na Web forme i podržava sve
mogućnosti koje podržava i tabela u SSRS,
slika – moguće je koristiti slike u izvještajima,
podizvještaj (eng. subreport) – predstavlja izvještaj u izvještaju ali uz uslov da se
podizvještaj dizajnira odvojeno od glavnog izvještaja,
grafikon – omogućava grafičku predstavu podataka, podržan je veliki broj tipova
grafikona poput onih iz Microsoft Excel-a,
mjerač (eng. gauge) – koristi se za predstavljanje jedne vrijednosti unutar opsega
vrijednosti,
mapa – služi za predstavljanje podataka na mapi, pri čemu podaci mogu da budu
učitani iz raznih izvora podataka poput specijalizovanih SQL baza podataka,
Microsoft Virtual Earth datoteka i drugih,
indikator – omogućuje predstavljanje poslovnih trendova i ciljeva koristeći strelice,
obojene rombove i druge grafičke elemente.
Uz to, SSRS podržava i kreiranje izvještaja koji mogu da posluže kao šabloni (report
templates) nakon čega ih je moguće iskoristiti za kreiranje drugih izvještaja. Prvi korak je
kreiranje standardnog SSRS izvještaja koji će da predstavlja šablon, a zatim je potrebno
manuelno smjestiti kreirani .rdl fajl na sljedeću lokaciju na disku:
\PutanjaDoInstalacionogFolderaVisualStudia\Common7\IDE\PrivateAssemblies
\ProjectItems\ReportProject.
47
Slika 7.2 – Izvještaj „Najbolji kupci“
FROM DimCustomers
INNER JOIN FactSales ON DimCustomers.IDDimCustomer =
FactSales.IDDimCustomer
INNER JOIN DimTerritories ON FactSales.IDDimTerritory =
DimTerritories.IDDimTerritory
INNER JOIN DimDate ON FactSales.IdDimDate = DimDate.IdDimDate
48
Slika 7.3 – Izvještaj „Pregled narudžbi po teritoriji“
SELECT DimTerritories.TerritoryDescription,
DimTerritories.RegionDescription, DimTerritories.AREA_CODE AS
SifraPodrucja, SUM(FactSales.Total) AS UkupanIznos, DimDate.Date
FROM FactSales
GROUP BY DimTerritories.TerritoryDescription,
DimTerritories.RegionDescription, DimTerritories.AREA_CODE, DimDate.Date
49
napunjeni ručno napisanim SQL SELECT upitom da ne bi bilo moguće izabrati grad koji se
ne nalazi u bazi podataka. SQL upit za odabir grada je sljedeći:
XML datoteka,
CSV datoteka (odvajanje slogova je zapetom),
TIFF datoteka,
PDF datoteka,
Excel datoteka,
Word datoteka,
MHTML arhiva (izvještaj se čuva kao snimljena Web stranica).
50
8. MULTIDIMENZIONALNO MODELOVANJE
U ovom dijelu biće pokazano kako se na osnovu projektovanog skladišta podataka
može izvršiti multidimenzionalna analiza dostupnih podataka kroz kreiranje OLAP kocke.
Alat koji će biti korišćen u tu svrhu je Microsoft SQL Server Analysis Services (SSAS).
OLAP kocka je objašnjenja u trećem poglavlju rada, a u nastavku će biti navedene
razlike između OLAP kocke i klasičnog OLTP pristupa procesiranju podataka. U tabeli 8.1. je
dato poređenje OLAP i OLTP načina procesiranja podataka.
51
Sa slike 8.1 je vidljivo da se skladište podataka koristi kao izvor podataka. Nakon
procesiranja kocke podaci postaju dostupni za korišćenje i moguće je izvršavati MDX
(MultiDimensional eXpressions) upite nad kockom. Za izvještavanje odnosno pregled
podataka u kocki moguće je koristiti SSRS ili Excel PowerPivot. U nastavku će biti definisani
osnovni pojmovi koji se koriste u multidimenzionalnoj analizi podataka [24].
Kocka. Ona predstavlja osnovnu jedinicu za smještanje podataka i sadrži podatke koji
su potencijalno prikupljeni iz više izvora podataka. To mogu da budu različite baze podataka,
lokalne datoteke na disku, dijeljene datoteke na mreži itd. Kocka je uglavnom optimizovana
na način da su podrazumijevano urađene agregacije po konačnom iznosu, datumu ili nazivu
radi boljih performansi pri generisanju izvještaja i uopšteno pristupa podacima.
Dimenzija. U SSAS, svaka kocka sadrži jednu ili više dimenzija pri čemu su one
bazirane na dimenzionalnim tabela s tim da mogu imati i dodatna, izračunata polja i
uspostavljene hijerarhije.
Fact tabela. Ova vrsta tabela je objašnjena u trećem poglavlju i predstavlja standardnu
fact tabelu.
Mjera. Svaka kocka sadrži jednu ili više mjera pri čemu je jedna mjera bazirana na
jednoj koloni iz fact tabele nad kojom je od interesa vršiti različite analize.
Prvi korak je definisanje izvora podataka koji će u ovom slučaju biti skladište
podataka NORTHINWD_DW, ali potrebno je definisati i koji korisnički nalog će biti korišćen
za funkcionalnosti koje se odnose na analizu podataka. Odabrana je opcija „naslijeđenog“
povezivanja na izvor podataka, odnosno korišćenje onog korisničkog naloga za analizu
podataka koji je korišćen i za prijavu na izvor podataka.
52
(eng. Data Source View Wizard). Nakon što je kreiran pogled ka izvoru podataka, definisano
je i novo izračunato polje pod nazivom „Puno ime“ i ono je dodano u dimenziju
DimEmployees. Prilikom analize podataka i u različitim izvještajima biće potrebno puno ime
zaposlenog koje se sastoji od imena i prezimena zaposlenog, a koji se trenutno vode kao dva
različita atributa. SSAS sadrži mnoštvo čarobnjaka koji olakšravaju izvršavanje mnogih
zadataka te jednostavan i intuitivan korisnički interfejs.
53
jednostavnim prevlačenjem (eng. drag and drop) iz pogleda ka izvoru podataka u konačan
spisak kolona.
Na nivou kocke moguće je definisati i izračunata polja, slično kao kod pogleda ka
izvoru podataka gdje je definisano izračunato polja „PunoIme“. Glavna razlika je što se u
ovom slučaju koristi MDX jezik za definisanje polja umjesto T-SQL koji je podrazumijevani
jezik za upite u relacionim bazama podataka. Definisano je polje „SumaSvihNarudžbi“ koje
predstavlja ukupnu sumu narudžbi iz mjere FactSales i koje će biti potrebno prilikom
generisanja izvještaja o narudžbama.
54
Za ciljnu vrijednost (eng. Goal) defisan je MDX upit u kojem je navedeno da je cilj
ispunjen ukolio je vrijednost narudžbe u nekom kontekstu veća ili jednaka prosječnoj
vrijednosti svih narudžbi u sistemu. MDX upit je sljedeći:
CASE
WHEN ([Measures].[Total] >= 12648)
THEN 'Cilj zadovoljen'
ELSE 'Cilj nije zadovoljen'
END
Prilikom prikaza podataka u Excel-u, KPI status promjenljiva će biti predstavljena
strelicama koje grafički predstavljaju status pojedinačnih stavki u izvještajima. MDX upit
korišćen za promjenljivu status je sljedeći:
CASE
WHEN KPIGoal("ProdajaKPI") = 'Cilj zadovoljen'
THEN 1
WHEN KPIGoal("ProdajaKPI") = 'Cilj nije zadovoljen'
THEN -1
ELSE 0
END
Primjer upotrebe definisanog KPI je prikazan na slici 8.5.
Nakon svake promjene podataka u kocki, na primjer nakon presipanja novih podataka
u kocku na kraju dana, potrebno je izvršiti procesiranje kocke ali i ponovo se konektovati na
instancu kocke kako bi podaci bili svježi. U odjeljku 10.1. je ranije rečeno da se za prikaz
podataka i izvještavanje može koristiti Microsoft Excel i SSRS. U ovom radu korišćen je
Microsoft Excel za prikaz i analizu podataka budući da je taj način prikaza podataka
55
najfleksibilniji i vrlo intuitivan. Podatke koji se nakon procesiranja nalaze u kocki je moguće
pregledati i korišćenjem pretraživača kocke (eng. cube browser), međutim on ne nudi nivo
fleksibilnosti koji nudi Microsoft Excel. U slučaju da se koristi pretraživač kocke, uvijek je
potrebno otvoriti Microsoft SSAS koji je hardverski zahtjevan i ne podržava filtriranje i
detaljno agregiranje podataka koje podržava Excel. Takođe, ukoliko bi se radilo o
produkcionom režimu rada, krajnjim korisnici BI sistema bi morali da na raspolaganju imaju
SSAS koji im je potencijalno neintuitivan za korišćenje, a morali bi plaćati i skupe licence za
SSAS.
Formirani Excel fajlovi se mogu na uobičajen način snimiti i dalje distriburirati za one
kojima je od interesa da ih koriste. Excel konstantno održava vezu sa skladištem podataka i
automatski ih osvježava ukoliko dođe do bilo kakve promjene podataka. Ukoliko se
promijene podešavanja konekcionog menadžera, odnosno strukture kocke u nekim
slučajevima je neophodno izvršiti ručno osvježavanje konekcionog menadžera.
Alati SSAS i SSRS su u uskoj sprezi i u ovom odjeljku će biti pokazano kako se oni
mogu integrisati radi dobijanja detaljnijih informacija o kupcima iz Excel pivot tabele. Prvi
korak je definisanje radnje vezane za izvještaje (eng. report action) u SSAS koja će poslužiti
kao veza između SSAS i SSRS. Radnja je nazvana „SSASIzvjestajKupci“ i vezana je za
kolonu „CompanyName“ u dimenziji DimCustomers. Način korišćenja definisane radnje je da
kada korisnik u Excel-u vrši pregled podataka koji su vezani za kupce može desnim klikom
na konkretnog kupca i odabirom opcije „Detaljniji pregled kupca“ vidjeti detaljnije podatke o
kupcu, u SSRS. U tu svrhu, kreiran je poseban izvještaj naziva „SSASIzvjestajKupci“ koji
obezbjeđuje potrebne podatke o kupcu. Izvršen je deployment izvještaja na sljedećoj Web
adresi:
http://localhost:80/ReportServer_SQL2014/Pages/ReportViewer.aspx?%2fDiplomskiRadSSR
S%2fSSASIzvjestajKupci.
Navedeni izvještaj kao parametar prima naziv kupca o kojem će prikazati detaljnije
podatke i taj parametar se proslijeđuje kroz URL ka izvještaju. Kompletan URL kojim je
zahtjevan izvještaj je sljedeći:
http://localhost/ReportServer_SQL2014/Pages/ReportViewer.aspx?%2fDiplomskiRadSSRS%
2fSSASIzvjestajKupci&CustomerName=Berglunds%20snabbköp&rs:Command=Render&rs:
Renderer=HTML5
Na slici 8.8 prikazan je dio SSRS izvještaja o kupcima koji je dobijen iz Excel-a. U
fazi dizajna izvještaja u SSRS koji će poslužiti kao podrška SSAS analizi podatka nije
potrebno voditi računa o dodatnim stavkama u odnosu na dizajn tipičnog SSRS izvještaja. To
57
čini promjene na izvještaju i kreiranje novih izvještaja jednostavnim i jednom kreirani
izvještaji se mogu bez održavanja koristiti duži vremenski period.
58
9. ZAKLJUČAK
Sistem poslovne inteligencije ima i negativne strane, ali je njihov broj manji od
pozitivnih strana i predstavlja nešto što je moguće optimizovati da rad organizacije ne bude
doveden u pitanje. Jedna od glavnih negativnih strana BI sistema je gomilanje istorijskih
podataka koji se tiču promjena podataka u sistemu. Istorijski podaci su neophodni za dobro
donošenje odluka i predviđanje trendova ali su potrebni značajni hardverski resursi da bi se ti
podaci mogli skladištiti. Sa svakim dolaskom novih podataka u skladište podataka potrebno je
obezbijediti čuvanje istorije promjena tih podataka i na taj način količina podataka u sistemu
59
naglo raste. Implementacija samog BI sistema može da potraje i zahtijeva vrlo detaljnu
specifikaciju korisničkih zahtjeva, što dodatno produžava vrijeme implementacije sistema i
izaziva velike troškove za organizaciju. Sami BI sistemi nisu jeftini i uglavnom dolaze kao
pratnja uz druge informacione sisteme nekog proizvođača poput detaljno razmotrenih SSIS,
SSRS, SSAS koji prate Microsoft SQL Server i Microsoft Visual Studio.
Alati SSRS i SSAS korišćeni za izradu praktičnog dijela rada su se pokazali kao vrlo
pogodni, pouzdani i intuitivni za korišćenje u svakom trenutku. Oni omogućavaju korišćenje
sistema poslovne inteligencije i za krajnje korisnike koji nemaju široko znanje u oblasti
informacionih tehnologija. Alat SSIS koji je takođe korišćen za izradu praktičnog dijela rada
je najmoćniji i najsveobuhvatniji od korišćenih alata ali potrebno je pristati na određene
kompromise da bi cilj bio postignut. SSIS je od samog početka dizajniran kao alat koji će da
podržava mnoštvo sistema za upravljanje bazama podataka, formata datoteka, operacija sa
bazom podataka, transformacija podataka, ali u praksi korišćenje alata može u nekim
situacijama da bude komplikovano. Zbog širokih mogućnosti upotrebe, interfejs alata je
morao da bude dizajniran konzistentno kao i da fokus bude na tome šta je potrebno uraditi, a
ne kako je to moguće uraditi. Kao rezultat, mogu da se jave nelogičnosti u grafičkom
korisničkom interfejsu koje zbunjuje čak i iskusnije programere i BI dizajnere. Bez obzira na
navedene mane, SSIS je postao moćan alat za dizajn BI sistema i ima veliku korisničku bazu.
Sa aspekta sigurnosti, SSIS, SSRS i SSAS su se pokazali kao veoma sigurni alati,
budući da se u pozadini nalazi sistem sigurnosti dizajniran za SQL Server koji ima tradiciju u
oblasti sigurnosti i koji važi za siguran i pouzdan sistem. Na kraju faze dizajna, vrši se
deployment SSIS, SSAS i SSRS projekata na SQL Server te su na taj način pri korišćenju BI
sistema podržane sve mjere zaštite koje su podržane na nivou SQL Servera. Prava na
izvršavanje SSIS paketa, SSRS izvještaja ili izvršavanje upita nad SSAS kockom je moguće
precizno definisati za svakog korisnika pojedinačno te se već na tom nivou može osigurati BI
sistem. Moguće je svakom korisniku izdati po jedan certifikat za autentikaciju kako bi se
dodatno povećao nivo sigurnosti u BI sistemu.
60
LITERATURA
[1] Kimball, R., Ross, M. , The Data Warehouse Toolkit 3rd Edition. WILEY, 2013.
[2] Sarka, D., Lah, M., Jerkič, G. , Implementing a Data Warehouse with Microsoft SQL
Server 2012, Training Kit. O' Reilly Media, Inc, 2012.
61
[16] Elektronski izvor – Internet stranica http://www.bisoftwareinsight.com/reviews/tableau-
business-intelligence/, posjećeno 09.03.2015. godine
62