OLAP-CUBE (dünaamiline juhtimisaruandlus). Sissejuhatus mitmemõõtmelisse analüüsi

Mis on OLAP tänapäeval, üldiselt teab iga spetsialist. Vähemalt mõisted "OLAP" ja "mitmemõõtmelised andmed" on meie mõtetes kindlalt seotud. Sellegipoolest kiidab enamik lugejaid heaks asjaolu, et see teema uuesti tõstatatakse, sest selleks, et idee aja jooksul ei vananeks, peate perioodiliselt suhtlema targad inimesed või loe artikleid mõnest heast väljaandest...

Andmelaod (OLAP-i koht ettevõtte infostruktuuris)

Mõiste "OLAP" on lahutamatult seotud mõistega "andmeladu" (Data Warehouse).

Siin on definitsioon, mille sõnastas andmeladude "asutaja" Bill Inmon: "Andmeladu on domeenispetsiifiline, ajaliselt piiratud ja muutumatu andmete kogum, mis toetab juhtimisotsuste tegemise protsessi."

Salves olevad andmed pärinevad operatsioonisüsteemidest (OLTP-süsteemid), mis on loodud äriprotsesside automatiseerimiseks. Lisaks saab hoidlat täiendada välistest allikatest, näiteks statistilistest aruannetest.

Milleks andmeladusid ehitada – need sisaldavad ju ilmselgelt üleliigset infot, mis juba "elab" operatsioonisüsteemide andmebaasides või failides? Vastus võib olla lühike: operatsioonisüsteemide andmete otsene analüüsimine on võimatu või väga keeruline. Selle põhjuseks on erinevad põhjused, sealhulgas andmete killustatus, nende salvestamine erinevate DBMS-i vormingutes ja ettevõtte võrgu erinevatesse "nurkadesse". Kuid isegi kui kõik ettevõtte andmed on salvestatud kesksesse andmebaasiserverisse (mis on äärmiselt haruldane), ei mõista analüütik peaaegu kindlasti nende keerulisi, mõnikord segaseid struktuure. Autoril on üsna kurb kogemus üritada näljaseid analüütikuid operatsioonisüsteemide "toorete" andmetega "toita" – see osutus neile liiga karmiks.

Seega on repositooriumi ülesanne anda analüüsiks "tooraine" ühes kohas ja lihtsas arusaadavas ülesehituses. Ralph Kimball kirjutab oma raamatu "The Data Warehouse Toolkit" eessõnas, et kui lugeja saab pärast kogu raamatu lugemist aru ainult ühest asjast, nimelt sellest, et lao struktuur peaks olema lihtne, kaalub autor oma ülesannet. lõpetatud.

Eraldi salvestusruumi tekkimist õigustab veel üks põhjus – keerulised analüütilised operatiivinfo päringud aeglustavad ettevõtte jooksvat tööd, blokeerivad tabeleid pikaks ajaks ja haaravad serveriressursse.

Minu meelest ei pruugi salvestamine olla hiiglaslik andmete kogumine – peaasi, et seda oleks mugav analüüsida. Üldiselt on väikeste hoidlate jaoks mõeldud eraldi termin - Data Marts (andmekioskid), kuid meie vene praktikas seda sageli ei kuule.

OLAP on mugav analüüsitööriist

Tsentraliseerimine ja mugav struktureerimine pole kaugeltki kõik, mida analüütik vajab. Lõppude lõpuks vajab ta ikkagi tööriista teabe vaatamiseks, visualiseerimiseks. Traditsioonilistel aruannetel, isegi ühe hoidla alusel üles ehitatud, puudub üks asi – paindlikkus. Andmete soovitud vaate saamiseks ei saa neid "väänata", "laiendada" ega "ahendada". Muidugi võite helistada programmeerijale (kui ta tahab tulla) ja ta (kui ta pole hõivatud) teeb üsna kiiresti uue raporti - ütleme, et tunni aja jooksul (kirjutan ja ise ei usu - see ei juhtu elus nii kiiresti, andkem talle kolm tundi) . Selgub, et analüütik ei saa kontrollida rohkem kui kahte ideed päevas. Ja tal (kui ta on hea analüütik) võib tulla mitu sellist ideed tunnis. Ja mida rohkem andmete "lõike" ja "lõike" analüütik näeb, seda rohkem on tal ideid, mis omakorda nõuavad kontrollimiseks aina uusi ja uusi "lõike". Soovin, et tal oleks selline tööriist, mis võimaldaks tal andmeid lihtsalt ja mugavalt laiendada ja ahendada! OLAP on üks selline tööriist.

Kuigi OLAP ei ole andmelao vajalik atribuut, kasutatakse seda üha enam sellesse andmelattu kogutud teabe analüüsimiseks.

Tüüpilises hoidlas sisalduvad komponendid on näidatud joonisel fig. 1.

Riis. 1. Andmelao struktuur

Tööandmeid kogutakse erinevatest allikatest, puhastatakse, integreeritakse ja pannakse relatsioonipoodi. Samas on need juba praegu analüüsimiseks saadaval erinevate aruandlustööriistade abil. Seejärel valmistatakse andmed (täielikult või osaliselt) ette OLAP analüüsiks. Neid saab laadida spetsiaalsesse OLAP-i andmebaasi või jätta relatsioonipoodi. Selle kõige olulisem element on metaandmed, st teave andmete struktuuri, paigutuse ja teisendamise kohta. Tänu neile on tagatud erinevate salvestuskomponentide tõhus koostoime.

Kokkuvõttes võime OLAP-i määratleda kui tööriistade komplekti lattu kogutud andmete mitmemõõtmeliseks analüüsiks. Teoreetiliselt saab OLAP-i tööriistu rakendada otse operatiivandmetele või täpsed koopiad(et mitte segada operatiivseid kasutajaid). Aga nii toimides on oht astuda juba ülalkirjeldatud reha otsa ehk hakata analüüsima operatiivandmeid, mis analüüsiks otseselt ei sobi.

OLAPi definitsioon ja põhimõisted

Alustuseks dešifreerime: OLAP on veebipõhine analüütiline töötlemine, st andmete veebianalüüs. OLAP-i 12 määratlevat põhimõtet sõnastas 1993. aastal relatsiooniandmebaaside "leiutaja" E. F. Codd. Hiljem töötati selle definitsioon ümber nn FASMI testiks, mis nõuab OLAP-rakendust, mis võimaldaks jagatud mitmemõõtmelist teavet kiiresti analüüsida ().

FASMI test

Kiire(Kiire) – analüüs tuleks läbi viia võrdselt kiiresti kõigi teabe aspektide osas. Vastuvõetav reageerimisaeg on 5 sekundit või vähem.

Analüüs(Analüüs) – Peaks olema võimalik teostada põhitüüpi numbrilist ja statistilist analüüsi, mille on eelnevalt määratlenud rakenduse arendaja või mis on kasutaja poolt meelevaldselt määratletud.

jagatud(Jagatud) – andmetele peab olema juurdepääs mitmel kasutajal, samas kui juurdepääsu tundlikule teabele tuleb kontrollida.

Mitmemõõtmeline(Mitmemõõtmeline) on OLAP-i peamine, kõige olulisem omadus.

Teave(Teave) – rakendusel peab olema juurdepääs kogu vajalikule teabele, olenemata selle mahust ja salvestuskohast.

OLAP = mitmemõõtmeline vaade = kuup

OLAP pakub mugavat ja kiiret vahendit äriteabele juurdepääsuks, selle vaatamiseks ja analüüsimiseks. Kasutaja saab loomuliku, intuitiivse andmemudeli, korraldades need mitmemõõtmeliste kuubikute (Cubes) kujul. Mitmemõõtmelise koordinaatsüsteemi teljed on analüüsitava äriprotsessi peamised atribuudid. Näiteks müügi puhul võib see olla toode, piirkond, ostja tüüp. Ühe mõõtmisena kasutatakse aega. Telgede ristumiskohtades - mõõtmised (Dimensions) - on protsessi kvantitatiivselt iseloomustavad andmed - mõõdud (Measures). Need võivad olla müügimahud tükkidena või rahaliselt, laojäägid, kulud jne. Infot analüüsiv kasutaja saab kuubikut erinevates suundades "lõikamiseks", saada kokkuvõtte (näiteks aastate lõikes) või vastupidi üksikasjalikult (nädalaselt) teavet ja teha muid manipulatsioone, mis talle analüüsi käigus pähe tulevad.

Nagu on näidatud joonisel fig. 2, kasutatakse müügisummasid ning mõõtudeks aega, toodet ja kauplust. Mõõtmised esitatakse kindlatel grupeerimistasanditel: tooted on grupeeritud kategooriate kaupa, kauplused riikide kaupa ja tehinguajad kuude kaupa. Veidi hiljem käsitleme rühmitamise (hierarhia) tasemeid üksikasjalikumalt.


Riis. 2. Kuubiku näide

Kuubiku "lõikamine".

Isegi kolmemõõtmelist kuupi on keeruline arvutiekraanil kuvada, nii et huvipakkuvate mõõtude väärtused on näha. Mida me saame öelda rohkem kui kolmemõõtmeliste kuubikute kohta? Kuubis salvestatud andmete visualiseerimiseks kasutatakse reeglina tavalisi kahemõõtmelisi, s.t tabelivaateid, millel on keerulised hierarhilised rea- ja veerupäised.

Kuubi kahemõõtmelise esituse saab "lõikamisel" üle ühe või mitme telje (mõõtme): fikseerime kõigi mõõtmete väärtused, välja arvatud kahe, ja saame tavalise kahemõõtmelise tabeli. . Tabeli horisontaaltelg (veerupäised) tähistab üht dimensiooni, vertikaaltelg (reapäised) teist dimensiooni ja tabeli lahtrid mõõteväärtusi. Sel juhul peetakse mõõtude komplekti tegelikult üheks dimensiooniks - me kas valime kuvamiseks ühe mõõdu (ja siis saame ridade ja veergude päistesse paigutada kaks mõõdet) või näitame mitu mõõdet (ja siis üks tabeli telgedest hõivavad mõõtude nimed ja teine ​​- ühe "lõikamata" mõõtme väärtus).

Heitke pilk joonisele fig. 3 - siin on kahemõõtmeline kuubiku viil ühe mõõdu jaoks - ühiku müük (müüdud tükid) ja kaks "lõikamata" mõõdet - pood (pood) ja aeg (aeg).


Riis. 3. Kahemõõtmeline kuubilõik ühe mõõdu jaoks

Joonisel fig. 4 näitab ainult ühte "lõikamata" dimensiooni – pood, kuid see kuvab mitme mõõdiku väärtused – ühikumüük (müüdud tükid), poemüük (müügisumma) ja poe maksumus (poe kulud).


Riis. 4. 2D kuubiku viilutamine mitmeks mõõtmiseks

Kuubi kahemõõtmeline esitus on võimalik ka siis, kui rohkem kui kaks mõõdet on "lõikamata". Sel juhul asetatakse lõigutelgedele (ridadele ja veergudele) kaks või enam "lõigatud" kuubi mõõdet - vt joon. 5.


Riis. 5. Kahemõõtmeline kuubilõik, millel on mitu mõõdet samal teljel

Sildid

Mõõtmete järgi "kõrvale pandud" väärtusi nimetatakse liikmeteks või siltideks (liikmeteks). Silte kasutatakse nii kuubi "lõikamiseks" kui ka valitud andmete piiramiseks (filtreerimiseks) - kui "lõikamata" jäävas dimensioonis ei huvita meid mitte kõik väärtused, vaid nende alamhulk, näiteks kolm linna mitmest tosin. Sildi väärtused kuvatakse 2D kuubivaates ridade ja veergude pealkirjadena.

Hierarhiad ja tasemed

Silte saab kombineerida ühest või mitmest tasemest koosnevateks hierarhiateks. Näiteks dimensiooni "Pood" (pood) sildid on loomulikult ühendatud tasemetega hierarhiasse:

Riik (riik)

Osariik (osariik)

Linn (linn)

Kauplus (pood).

Vastavalt hierarhia tasemetele arvutatakse koondväärtused, näiteks müük USA ("Riigi" tase) või California jaoks ("osariigi" tase). Ühes dimensioonis saab rakendada rohkem kui ühte hierarhiat – ütleme aja kohta: (aasta, kvartal, kuu, päev) ja (aasta, nädal, päev).

OLAP-i rakenduste arhitektuur

Kõik, mis eespool OLAP-i kohta öeldi, viitas tegelikult andmete mitmemõõtmelisele esitamisele. Jämedalt öeldes ei hooli kliendi kasutatava tööriista lõppkasutaja ega arendajad andmete salvestamise viisist.

OLAP-i rakenduste mitmedimensioonilisuse saab jagada kolmeks tasemeks:

  • Mitmemõõtmeline andmete esitus – lõppkasutaja tööriistad, mis pakuvad mitmemõõtmelist visualiseerimist ja andmetega manipuleerimist; mitmemõõtmeline esituskiht abstraheerub andmete füüsilisest struktuurist ja käsitleb andmeid mitmemõõtmelistena.
  • Mitmemõõtmeline töötlemine - tööriist (keel) mitmemõõtmeliste päringute formuleerimiseks (traditsiooniline relatsiooniline SQL-keel siin ei sobi) ja protsessor, mis suudab sellist päringut töödelda ja täita.
  • Mitmemõõtmeline salvestus - vahend andmete füüsiliseks korraldamiseks, mis tagab mitmemõõtmeliste päringute tõhusa täitmise.

Esimesed kaks taset on kõigis OLAP-i tööriistades kohustuslikud. Kolmas tase, kuigi seda kasutatakse laialdaselt, ei ole nõutav, kuna mitmemõõtmelise esituse andmeid saab hankida ka tavalistest relatsioonistruktuuridest; mitmemõõtmeline päringuprotsessor tõlgib sel juhul mitmemõõtmelised päringud SQL-päringuteks, mida täidab relatsiooniline DBMS.

Konkreetsed OLAP-tooted on tavaliselt kas mitmemõõtmeline andmeesitlustööriist, OLAP-klient (nt Microsofti Excel 2000 Pivot Tables või Knosysi ProClarity) või mitmedimensiooniline tausta-DBMS, OLAP-server (näiteks Oracle Express Server või Microsoft OLAP Services).

Mitmedimensiooniline töötlemiskiht on tavaliselt sisse ehitatud OLAP-kliendisse ja/või OLAP-serverisse, kuid selle saab eraldada puhtal kujul, näiteks Microsofti Pivot Table Service'i komponendina.

Mitmemõõtmelise andmesalvestuse tehnilised aspektid

Nagu eespool mainitud, saavad OLAP-i analüüsitööriistad andmeid eraldada ka otse relatsioonisüsteemidest. See lähenemine oli atraktiivsem ajal, mil OLAP-servereid ei olnud juhtivate andmebaasimüüjate hinnakirjades. Kuid täna pakuvad täisväärtuslikke OLAP-servereid Oracle, Informix ja Microsoft ning osta (täpsemalt vastava sooviga taotleda) saavad ka need IT-juhid, kellele ei meeldi oma võrku istutada erinevate tootjate tarkvara “loomaaeda”. ettevõtte juhtkonnale ) Põhiandmebaasiserveriga sama marki OLAP-server.

OLAP-serverid ehk mitmemõõtmelised andmebaasiserverid võivad oma mitmemõõtmelisi andmeid salvestada erineval viisil. Enne nende meetodite kaalumist peame rääkima sellisest olulisest aspektist nagu täitematerjalide ladustamine. Fakt on see, et igas andmelaos - nii tavalises kui ka mitmemõõtmelises - koos operatsioonisüsteemidest hangitud üksikasjalike andmetega salvestatakse ka koondnäitajad (koondnäitajad, agregaadid), näiteks müügimahtude summad kuude, kategooriate kaupa. kaubad jne. Agregaadid salvestatakse selgesõnaliselt ainult päringu täitmise kiirendamise eesmärgil. Lõppude lõpuks koguneb salvestusruumi ühelt poolt reeglina väga suur hulk andmeid ja teisest küljest on analüütikud enamikul juhtudel huvitatud mitte üksikasjalikest, vaid üldistatud näitajatest. Ja kui aasta müügisumma arvutamiseks tuleks iga kord kokku võtta miljoneid üksikuid müüke, oleks kiirus suure tõenäosusega lubamatu. Seetõttu arvutatakse ja salvestatakse andmete laadimisel mitmemõõtmelisse andmebaasi kõik kogunäitajad või osa neist.

Kuid nagu teate, peate kõige eest maksma. Ja peate maksma kokkuvõtlike andmete päringute töötlemise kiiruse eest, suurendades andmete hulka ja nende laadimiseks kuluvat aega. Veelgi enam, mahu suurenemine võib muutuda sõna otseses mõttes katastroofiliseks - ühes avaldatud standardtestis nõudis 10 MB algandmete täielik arv 2,4 GB, st andmed kasvasid 240 korda! Andmete "paisumise" määr koondnäitajate arvutamisel sõltub kuubi mõõtmete arvust ja nende mõõtmete struktuurist, st "isade" ja "laste" arvu suhtest dimensiooni erinevatel tasanditel. Mõnikord kasutatakse täitematerjalide ladustamise probleemi lahendamiseks keerulised skeemid, mis võimaldavad kaugeltki mitte kõigist võimalikest agregaatidest arvutades saavutada päringu täitmise jõudluse märkimisväärset kasvu.

Nüüd erinevatest teabe salvestamise võimalustest. Nii detailandmeid kui ka agregaate saab salvestada kas relatsiooni- või mitmemõõtmelistes struktuurides. Mitmemõõtmeline salvestus võimaldab teil käsitleda andmeid mitmemõõtmelise massiivina, mis võimaldab sama kiiret summade arvutamist ja mitmesuguseid mitmemõõtmelisi teisendusi mis tahes mõõtmete kohta. Mõni aeg tagasi toetasid OLAP-i tooted kas relatsioonilist või mitmemõõtmelist salvestust. Tänapäeval pakub sama toode reeglina mõlemat tüüpi ladustamist, aga ka kolmandat tüüpi - segatud. Kehtivad järgmised tingimused:

  • MOLAP(Multidimensional OLAP) - nii üksikasjalikud andmed kui ka agregaadid salvestatakse mitmemõõtmelisse andmebaasi. Sel juhul saadakse suurim liiasus, kuna mitmemõõtmelised andmed sisaldavad täielikult relatsiooniandmeid.
  • ROLAP(relatsiooniline OLAP) - üksikasjalikud andmed jäävad sinna, kus nad algselt "elasid" - relatsiooniandmebaasi; agregaadid salvestatakse samasse andmebaasi spetsiaalselt loodud teenindustabelites.
  • HOLAP(Hübriid OLAP) – üksikasjalikud andmed jäävad paigale (relatsiooniandmebaasis), agregaadid aga mitmemõõtmelisse andmebaasi.

Igal neist meetoditest on oma eelised ja puudused ning neid tuleks kasutada olenevalt tingimustest – andmemahust, relatsioonilise DBMS-i võimsusest jne.

Andmete salvestamisel mitmemõõtmelistesse struktuuridesse võib tühjade väärtuste salvestamise tõttu tekkida "paisumise" probleem. Lõppude lõpuks, kui mitmemõõtmelises massiivis on reserveeritud koht kõigi võimalike mõõtemärgiste kombinatsioonide jaoks ja tegelikult täidetakse vaid väike osa (näiteks müüakse palju tooteid ainult väheses arvus piirkondades), siis enamik kuubik jääb tühjaks, kuigi koht on hõivatud. Kaasaegsed OLAP-tooted suudavad selle probleemiga toime tulla.

Jätkub. Edaspidi räägime konkreetsetest juhtivate tootjate toodetud OLAP toodetest.

OLAP (on-line analüütiline töötlemine) on elektrooniline andmeanalüüsi meetod, mis kujutab andmete korrastamist hierarhilistesse kategooriatesse, kasutades eelnevalt arvutatud kogusummasid. OLAP-andmed on korraldatud hierarhiliselt ja neid hoitakse kuubikutes, mitte tabelites. OLAP-kuubikud on mitmemõõtmeline andmestik, millel on teljed, millele joonistatakse parameetrid, ja lahtrid, mis sisaldavad parameetritest sõltuvaid koondandmeid. Kuubikud on mõeldud suurte andmehulkade keerukaks ja mitmemõõtmeliseks analüüsiks, kuna need annavad aruandluseks ainult kokkuvõtlikke tulemusi, selle asemel, et suur hulküksikud sissekanded.

OLAP-i kontseptsiooni kirjeldas 1993. aastal tuntud andmebaaside uurija ja relatsioonilise andmemudeli autor E. F. Codd. Praegu on OLAP-i tugi rakendatud paljudes DBMS-i ja muudes tööriistades.

OLAP-kuubik sisaldab kahte tüüpi andmeid:

Koguväärtused, väärtused, mille kohta soovite kokku võtta, esindavad arvutatud andmeväljad;

kirjeldav teave, mis mõõdud või mõõtmed. Kirjeldav teave on tavaliselt jaotatud üksikasjalikkuse tasemeteks. Näiteks: "Aasta", "Kvartal", "Kuu" ja "Päev" dimensioonis "Aeg". Jaotades väljad üksikasjalikkuse tasemete kaupa, saavad aruande kasutajad valida, millist detailsust nad soovivad vaadata, alustades kõrgetasemelisest kokkuvõttest ja liikudes seejärel üksikasjalikuma vaate juurde ja vastupidi.

Microsofti päringutööriistad võimaldavad teil luua ka OLAP-kuubikuid päringust, mis laadib andmeid relatsiooniandmebaasist (nt Microsoft Access), teisendades lineaarse tabeli struktuurseks hierarhiaks (kuubiks).

OLAP Cube Creation Wizard on sisseehitatud Microsoft Query tööriist. Relatsiooniandmebaasil põhineva OLAP-kuubi loomiseks peate enne viisardi käivitamist täitma järgmised toimingud.

1. Määratlege andmeallikas (vt joonis 6.1).

2. Looge Microsoft Query abil päring, kaasates sellesse ainult need väljad, mis on kas OLAP-i kuubi andmeväljad või dimensiooniväljad, kui kuubis olevat välja kasutatakse rohkem kui üks kord, siis tuleb see päringusse kaasata. vajalik arv kordi.

3. Seadke päringu loomise viisardi viimases etapis raadionupp asendisse Looge antud päringust OLAP-kuubik(vt joonis 6.2) või pärast päringu koostamist otse menüüst Päringutööriistade abil Fail vali meeskond Looge OLAP-kuubik, mis käivitab OLAP-kuubiku loomise viisardi.

OLAP-kuubiku loomise viisardil on kolm sammu.

Nõustaja esimesel sammul (vt joonis 6.6) andmeväljad– Arvutatud väljad, mille jaoks soovite kogusummasid määrata.



Riis. 6.6. Andmeväljade määratlemine

Soovitatavad arvutatud väljad (tavaliselt numbriväljad), mille viisard asetab loendi ülaossa, märgib need lipuga ja määrab nende väljade lõpliku funktsiooni, tavaliselt - Summa. Andmeväljade valimisel tuleb vähemalt üks väli valida arvutuslikuks väljaks ja vähemalt üks väli peab jääma dimensiooni määramiseks märkimata.

OLAP-kuubi loomisel saab kasutada nelja kokkuvõtvat funktsiooni − Summa, Number(väärtuste arv), Minimaalne, Maksimaalne numbriväljade ja ühe funktsiooni jaoks Number kõigi teiste valdkondade jaoks. Kui soovite sama välja jaoks kasutada mitut erinevat kokkuvõtvat funktsiooni, tuleb see väli päringusse kaasata nii mitu korda kui vaja.

Arvutatud välja nime saab veerus muuta Andmevälja nimi.

Nõustaja teises etapis määratletakse kirjeldavad andmed ja nende mõõtmed (vt joonis 6.7). Mõõtmevälja valimiseks peate loendist Allika väljad lohistage soovitud ülataseme mõõtmeväli loendisse mõõdud kui märgitud alale Dimensiooni loomiseks lohistage väljad siia. OLAP-kuubi loomiseks peate määratlema vähemalt ühe dimensiooni. Viisardi samal etapil saate kontekstimenüüd kasutades muuta dimensiooni või tasemevälja nime.

Riis. 6.7. Mõõtmeväljade määratlus

Väljad, mis sisaldavad eraldatud või eristuvaid andmeid ja ei kuulu hierarhiasse, saab määratleda ühetasandiliste dimensioonidena. Kuubi kasutamine on aga tõhusam, kui mõned väljad on korraldatud tasemeteks. Taseme loomiseks dimensiooni osana lohistage loendist väli Allika väljad väljal, mis on mõõde või tase. Üksikasjalikumat teavet sisaldavad väljad peaksid asuma madalamatel tasanditel. Näiteks joonisel 6.7 on väli Töö nimetus on välja tasand Osakonna nimi.

Välja liigutamiseks madalamale või kõrgemale kõrge tase, peate selle mõõtmes madalamasse või kõrgemasse kasti lohistama. Nuppe või kasutatakse vastavalt tasemete kuvamiseks või peitmiseks.

Kui ülataseme dimensioonina kasutatakse kuupäeva või kellaaja välju, loob OLAP-kuubiku loomise viisard nende dimensioonide jaoks automaatselt tasemed. Seejärel saab kasutaja valida, millised tasemed peaksid aruannetes olema. Näiteks saate valida nädalad, kvartalid ja aastad või kuud (vt joonis 6.7).

Pidage meeles, et viisard loob automaatselt kuupäeva- ja kellaajaväljade tasemed ainult siis, kui loote ülataseme dimensiooni; kui lisate need väljad olemasoleva dimensiooni alamtasanditena, siis automaatseid tasemeid ei looda.

Nõustaja kolmandas etapis määratakse viisardi loodud kuubi tüüp, samas on võimalikud kolm võimalust (vt joonis 6.8).

Riis. 6.8. Loodava kuubi tüübi valimine viisardi kolmandas etapis

· Esimesed kaks võimalust hõlmavad kuubi loomist iga kord, kui aruanne avatakse (kui kuupi vaadatakse Excelist, siis räägime pivot-tabelist). Sel juhul päringufail ja fail *.oqy kuubi definitsioonid A, mis sisaldab juhiseid kuubi loomiseks. Faili *.oqy saab avada Excelis, et luua kuubipõhiselt aruandeid ja kui on vaja kuubis muudatusi teha, saab selle avada Queryga, et taaskäivitada kuubiku loomise viisard.

Vaikimisi salvestatakse kuubiku määratlusfailid ja ka päringufailid kasutaja profiilikausta kaustas Application Data\Microsoft\Que-ries. *.oqy faili standardkausta salvestamisel kuvatakse vahekaardil kuubi definitsioonifaili nimi OLAP kuubikud Microsoft Querys uue päringu avamisel või käsu valimisel Loo taotlus(menüü Andmed, alammenüü Väliste andmete importimine) Microsoft Excelis.

Kuubitüübi kolmanda variandi valimisel Kõiki kuubi andmeid sisaldava kuubifaili salvestamine, hangitakse välja kõik kuubi andmed ja luuakse kasutaja määratud asukohta kuubifail laiendiga * .cub kus neid andmeid hoitakse. Seda faili ei looda kohe pärast nupule klõpsamist Valmis; fail luuakse kas siis, kui kuubi definitsioon faili salvestatakse või kui kuubist genereeritakse aruanne.

Kuubitüübi valiku määravad mitmed tegurid: kuubis sisalduvate andmete hulk; kuubi põhjal genereeritavate aruannete tüüp ja keerukus; süsteemiressursid (mälu ja kettaruum) jne.

Eraldi *.cub kuubifail tuleks luua järgmistel juhtudel:

1) interaktiivsete aruannete jaoks, mis muutuvad piisavalt kettaruumi olemasolul;

2) kui teil on vaja kuubik salvestada võrguserverisse, et pakkuda sellele juurdepääsu teistele kasutajatele aruannete koostamisel. Kuubifail võib anda lähteandmebaasist konkreetseid andmeid, jättes välja salajased või tundlikud andmed, millele soovite takistada teistel kasutajatel juurdepääsu.

Tavalises PivotTable-liigendtabelis salvestatakse lähteandmed kohalikule kõvakettale. Nii saate neid alati hallata ja ümber korraldada, isegi kui teil pole võrgule juurdepääsu. Kuid see ei kehti mingil juhul OLAP-liigendtabelite kohta. OLAP-liigendtabelites ei salvestata vahemälu kunagi kohalikule kõvakettale. Seetõttu kohe pärast võrgust lahtiühendamist kohalik võrk teie liigendtabel ebaõnnestub. Te ei saa ühtegi selles olevat välja teisaldada.

Kui teil on vaja OLAP-andmeid ka pärast võrguühenduseta minekut analüüsida, looge võrguühenduseta andmekuubik. Võrguühenduseta andmekuubik on eraldi fail, mis on PivotTable-liigendtabeli vahemälu ja salvestab OLAP-andmed, mida vaadatakse pärast kohaliku võrguga ühenduse katkestamist. Pivot-tabelisse kopeeritud OLAP-i andmeid saab printida, sait http://everest.ua kirjeldab seda üksikasjalikult.

Eraldiseisva andmekuubiku loomiseks looge esmalt OLAP-liigendtabel. Asetage kursor PivotTable-liigendtabeli sisse ja klõpsake kontekstipõhise vahekaardi Tööriistad nuppu OLAP-i tööriistad, mis on kontekstivahekaartide rühma PivotTable-liigendtabeli tööriistad osa. Valige käsk Offline OLAP (joonis 9.8).

Ilmub võrguühenduseta OLAP-i andmekuubiku sätete dialoogiboks. Klõpsake nuppu Loo võrguühenduseta andmefail. Olete käivitanud andmekuubiku faili loomise viisardi. Protseduuri jätkamiseks klõpsake nuppu Edasi.

Esmalt tuleb määrata mõõtmed ja tasemed, mis andmekuupi kaasatakse. Dialoogiboksis peate valima andmed, mis imporditakse OLAP-i andmebaasist. Idee on määrata ainult need mõõtmed, mida on vaja pärast arvuti kohalikust võrgust lahtiühendamist. Mida rohkem mõõtmeid määrate, seda suurem suurus on võrguühenduseta andmekuubik.

Nõustaja järgmise dialoogiboksi liikumiseks klõpsake nuppu Edasi. See annab teile võimaluse määrata liikmeid või andmeelemente, mida kuupi ei kaasata. Eelkõige ei vaja te Interneti-müügi laiendatud summa mõõdikut, seega on see loendis märkimata. Tühjendatud märkeruut näitab, et määratud üksust ei impordita ja see võtab kohalikul kõvakettal lisaruumi.

Viimases etapis määrake andmekuubi asukoht ja nimi. Meie puhul saab kuubifaili nimeks MyOfflineCube.cub ja see asub kaustas Töö.

Andmekuubiku failidel on laiend .cub

Mõne aja pärast salvestab Excel võrguühenduseta andmekuubiku määratud kausta. Selle testimiseks topeltklõpsake failil, mis genereerib automaatselt Exceli töövihiku, mis sisaldab valitud andmekuubikuga seotud PivotTable-liigendtabelit. Pärast loomist saate võrguühenduseta andmekuubi jagada kõigile huvitatud kasutajatele, kes töötavad võrguühenduseta LAN-režiimis.

Kohaliku võrguga ühenduse loomisel saate avada võrguühenduseta andmekuubiku faili ja seda värskendada, samuti vastavat andmetabelit. Peamine põhimõteütleb, et võrguühenduseta andmekuubikut kasutatakse ainult siis, kui kohalik võrk on lahti ühendatud, kuid seda värskendatakse tingimata pärast ühenduse taastamist. Võrguühenduseta andmekuubi värskendamise katse pärast ühenduse katkemist nurjub.

Selle töö raames käsitletakse järgmisi küsimusi:

  • Mis on OLAP-kuubikud?
  • Mis on mõõdud, dimensioonid, hierarhiad?
  • Milliseid toiminguid saab OLAP-kuubikutega teha?
OLAP-i kuubi kontseptsioon

OLAP-i peamine postulaat on andmete esitamise mitmemõõtmelisus. OLAP-i terminoloogias kasutatakse kuubi ehk hüperkuubi mõistet mitmemõõtmelise diskreetse andmeruumi kirjeldamiseks.

Kuubik on mitmemõõtmeline andmestruktuur, millest analüütik kasutaja saab teavet pärida. Kuubikud luuakse faktidest ja mõõtmetest.

Andmed- need on andmed ettevõtte objektide ja sündmuste kohta, mida analüüsitakse. Sama tüüpi faktid moodustavad mõõdikuid. Mõõt on teatud tüüpi väärtus kuubilahtris.

mõõdud on andmeelemendid, mille põhjal tehakse faktide analüüs. Selliste elementide kogum moodustab dimensiooni atribuudi (näiteks nädalapäevad võivad moodustada dimensiooni "aeg" atribuudi). Ärianalüüsi ülesannetes kaubandusettevõtted mõõtmed on sageli sellised kategooriad nagu "aeg", "müük", "tooted", "kliendid", "töötajad", "geograafiline asukoht". Dimensioonid on enamasti hierarhilised struktuurid, mis on loogilised kategooriad, mille alusel kasutaja saab tegelikke andmeid analüüsida. Igal hierarhial võib olla üks või mitu taset. Seega võib "geograafilise asukoha" dimensiooni hierarhia hõlmata tasemeid: "riik - piirkond - linn". Ajahierarhias saab eristada näiteks järgmist tasandite jada: Dimensioonil võib olla mitu hierarhiat (sel juhul peab igal ühe dimensiooni hierarhial olema sama dimensioonitabeli võtmeatribuut).

Kuubik võib sisaldada tegelikke andmeid ühest või mitmest faktitabelist ja sisaldab enamasti mitut dimensiooni. Igal konkreetsel kuubil on tavaliselt teatud suunaline analüüsiobjekt.

Joonisel 1 on näide kuubist, mis on loodud analüüsima teatud ettevõtte naftatoodete müüki piirkondade kaupa. Antud kuubik sellel on kolm mõõdet (aeg, toode ja piirkond) ja üks mõõdik (rahas väljendatud müügimaht). Mõõtmisväärtused salvestatakse kuubi vastavatesse lahtritesse (lahtrisse). Iga lahter on unikaalselt identifitseeritud iga dimensiooni liikmete komplektiga, mida nimetatakse korteežiks. Näiteks kuubi alumises vasakpoolses nurgas asuv lahter (sisaldab väärtust $98399) on antud korteeži abil [juuli 2005, Kaug-Ida, Diesel]. Siin näitab väärtus 98399 dollarit diislikütuse müügimahtu (rahas väljendatuna) Kaug-Idas 2005. aasta juulis.

Pange tähele ka seda, et mõned lahtrid ei sisalda väärtusi: need lahtrid on tühjad, kuna faktitabel ei sisalda nende kohta andmeid.

Riis. 1. Kuubik teabega naftatoodete müügi kohta erinevates piirkondades

Selliste kuubikute loomise lõppeesmärk on minimeerida tegelikest andmetest vajaliku teabe hankivate päringute töötlemisaega. Selle ülesande täitmiseks sisaldavad kuubikud tavaliselt eelarvutatud kokkuvõtlikke andmeid, mida kutsutakse agregatsioonid(agregaadid). Need. kuup katab tegelikust suurema andmeruumi - selles on loogilised, arvutatud punktid. Koondfunktsioonid võimaldavad teil arvutada punktiväärtusi loogilises ruumis tegelike väärtuste põhjal. Lihtsamad liitmisfunktsioonid on SUM, MAX, MIN, COUNT. Näiteks saate näites näidatud kuubi puhul funktsiooni MAX abil tuvastada, millal diislikütuse müügi tipphetk saabus Kaug-Idas jne.

Veel üks mitmemõõtmeliste kuubikute eripära on lähtepunkti määramise raskus. Näiteks kuidas määrata toote või piirkonna dimensiooni punkt 0? Selle probleemi lahendus on spetsiaalse atribuudi kasutuselevõtt, mis ühendab kõik dimensiooni elemendid. See atribuut (genereeritud automaatselt) sisaldab ainult ühte elementi – Kõik ("Kõik"). Lihtsate liitmisfunktsioonide (nt summad) puhul on element Kõik võrdne antud dimensiooni tegelikus ruumis kõigi elementide väärtuste summaga.

Mitmemõõtmelise andmemudeli oluline kontseptsioon on alamruum ehk alamkuub. Alamkuubik on osa kogu kuubiruumist mõne kuubi sees oleva mitmemõõtmelise kujundi kujul. Kuna kuubi mitmemõõtmeline ruum on diskreetne ja piiratud, on ka alamkuub diskreetne ja piiratud.

Toimingud OLAP-kuubikutel

OLAP-kuubikuga saab teha järgmisi toiminguid.

  • lõikama;
  • pöörlemine;
  • konsolideerimine;
  • detail.
viil(Joonis 2) on alamkuubiku erijuhtum. See on protseduur mitmemõõtmelise andmemassiivi alamhulga moodustamiseks, mis vastab ühe või mitme dimensioonielemendi ühele väärtusele, mis selles alamhulgas ei sisaldu. Näiteks selleks, et teada saada, kuidas naftatoodete müük aja jooksul edenes ainult teatud piirkonnas, nimelt Uuralites, peate fikseerima elemendi "Uuralid" dimensiooni "Kaubad" ja eraldama vastavast alamhulgast (alamkuubist). kuubik.
  • Riis. 2. OLAP-i kuubiku viil

    Pöörlemine(Joonis 3) - aruandes või kuvatud lehel esitatud mõõtmiste asukoha muutmise toiming. Näiteks võib pööramisoperatsioon hõlmata tabeli ridade ja veergude vahetamist. Lisaks sellele liigub andmekuubiku pööramine mittetabeli mõõtmed kuvatud lehel olevate dimensioonide asukohta ja vastupidi.

    Olen Habri elanik olnud üsna pikka aega, kuid ma pole kunagi lugenud artikleid mitmemõõtmeliste kuubikute, OLAP-i ja MDX-i teemal, kuigi teema on väga huvitav ja muutub iga päevaga üha aktuaalsemaks.
    Pole saladus, et selle lühikese aja jooksul on andmebaaside, elektroonilise raamatupidamise ja veebisüsteemide arendamise käigus kogunenud palju andmeid. Nüüd pakub huvi ka arhiivide täiemahuline analüüs ja võib-olla ka katse ennustada olukordi sarnaste mudelite puhul tulevikus.
    Teisest küljest võivad suurettevõtted isegi mõne aasta, kuu või isegi nädalaga koguda nii suuri andmeid, et isegi nende elementaarne analüüs nõuab erakordseid lähenemisi ja rangeid riistvaranõudeid. Need võivad olla pangatehingute töötlemise süsteemid, aktsiaagendid, telefonioperaatorid jne.
    Arvan, et kõik on hästi teadlikud kahest erinevast lähenemisviisist andmebaasi kujundamisel: OLTP ja OLAP. Esimene lähenemisviis (Online Transaction Processing – tehingute reaalajas töötlemine) on mõeldud tõhusaks reaalajas andmete kogumiseks, samas kui teine ​​(Online Analytical Processing – reaalajas analüütiline töötlemine) on suunatud konkreetselt andmete valimi võtmiseks ja töötlemiseks kõige tõhusamal viisil. tee.

    Vaatame tänapäevaste OLAP-kuubikute põhifunktsioone ja ülesandeid, mida need lahendavad (Analysis Services 2005/2008 põhjal):

    • kiire juurdepääs andmetele
    • eelliitmine
    • hierarhia
    • ajaga töötamine
    • mitmemõõtmeline andmetele juurdepääsu keel
    • KPI-d (peamised jõudlusnäitajad)
    • kuupäeva kaevandamine
    • mitmetasandiline vahemälu
    • mitmekeelne tugi
    Niisiis, vaatame OLAP-i kuubikute võimalusi veidi üksikasjalikumalt.

    Võimalustest veidi lähemalt

    Kiire juurdepääs andmetele
    Tegelikult on OLAP-süsteemide aluseks kiire juurdepääs andmetele, sõltumata massiivi suurusest. Kuna see on põhirõhk, on andmeladu tavaliselt üles ehitatud relatsiooniandmebaaside omadest erinevatel põhimõtetel.
    Siin mõõdetakse lihtsate andmete toomise aega sekundi murdosades ja mõne sekundi pikkune päring nõuab tõenäoliselt optimeerimist.

    eelliitmine
    Lisaks olemasolevate andmete kiirele valimile annab see ka võimaluse "kõige tõenäolisemalt kasutatud" väärtuste eelliitmiseks. Näiteks kui meil on igapäevased müügiarved teatud toote kohta, siis süsteem Võib olla me eelagregeerime ka kuu ja kvartali müügisummad, mis tähendab, et kui küsime andmeid kuu või kvartali kaupa, annab süsteem meile koheselt ka tulemuse. Miks alati ei teki eelagregatsiooni - sest teoreetiliselt võimalikud kauba/aja/jne kombinatsioonid. neid võib olla tohutult palju, mis tähendab, et teil peavad olema selged reeglid, milliste elementide jaoks koondatakse ja milliste jaoks mitte. Üldiselt on nende reeglite arvestamise ja agregaatide tegeliku kujundamise teema üsna ulatuslik ja väärib omaette artiklit.

    Hierarhiad
    On loomulik, et andmete analüüsimisel ja lõpparuannete koostamisel tuleb arvestada tõsiasjaga, et kuud koosnevad päevadest ja moodustavad ise kvartaleid ning linnad kuuluvad piirkondade hulka, mis omakorda on osa piirkondadest või riikidest. . Hea uudis on see, et OLAP-kuubikud vaatavad andmeid algselt hierarhiatena ja suhetena sama olemi teiste dimensioonidega, seega on hierarhia loomine ja kasutamine kuubikutes väga lihtne.

    Ajaga töötamine
    Kuna andmete analüüs toimub peamiselt ajavahemike kaupa, siis on OLAP-süsteemides eriline tähtsus just ajale, mis tähendab, et lihtsalt määrates süsteemi jaoks, kus meil siin aega on, saab edaspidi hõlpsasti kasutada selliseid funktsioone nagu Aasta kuni Kuupäev, Kuu kuni kuupäevani (periood aasta / kuu algusest praeguse kuupäevani), paralleelne periood (samal päeval või kuul, kuid eelmisel aastal) jne.

    Mitmemõõtmeline andmete juurdepääsu keel
    MDX(Multidimensional Expressions) on päringukeel lihtsaks ja tõhusaks juurdepääsuks mitmemõõtmelistele andmestruktuuridele. Ja see ütleb kõik – allpool on mõned näited.

    Peamised jõudlusnäitajad (KPI-d)
    Peamised jõudlusnäitajad on rahaline ja mitterahaline hindamissüsteem, mis aitab organisatsioonil määrata strateegiliste eesmärkide saavutamise. Peamisi jõudlusnäitajaid saab OLAP-süsteemides hõlpsasti määratleda ja aruannetes kasutada.

    Datli kaevandamine
    Andmete kaevandamine(Andmekaevandamine) – tegelikult varjatud mustrite või muutujate vaheliste suhete tuvastamine suurtes andmekogumites.
    Ingliskeelsel terminil “Data Mining” puudub ühemõtteline tõlge vene keelde (andmekaeve, andmekaeve, teabe läbimine, andmete / teabe väljavõte), seetõttu kasutatakse seda enamikul juhtudel originaalis. Kõige edukam kaudtõlge on termin "andmekaeve" (DIA). See on aga eraldi, mitte vähem huvitav teema, mida kaaluda.

    Mitmetasandiline vahemälu
    Suurima andmetele juurdepääsu kiiruse tagamiseks toetavad OLAP-süsteemid lisaks keerukatele andmestruktuuridele ja eelagregaatidele ka mitmetasandilist vahemällu. Lisaks lihtsate päringute vahemällu salvestamisele salvestatakse vahemällu ka osa mälust loetud andmetest, koondatud väärtused ja arvutatud väärtused. Seega, mida kauem te OLAP-kuubikuga töötate, seda kiiremini see tegelikult tööle hakkab. Samuti on olemas mõiste "vahemälu soojendamine" – toiming, mis valmistab OLAP-süsteemi ette tööks konkreetsete aruannete, päringutega või kõigiga koos.

    Mitmekeelne tugi
    Jah Jah Jah. Vähemalt toetab Analysis Services 2005/2008 (kuid Enterprise Edition) mitmekeelsust. Piisab oma andmete stringiparameetrite tõlke esitamisest ja oma keele määranud klient saab lokaliseeritud andmed.

    Mitmemõõtmelised kuubikud

    Mis need mitmemõõtmelised kuubikud siis ikkagi on?
    Kujutagem ette 3-dimensioonilist ruumi, mille telgedel on aeg, kaup ja ostjad.
    Punkt sellises ruumis määrab asjaolu, et üks ostjatest ostis konkreetse toote teatud kuul.

    Tegelikult on lennuk (või kõigi selliste punktide komplekt) kuubik ja vastavalt sellele on selle mõõtmed Aeg, Kaup ja Ostjad.
    Veidi keerulisem on ette kujutada (ja joonistada) neljamõõtmelist või enamat kuubikut, kuid selle olemus ei muutu ja mis kõige tähtsam, OLAP-süsteemide puhul pole vahet, kui paljudes mõõtmetes te töötate (mõistliku piirides). muidugi piirid).

    Mingi MDX

    Niisiis, mis on MDX-i ilu - tõenäoliselt peame kirjeldama mitte seda, kuidas me tahame andmeid valida, vaid Mida täpselt me tahame.
    Näiteks,
    VALI
    ( . ) VEERUDEL
    ( ., . ) RIDADEL
    FROM
    KUS (., .)

    Mis tähendab, et tahan Mosambiigis juunis ja juulis müüdud iPhone'ide arvu.
    Seda tehes kirjeldan mis täpselt need andmed, mida ma tahan ja Kuidas Ma tahan neid aruandes näha.
    Ilus, kas pole?

    Ja siin on natuke keerulisem:

    KOOS LIIKMEGA AverageSpend AS
    . / .
    VALI
    (Keskmine kulu) VEERUDES,
    ( .., .. ) RIDADEL
    FROM
    KUS (.)

    * See lähtekood tõsteti esile Source Code Highlighteriga.

    Tegelikult määratleme kõigepealt "keskmise ostusuuruse" arvutamise valemi ja proovime võrrelda, kes (mis soost) kulutab rohkem raha ühe Apple'i poe külastuse ajal.

    Keel ise on nii õppimiseks kui ka kasutamiseks äärmiselt huvitav ja väärib ehk palju arutelu.

    Järeldus

    Tegelikult hõlmab see artikkel isegi põhimõisteid väga vähe, nimetaksin seda "eelroaks" - võimaluseks habri kogukonda selle teema vastu huvitada ja seda edasi arendada. Mis puutub arendusse, siis on suur kündmata põld ja vastan hea meelega kõikidele teie küsimustele.

    P.S. See on minu esimene postitus OLAP-i kohta ja esimene väljaanne Habré kohta – olen konstruktiivse tagasiside eest väga tänulik.
    värskendus: SQL-ile üle viidud, teen üle OLAP-i niipea, kui need võimaldavad mul uusi ajaveebe luua.

    Sildid: lisa sildid