OLTP i OLAP
OLTP i OLAP predstavljaju dva velika sveta rada sa podacima. Oba sveta su važna, oba koriste baze podataka, oba čuvaju informacije, ali nemaju istu namenu. OLTP je usmeren na svakodnevni rad sistema: unos porudžbine, registraciju korisnika, izdavanje računa, promenu statusa zahteva, uplatu, isplatu, rezervaciju ili bilo koji drugi poslovni događaj koji mora biti zabeležen tačno i odmah.
OLAP je usmeren na razumevanje onoga što se dogodilo. On ne pita samo da li je porudžbina upisana, već koliko je porudžbina bilo ovog meseca, koji proizvodi se najviše prodaju, koji region ima rast, gde se pojavljuju kašnjenja, kako se menja ponašanje korisnika i koji pokazatelji mogu pomoći u donošenju odluka. Zato se OLAP povezuje sa izveštavanjem, analizom, agregacijama, kontrolnim tablama i poslovnom analitikom.
Ovaj tutorijal-praktikum namenjen je početnicima koji žele da razumeju razliku između transakcionih i analitičkih sistema, ali i svima koji već rade sa bazama podataka, SQL-om, izveštajima, ETL procesima, data warehouse sistemima ili poslovnom analitikom. Razumevanje OLTP i OLAP podele pomaže da bolje shvatimo zašto jedan sistem nije uvek dobar za sve vrste pitanja.
U operativnom sistemu najvažnije je da se posao obavi ispravno. Kada korisnik kupi proizvod, sistem mora odmah da zabeleži porudžbinu, smanji stanje na lageru, kreira račun i sačuva tačne podatke o kupcu i plaćanju. Takav sistem mora da bude brz, pouzdan i dosledan. Zbog toga se OLTP često oslanja na dobro projektovane relacione baze, normalizovane tabele, transakcije i ACID principe.
U analitičkom sistemu najvažnije je da se iz velikog broja zapisa dobije šira slika. OLAP ne radi najčešće sa jednom porudžbinom, već sa hiljadama, milionima ili milijardama zapisa. Njegov cilj nije da promeni jedan red u tabeli, nego da sabere, uporedi, grupiše, filtrira i prikaže podatke tako da korisnik može da razume trendove, obrasce i poslovne rezultate.
Zbog toga se struktura podataka u OLTP i OLAP sistemima razlikuje. OLTP baze često teže da izbegnu dupliranje podataka i da svaki podatak bude zapisan na pravom mestu. OLAP sistemi često pripremaju podatke tako da budu pogodniji za čitanje, agregiranje i izveštavanje. Tu se pojavljuju pojmovi kao što su dimenzije, mere, činjenice, agregacije, OLAP kocke i data warehouse.
Jedna od najvažnijih lekcija ovog tutorijala jeste da se OLTP i OLAP ne suprotstavljaju jedan drugom. Oni se dopunjuju. OLTP beleži život sistema u trenutku kada se događaji dešavaju. OLAP omogućava da se taj život kasnije razume, meri i objasni. Bez dobrog OLTP-a nema pouzdanih podataka, a bez dobrog OLAP-a podaci često ostaju samo gomila evidencija bez jasnog značenja.
U prvom delu praktikuma upoznaćemo osnovne pojmove. Videćemo šta znači transakciona obrada podataka, šta znači analitička obrada podataka i zašto različita poslovna pitanja traže različite tehničke pristupe. Primeri iz banke, prodavnice, bolnice, škole i IT sistema pomoći će da se razlika između OLTP i OLAP ne uči napamet, već da se vidi kroz stvarne situacije.
Zatim ćemo detaljnije obraditi OLTP. Govorićemo o transakcijama, upisu, izmeni, brisanju, potvrdi događaja, normalizaciji, ključevima, vezama između tabela i performansama sistema koji mora da podrži veliki broj malih i brzih operacija. Posebno ćemo objasniti zašto su tačnost i doslednost toliko važne u sistemima koji rade sa novcem, korisnicima, nalozima, ugovorima ili poslovnim procesima.
Nakon toga prelazimo na OLAP. Tu se otvara svet analitičkih pitanja, agregacija, mera, dimenzija i izveštavanja. Učićemo kako se podaci posmatraju po vremenu, proizvodu, kupcu, regionu, statusu, kanalu ili bilo kojoj drugoj dimenziji koja daje kontekst. Videćemo zašto analitika ne traži samo podatak, već dobro postavljeno pitanje.
U drugom delu praktikuma pratimo put podataka od OLTP baze do analitičkog sistema. Podaci se često ne analiziraju direktno nad operativnom bazom, jer bi to moglo da optereti sistem, uspori korisnike ili proizvede nejasne rezultate. Zato se podaci preuzimaju, čiste, transformišu, povezuju i smeštaju u strukture pogodnije za analizu.
Posebnu pažnju posvetićemo ETL i ELT procesima, data warehouse sistemima, istoriji podataka i kvalitetu podataka. Operativni sistem često pamti trenutno stanje, dok analitički sistem mora da razume promene kroz vreme. To je posebno važno kada želimo da znamo kako su se prodaja, korisnici, procesi, incidenti ili troškovi menjali iz meseca u mesec ili iz godine u godinu.
Naučićemo i osnovne OLAP operacije: slice and dice, drill-down, roll-up i pivotiranje. To su načini da se podaci posmatraju iz različitih uglova, od zbirne slike do detalja i nazad. Takve operacije stoje iza mnogih izveštaja i kontrolnih tabli koje koristimo u poslovanju, IT operacijama, finansijama, prodaji, logistici i menadžmentu.
Cilj ovog tutorijala nije samo da zapamtimo skraćenice OLTP i OLAP. Cilj je da razumemo način razmišljanja koji stoji iza njih. Kada znamo da razlikujemo sistem koji obavlja posao od sistema koji objašnjava posao, lakše projektujemo baze, pišemo upite, pravimo izveštaje, čitamo poslovne pokazatelje i donosimo bolje odluke zasnovane na podacima.