OLAP-CUBE (dynamický manažérsky reporting). Úvod do multivariačnej analýzy

Vo všeobecnosti každý špecialista vie, čo je dnes OLAP. Prinajmenšom pojmy „OLAP“ a „multidimenzionálne údaje“ sú v našich mysliach pevne spojené. Napriek tomu skutočnosť, že sa táto téma opäť otvára, dúfam, schváli väčšina čitateľov, pretože aby myšlienka niečoho časom nezastarala, musíte pravidelne komunikovať s chytrí ľudia alebo si prečítajte články v dobrej publikácii...

Dátové sklady (miesto OLAP v informačnej štruktúre podniku)

Pojem „OLAP“ je neoddeliteľne spojený s pojmom „dátový sklad“ (Data Warehouse).

Tu je definícia formulovaná „otcom zakladateľa“ dátového skladu, Billom Inmonom: „Dátový sklad je doménovo špecifický, časovo viazaný a nemenný súbor údajov na podporu rozhodovania manažmentu.“

Dáta v sklade pochádzajú z operačných systémov (OLTP systémy), ktoré sú určené na automatizáciu obchodných procesov. Úložisko je navyše možné dopĺňať z externých zdrojov, ako sú štatistické výkazy.

Prečo stavať dátové sklady – veď obsahujú zjavne nadbytočné informácie, ktoré už „žijú“ v databázach alebo súboroch operačného systému? Odpoveď môže byť stručná: je nemožné alebo veľmi ťažké priamo analyzovať údaje z operačných systémov. Je to spôsobené rôznymi dôvodmi, vrátane fragmentácie údajov, ich ukladania v rôznych formátoch DBMS a v rôznych „rohoch“ podnikovej siete. Ale aj keď podnik ukladá všetky svoje údaje na centrálny databázový server (čo je extrémne zriedkavé), analytik takmer určite nepochopí ich zložité, niekedy mätúce štruktúry. Autor má dosť smutnú skúsenosť so snahou „nakŕmiť“ hladných analytikov „surovými“ dátami z operačných systémov – ukázalo sa, že je toho na nich „priveľa“.

Účelom úložiska je teda poskytnúť „suroviny“ na analýzu na jednom mieste a v jednoduchej, zrozumiteľnej štruktúre. Ralph Kimball v predslove ku svojej knihe „The Data Warehouse Toolkit“ píše, že ak po prečítaní celej knihy čitateľ pochopí len jednu vec – a síce, že štruktúra skladu by mala byť jednoduchá – autor zváži svoje úloha dokončená.

Existuje ešte jeden dôvod, ktorý ospravedlňuje vzhľad samostatného úložiska - zložité analytické dopyty na prevádzkové informácie spomaľujú súčasnú prácu spoločnosti, blokujú tabuľky na dlhú dobu a zaberajú zdroje servera.

Podľa môjho názoru úložisko nemusí nevyhnutne znamenať gigantickú akumuláciu údajov - hlavné je, že je vhodné na analýzu. Vo všeobecnosti existuje samostatný termín pre malé úložiská - Data Marts (dátové kiosky), ale v našej ruskej praxi ho často nepočujete.

OLAP - pohodlný analytický nástroj

Centralizácia a pohodlná štruktúra nie sú všetko, čo analytik potrebuje. Stále potrebuje nástroj na prezeranie a vizualizáciu informácií. Tradičným správam, dokonca aj tým, ktoré sú postavené na jedinom úložisku, chýba jedna vec – flexibilita. Nemožno ich "skrútiť", "rozbaliť" alebo "zbaliť", aby ste získali požadovaný pohľad na údaje. Samozrejme, môžete zavolať programátorovi (ak chce prísť), a ten (ak nie je zaneprázdnený) urobí novú správu dostatočne rýchlo - povedzme do hodiny (píšem to a neverím to samým - v živote sa to tak rýchlo nestane, dajme mu tri hodiny) . Ukázalo sa, že analytik nemôže testovať viac ako dva nápady denne. A on (ak je dobrý analytik) dokáže prísť s niekoľkými nápadmi za hodinu. A čím viac „rezov“ a „sekcií“ údajov analytik vidí, tým viac nápadov má, čo si zase vyžaduje stále viac „rezov“ na overenie. Keby tak mal nástroj, ktorý by mu umožnil jednoducho a pohodlne rozbaliť a zbaliť údaje! OLAP funguje ako taký nástroj.

Hoci OLAP nie je nevyhnutným atribútom dátového skladu, stále viac sa používa na analýzu informácií nahromadených v sklade.

Komponenty zahrnuté v typickom úložisku sú znázornené na obr. 1.

Ryža. 1. Štruktúra dátového skladu

Prevádzkové údaje sa zhromažďujú z rôznych zdrojov, čistia sa, integrujú a ukladajú do relačného úložiska. Okrem toho sú už dostupné na analýzu pomocou rôznych nástrojov na podávanie správ. Potom sa údaje (celé alebo ich časti) pripravia na analýzu OLAP. Možno ich načítať do špeciálnej databázy OLAP alebo uložiť do relačného úložiska. Jeho najdôležitejším prvkom sú metadáta, teda informácie o štruktúre, umiestnení a transformácii údajov. Vďaka nim je zabezpečená efektívna súhra rôznych skladovacích komponentov.

Aby sme to zhrnuli, môžeme OLAP definovať ako súbor nástrojov na multidimenzionálnu analýzu údajov nahromadených v sklade. Teoreticky možno nástroje OLAP aplikovať priamo na prevádzkové dáta alebo ich presné kópie(aby nerušil prevádzkových užívateľov). Tým však riskujeme, že nastúpime na už opísaný rake, t. j. začneme analyzovať prevádzkové údaje, ktoré nie sú priamo vhodné na analýzu.

Definícia a základné pojmy OLAP

Najprv si rozlúštime: OLAP je online analytické spracovanie, t. j. prevádzková analýza údajov. 12 definujúcich princípov OLAP sformuloval v roku 1993 E. F. Codd, „vynálezca“ relačných databáz. Neskôr bola jeho definícia prepracovaná na takzvaný FASMI test, ktorý vyžaduje, aby aplikácia OLAP poskytovala schopnosť rýchlej analýzy zdieľaných multidimenzionálnych informácií ().

FASMI test

Rýchlo(Rýchlo) – analýza by mala byť vykonaná rovnako rýchlo vo všetkých aspektoch informácií. Prijateľná doba odozvy je 5 sekúnd alebo menej.

Analýza(Analýza) - musí byť možné vykonávať základné typy numerických a štatistických analýz, preddefinované vývojárom aplikácie alebo voľne definované používateľom.

Zdieľané(Zdieľané) – veľa používateľov musí mať prístup k údajom, pričom je potrebné kontrolovať prístup k dôverným informáciám.

Viacrozmerný(Multidimenzionálny) je hlavnou, najpodstatnejšou charakteristikou OLAP.

Informácie(Informácie) – aplikácia musí mať prístup ku všetkým potrebným informáciám bez ohľadu na ich objem a miesto uloženia.

OLAP = Multidimenzionálny pohľad = Kocka

OLAP poskytuje pohodlné a rýchle prostriedky na prístup, prezeranie a analýzu obchodných informácií. Používateľ dostane prirodzený, intuitívny dátový model, ktorý ich organizuje vo forme viacrozmerných kociek (Cubes). Osi viacrozmerného súradnicového systému sú hlavnými atribútmi analyzovaného podnikového procesu. Napríklad pri predaji to môže byť produkt, región, typ kupujúceho. Čas sa používa ako jedna z dimenzií. Na priesečníkoch osí – dimenzií (Dimensions) – sa nachádzajú údaje, ktoré kvantitatívne charakterizujú proces – miery (Measures). Môžu to byť objemy predaja v kusoch alebo v peňažnom vyjadrení, zostatky zásob, náklady atď. Používateľ analyzujúci informácie môže „rezať“ kocku v rôznych smeroch, získať súhrn (napríklad podľa roku) alebo naopak podrobné (podľa týždňov). ) informácie a vykonávať ďalšie manipulácie, ktoré mu prídu na myseľ počas procesu analýzy.

Ako miery v trojrozmernej kocke znázornenej na obr. 2 sa používajú predajné množstvá a ako rozmery sa používajú čas, produkt a sklad. Merania sú prezentované na konkrétnych úrovniach zoskupenia: produkty sú zoskupené podľa kategórie, obchody podľa krajiny a údaje o načasovaní transakcií podľa mesiacov. O niečo neskôr sa na úrovne zoskupenia (hierarchie) pozrieme podrobnejšie.


Ryža. 2. Príklad kocky

"rezanie" kocky

Dokonca aj trojrozmernú kocku je ťažké zobraziť na obrazovke počítača, aby boli viditeľné hodnoty meraní, ktoré nás zaujímajú. Čo môžeme povedať o kockách s viac ako tromi rozmermi? Na vizualizáciu údajov uložených v kocke sa spravidla používajú známe dvojrozmerné, t. j. tabuľkové zobrazenia so zložitými hierarchickými hlavičkami riadkov a stĺpcov.

Dvojrozmernú reprezentáciu kocky možno získať jej „rozrezaním“ cez jednu alebo viacero osí (rozmerov): zafixujeme hodnoty všetkých rozmerov okrem dvoch a získame bežnú dvojrozmernú tabuľku. Horizontálna os tabuľky (hlavičky stĺpcov) predstavuje jeden rozmer, vertikálna os (hlavičky riadkov) predstavuje iný a bunky tabuľky predstavujú hodnoty mier. V tomto prípade sa množina mier v skutočnosti považuje za jednu z dimenzií – buď vyberieme jednu mieru na zobrazenie (a potom môžeme umiestniť dve dimenzie do hlavičiek riadkov a stĺpcov), alebo zobrazíme niekoľko mier (a potom jednu z osi tabuľky budú obsadené názvami mier a ostatné - hodnoty jedinej „neorezanej“ dimenzie).

Pozrite sa na obr. 3 - tu je dvojrozmerný výrez kocky na jednu mieru - Unit Sales (predané kusy) a dva "nerozrezané" rozmery - Store (Store) a Time (Time).


Ryža. 3. 2D kocka rez na jednu mieru

Na obr. Obrázok 4 zobrazuje iba jednu „nevystrihnutú“ dimenziu – Store, ale zobrazuje hodnoty niekoľkých meraní – Unit Sales (predané jednotky), Store Sales (množstvo predaja) a Store Cost (výdavky v obchode).


Ryža. 4. 2D kocka rez pre viac opatrení

Dvojrozmerné znázornenie kocky je možné aj vtedy, keď zostávajú „nerozrezané“ viac ako dva rozmery. V tomto prípade budú na osi rezu (riadky a stĺpce) umiestnené dva alebo viac rozmerov „rezanej“ kocky - viď obr. 5.


Ryža. 5. 2D kocka rez s viacerými rozmermi na jednej osi

Tagy

Hodnoty „uložené“ pozdĺž dimenzií sa nazývajú členy alebo štítky. Štítky sa používajú ako na „rezanie“ kocky, tak aj na obmedzenie (filtrovanie) vybraných údajov – keď nás v dimenzii, ktorá zostane „neorezaná“, nezaujímajú všetky hodnoty, ale len ich podmnožinu, napríklad tri mestá z niekoľkých desiatok. Hodnoty menoviek sa zobrazujú v zobrazení 2D kocky ako hlavičky riadkov a stĺpcov.

Hierarchie a úrovne

Štítky je možné kombinovať do hierarchií pozostávajúcich z jednej alebo viacerých úrovní. Napríklad štítky dimenzie Obchod sú prirodzene zoskupené do hierarchie s úrovňami:

Krajina

Štát

Mesto

Obchod.

Súhrnné hodnoty sa počítajú podľa úrovní hierarchie, napríklad objem predaja pre USA (úroveň „Krajina“) alebo pre Kaliforniu (úroveň „Štát“). V jednej dimenzii je možné implementovať viac ako jednu hierarchiu – povedzme pre čas: (Rok, Štvrťrok, Mesiac, Deň) a (Rok, Týždeň, Deň).

Architektúra aplikácií OLAP

Všetko, čo bolo povedané vyššie o OLAP, sa v podstate týkalo viacrozmernej prezentácie údajov. To, ako sú dáta uložené, sa, zhruba povedané, netýka ani koncového užívateľa, ani vývojárov nástroja, ktorý klient používa.

Multidimenzionalitu v OLAP aplikáciách možno rozdeliť do troch úrovní:

  • Multidimenzionálna reprezentácia údajov – nástroje pre koncových používateľov, ktoré poskytujú viacrozmernú vizualizáciu a manipuláciu s údajmi; Vrstva viacrozmernej reprezentácie abstrahuje od fyzickej štruktúry údajov a zaobchádza s nimi ako s viacrozmernými.
  • Viacrozmerné spracovanie je prostriedok (jazyk) na formulovanie viacrozmerných dotazov (tradičný relačný jazyk SQL je tu nevhodný) a procesor, ktorý takýto dotaz dokáže spracovať a vykonať.
  • Multidimenzionálne úložisko je prostriedkom fyzického usporiadania údajov, ktorý zabezpečuje efektívne vykonávanie viacrozmerných dopytov.

Prvé dve úrovne sú povinné vo všetkých nástrojoch OLAP. Tretia úroveň, aj keď je rozšírená, nie je potrebná, pretože údaje pre viacrozmernú reprezentáciu možno extrahovať z bežných relačných štruktúr; Viacrozmerný procesor dotazov v tomto prípade prekladá viacrozmerné dotazy do dotazov SQL, ktoré sú vykonávané relačným DBMS.

Špecifické produkty OLAP sú spravidla buď multidimenzionálnym nástrojom na reprezentáciu údajov, klientom OLAP (napríklad kontingenčné tabuľky v Exceli 2000 od Microsoftu alebo ProClarity od Knosys), alebo multidimenzionálnym serverom DBMS, OLAP serverom (napríklad Oracle Express Server alebo Microsoft OLAP Services).

Vrstva viacrozmerného spracovania je zvyčajne zabudovaná do klienta OLAP a/alebo servera OLAP, ale môže byť izolovaná vo svojej čistej forme, ako napríklad komponent služby kontingenčnej tabuľky od spoločnosti Microsoft.

Technické aspekty viacrozmerného ukladania dát

Ako bolo uvedené vyššie, analytické nástroje OLAP môžu tiež extrahovať údaje priamo z relačných systémov. Tento prístup bol atraktívnejší v tých časoch, keď OLAP servery neboli zahrnuté v cenníkoch popredných výrobcov DBMS. Dnes však spoločnosti Oracle, Informix a Microsoft ponúkajú plnohodnotné servery OLAP a dokonca aj tí manažéri IT, ktorí neradi vytvárajú „zoo“ softvéru od rôznych výrobcov vo svojich sieťach, si môžu kúpiť (alebo skôr požiadať o vedenie spoločnosti ) OLAP server rovnakej značky ako hlavný databázový server.

Servery OLAP alebo viacrozmerné databázové servery môžu ukladať svoje viacrozmerné údaje rôznymi spôsobmi. Pred zvážením týchto metód musíme hovoriť o takom dôležitom aspekte, akým je skladovanie jednotiek. Faktom je, že v akomkoľvek dátovom sklade – bežnom aj multidimenzionálnom – sa spolu s podrobnými dátami extrahovanými z operačných systémov ukladajú aj súhrnné ukazovatele (agregované ukazovatele, agregácie), ako súčet objemov predaja podľa mesiacov, podľa kategórie tovaru atď. Agregáty sa ukladajú výlučne na účely urýchlenia spracovania požiadaviek. Koniec koncov, na jednej strane sa v sklade spravidla hromadí veľmi veľké množstvo údajov a na druhej strane sa analytici vo väčšine prípadov nezaujímajú o podrobné, ale o zovšeobecnené ukazovatele. A ak by sa na výpočet celkových tržieb za rok museli zakaždým sčítať milióny jednotlivých predajov, rýchlosť by bola s najväčšou pravdepodobnosťou neprijateľná. Preto sa pri načítavaní údajov do multidimenzionálnej databázy vypočítajú a uložia všetky celkové ukazovatele alebo ich časť.

Ale ako viete, za všetko musíte zaplatiť. A za rýchlosť spracovania požiadaviek na súhrnné dáta si treba priplatiť navýšenie objemov dát a času na ich načítanie. Navyše nárast objemu môže byť doslova katastrofálny - v jednom z publikovaných štandardných testov si úplný výpočet agregátov pre 10 MB zdrojových dát vyžiadal 2,4 GB, teda dáta narástli 240-krát! Stupeň „napučania“ údajov pri výpočte agregátov závisí od počtu rozmerov kocky a štruktúry týchto rozmerov, t. j. pomeru počtu „otcov“ a „detí“ na rôznych úrovniach merania. Na vyriešenie problému skladovania jednotiek sa niekedy používajú zložité obvody, ktoré umožňujú dosiahnuť výrazné zvýšenie výkonu dotazov pri výpočte nie všetkých možných agregátov.

Teraz o rôznych možnostiach ukladania informácií. Granulárne dáta aj agregáty môžu byť uložené buď v relačných alebo viacrozmerných štruktúrach. Viacrozmerné úložisko vám umožňuje zaobchádzať s údajmi ako s viacrozmerným poľom, čo zaisťuje rovnako rýchle výpočty celkových ukazovateľov a rôzne viacrozmerné transformácie pozdĺž ktorejkoľvek z dimenzií. Pred časom produkty OLAP podporovali buď relačné alebo viacrozmerné úložisko. Dnes spravidla rovnaký produkt poskytuje oba tieto typy skladovania, ako aj tretí typ - zmiešaný. Platia nasledujúce podmienky:

  • MOLAP(Multidimenzionálny OLAP) – podrobné údaje aj agregáty sú uložené vo viacrozmernej databáze. V tomto prípade sa získa najväčšia redundancia, pretože viacrozmerné údaje úplne obsahujú relačné údaje.
  • ROLAP(Relačný OLAP) – podrobné údaje zostávajú tam, kde pôvodne „žili“ – v relačnej databáze; agregáty sú uložené v rovnakej databáze v špeciálne vytvorených tabuľkách služieb.
  • HOLAP(Hybrid OLAP) - podrobné údaje zostávajú na mieste (v relačnej databáze) a agregáty sú uložené v multidimenzionálnej databáze.

Každá z týchto metód má svoje výhody a nevýhody a mala by sa používať v závislosti od podmienok – objem dát, výkon relačnej DBMS atď.

Pri ukladaní údajov vo viacrozmerných štruktúrach vzniká potenciálny problém „nafúknutia“ v dôsledku ukladania prázdnych hodnôt. Ak je totiž v multidimenzionálnom poli vyhradený priestor pre všetky možné kombinácie rozmerových štítkov, no v skutočnosti je vyplnená len malá časť (napríklad množstvo produktov sa predáva len v malom počte regiónov), potom väčšina kocka bude prázdna, hoci priestor bude obsadený. Moderné produkty OLAP si s týmto problémom vedia poradiť.

Pokračovanie nabudúce. V budúcnosti budeme hovoriť o konkrétnych produktoch OLAP vyrábaných poprednými výrobcami.

OLAP (On-line analytické spracovanie) je metóda elektronického analytického spracovania údajov, ktorá predstavuje usporiadanie údajov do hierarchických kategórií pomocou vopred vypočítaných súčtov. Údaje OLAP sú usporiadané hierarchicky a sú uložené v kockách a nie v tabuľkách. Kocky OLAP sú viacrozmerná množina údajov s osami obsahujúcimi parametre a bunkami obsahujúcimi agregované údaje závislé od parametrov. Kocky sú navrhnuté pre komplexnú, viacrozmernú analýzu veľkých objemov údajov, pretože namiesto toho poskytujú iba súhrnné výsledky veľké číslo samostatné záznamy.

Koncept OLAP opísal v roku 1993 známy databázový výskumník a autor relačného dátového modelu E. F. Codd. V súčasnosti je podpora OLAP implementovaná v mnohých DBMS a iných nástrojoch.

Kocka OLAP obsahuje dva typy údajov:

· celkové hodnoty, hodnoty, ktoré chcete zhrnúť, reprezentujúce vypočítané dátové polia;

· popisné informácie predstavujúce merania alebo rozmery. Opisné informácie sú zvyčajne usporiadané do úrovní podrobností. Napríklad: „Rok“, „Štvrťrok“, „Mesiac“ a „Deň“ v dimenzii „Čas“. Usporiadanie polí do úrovní podrobností umožňuje používateľom zostavovania vybrať si úroveň podrobností, ktorú chcú zobraziť, počnúc súhrnnými údajmi na vysokej úrovni a potom prejsť na podrobnejšie zobrazenie a naopak.

Nástroje Microsoft Query tiež umožňujú vytvárať kocky OLAP z dotazu, ktorý načítava údaje z relačnej databázy, ako je napríklad Microsoft Access, čím sa lineárna tabuľka transformuje na štruktúrovanú hierarchiu (kocku).

Sprievodca vytvorením kocky OLAP je vstavaný nástroj Microsoft Query. Ak chcete vytvoriť kocku OLAP založenú na relačnej databáze, pred spustením sprievodcu musíte vykonať nasledujúce kroky.

1. Určite zdroj údajov (pozri obrázok 6.1).

2. Pomocou programu Microsoft Query vytvorte dotaz, ktorý bude obsahovať iba tie polia, ktoré budú buď údajovými poľami alebo poliami dimenzií kocky OLAP; ak sa pole v kocke použije viac ako raz, musí byť zahrnuté v dotaze požadované koľkokrát.

3. V poslednom kroku sprievodcu vytvorením dotazu nastavte prepínač na položke Vytvorenie kocky OLAP z daného dotazu(pozri obr. 6.2) alebo po vytvorení požiadavky priamo pomocou ponuky Dopyt Súbor vyberte tím Vytvorte kocku OLAP, po ktorom sa spustí Sprievodca vytvorením kocky OLAP.

Sprievodca vytvorením kocky OLAP pozostáva z troch krokov.

V prvom kroku sprievodcu (pozri obr. 6.6) dátové polia– vypočítané polia, pre ktoré sa musia určiť celkové hodnoty.



Ryža. 6.6. Definovanie dátových polí

Sprievodca umiestni očakávané vypočítané polia (zvyčajne číselné polia) na začiatok zoznamu, skontroluje ich a určí výslednú funkciu týchto polí, zvyčajne - Sum. Pri výbere dátových polí musí byť aspoň jedno pole vybraté ako vypočítavané pole a aspoň jedno pole musí zostať nezačiarknuté, aby sa určila dimenzia.

Pri vytváraní kocky OLAP môžete použiť štyri súhrnné funkcie − Sum, číslo(počet hodnôt), Minimum, Maximálne pre číselné polia a jednu funkciu číslo pre všetky ostatné polia. Ak chcete použiť niekoľko rôznych súhrnných funkcií toho istého poľa, toto pole musí byť zahrnuté v dotaze požadovaný počet krát.

Názov vypočítaného poľa je možné zmeniť v stĺpci Názov dátového poľa.

V druhom kroku sprievodcu sa určia popisné údaje a ich rozmery (pozri obr. 6.7). Ak chcete vybrať pole merania, musíte zo zoznamu Zdrojové polia presuňte požadované pole dimenzie najvyššej úrovne do zoznamu Merania do oblasti označenej ako Presuňte sem polia, aby ste vytvorili dimenzie. Ak chcete vytvoriť kocku OLAP, musíte definovať aspoň jednu dimenziu. V tom istom kroku sprievodcu môžete pomocou kontextového menu zmeniť názov poľa dimenzie alebo úrovne.

Ryža. 6.7. Definovanie polí dimenzií

Polia, ktoré obsahujú izolované alebo diskrétne údaje a nepatria do hierarchie, možno definovať ako dimenzie s jednou úrovňou. Kocka však bude efektívnejšia, ak budú niektoré polia usporiadané do úrovní. Ak chcete vytvoriť úroveň ako súčasť dimenzie, potiahnite pole zo zoznamu Zdrojové polia na poli, ktoré je dimenziou alebo úrovňou. Polia obsahujúce podrobnejšie informácie by mali byť umiestnené na nižších úrovniach. Napríklad na obrázku 6.7 pole Názov práce je úroveň poľa Názov oddelenia.

Presunutie poľa na nižšiu alebo vyššiu úroveň vysoký stupeň, musíte ho presunúť do nižšieho alebo vyššieho poľa v rámci dimenzie. Na zobrazenie alebo skrytie úrovní použite tlačidlá alebo .

Ak použijete polia dátumu alebo času ako dimenziu najvyššej úrovne, Sprievodca kockou OLAP automaticky vytvorí úrovne pre tieto dimenzie. Používateľ si potom môže vybrať, ktoré úrovne sa majú objaviť v prehľadoch. Môžete napríklad vybrať týždne, štvrťroky a roky alebo mesiace (pozri obrázok 6.7).

Pamätajte, že sprievodca automaticky vytvorí úrovne pre polia dátumu a času iba vtedy, keď vytvoríte dimenziu najvyššej úrovne; Pri pridávaní týchto polí ako podúrovní dimenzie sa nevytvoria automatické úrovne.

V treťom kroku sprievodcu sa určí typ kocky vytvorenej sprievodcom, pričom sú možné tri možnosti (pozri obr. 6.8).

Ryža. 6.8. Výber typu kocky, ktorá sa má vytvoriť v treťom kroku sprievodcu

· Prvé dve možnosti zahŕňajú vytvorenie kocky pri každom otvorení zostavy (ak je kocka zobrazená z Excelu, potom hovoríme o kontingenčnej tabuľke). V tomto prípade súbor žiadosti a spis definície kocky *.oqy, ktorý obsahuje návod na vytvorenie kocky. Súbor *.oqy je možné otvoriť v Exceli a vytvárať zostavy založené na kocke a ak potrebujete vykonať zmeny v kocke, môžete ho otvoriť pomocou Query a znova spustiť Sprievodcu vytvorením kocky.

V predvolenom nastavení sú súbory definície kocky, ako aj súbory dotazov uložené v priečinku užívateľského profilu v Application Data\Microsoft\Que-ries. Pri ukladaní súboru *.oqy do štandardného priečinka sa na karte zobrazí názov súboru s definíciou kocky OLAP kocky pri otváraní nového dotazu v Microsoft Query alebo pri výbere príkazu Vytvorte žiadosť(Ponuka Údaje, podmenu Import externých údajov) v programe Microsoft Excel.

· V prípade výberu tretej možnosti typu kocky Uloženie súboru kocky obsahujúceho všetky údaje pre kocku, načítajú sa všetky údaje pre kocku a vytvorí sa súbor kocky s príponou * v mieste určenom používateľom .mláďa, v ktorej sú tieto údaje uložené. Tento súbor sa nevytvorí okamžite po kliknutí na tlačidlo Pripravený; súbor sa vytvorí buď vtedy, keď uložíte definíciu kocky do súboru, alebo keď vytvoríte zostavu založenú na kocke.

Výber typu kocky je určený niekoľkými faktormi: množstvom údajov, ktoré kocka obsahuje; typ a zložitosť správ, ktoré sa vytvoria na základe kocky; systémové prostriedky (miesto v pamäti a na disku) atď.

Samostatný súbor kocky *.cub by sa mal vytvoriť v nasledujúcich prípadoch:

1) pre často menené interaktívne správy, ak je na disku dostatok miesta;

2), keď potrebujete kocku uložiť na sieťový server, aby ste k nej pri vytváraní správ poskytli prístup iným používateľom. Súbor kocky môže poskytnúť špecifické údaje zo zdrojovej databázy a zároveň vynechať citlivé alebo citlivé údaje, ku ktorým chcete iným používateľom zabrániť v prístupe.

V štandardnej kontingenčnej tabuľke sú zdrojové údaje uložené na lokálnom pevnom disku. Týmto spôsobom ich môžete vždy spravovať a reorganizovať, a to aj bez prístupu k sieti. To však v žiadnom prípade neplatí pre kontingenčné tabuľky OLAP. V kontingenčných tabuľkách OLAP sa vyrovnávacia pamäť nikdy neukladá na lokálny pevný disk. Preto ihneď po odpojení od lokálna sieť vaša kontingenčná tabuľka už nebude fungovať. Nepohnete sa v ňom ani jedným políčkom.

Ak po prechode do režimu offline stále potrebujete analyzovať údaje OLAP, vytvorte kocku údajov offline. Offline dátová kocka je samostatný súbor, ktorý je vyrovnávacou pamäťou kontingenčnej tabuľky a ukladá údaje OLAP, ktoré sú zobrazené po odpojení od lokálnej siete. Dáta OLAP skopírované do kontingenčnej tabuľky je možné vytlačiť, čo je podrobne popísané na webovej stránke http://everest.ua.

Ak chcete vytvoriť samostatnú dátovú kocku, najprv vytvorte kontingenčnú tabuľku OLAP. Umiestnite kurzor do kontingenčnej tabuľky a kliknite na tlačidlo Nástroje OLAP na kontextovej karte Nástroje, ktorá je súčasťou skupiny kontextových kariet Nástroje kontingenčnej tabuľky. Vyberte príkaz Offline OLAP (obr. 9.8).

Na obrazovke sa zobrazí dialógové okno Offline OLAP Data Cube Settings. Kliknite na tlačidlo Vytvoriť súbor údajov offline. Spustili ste Sprievodcu vytvorením súboru dátovej kocky. Ak chcete pokračovať v postupe, kliknite na tlačidlo Ďalej.

Najprv musíte určiť rozmery a úrovne, ktoré budú zahrnuté v dátovej kocke. V dialógovom okne musíte vybrať údaje, ktoré budú importované z databázy OLAP. Cieľom je špecifikovať len tie rozmery, ktoré budú potrebné po odpojení počítača od lokálnej siete. Čím viac rozmerov zadáte, tým väčšia veľkosť bude mať samostatnú dátovú kocku.

Kliknutím na tlačidlo Ďalej sa presuniete do ďalšieho dialógového okna sprievodcu. To vám dáva možnosť špecifikovať členov alebo dátové prvky, ktoré nebudú zahrnuté v kocke. Konkrétne nebudete potrebovať mieru predĺženej sumy internetového predaja, takže jej začiarkavacie políčko bude v zozname zrušené. Neoznačené začiarkavacie políčko znamená, že zadaná položka sa neimportuje a zaberá zbytočne miesto na lokálnom pevnom disku.

V poslednom kroku zadajte umiestnenie a názov dátovej kocky. V našom prípade bude mať súbor kocky názov MyOfflineCube.cub a bude sa nachádzať v priečinku Práca.

Súbory dátových kociek majú príponu .mláďa

Po určitom čase Excel uloží offline dátovú kocku do určeného priečinka. Ak to chcete otestovať, dvakrát kliknite na súbor, čím sa automaticky vygeneruje excelový zošit, ktorý obsahuje kontingenčnú tabuľku priradenú k vybranej dátovej kocke. Po vytvorení môžete offline dátovú kocku distribuovať všetkým zainteresovaným používateľom, ktorí pracujú v režime offline LAN.

Po pripojení k miestnej sieti môžete otvoriť súbor offline dátovej kocky a aktualizovať ho a príslušnú dátovú tabuľku. Hlavný princíp uvádza, že offline dátová kocka sa používa iba na prácu, keď je lokálna sieť odpojená, ale po obnovení pripojenia je potrebné ju aktualizovať. Pokus o aktualizáciu offline dátovej kocky po zlyhaní pripojenia bude mať za následok zlyhanie.

V rámci tejto práce sa zvážia tieto problémy:

  • Čo sú kocky OLAP?
  • Čo sú miery, dimenzie, hierarchie?
  • Aké typy operácií možno vykonávať na kockách OLAP?
Koncept kocky OLAP

Hlavným postulátom OLAP je multidimenzionálnosť v prezentácii údajov. V terminológii OLAP sa pojem kocka alebo hyperkocka používa na opis viacrozmerného diskrétneho dátového priestoru.

Kocka je viacrozmerná dátová štruktúra, z ktorej môže používateľ-analytik vyhľadávať informácie. Kocky sú vytvorené z faktov a rozmerov.

Údaje- ide o údaje o objektoch a udalostiach v spoločnosti, ktoré budú predmetom analýzy. Fakty rovnakého typu tvoria miery. Miera je typ hodnoty v bunke kocky.

Merania- sú to dátové prvky, pomocou ktorých sa analyzujú fakty. Kolekcia takýchto prvkov tvorí atribút dimenzie (napríklad dni v týždni môžu tvoriť atribút časovej dimenzie). V úlohách obchodnej analýzy obchodné podniky Dimenzie často zahŕňajú kategórie ako „čas“, „predaj“, „produkty“, „zákazníci“, „zamestnanci“ a „geografická poloha“. Dimenzie sú najčastejšie hierarchické štruktúry predstavujúce logické kategórie, pomocou ktorých môže používateľ analyzovať aktuálne údaje. Každá hierarchia môže mať jednu alebo viac úrovní. Hierarchia dimenzie „geografická poloha“ teda môže zahŕňať úrovne: „krajina – región – mesto“. V časovej hierarchii môžeme rozlíšiť napríklad nasledujúcu postupnosť úrovní: Dimenzia môže mať viacero hierarchií (každá hierarchia jednej dimenzie musí mať rovnaký kľúčový atribút tabuľky dimenzií).

Kocka môže obsahovať aktuálne údaje z jednej alebo viacerých tabuliek faktov a najčastejšie obsahuje viacero dimenzií. Každá kocka má zvyčajne špecifické zameranie na analýzu.

Obrázok 1 zobrazuje príklad kocky navrhnutej na analýzu predaja ropných produktov určitej spoločnosti podľa regiónu. Táto kocka má tri dimenzie (čas, produkt a región) a jednu mieru (predaj vyjadrený v peňažnom vyjadrení). Namerané hodnoty sú uložené v príslušných bunkách kocky. Každá bunka je jednoznačne identifikovaná množinou členov každej dimenzie, ktorá sa nazýva n-tica. Napríklad bunka umiestnená v ľavom dolnom rohu kocky (obsahuje hodnotu $98399) je špecifikovaná n-ticou [júl 2005, Ďaleký východ, Diesel]. Tu hodnota 98 ​​399 USD ukazuje objem predaja (v peňažnom vyjadrení) nafty na Ďalekom východe za júl 2005.

Za zmienku tiež stojí, že niektoré bunky neobsahujú žiadne hodnoty: tieto bunky sú prázdne, pretože tabuľka faktov pre ne neobsahuje údaje.

Ryža. 1. Kocka s informáciami o predaji ropných produktov v rôznych regiónoch

Konečným cieľom vytvárania takýchto kociek je minimalizovať čas spracovania dotazov, ktoré extrahujú požadované informácie zo skutočných údajov. Na splnenie tejto úlohy kocky zvyčajne obsahujú vopred vypočítané súčty tzv agregácií(agregácie). Tie. kocka pokrýva dátový priestor väčší ako je skutočný - sú v ňom logické, vypočítané body. Agregačné funkcie vám umožňujú vypočítať hodnoty bodov v logickom priestore na základe skutočných hodnôt. Najjednoduchšie agregačné funkcie sú SUM, MAX, MIN, COUNT. Takže napríklad pomocou funkcie MAX môžete pre kocku uvedenú v príklade identifikovať, kedy nastal vrchol predaja nafty na Ďalekom východe atď.

Ďalším špecifikom viacrozmerných kociek je náročnosť určenia pôvodu. Ako napríklad nastavíte bod 0 pre dimenziu Produkt alebo Regióny? Riešením tohto problému je zavedenie špeciálneho atribútu, ktorý kombinuje všetky prvky dimenzie. Tento atribút (vytvorený automaticky) obsahuje iba jeden prvok – All. Pre jednoduché agregačné funkcie, ako je súčet, je prvok All ekvivalentný súčtu hodnôt všetkých prvkov v skutočnom priestore danej dimenzie.

Dôležitým pojmom vo viacrozmernom dátovom modeli je podpriestor alebo podkocka. Podkocka je časť celého priestoru kocky vo forme nejakého viacrozmerného obrazca vo vnútri kocky. Keďže viacrozmerný priestor kocky je diskrétny a obmedzený, podkocka je tiež diskrétna a obmedzená.

Operácie na kockách OLAP

Na kocke OLAP je možné vykonávať nasledujúce operácie:

  • plátok;
  • rotácia;
  • konsolidácia;
  • detailovanie.
Plátok(Obrázok 2) je špeciálny prípad podkocky. Toto je postup na vytvorenie podmnožiny viacrozmerného dátového poľa zodpovedajúceho jedinej hodnote jedného alebo viacerých rozmerových prvkov, ktoré nie sú zahrnuté v tejto podmnožine. Ak napríklad chcete zistiť, ako sa predaj ropných produktov vyvíjal v priebehu času iba v určitom regióne, konkrétne na Urale, musíte opraviť dimenziu „Produkty“ na prvku „Ural“ a extrahovať zodpovedajúcu podmnožinu (podkocku) z kocka.
  • Ryža. 2. Plátok kocky OLAP

    Rotácia(Obrázok 3) - operácia zmeny miesta meraní prezentovaných v správe alebo na zobrazenej stránke. Napríklad operácia rotácie môže zahŕňať preusporiadanie riadkov a stĺpcov tabuľky. Navyše otáčanie dátovej kocky presunie rozmery mimo tabuľky na miesto s rozmermi prítomnými na zobrazenej stránke a naopak.

    Som obyvateľom Habru už pomerne dlho, ale nikdy som nečítal články na tému multidimenzionálnych kociek, OLAP a MDX, hoci téma je veľmi zaujímavá a každým dňom je čoraz aktuálnejšia.
    Nie je žiadnym tajomstvom, že za ten krátky čas vývoja databáz, elektronického účtovníctva a online systémov sa nahromadilo množstvo samotných dát. Teraz je zaujímavá aj úplná analýza archívov a možno aj pokus predpovedať situácie pre podobné modely v budúcnosti.
    Na druhej strane veľké spoločnosti aj v priebehu niekoľkých rokov, mesiacov či dokonca týždňov dokážu nahromadiť také veľké množstvo dát, že aj ich základná analýza si vyžaduje mimoriadne prístupy a prísne hardvérové ​​požiadavky. Môžu to byť systémy na spracovanie bankových transakcií, skladoví agenti, telefónni operátori atď.
    Myslím, že každý dobre pozná 2 rôzne prístupy k návrhu databázy: OLTP a OLAP. Prvý prístup (Online Transaction Processing - spracovanie transakcií v reálnom čase) je navrhnutý pre efektívny zber údajov v reálnom čase, zatiaľ čo druhý (Online Analytical Processing - analytické spracovanie v reálnom čase) je zameraný špecificky na vzorkovanie a spracovanie údajov čo najefektívnejšie. spôsobom.

    Pozrime sa na hlavné možnosti moderných kociek OLAP a aké problémy riešia (za základ sa berú analytické služby 2005/2008):

    • rýchly prístup k údajom
    • predagregácia
    • hierarchia
    • práca s časom
    • multidimenzionálny jazyk prístupu k údajom
    • KPI (kľúčové ukazovatele výkonnosti)
    • ťažba datlí
    • viacúrovňové ukladanie do vyrovnávacej pamäte
    • viacjazyčná podpora
    Poďme sa teda na možnosti kociek OLAP pozrieť trochu podrobnejšie.

    Trochu viac o možnostiach

    Rýchly prístup k údajom
    Rýchly prístup k údajom, bez ohľadu na veľkosť poľa, je v skutočnosti základom systémov OLAP. Keďže toto je hlavné zameranie, dátový sklad je zvyčajne postavený na princípoch odlišných od princípov relačných databáz.
    Tu sa čas na získanie jednoduchých údajov meria v zlomkoch sekundy a dopyt presahujúci niekoľko sekúnd si s najväčšou pravdepodobnosťou vyžaduje optimalizáciu.

    Predagregácia
    Okrem rýchleho získania existujúcich údajov poskytuje aj možnosť predagregovať hodnoty „s najväčšou pravdepodobnosťou sa použijú“. Ak máme napríklad denné záznamy o predaji určitého produktu, systému Možno Môžeme tiež vopred agregovať mesačné a štvrťročné sumy predaja, čo znamená, že ak požadujeme údaje mesačne alebo štvrťročne, systém nám okamžite poskytne výsledok. Prečo nie vždy dochádza k predagregácii, pretože teoreticky možné kombinácie tovar/čas/atď. môže ich byť obrovské množstvo, čo znamená, že musíte mať jasné pravidlá, pre ktoré prvky sa bude agregácia stavať a pre ktoré nie. Vo všeobecnosti je téma zohľadňovania týchto pravidiel a samotného návrhu agregácií pomerne rozsiahla a sama o sebe si zaslúži samostatný článok.

    Hierarchie
    Je prirodzené, že pri analýze údajov a zostavovaní záverečných správ je potrebné vziať do úvahy skutočnosť, že mesiace sa skladajú z dní a samotné tvoria štvrtiny a mestá sú zahrnuté do oblastí, ktoré sú zase súčasťou regiónov alebo krajín. . Dobrou správou je, že kocky OLAP spočiatku zobrazujú údaje z hľadiska hierarchií a vzťahov s inými parametrami tej istej entity, takže vytváranie a používanie hierarchií v kockách je veľmi jednoduché.

    Práca s časom
    Keďže analýza údajov prebieha hlavne v časových oblastiach, čas má v systémoch OLAP mimoriadny význam, čo znamená, že jednoduchým zadefinovaním pre systém, kde tu máme čas, môžete v budúcnosti jednoducho používať funkcie ako rok po dátum, od mesiaca po dátum. (obdobie od začiatku roka/mesiaca do aktuálneho dátumu), Paralelné obdobie (v rovnaký deň alebo mesiac, ale minulý rok) atď.

    Multidimenzionálny jazyk prístupu k údajom
    MDX(Multidimensional Expressions) – dopytovací jazyk pre jednoduchý a efektívny prístup k viacrozmerným dátovým štruktúram. A to hovorí za všetko – nižšie bude niekoľko príkladov.

    Kľúčové ukazovatele výkonnosti (KPI)
    Kľúčové ukazovatele výkonnosti je finančný a nefinančný systém merania, ktorý pomáha organizácii určiť dosiahnutie strategických cieľov. Kľúčové ukazovatele výkonnosti možno celkom jednoducho definovať v systémoch OLAP a použiť ich v zostavách.

    Dátum ťažby
    Data Mining(Data Mining) – v podstate identifikuje skryté vzory alebo vzťahy medzi premennými vo veľkých súboroch údajov.
    Anglický výraz “Data Mining” nemá jednoznačný preklad do ruštiny (data mining, data mining, information mining, data/information mining), preto sa vo väčšine prípadov používa v origináli. Najúspešnejším nepriamym prekladom je termín „data mining“ (DMA). Toto je však samostatná, nemenej zaujímavá téma na zváženie.

    Viacúrovňové ukladanie do vyrovnávacej pamäte
    V skutočnosti, na zabezpečenie najvyššej rýchlosti prístupu k údajom, okrem zložitých dátových štruktúr a predagregácií, systémy OLAP podporujú viacúrovňové ukladanie do vyrovnávacej pamäte. Okrem ukladania jednoduchých dotazov do vyrovnávacej pamäte sa do vyrovnávacej pamäte ukladajú aj časti údajov načítaných z obchodu, agregované hodnoty a vypočítané hodnoty. Čím dlhšie teda s kockou OLAP pracujete, tým rýchlejšie v skutočnosti začne pracovať. Existuje tiež koncept „zahrievania vyrovnávacej pamäte“ - operácia, ktorá pripravuje systém OLAP na prácu s konkrétnymi správami, dopytmi alebo so všetkými kombináciami.

    Viacjazyčná podpora
    Áno áno áno. Prinajmenšom Analysis Services 2005/2008 (hoci Enterprise Edition) natívne podporuje viacjazyčnosť. Stačí poskytnúť preklad reťazcových parametrov vašich údajov a klient, ktorý špecifikoval svoj jazyk, dostane lokalizované údaje.

    Viacrozmerné kocky

    Čo teda vlastne tieto viacrozmerné kocky sú?
    Predstavme si 3-rozmerný priestor, ktorého osami sú Čas, Produkty a Zákazníci.
    Bod v takomto priestore bude označovať skutočnosť, že niektorý z kupujúcich si v určitom mesiaci kúpil konkrétny produkt.

    V skutočnosti bude rovina (alebo množina všetkých takýchto bodov) kockou, a teda čas, produkty a zákazníci budú jej rozmermi.
    Predstaviť si (a nakresliť) štvorrozmernú alebo viacrozmernú kocku je trochu náročnejšie, ale podstata sa nemení a hlavne, pre OLAP systémy je úplne jedno v koľkých rozmeroch budete pracovať (v rámci rozumných limity, samozrejme).

    Trochu MDX

    V čom teda spočíva krása MDX? S najväčšou pravdepodobnosťou musíme opísať, nie ako chceme vyberať údaje, ale Čo presne chceme.
    Napríklad,
    VYBRAŤ
    ( . ) V STĹPCI,
    ( ., . ) V RADOCH
    OD
    KDE (., .)

    Čo znamená, že chcem počet iPhonov predaných v júni a júli v Mozambiku.
    Zároveň popisujem ktoré toto sú údaje, ktoré chcem a Ako Chcem ich vidieť v správe.
    Nádhera, však?

    Tu je to trochu komplikovanejšie:

    S ČLENOM Priemerné výdavky AS
    . / .
    VYBRAŤ
    (Priemerné výdavky ) V STĹPCI,
    ( .., .. ) V RADOCH
    OD
    KDE (.)

    * Tento zdrojový kód bol zvýraznený pomocou Zvýrazňovača zdrojového kódu.

    V skutočnosti najprv určíme vzorec na výpočet „priemernej veľkosti nákupu“ a pokúsime sa porovnať, kto (akého pohlavia) minie viac peňazí pri jednej návšteve obchodu Apple.

    Samotný jazyk je mimoriadne zaujímavý na štúdium aj používanie a možno si zaslúži veľa diskusií.

    Záver

    V skutočnosti tento článok pokrýva veľmi málo čo i len základných pojmov, nazval by som ho „predjedlo“ – príležitosť zaujať komunitu Habra o túto tému a ďalej ju rozvíjať. Čo sa týka rozvoja, je tu obrovské pole neorané a rád odpoviem na všetky vaše otázky.

    P.S. Toto je môj prvý príspevok o OLAP a prvá publikácia o Habrém - bol by som veľmi vďačný za konštruktívnu spätnú väzbu.
    Aktualizácia: Preniesol som to do SQL, prenesiem to do OLAP hneď, ako mi umožnia vytvárať nové blogy.

    Štítky: Pridajte štítky