OLAP-CUBE (dinamičko upravljanje izvješćivanjem). Uvod u multivarijantnu analizu

Općenito, svaki stručnjak zna što je OLAP danas. Barem su pojmovi "OLAP" i "višedimenzionalni podaci" čvrsto povezani u našim umovima. Ipak, činjenica da se ova tema ponovno pokreće, nadam se, odobrit će većina čitatelja, jer kako ideja o nečemu ne bi s vremenom zastarjela, potrebno je povremeno komunicirati s pametni ljudi ili pročitajte članke u dobroj publikaciji...

Skladišta podataka (mjesto OLAP-a u informacijskoj strukturi poduzeća)

Pojam „OLAP“ neraskidivo je povezan s pojmom „skladište podataka“ (Data Warehouse).

Evo definicije koju je formulirao "otac utemeljitelj" skladištenja podataka, Bill Inmon: "Skladište podataka je domenski određena, vremenski ograničena, nepromjenjiva zbirka podataka za podršku donošenju odluka u upravljanju."

Podaci u skladište dolaze iz operativnih sustava (OLTP sustava) koji su namijenjeni automatizaciji poslovnih procesa. Osim toga, repozitorij se može nadopunjavati iz vanjskih izvora, kao što su statistička izvješća.

Zašto graditi skladišta podataka - uostalom, ona sadrže očito suvišne informacije koje već "žive" u bazama podataka ili datotekama operacijskog sustava? Odgovor može biti kratak: nemoguće je ili vrlo teško izravno analizirati podatke iz operativnih sustava. To je zbog različitih razloga, uključujući fragmentaciju podataka, njihovu pohranu u različitim formatima DBMS-a iu različitim "kutovima" korporativne mreže. Ali čak i ako poduzeće pohranjuje sve svoje podatke na središnji poslužitelj baze podataka (što je izuzetno rijetko), analitičar gotovo sigurno neće razumjeti njihove složene, ponekad zbunjujuće strukture. Autor ima prilično tužno iskustvo pokušaja “nahraniti” gladne analitičare “sirovim” podacima iz operativnih sustava - pokazalo se da im je to “previše”.

Dakle, svrha repozitorija je pružiti “sirovi materijal” za analizu na jednom mjestu iu jednostavnoj, razumljivoj strukturi. Ralph Kimball, u predgovoru svoje knjige "The Data Warehouse Toolkit", piše da ako, nakon čitanja cijele knjige, čitatelj razumije samo jednu stvar - naime, da struktura skladišta treba biti jednostavna - autor će smatrati svojim zadatak izvršen.

Postoji još jedan razlog koji opravdava pojavu zasebnog skladišnog prostora - složeni analitički upiti za operativnim informacijama usporavaju trenutni rad tvrtke, dugotrajno blokiraju tablice i oduzimaju resurse poslužitelja.

Po mom mišljenju, repozitorij ne znači nužno ogromnu akumulaciju podataka - glavna stvar je da je prikladan za analizu. Općenito govoreći, postoji poseban izraz za male skladišne ​​objekte - Data Marts (kiosci za podatke), ali u našoj ruskoj praksi to se rijetko čuje.

OLAP - praktičan alat za analizu

Centralizacija i prikladno strukturiranje nisu sve što je potrebno analitičaru. I dalje mu treba alat za gledanje i vizualizaciju informacija. Tradicionalnim izvješćima, čak i onima izgrađenim na jednom repozitoriju, nedostaje jedna stvar - fleksibilnost. Ne mogu se "zaokrenuti", "proširiti" ili "skupiti" da bi se dobio željeni prikaz podataka. Naravno, možete pozvati programera (ako želi doći), a on će (ako nije zauzet) napraviti novi izvještaj dovoljno brzo - recimo u roku od sat vremena (ovo pišem i ne vjerujem sam - to se u životu ne događa tako brzo; dajmo mu tri sata) . Ispada da analitičar ne može testirati više od dvije ideje dnevno. A on (ako je dobar analitičar) može doći do nekoliko takvih ideja na sat. I što analitičar vidi više "odsječaka" i "odsječaka" podataka, to ima više ideja, koje zauzvrat zahtijevaju sve više i više "odsječaka" za provjeru. Kad bi barem imao alat koji bi mu omogućio jednostavno i praktično proširivanje i sažimanje podataka! OLAP djeluje kao takav alat.

Iako OLAP nije nužan atribut skladišta podataka, sve se više koristi za analizu informacija akumuliranih u skladištu.

Komponente uključene u tipično spremište prikazane su na sl. 1.

Riža. 1. Struktura skladišta podataka

Operativni podaci prikupljaju se iz različitih izvora, čiste, integriraju i pohranjuju u relacijsku pohranu. Štoviše, već su dostupni za analizu pomoću različitih alata za izvješćivanje. Zatim se podaci (cijeli ili djelomično) pripremaju za OLAP analizu. Mogu se učitati u posebnu OLAP bazu podataka ili pohraniti u relacijsku pohranu. Njegov najvažniji element su metapodaci, odnosno informacije o strukturi, smještaju i transformaciji podataka. Zahvaljujući njima, osigurana je učinkovita interakcija različitih komponenti za pohranu.

Ukratko, OLAP možemo definirati kao skup alata za višedimenzionalnu analizu podataka akumuliranih u skladištu. Teoretski, OLAP alati mogu se primijeniti izravno na operativne podatke ili njihove točne kopije(kako ne bi ometali operativne korisnike). Ali time riskiramo da stanemo na već opisane grablje, odnosno počnemo analizirati operativne podatke koji nisu izravno pogodni za analizu.

Definicija i osnovni pojmovi OLAP-a

Prvo dešifriramo: OLAP je online analitička obrada, tj. analiza operativnih podataka. 12 definirajućih principa OLAP-a formulirao je 1993. E. F. Codd, "izumitelj" relacijskih baza podataka. Kasnije je njegova definicija prerađena u takozvani FASMI test, koji zahtijeva da OLAP aplikacija pruža mogućnost brze analize zajedničkih višedimenzionalnih informacija ().

FASMI test

Brzo(Brzo) - analizu treba provesti jednako brzo na svim aspektima informacija. Prihvatljivo vrijeme odgovora je 5 sekundi ili manje.

Analiza(Analiza) - mora biti moguće provesti osnovne vrste numeričke i statističke analize, unaprijed definirane od strane programera aplikacije ili slobodno definirane od strane korisnika.

Podijeljeno(Shared) - mnogi korisnici moraju imati pristup podacima, dok je potrebno kontrolirati pristup povjerljivim informacijama.

Višedimenzionalno(Multidimensional) je glavna, najbitnija karakteristika OLAP-a.

Informacija(Informacije) - aplikacija mora moći pristupiti svim potrebnim informacijama, bez obzira na njihovu količinu i mjesto pohrane.

OLAP = Višedimenzionalni pogled = Kocka

OLAP pruža praktične, brze načine pristupa, pregledavanja i analiziranja poslovnih informacija. Korisnik dobiva prirodan, intuitivan model podataka, organizirajući ih u obliku višedimenzionalnih kocki (Cubes). Osi višedimenzionalnog koordinatnog sustava glavni su atributi analiziranog poslovnog procesa. Na primjer, za prodaju to može biti proizvod, regija, vrsta kupca. Vrijeme se koristi kao jedna od dimenzija. Na sjecištima osi – dimenzija (Dimensions) – nalaze se podaci koji kvantitativno karakteriziraju proces – mjere (Measures). To mogu biti količine prodaje u komadima ili u novčanom iznosu, stanje zaliha, troškovi itd. Korisnik koji analizira informacije može "rezati" kocku u različitim smjerovima, dobiti sažetak (na primjer, po godini) ili, obrnuto, detaljan ( po tjednu ) informacije i provodi druge manipulacije koje mu padnu na pamet tijekom procesa analize.

Kao mjere u trodimenzionalnoj kocki prikazanoj na sl. 2, koriste se prodajni iznosi, a vrijeme, proizvod i trgovina koriste se kao dimenzije. Mjerenja su prikazana na određenim razinama grupiranja: proizvodi su grupirani po kategoriji, trgovine po zemlji, a podaci o vremenu transakcije po mjesecu. Nešto kasnije ćemo detaljnije pogledati razine grupiranja (hijerarhije).


Riža. 2. Primjer kocke

"Rezanje" kocke

Čak je i trodimenzionalnu kocku teško prikazati na zaslonu računala tako da su vrijednosti mjera od interesa vidljive. Što možemo reći o kockama s više od tri dimenzije? Za vizualizaciju podataka pohranjenih u kocki, u pravilu se koriste poznati dvodimenzionalni, tj. tablični prikazi sa složenim hijerarhijskim naslovima redaka i stupaca.

Dvodimenzionalni prikaz kocke može se dobiti "rezanjem" preko jedne ili više osi (dimenzija): fiksiramo vrijednosti svih dimenzija osim dvije i dobivamo pravilnu dvodimenzionalnu tablicu. Vodoravna os tablice (zaglavlja stupaca) predstavlja jednu dimenziju, okomita os (zaglavlja redaka) drugu, a ćelije tablice predstavljaju vrijednosti mjera. U ovom se slučaju skup mjera zapravo smatra jednom od dimenzija - ili odabiremo jednu mjeru za prikaz (a zatim možemo postaviti dvije dimenzije u naslove retka i stupca), ili prikazujemo nekoliko mjera (a zatim jednu od osi tablice bit će zauzete nazivima mjera, a druge - vrijednostima jedine "nerezane" dimenzije).

Pogledajte sl. 3 - ovdje je dvodimenzionalni isječak kocke za jednu mjeru - Unit Sales (prodani komadi) i dvije "nerezane" dimenzije - Store (Store) i Vrijeme (Time).


Riža. 3. 2D kockasti rez za jednu mjeru

Na sl. Slika 4 prikazuje samo jednu “nerezanu” dimenziju - Store, ali prikazuje vrijednosti nekoliko mjera - Unit Sales (prodane jedinice), Store Sales (količina prodaje) i Store Cost (troškovi trgovine).


Riža. 4. 2D kockasti rez za više mjera

Dvodimenzionalni prikaz kocke je također moguć kada više od dvije dimenzije ostanu "nerezane". U ovom slučaju, dvije ili više dimenzija "rezane" kocke bit će postavljene na osi presjeka (redovi i stupci) - vidi sl. 5.


Riža. 5. 2D presjek kocke s više dimenzija na jednoj osi

Oznake

Vrijednosti "položene" duž dimenzija nazivaju se članovi ili oznake. Oznake se koriste i za "rezanje" kocke i za ograničavanje (filtriranje) odabranih podataka - kada nas u dimenziji koja ostaje "nerezana" ne zanimaju sve vrijednosti, već njihov podskup, na primjer, tri grada od nekoliko desetaka. Vrijednosti oznaka pojavljuju se u 2D prikazu kocke kao naslovi redaka i stupaca.

Hijerarhije i razine

Oznake se mogu kombinirati u hijerarhije koje se sastoje od jedne ili više razina. Na primjer, oznake dimenzije Store prirodno su grupirane u hijerarhiju s razinama:

Zemlja

država

Grad

Store.

Skupne vrijednosti izračunavaju se prema razinama hijerarhije, na primjer obujam prodaje za SAD (razina "Država") ili za Kaliforniju (razina "Država"). Moguće je implementirati više od jedne hijerarhije u jednoj dimenziji - recimo, za vrijeme: (godina, tromjesečje, mjesec, dan) i (godina, tjedan, dan).

Arhitektura OLAP aplikacija

Sve što je gore rečeno o OLAP-u u biti se odnosi na višedimenzionalnu prezentaciju podataka. Kako se podaci pohranjuju, grubo rečeno, ne tiče se krajnjeg korisnika niti programera alata koji klijent koristi.

Višedimenzionalnost u OLAP aplikacijama može se podijeliti u tri razine:

  • Višedimenzionalni prikaz podataka - alati za krajnje korisnike koji pružaju višedimenzionalnu vizualizaciju i manipulaciju podacima; Višedimenzionalni prikazni sloj apstrahira fizičku strukturu podataka i tretira podatke kao višedimenzionalne.
  • Višedimenzionalna obrada je sredstvo (jezik) za formuliranje višedimenzionalnih upita (tradicionalni relacijski jezik SQL ovdje nije prikladan) i procesor koji može obraditi i izvršiti takav upit.
  • Višedimenzionalna pohrana je način fizičkog organiziranja podataka koji osigurava učinkovito izvršavanje višedimenzionalnih upita.

Prve dvije razine obavezne su u svim OLAP alatima. Treća razina, iako raširena, nije potrebna, jer se podaci za višedimenzionalni prikaz mogu izvući iz uobičajenih relacijskih struktura; Višedimenzionalni procesor upita u ovom slučaju prevodi višedimenzionalne upite u SQL upite koje izvršava relacijski DBMS.

Specifični OLAP proizvodi u pravilu su ili višedimenzionalni alat za predstavljanje podataka, OLAP klijent (na primjer, zaokretne tablice u Excelu 2000 od Microsofta ili ProClarity od Knosysa), ili višedimenzionalni poslužiteljski DBMS, OLAP poslužitelj (na primjer, Oracle Express Server ili Microsoft OLAP usluge).

Višedimenzionalni sloj obrade obično je ugrađen u OLAP klijent i/ili OLAP poslužitelj, ali se može izolirati u svom čistom obliku, kao što je Microsoftova komponenta Pivot Table Service.

Tehnički aspekti višedimenzionalne pohrane podataka

Kao što je gore spomenuto, alati za analizu OLAP-a također mogu izvući podatke izravno iz relacijskih sustava. Ovakav pristup bio je privlačniji u ono doba kada OLAP poslužitelji nisu bili uključeni u cjenike vodećih proizvođača DBMS-a. Ali danas Oracle, Informix i Microsoft nude potpune OLAP poslužitelje, pa čak i oni IT menadžeri koji ne vole stvarati "zoološki vrt" softvera različitih proizvođača u svojim mrežama mogu kupiti (ili bolje rečeno, uputiti odgovarajući zahtjev uprava tvrtke) OLAP poslužitelj iste marke kao i glavni poslužitelj baze podataka.

OLAP poslužitelji ili poslužitelji višedimenzionalnih baza podataka mogu pohranjivati ​​svoje višedimenzionalne podatke na različite načine. Prije razmatranja ovih metoda, moramo razgovarati o tako važnom aspektu kao što je pohranjivanje jedinica. Činjenica je da se u svakom skladištu podataka – i običnom i višedimenzionalnom – uz detaljne podatke izvučene iz operativnih sustava, pohranjuju i zbirni pokazatelji (agregirani pokazatelji, agregacije), poput zbroja obujma prodaje po mjesecima, po kategoriji robe itd. Agregati se pohranjuju izričito u svrhu ubrzanja izvršavanja upita. Uostalom, s jedne strane, u pravilu se u skladištu nakuplja vrlo velika količina podataka, as druge strane, analitičari u većini slučajeva nisu zainteresirani za detaljne, već za generalizirane pokazatelje. A kada bi se svaki put morali zbrajati milijuni pojedinačnih prodaja da bi se izračunala ukupna prodaja za godinu, brzina bi najvjerojatnije bila neprihvatljiva. Stoga se prilikom učitavanja podataka u višedimenzionalnu bazu računaju i pohranjuju svi ukupni pokazatelji ili dio njih.

Ali, kao što znate, za sve morate platiti. A za brzinu obrade zahtjeva za sažete podatke morate platiti povećanje količine podataka i vremena za njihovo učitavanje. Štoviše, povećanje volumena može biti doslovno katastrofalno - u jednom od objavljenih standardnih testova, potpuni izračun agregata za 10 MB izvornih podataka zahtijevao je 2,4 GB, odnosno podaci su narasli 240 puta! Stupanj "bubrenja" podataka pri izračunavanju agregata ovisi o broju dimenzija kocke i strukturi tih dimenzija, odnosno omjeru broja "očeva" i "djece" na različitim razinama mjerenja. Da bi se riješio problem skladištenja jedinica, ponekad se koriste složeni sklopovi, koji omogućuju postizanje značajnog povećanja izvedbe upita pri izračunu ne svih mogućih agregata.

Sada o raznim opcijama za pohranjivanje informacija. I granularni podaci i agregati mogu se pohraniti u relacijske ili višedimenzionalne strukture. Višedimenzionalna pohrana omogućuje vam da podatke tretirate kao višedimenzionalni niz, što osigurava jednako brze izračune ukupnih pokazatelja i razne višedimenzionalne transformacije duž bilo koje dimenzije. Prije nekog vremena, OLAP proizvodi podržavali su ili relacijsku ili višedimenzionalnu pohranu. Danas, u pravilu, isti proizvod osigurava obje ove vrste skladištenja, kao i treći tip - mješoviti. Primjenjuju se sljedeći uvjeti:

  • MOLAP(Multidimensional OLAP) - i detaljni podaci i agregati pohranjuju se u višedimenzionalnu bazu podataka. U ovom slučaju se postiže najveća redundancija, budući da višedimenzionalni podaci u potpunosti sadrže relacijske podatke.
  • ROLAP(Relational OLAP) - detaljni podaci ostaju tamo gdje su izvorno “živjeli” - u relacijskoj bazi podataka; agregati su pohranjeni u istoj bazi podataka u posebno kreiranim servisnim tablicama.
  • HOLAP(Hybrid OLAP) - detaljni podaci ostaju na mjestu (u relacijskoj bazi podataka), a agregati se pohranjuju u višedimenzionalnu bazu podataka.

Svaka od ovih metoda ima svoje prednosti i nedostatke i treba je koristiti ovisno o uvjetima - količini podataka, snazi ​​relacijskog DBMS-a itd.

Kod pohranjivanja podataka u višedimenzionalne strukture postoji potencijalni problem "napuhanosti" zbog pohranjivanja praznih vrijednosti. Uostalom, ako je u višedimenzionalnom polju prostor rezerviran za sve moguće kombinacije dimenzijskih oznaka, ali je samo mali dio stvarno ispunjen (na primjer, određeni broj proizvoda prodaje se samo u malom broju regija), tada većina kocka će biti prazna, iako će prostor biti zauzet. Moderni OLAP proizvodi mogu se nositi s ovim problemom.

Nastavit će se. U budućnosti ćemo govoriti o konkretnim OLAP proizvodima vodećih proizvođača.

OLAP (on-line analitička obrada) je metoda elektroničke analitičke obrade podataka koja predstavlja organizaciju podataka u hijerarhijske kategorije korištenjem unaprijed izračunatih ukupnih vrijednosti. OLAP podaci organizirani su hijerarhijski i pohranjuju se u kocke, a ne u tablice. OLAP kocke su višedimenzionalni skup podataka s osima koje sadrže parametre i ćelijama koje sadrže skupne podatke ovisne o parametrima. Kocke su dizajnirane za složenu, višedimenzionalnu analizu velikih količina podataka jer daju samo sažete rezultate za izvješćivanje umjesto veliki broj zasebne evidencije.

Koncept OLAP-a opisao je 1993. godine poznati istraživač baza podataka i autor relacijskog modela podataka E. F. Codd. Trenutno je podrška za OLAP implementirana u mnogim DBMS-ovima i drugim alatima.

OLAP kocka sadrži dvije vrste podataka:

· ukupne vrijednosti, vrijednosti za koje želite sažeti, predstavljati polja izračunatih podataka;

· opisne informacije koje predstavljaju mjerenja ili dimenzije. Opisne informacije obično su organizirane u razine detalja. Na primjer: "Godina", "Kvart", "Mjesec" i "Dan" u dimenziji "Vrijeme". Organiziranje polja u razine detalja omogućuje korisnicima izvješćivanja da odaberu razinu detalja koju žele pregledati, počevši od sažetih podataka visoke razine, a zatim spuštajući se do detaljnijeg prikaza i obrnuto.

Alati Microsoft Query također vam omogućuju stvaranje OLAP kocki iz upita koji učitava podatke iz relacijske baze podataka kao što je Microsoft Access, pretvarajući linearnu tablicu u strukturiranu hijerarhiju (kocku).

Čarobnjak za stvaranje OLAP kocke je ugrađeni Microsoft Query alat. Da biste stvorili OLAP kocku temeljenu na relacijskoj bazi podataka, morate izvršiti sljedeće korake prije pokretanja čarobnjaka.

1. Odredite izvor podataka (vidi sliku 6.1).

2. Koristeći Microsoft Query, izradite upit, uključujući samo ona polja koja će biti podatkovna polja ili dimenzijska polja OLAP kocke; ako se polje u kocki koristi više od jednom, mora biti uključeno u traženi upit broj puta.

3. Na zadnjem koraku čarobnjaka za stvaranje upita postavite prekidač na stavku Stvaranje OLAP kocke iz zadanog upita(vidi sl. 6.2) ili nakon što je zahtjev kreiran izravno pomoću izbornika Upit Datoteka odaberite tim Stvorite OLAP kocku, nakon čega će se pokrenuti Create OLAP Cube Wizard.

Čarobnjak za kreiranje OLAP kocke sastoji se od tri koraka.

U prvom koraku čarobnjaka (vidi sl. 6.6) se podatkovna polja– izračunata polja za koje je potrebno odrediti ukupne vrijednosti.



Riža. 6.6. Definiranje podatkovnih polja

Čarobnjak postavlja očekivana izračunata polja (obično numerička polja) na vrh popisa, provjerava ih i određuje rezultirajuću funkciju tih polja, obično - Iznos. Prilikom odabira podatkovnih polja, najmanje jedno polje mora biti odabrano kao izračunato polje i najmanje jedno polje mora biti neoznačeno da bi se odredila dimenzija.

Kada stvarate OLAP kocku, možete koristiti četiri funkcije sažetka − Iznos, Broj(broj vrijednosti), Minimum, Maksimum za numerička polja i jednu funkciju Broj za sva ostala polja. Ako želite koristiti nekoliko različitih funkcija sažetka istog polja, to polje mora biti uključeno u upit potreban broj puta.

Naziv izračunatog polja može se promijeniti u stupcu Naziv podatkovnog polja.

U drugom koraku čarobnjaka određuju se opisni podaci i njihove dimenzije (vidi sl. 6.7). Za odabir mjernog polja morate s popisa Izvorna polja povucite željeno polje dimenzija najviše razine na popis Mjerenja na područje označeno kao Povucite polja ovdje za izradu dimenzija. Za izradu OLAP kocke morate definirati barem jednu dimenziju. U istom koraku čarobnjaka možete koristiti kontekstni izbornik za promjenu naziva polja dimenzije ili razine.

Riža. 6.7. Definiranje dimenzijskih polja

Polja koja sadrže izolirane ili diskretne podatke i ne pripadaju hijerarhiji mogu se definirati kao jednorazinske dimenzije. Međutim, kocka će biti učinkovitija ako su neka od polja organizirana u razine. Da biste stvorili razinu kao dio dimenzije, povucite polje s popisa Izvorna polja na polju koje je dimenzija ili razina. Polja koja sadrže detaljnije podatke treba postaviti na niže razine. Na primjer, na slici 6.7 polje Naziv radnog mjesta je razina polja Naziv odjela.

Za premještanje polja na nižu ili višu razinu visoka razina, trebate ga povući na niže ili više polje unutar dimenzije. Za prikaz ili skrivanje razina koristite gumbe ili .

Ako koristite polja datuma ili vremena kao dimenziju najviše razine, čarobnjak OLAP kocke automatski stvara razine za te dimenzije. Korisnik tada može odabrati koje će se razine pojaviti u izvješćima. Na primjer, možete odabrati tjedne, kvartale i godine ili mjesece (vidi sliku 6.7).

Zapamtite da čarobnjak automatski stvara razine za polja datuma i vremena samo kada kreirate dimenziju najviše razine; Kada se ta polja dodaju kao podrazine dimenzije, ne stvaraju se automatske razine.

U trećem koraku čarobnjaka određuje se tip kocke koju je čarobnjak izradio, s tri moguće opcije (vidi sl. 6.8).

Riža. 6.8. Odabir vrste kocke koja će se izraditi u trećem koraku čarobnjaka

· Prve dvije opcije uključuju kreiranje kocke svaki put kada otvorite izvješće (ako se kocka gleda iz Excela, tada govorimo o pivot tablici). U ovom slučaju, datoteka zahtjeva i datoteka definicije kocke *.oqy, koji sadrži upute za izradu kocke. Datoteka *.oqy može se otvoriti u programu Excel za stvaranje izvješća na temelju kocke, a ako trebate unijeti promjene u kocku, možete je otvoriti pomoću upita kako biste ponovo pokrenuli čarobnjaka za stvaranje kocke.

Prema zadanim postavkama, datoteke definicija kocke, poput datoteka upita, pohranjene su u mapi korisničkog profila u Application Data\Microsoft\Que-ries. Prilikom spremanja *.oqy datoteke u standardnu ​​mapu, naziv datoteke definicije kocke prikazuje se na kartici OLAP kocke prilikom otvaranja novog upita u programu Microsoft Query ili prilikom odabira naredbe Kreirajte zahtjev(Jelovnik Podaci, podizbornik Uvoz vanjskih podataka) u programu Microsoft Excel.

· U slučaju odabira treće opcije tipa kocke Spremanje datoteke kocke koja sadrži sve podatke za kocku, dohvaćaju se svi podaci za kocku i stvara se datoteka kocke s ekstenzijom * na lokaciji koju odredi korisnik .mladunče, u kojem su ti podaci pohranjeni. Ova se datoteka ne stvara odmah nakon klika na gumb Spreman; datoteka se stvara kada spremite definiciju kocke u datoteku ili kada kreirate izvješće na temelju kocke.

Izbor tipa kocke određen je nekoliko čimbenika: količinom podataka koje kocka sadrži; vrsta i složenost izvješća koja će se kreirati na temelju kocke; resursi sustava (memorija i prostor na disku) itd.

Zasebna *.cub datoteka kocke trebala bi se stvoriti u sljedećim slučajevima:

1) za često mijenjana interaktivna izvješća ako ima dovoljno prostora na disku;

2) kada trebate spremiti kocku na mrežni poslužitelj kako biste joj omogućili pristup drugim korisnicima prilikom izrade izvješća. Datoteka kocke može pružiti određene podatke iz izvorne baze podataka, a izostaviti osjetljive ili osjetljive podatke kojima želite spriječiti pristup drugim korisnicima.

U standardnoj zaokretnoj tablici izvorni podaci pohranjeni su na vašem lokalnom tvrdom disku. Na taj način uvijek možete njima upravljati i reorganizirati ih, čak i bez pristupa mreži. Ali to se ni na koji način ne odnosi na OLAP pivot tablice. U OLAP zaokretnim tablicama predmemorija se nikada ne pohranjuje na lokalni tvrdi disk. Stoga, odmah nakon prekida veze s lokalna mreža vaša zaokretna tablica više neće raditi. Nećete moći pomaknuti niti jedno polje u njemu.

Ako i dalje trebate analizirati OLAP podatke nakon izvanmrežnog rada, izradite izvanmrežnu podatkovnu kocku. Izvanmrežna podatkovna kocka je zasebna datoteka koja je predmemorija zaokretne tablice i pohranjuje OLAP podatke koji se pregledavaju nakon prekida veze s lokalnom mrežom. OLAP podaci kopirani u zaokretnu tablicu mogu se ispisati; to je detaljno opisano na web stranici http://everest.ua.

Da biste izradili samostalnu podatkovnu kocku, prvo izradite OLAP zaokretnu tablicu. Postavite pokazivač unutar zaokretne tablice i kliknite na gumb OLAP Alati na kontekstualnoj kartici Alati, koja je dio grupe kontekstualnih kartica Alati zaokretne tablice. Odaberite naredbu Offline OLAP (Slika 9.8).

Na zaslonu se pojavljuje dijaloški okvir Offline OLAP Data Cube Settings. Kliknite na gumb Create Offline Data File. Pokrenuli ste čarobnjak za kreiranje datoteke podatkovne kocke. Pritisnite gumb Dalje za nastavak postupka.

Prvo morate odrediti dimenzije i razine koje će biti uključene u podatkovnu kocku. U dijaloškom okviru morate odabrati podatke koji će biti uvezeni iz OLAP baze podataka. Ideja je navesti samo one dimenzije koje će biti potrebne nakon što se računalo isključi iz lokalne mreže. Što više dimenzija navedete, to veće veličine imat će samostalnu podatkovnu kocku.

Pritisnite gumb Dalje za pomak na sljedeći dijaloški okvir čarobnjaka. To vam daje mogućnost navođenja članova ili podatkovnih elemenata koji neće biti uključeni u kocku. Konkretno, nećete trebati mjeru Internet Sales-Extended Amount, pa će njezin potvrdni okvir biti poništen na popisu. Poništen potvrdni okvir označava da navedena stavka neće biti uvezena i zauzeti nepotreban prostor na vašem lokalnom tvrdom disku.

U posljednjem koraku odredite mjesto i naziv podatkovne kocke. U našem slučaju, datoteka kocke će se zvati MyOfflineCube.cub i nalazit će se u mapi Rad.

Datoteke podatkovne kocke imaju nastavak .mladunče

Nakon nekog vremena Excel će izvanmrežnu podatkovnu kocku spremiti u navedenu mapu. Da biste ga testirali, dvaput kliknite na datoteku, koja će automatski generirati Excel radnu knjigu koja sadrži zaokretnu tablicu povezanu s odabranom podatkovnom kockom. Nakon što je stvorena, možete distribuirati izvanmrežnu podatkovnu kocku svim zainteresiranim korisnicima koji rade u izvanmrežnom LAN načinu rada.

Nakon što se povežete s lokalnom mrežom, možete otvoriti datoteku izvanmrežne podatkovne kocke i ažurirati je i pridruženu podatkovnu tablicu. Glavni princip stoji da se izvanmrežna podatkovna kocka koristi samo za rad kada je lokalna mreža prekinuta, ali je potrebno ažurirati nakon ponovnog uspostavljanja veze. Pokušaj ažuriranja izvanmrežne podatkovne kocke nakon neuspjeha veze rezultirat će neuspjehom.

U sklopu ovog rada razmatrat će se sljedeća pitanja:

  • Što su OLAP kocke?
  • Što su mjere, dimenzije, hijerarhije?
  • Koje se vrste operacija mogu izvoditi na OLAP kockama?
Koncept OLAP kocke

Glavni postulat OLAP-a je višedimenzionalnost u prikazu podataka. U OLAP terminologiji, koncept kocke ili hiperkocke koristi se za opisivanje višedimenzionalnog diskretnog prostora podataka.

Kocka je višedimenzionalna struktura podataka iz koje korisnik-analitičar može tražiti informacije. Kocke su stvorene od činjenica i dimenzija.

Podaci- to su podaci o objektima i događajima u poduzeću koji će biti predmet analize. Činjenice iste vrste tvore mjere. Mjera je vrsta vrijednosti u ćeliji kocke.

Mjerenja- to su elementi podataka pomoću kojih se analiziraju činjenice. Zbirka takvih elemenata tvori atribut dimenzije (na primjer, dani u tjednu mogu tvoriti atribut vremenske dimenzije). U zadacima poslovne analize trgovačka poduzeća Dimenzije često uključuju kategorije kao što su "vrijeme", "prodaja", "proizvodi", "kupci", "zaposlenici" i "zemljopisna lokacija". Dimenzije su najčešće hijerarhijske strukture koje predstavljaju logične kategorije pomoću kojih korisnik može analizirati stvarne podatke. Svaka hijerarhija može imati jednu ili više razina. Dakle, hijerarhija dimenzije “geografski položaj” može uključivati ​​razine: “država - regija - grad”. U vremenskoj hijerarhiji razlikujemo npr. sljedeći niz razina: Dimenzija može imati više hijerarhija (svaka hijerarhija jedne dimenzije mora imati isti ključni atribut tablice dimenzija).

Kocka može sadržavati stvarne podatke iz jedne ili više tablica činjenica i najčešće sadrži više dimenzija. Svaka dana kocka obično ima određeni fokus za analizu.

Na slici 1 prikazan je primjer kocke za analizu prodaje naftnih derivata određene tvrtke po regijama. Ova kocka ima tri dimenzije (vrijeme, proizvod i regija) i jednu mjeru (prodaja izražena u novcu). Vrijednosti mjerenja pohranjene su u odgovarajućim ćelijama kocke. Svaka ćelija je jedinstveno identificirana skupom članova svake dimenzije, koji se naziva tuple. Na primjer, ćelija koja se nalazi u donjem lijevom kutu kocke (sadrži vrijednost $98399) određena je torkom [srpanj 2005., Daleki istok, Diesel]. Ovdje vrijednost od 98.399 dolara pokazuje obujam prodaje (u monetarnom smislu) dizela na Dalekom istoku za srpanj 2005.

Također je vrijedno napomenuti da neke ćelije ne sadrže nikakve vrijednosti: te su ćelije prazne jer tablica činjenica ne sadrži podatke za njih.

Riža. 1. Kocka s informacijama o prodaji naftnih derivata u raznim regijama

Krajnji cilj stvaranja takvih kocki je minimizirati vrijeme obrade upita koji izvlače potrebne informacije iz stvarnih podataka. Da bi se izvršio ovaj zadatak, kocke obično sadrže unaprijed izračunate ukupne zbrojeve agregacije(agregacije). Oni. kocka pokriva podatkovni prostor veći od stvarnog - u njemu se nalaze logične, izračunate točke. Funkcije agregacije omogućuju vam izračunavanje vrijednosti točaka u logičkom prostoru na temelju stvarnih vrijednosti. Najjednostavnije agregacijske funkcije su SUM, MAX, MIN, COUNT. Tako, na primjer, pomoću funkcije MAX, za kocku danu u primjeru, možete identificirati kada je došlo do vrhunca prodaje dizela na Dalekom istoku, itd.

Druga specifičnost višedimenzionalnih kocki je teškoća u određivanju podrijetla. Na primjer, kako postaviti točku 0 za dimenziju proizvoda ili regija? Rješenje ovog problema je uvođenje posebnog atributa koji objedinjuje sve elemente dimenzije. Ovaj atribut (stvaran automatski) sadrži samo jedan element - Sve. Za jednostavne funkcije združivanja kao što je zbroj, element Sve je ekvivalentan zbroju vrijednosti svih elemenata u stvarnom prostoru dane dimenzije.

Važan koncept u višedimenzionalnom podatkovnom modelu je podprostor ili podkocka. Potkocka je dio punog prostora kocke u obliku neke višedimenzionalne figure unutar kocke. Budući da je višedimenzionalni prostor kocke diskretan i ograničen, potkocka je također diskretna i ograničena.

Operacije na OLAP kockama

Na OLAP kocki mogu se izvesti sljedeće operacije:

  • kriška;
  • rotacija;
  • konsolidacija;
  • detaljiziranje.
Kriška(Slika 2) je poseban slučaj potkocke. Ovo je postupak za formiranje podskupa višedimenzionalnog niza podataka koji odgovara jednoj vrijednosti jednog ili više dimenzijskih elemenata koji nisu uključeni u ovaj podskup. Na primjer, da biste saznali kako je prodaja naftnih derivata napredovala tijekom vremena samo u određenoj regiji, naime na Uralu, morate popraviti dimenziju "Proizvodi" na elementu "Ural" i izdvojiti odgovarajući podskup (potkocku) iz kocka.
  • Riža. 2. OLAP kockasti isječak

    Rotacija(Slika 3) - operacija promjene mjesta mjerenja prikazanih u izvješću ili na prikazanoj stranici. Na primjer, operacija rotacije može uključivati ​​preuređivanje redaka i stupaca tablice. Osim toga, rotiranje podatkovne kocke premješta dimenzije izvan tablice na mjesto dimenzija prisutnih na prikazanoj stranici i obrnuto.

    Stanovnik sam Habra već duže vrijeme, ali nikad nisam čitao članke na temu višedimenzionalnih kocki, OLAP-a i MDX-a, iako je tema vrlo zanimljiva i svakim danom sve aktualnija.
    Nije tajna da se u tom kratkom vremenskom razdoblju razvoja baza podataka, elektroničkog računovodstva i online sustava nakupilo mnogo samih podataka. Sada je također od interesa potpuna analiza arhiva, a možda i pokušaj predviđanja situacija za slične modele u budućnosti.
    S druge strane, velike tvrtke, čak i tijekom nekoliko godina, mjeseci ili čak tjedana, mogu akumulirati toliko velike količine podataka da čak i njihova osnovna analiza zahtijeva izvanredne pristupe i stroge hardverske zahtjeve. To mogu biti sustavi za obradu bankarskih transakcija, berzanski agenti, telefonski operateri itd.
    Mislim da su svi dobro svjesni 2 različita pristupa dizajnu baze podataka: OLTP i OLAP. Prvi pristup (Online Transaction Processing - obrada transakcija u stvarnom vremenu) dizajniran je za učinkovito prikupljanje podataka u stvarnom vremenu, dok je drugi (Online Analytical Processing - analitička obrada u stvarnom vremenu) usmjeren upravo na uzorkovanje i obradu podataka na najučinkovitiji način. put.

    Pogledajmo glavne mogućnosti modernih OLAP kocki i probleme koje rješavaju (kao osnova su uzete Analysis Services 2005/2008):

    • brz pristup podacima
    • preagregacija
    • hijerarhija
    • rad s vremenom
    • višedimenzionalni jezik za pristup podacima
    • KPI (Ključni pokazatelji uspješnosti)
    • rudarenje datuma
    • višerazinsko predmemoriranje
    • višejezična podrška
    Dakle, pogledajmo mogućnosti OLAP kocki malo detaljnije.

    Još malo o mogućnostima

    Brzi pristup podacima
    Zapravo, brzi pristup podacima, bez obzira na veličinu polja, osnova je OLAP sustava. Budući da je ovo glavni fokus, skladište podataka obično se gradi na principima drugačijim od onih relacijskih baza podataka.
    Ovdje se vrijeme dohvaćanja jednostavnih podataka mjeri u djelićima sekunde, a upit koji prelazi nekoliko sekundi najvjerojatnije zahtijeva optimizaciju.

    Preagregacija
    Osim brzog dohvaćanja postojećih podataka, također pruža mogućnost prethodnog skupljanja vrijednosti "najvjerojatnije za korištenje". Na primjer, ako imamo dnevnu evidenciju prodaje određenog proizvoda, sustav Može biti Također možemo unaprijed agregirati mjesečne i tromjesečne iznose prodaje, što znači da ako podatke zatražimo mjesečno ili tromjesečno, sustav će nam odmah dati rezultat. Zašto se preagregacija ne događa uvijek? Zato što su teoretski moguće kombinacije dobara/vremena/itd. može biti ogroman broj, što znači da trebate imati jasna pravila za koje elemente će se agregacija graditi, a za koje ne. Općenito, tema uzimanja u obzir ovih pravila i stvarnog dizajna jedinica združivanja prilično je opsežna i zaslužuje zaseban članak.

    Hijerarhije
    Prirodno je da pri analizi podataka i konstruiranju konačnih izvješća postoji potreba uzeti u obzir činjenicu da se mjeseci sastoje od dana, a sami tvore četvrtine, a gradovi su uključeni u područja, koja su pak dio regija ili država. . Dobra vijest je da OLAP kocke u početku gledaju podatke u smislu hijerarhija i odnosa s drugim parametrima istog entiteta, tako da je izgradnja i korištenje hijerarhija u kockama vrlo jednostavno.

    Rad s vremenom
    Budući da se analiza podataka uglavnom odvija u vremenskim područjima, vremenu se daje posebna važnost u OLAP sustavima, što znači da jednostavnim definiranjem za sustav gdje imamo vremena ovdje, u budućnosti možete lako koristiti funkcije kao što su Year To Date, Month To Date (razdoblje od početka godine/mjeseca do tekućeg datuma), Paralelno razdoblje (na isti dan ili mjesec, ali prošle godine), itd.

    Višedimenzionalni jezik pristupa podacima
    MDX(Multidimensional Expressions) - upitni jezik za jednostavan i učinkovit pristup višedimenzionalnim strukturama podataka. I to sve govori – u nastavku će biti nekoliko primjera.

    Ključni pokazatelji uspješnosti (KPI)
    Ključni pokazatelji uspješnosti je financijski i nefinancijski mjerni sustav koji pomaže organizaciji utvrditi postizanje strateških ciljeva. Ključni pokazatelji uspješnosti mogu se vrlo jednostavno definirati u OLAP sustavima i koristiti u izvješćima.

    Datum rudarenja
    rudarenje podataka(Data Mining) - u biti, identificiranje skrivenih obrazaca ili odnosa između varijabli u velikim skupovima podataka.
    Engleski pojam "Data Mining" nema jednoznačan prijevod na ruski (data mining, data mining, information mining, data/information extraction) stoga se u većini slučajeva koristi u izvorniku. Najuspješniji neizravni prijevod je izraz “data mining” (DMA). Međutim, ovo je zasebna, ništa manje zanimljiva tema za razmatranje.

    Predmemoriranje na više razina
    Zapravo, kako bi se osigurala najveća brzina pristupa podacima, uz lukave podatkovne strukture i predagregacije, OLAP sustavi podržavaju predmemoriju na više razina. Osim predmemoriranja jednostavnih upita, predmemoriraju se i dijelovi podataka očitani iz pohrane, agregirane vrijednosti i izračunate vrijednosti. Dakle, što dulje radite s OLAP kockom, to ona zapravo brže počinje raditi. Postoji i koncept "zagrijavanja predmemorije" - operacija koja priprema OLAP sustav za rad s određenim izvješćima, upitima ili svime zajedno.

    Višejezična podrška
    Da da da. Analysis Services 2005/2008 (iako Enterprise Edition) barem izvorno podržava višejezičnost. Dovoljno je dati prijevod string parametara vaših podataka, a klijent koji je naveo svoj jezik dobit će lokalizirane podatke.

    Višedimenzionalne kocke

    Što su zapravo te višedimenzionalne kocke?
    Zamislimo trodimenzionalni prostor čije su osi Vrijeme, Proizvodi i Kupci.
    Točka u takvom prostoru označavat će činjenicu da je netko od kupaca kupio određeni proizvod u određenom mjesecu.

    Zapravo, ravnina (ili skup svih takvih točaka) bit će kocka, a prema tome, Vrijeme, Proizvodi i Kupci bit će njezine dimenzije.
    Malo je teže zamisliti (i nacrtati) četverodimenzionalnu ili više kocku, ali suština se ne mijenja, a što je najvažnije, za OLAP sustave uopće nije bitno u koliko dimenzija ćete raditi (u okviru razumnog granice, naravno).

    Malo MDX-a

    Dakle, u čemu je ljepota MDX-a? Najvjerojatnije je u tome što ne trebamo opisati kako želimo odabrati podatke, već Što točno mi želimo.
    Na primjer,
    IZABERI
    ( . ) NA KOLONAMA,
    ( ., . ) U REDOVIMA
    IZ
    GDJE (., .)

    Što znači da želim broj iPhonea prodanih u lipnju i srpnju u Mozambiku.
    U isto vrijeme opisujem koji ovo su podaci koje želim i KakoŽelim ih vidjeti u izvješću.
    Prelijepo, zar ne?

    Evo malo kompliciranije:

    UZ ČLANA AverageSpend AS
    . / .
    IZABERI
    ( Prosječna potrošnja ) NA STUPCIMA,
    ( .., .. ) U REDOVIMA
    IZ
    GDJE(.)

    * Ovaj izvorni kod je istaknut Markerom izvornog koda.

    Zapravo, prvo odredimo formulu za izračun “prosječne veličine kupovine” i pokušamo usporediti tko (kog spola) potroši više novca u jednom posjetu Apple trgovini.

    Sam jezik je izuzetno zanimljiv i za proučavanje i za korištenje, i možda zaslužuje puno rasprave.

    Zaključak

    Zapravo, ovaj članak pokriva vrlo malo čak i osnovnih pojmova; ja bih ga nazvao “predjelo” - prilika da zainteresirate Habra zajednicu za ovu temu i da je dalje razvijate. Što se tiče razvoja, ovdje je ogromna neoranica i rado ću odgovoriti na sva vaša pitanja.

    p.s. Ovo je moj prvi post o OLAP-u i prva objava na Habréu - bio bih jako zahvalan na konstruktivnim povratnim informacijama.
    Ažuriraj: Prebacio sam ga u SQL, prebacit ću ga u OLAP čim mi dopuste kreiranje novih blogova.

    Oznake: Dodajte oznake