Instalační a uživatelská příručka systému OLAP

Pohledy DB2 OLAP Server

Při vytvoření aplikace a mulditimenzionální databáze OLAP komponenta DB2 OLAP Server provede kategorizaci nové aplikace a databáze a vytvoří sadu relačních tabulek, které jsou také označovány jako hvězdicové schéma. Kromě toho komponenta DB2 OLAP Server vytvoří a zajistí správu řady pohledů, které aplikaci zjednoduší přístup SQL k multidimenzionálním datům. Chcete-li přistupovat k multidimenzionálním datům pomocí pohledů, můžete použít vlastní aplikace a standardní dotazovací nástroje. Návrh některých aplikací maximálně využívá výhody způsobu uložení dat ve hvězdicovém schématu vytvořeném komponentou DB2 OLAP Server.

Úplný seznam pohledů spravovaných komponentou DB2 OLAP Server:

Schéma pojmenování pro pohledy

Komponenta DB2 OLAP Server ukládá všechny základní tabulky a pohledy ve schématu jméno_uživatele, kde argument jméno_uživatele představuje uživatelské jméno přiřazené komponentě DB2 OLAP Server. V příkladech SQL v této kapitole je jako jméno schématu použito jméno OLAPSERV.

Všechna jména pohledů jsou uváděna velkými písmeny. Jména pohledů neuvádějte v uvozovkách. Komponenta DB2 OLAP Server sestaví jména pohledů a uloží je do pohledů katalogu. Aplikace SQL pak mohou vyvolat dotaz na jména pohledů uložená v pohledech katalogu. Primární pohledy DB2 OLAP Server jsou uvedeny na obrázku Obrázek 9.

Obrázek 9. Schéma DB2 OLAP Server


Figure views not displayed.

Použití pohledu katalogu krychle

Ve schématu jméno_uživatele komponenta DB2 OLAP Server používá jeden pohled katalogu krychle. Tento pohled obsahuje jeden řádek pro každou krychli. Pohled poskytuje podrobné údaje o všech aplikacích a krychlích OLAP uložených ve schématu. V pohledu katalogu krychle jsou uloženy všechny aplikace a databáze OLAP spravované komponentou DB2 OLAP Server.

Jméno pohledu katalogu krychle

Jméno pohledu katalogu krychle je CUBECATALOGVIEW. Stejně jako u všech ostatních pohledů platí, že i tento pohled patří do schématu přiřazeného komponentě DB2 OLAP Server.

Obsah pohledu katalogu krychle

Sloupce v pohledu katalogu krychle jsou popsány v tabulce Tabulka 14.

Tabulka 14. Obsah pohledu katalogu krychle
Jméno Typ Max. velikost Obsah
AppName VarChar 8 Jméno aplikace OLAP, která obsahuje relační krychli určenou sloupcem CubeName.
CubeName VarChar 8 Jméno multidimenzionální databáze.
CubeViewName VarChar 27 Úplné jméno pohledu krychle pro danou multidimenzionální databázi.
FactViewName VarChar 27 Úplné jméno pohledu faktů pro danou multidimenzionální databázi.
StarViewName VarChar 27 Úplné jméno hvězdicového pohledu pro danou multidimenzionální databázi.
AliasIdViewName VarChar 27 Úplné jméno pohledu ID-alias pro danou multidimenzionální databázi.
LROViewName VarChar 27 Úplné jméno pohledu LRO pro danou multidimenzionální databázi.

Příkazy SQL pro dotazování na pohled katalogu krychle

Příkaz SQL pro získání seznamu aplikací OLAP:

SELECT DISTINCT APPNAME FROM OLAPSERV.CUBECATALOGVIEW 

Příkaz SQL pro získání seznamu multidimenzionálních databází v aplikaci Sample:

SELECT CUBENAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample'

Příkaz SQL pro získání jmen pohledů pro multidimenzionální databázi Basic v aplikaci Sample:

SELECT CUBEVIEWNAME,FACTVIEWNAME,STARVIEWNAME,ALIASIDVIEWNAME,LROVIEWNAME 
  FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'

Dotaz na informace o dimenzích a o členech

Pohled krychle a pohledy dimenzí obsahují informace o dimenzích a o členech v relační krychli. Pro každou relační krychli existuje jeden pohled krychle a pro každou dimenzi v rámci relační krychle existuje jeden pohled dimenze. Dotazem na tyto pohledy lze získat řadu atributů, které jsou přiřazeny dimenzím a členům v osnově OLAP.

Použití pohledu krychle

Pro relační krychli, kterou spravuje komponenta DB2 OLAP Server, existuje jeden pohled krychle. Pohled krychle obsahuje jeden řádek pro každou dimenzi relační krychle. Pohled slouží k získání informací o dimenzích krychle.

Jméno pohledu krychle

Jméno pohledu krychle je načteno ze sloupce CubeViewName pohledu katalogu krychle.

Obsah pohledu krychle

Sloupce v pohledu krychle jsou popsány v tabulce Tabulka 15.

Tabulka 15. Obsah pohledu krychle
Jméno Typ Velikost Obsah
DimensionName VarChar 80 Jméno dimenze OLAP
RelDimensionName VarChar 18 Jméno dimenze komponenty DB2 OLAP Server. Tento sloupec obsahuje jméno sloupce ve hvězdicovém pohledu, který odpovídá dané dimenzi. Sloupec RelDimensionName představuje jedinečné jméno při porovnání se jmény všech ostatních dimenzí a se jmény členů v kotvicí dimenzi této relační krychle. Sloupec RelDimensionName je upravená verze sloupce DimensionName. Ve sloupci DimensionName může být nutné provést tyto změny:
  • Omezení délky jména.
  • Odstranění nebo náhrada speciálních znaků, které jsou povoleny v multidimenzionálních jménech a nikoli v relačních jménech.
  • Změna znaků pro vytvoření jedinečného jména v rámci jmenného prostoru relační krychle po provedení všech ostatních úprav.
DimensionType Small Integer
Hodnoty pro tento sloupec:
  • 0 = hustá dimenze
  • 1 = řídká dimenze
  • 2 = kotvicí dimenze
DimensionTag Small Integer
Hodnoty pro tento sloupec:
  • 0x00 - žádný příznak
  • 0x01 - účet
  • 0x02 - čas
  • 0x04 - země
  • 0x08 - měnový oddíl
DimensionId Integer
Identifikátor dimenze v osnově OLAP.
DimensionViewName VarChar 27 Úplné jméno pohledu dimenze pro tuto dimenzi.
UDAViewName VarChar 27 Úplné jméno pohledu UDA (User Defined Attribute) pro danou dimenzi.
RATViewName VarChar 27 Úplné jméno pohledu relačních atributů pro danou dimenzi.

Příkazy SQL pro dotaz na pohled krychle

Chcete-li přistoupit k datům v pohledu krychle, aplikace musí nejprve určit jméno pohledu krychle v pohledu katalogu krychle.

Chcete-li například zjistit jméno pohledu krychle pro databázi Basic v aplikaci Sample, můžete vyvolat dotaz na databázi pomocí příkazu SQL:

SELECT CUBEVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

Výsledek dotazu může vypadat takto:

OLAPSERV.SAMPBASI_CUBEVIEW

Seznam jmen dimenzí a jmen odpovídajících pohledů dimenzí pro databázi Basic:

SELECT DIMENSIONNAME.DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW

Chcete-li zobrazit seznam jmen hustých dimenzí databáze Basic, proveďte tento příkaz:

SELECT DIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE = 0

Chcete-li určit jména dimenzí, která nejsou nastavena jako kotvicí a která slouží pro pojmenování sloupců ve hvězdicovém pohledu, proveďte tento příkaz:

SELECT RELDIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE <> 2  

Chcete-li vrátit jméno pohledu relačních atributů pro dimenzi Product, proveďte tento příkaz:

SELECT RATVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Product'

Jméno pohledu dimenze

Jméno pohledu dimenze získáte ze sloupce DimensionViewName pohledu krychle.

Obsah pohledu dimenze

Sloupce v pohledu dimenze jsou popsány v tabulce Tabulka 16.

Tabulka 16. Obsah pohledu dimenze
Jméno Typ Velikost Obsah
MemberName VarChar 80 Jméno člena.
RelMemberName VarChar 18 Pouze kotvicí dimenze. Jméno člena DB2 OLAP Server. Toto jméno je použito k pojmenování sloupců v pohledu faktů a ve hvězdicovém pohledu, které odpovídají členům kotvicí dimenze. Představuje jedinečné jméno při porovnání se všemi ostatními jmény členů kotvicí dimenze a jmény dimenzí relační krychle, které nejsou kotvicí. Jedná se o upravenou verzi sloupce MemberName. Ve sloupci MemberName může být nutné provést tyto změny:
  • Omezení délky jména.
  • Odstranění nebo náhrada speciálních znaků, které jsou povoleny v multidimenzionálních jménech ale nejsou povoleny v relačních jménech.
  • Změna znaků pro vytvoření jedinečného jména v rámci jmenného prostoru relační krychle po provedení předchozích změn.
RelMemberID Integer Není Identifikátor DB2 OLAP Server pro daného člena. Tento identifikátor se používá pro propojení tabulky dimenzí s tabulkou faktů.
ParentRelId Integer Není Relační identifikátor rodičovského člena v osnově OLAP. Pro člena nejvyšší úrovně je tato hodnota NULL.
LeftSiblingRelId Integer Není Relační identifikátor sourozeneckého člena na levé straně v osnově OLAP. Pro členy, kteří nemají levého sourozence, je tato hodnota NULL.
Status Integer Není Stav daného člena může být kombinací následujících hodnot:
  • 0x0000= vyhrazeno
  • 0x0001= pro člena se zakázaným sdílením ('Never share')
  • 0x0002= pro člena pouze s popiskem ('Label only')
  • 0x0004 = pro sdíleného člena ('Shared member')
  • 0x0008 = vyhrazeno
  • 0x0010 = pro rodičovského člena s jediným synovským členem nebo pro rodičovského člena s jedním synem, který má agregační operátor. (Všechny ostatní synovské členy mají operátor 'no-op'.)
  • 0x0020 = pro člena s dynamickou kalkulací a ukládáním ('Dynamic Calc And Store')
  • 0x0040= pro člena s dynamickou kalkulací ('Dynamic Calc')
  • 0x0080= vyhrazeno
  • 0x0100= vyhrazeno
  • 0x02000= pro rodičovského člena, pro kterého platí, že jeden z jeho synovských členů je sdílený
  • 0x04000= pro standardního člena
CalcEquation Long VarChar (pracovní stanice); VarChar (OS/390) 32700 (pracovní stanice); 250 (OS/390) Rovnice předvolené kalkulace pro kalkulované členy. Počítejte s tím, že rovnice předvolené kalkulace nemusí být rovnice použitá pro výpočet hodnoty člena, pokud pro výpočet relační krychle je v kalkulačním skriptu určena jiná kalkulace.
UnarySymbol Small Integer Není Symbol unární kalkulace:
  • 0 = součet
  • 1 = rozdíl
  • 2 = násobení
  • 3 = dělení
  • 4 = procento
  • 5 = žádná operace
AccountsType Integer Není Tento atribut se používá pouze pro dimenzi Účty. Může obsahovat kombinaci následujících hodnot:
  • 0x0000 = nemaskovat na nulu nebo chybějící hodnotu (Missing)
  • 0x4000 = maskovat na chybějící hodnotu (Missing)
  • 0x8000 = maskovat na nulovou hodnotu
  • 0x0001 = nejprve rozvaha
  • 0x0002 = rozvaha nakonec
  • 0x0004 = procento
  • 0x0008 = průměr
  • 0x0010 = jednotka
  • 0x0020 = pouze podrobnosti
  • 0x0040 = výdaje
NoCurrencyConv Small Integer Není Nastavení konverze měny:
  • 0x0000 = používat konverzi měny
  • 0x0001 = bez konverze měny
CurrencyMemberName VarChar 80 K tomuto členu je přidruženo jméno člena z měnové krychle.
GenerationNumber Integer Není Číslo generace pro tohoto člena.
GenerationName VarChar 80 Jméno generace pro tohoto člena.
LevelNumber Integer
Číslo úrovně pro tohoto člena.
LevelName VarChar 80 Jméno úrovně pro tohoto člena.
jméno tabulky aliasů Pro každou tabulku aliasů OLAP použitou v osnově existuje jeden sloupec aliasu. VarChar 80 Alias pro daného člena v přidružené tabulce aliasů OLAP. Pokud alias není pro člena uveden, je tato hodnota Null. Viz oddíl Použití pohledů ID-alias.
jméno sloupce relačních atributů Pro každý uživatelský atribut RatCol existuje jeden sloupec relačních atributů. Datový typ určený při vytvoření sloupce relačního atributu. Velikost určená při vytvoření sloupce relačního atributu. Hodnota relačního atributu pro daného člena.

Dotaz na jméno dimenze pomocí příkazů SQL

Chcete-li přistoupit k datům v pohledu dimenze, aplikace musí nejprve určit jméno pohledu dimenze z pohledu krychle.

Chcete-li například zjistit jméno pohledu dimenze pro dimenzi Time v databázi Basic, můžete vyvolat dotaz na databázi pomocí příkazu SQL:

SELECT DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Time'

Výsledek dotazu může vypadat takto:OLAPSERV.SAMPBASID_TIME

Zobrazení seznamu se jmény členů pomocí příkazů SQL

Chcete-li zobrazit seznam jmen členů pro dimenzi Time, proveďte tento příkaz:

SELECT MEMBERNAME FROM OLAPSERV.SAMPBASID_TIME

Pohled faktů a hvězdicový pohled

Komponenta DB2 OLAP Server vytváří a udržuje dva pohledy tabulky faktů a hvězdicového schématu:

Pohled faktů
Pro každou krychli, kterou spravuje komponenta DB2 OLAP Server, existuje jeden pohled faktů. Pohled faktů je jednoduchý pohled tabulky faktů. Tabulka faktů obsahuje multidimenzionální data. Pohled se používá pro přímý přístup k multidimenzionálním datům z aplikací SQL, které spravují požadovaná spojení s pohledy dimenzí.

Hvězdicový pohled
Pro každou krychli, kterou spravuje komponenta DB2 OLAP Server, existuje jeden hvězdicový pohled. Hvězdicový pohled propojuje tabulku faktů ke každému z pohledů dimenze ve hvězdicovém schématu. Pohled poskytuje jednoduchý přístup SQL k multidimenzionálním datům a je ideální pro dotazy ad-hoc a pro použití s obecnými nástroji pro vytváření dotazů, které nespravují požadovaná připojení k pohledům dimenzí.

Vzhledem k tomu, že tabulka faktů obsahuje hodnoty s různými úrovněmi agregace, musíte se při psaní aplikace SQL provádějící agregaci ujistit, že sada členů vybraných v jednotlivých dimenzích má stejnou úroveň agregace. V opačném případě budou vaše agregace nesprávné. Jednou z možností, jak tomuto požadavku vyhovět, je zahrnout do tabulky dimenzí omezující podmínku pro pole s číslem generace nebo s číslem úrovně.

Tabulka faktů vytvořená komponentou DB2 OLAP Server obsahuje jeden sloupec pro každou dimenzi, která není určena jako kotvicí, a jeden sloupec pro každého člena kotvicí dimenze, který uchovává data. Tabulka faktů odpovídající osnově popsané v oddílu Obrázek 9 obsahuje tyto sloupce:

Sloupce dimenzí uchovávají identifikátory členů, které odkazují na členy každé nekotvicí dimenze. Identifikátory členů lze v pohledech dimenzí mapovat na jména členů. Ve sloupcích kotvicích členů jsou uloženy skutečné datové hodnoty. Členy kotvicí dimenze lze mapovat na sloupce pohledu faktů pomocí pohledu dimenzí pro kotvicí dimenzi.

Komponenta DB2 OLAP Server používá pro sloupce tabulky faktů interní jména a pro členy interní identifikátory. V pohledu faktů jsou interní jména sloupců nahrazena jmény dimenzí a členů, ale není provedeno mapování identifikátorů členů ve sloupcích dimenzí na příslušná jména členů. Ve hvězdicovém pohledu jsou interní jména sloupců nahrazena jmény dimenzí a členů a je provedeno mapování identifikátorů členů ve sloupcích dimenzí na jména členů na základě propojení tabulky faktů s tabulkami dimenzí.

Přestože lze jako kotvicí dimenzi určit kteroukoli hustou dimenzi, pokud přistupujete k pohledu faktů a ke hvězdicovému pohledu z aplikací SQL a spouštíte dotazy ad-hoc, nejpřirozenější mapování získáte, pokud jako kotvicí dimenzi určíte dimenzi Účty.

Jméno pohledu faktů

Jméno pohledu faktů je uloženo ve sloupci FactViewName pohledu katalogu krychle.

Obsah pohledu faktů

Pohled faktů obsahuje proměnný počet sloupců dvou typů:

Sloupce dimenzí
Jeden sloupec pro každou nekotvicí dimenzi

Sloupce kotvicích členů
Jeden sloupec pro každého člena kotvicí dimenze, který uchovává data

Podrobnosti o obou typech sloupců, které může obsahovat pohled faktů, jsou uvedeny v tabulce Tabulka 17.

Tabulka 17. Obsah pohledu faktů
Jméno Typ Obsah
Pro sloupce dimenzí:

Krátké jméno pro dimenzi je přejato ze sloupce RelDimensionName pohledu krychle.

Integer Identifikátor RelMemberID člena dané dimenze.
Pro sloupce kotvicích členů:

Krátké jméno člena je přejato ze sloupce RelMemberName pohledu dané kotvicí dimenze.

Double Datová hodnota pro danou buňku.

Dotazy na pohled faktů v systémech UNIX a Windows NT pomocí příkazů SQL

Chcete-li přistoupit k datům v pohledu faktů, aplikace musí nejprve určit jméno pohledu faktů z pohledu katalogu krychle.

Chcete-li například zjistit jméno pohledu faktů pro databázi Basic v aplikaci Sample, můžete použít tento příkaz SQL:

SELECT FACTVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

Výsledek dotazu může vypadat takto:

OLAPSERV.SAMPBASI_FACTVIEW

Pokud vaše aplikace sleduje hodnoty RelMemberID pro členy, můžete dotaz směrovat přímo pohledu faktů. Chcete-li například vybrat datové hodnoty pro produkt s identifikátorem RelMemberId 3 (100-20) pro oblast RelMemberId 2 (East) v době RelMemberID 4 (Q3):

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_FACTVIEW 
  WHERE PRODUCT=3 AND MARKET=2 AND TIME=4

Dotazy na tabulku faktů jsou obvykle propojeny s pohledy dimenzí. Ekvivalentní dotaz k předchozímu příkladu, který využívá propojení, vypadá takto:

SELECT PROFIT,SALES,COGS
    FROM OLAPSERV.SAMPBASI_FACTVIEW,
         OLAPSERV.SAMPBASID_TIME,
         OLAPSERV.SAMPBASID_MARKET,
         OLAPSERV.SAMPBASID_PRODUCT,
   WHERE OLAPSERV.SAMPBASID_TIME.MEMBERNAME='Q3'
     AND OLAPSERV.SAMPBASID_PRODUCT.MEMBERNAME='100-20'
     AND OLAPSERV.SAMPBASID_MARKET.MEMBERNAME='East'
     AND OLAPSERV.SAMPBASI_FACTVIEW.TIME=OLAPSERV.SAMPBASID_TIME.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.PRODUCT=OLAPSERV.SAMPBASID_PRODUCT.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.MARKET=OLAPSERV.SAMPBASID_MARKET.RELMEMBERID

Jméno hvězdicového pohledu

Jméno hvězdicového pohledu je uloženo ve sloupci StarViewName pohledu katalogu krychle.

Obsah hvězdicového pohledu

Hvězdicový pohled obsahuje proměnný počet sloupců dvou typů:

Sloupce dimenzí
Jeden sloupec pro každou nekotvicí dimenzi

Sloupce kotvicích členů
Jeden sloupec pro každého člena kotvicí dimenze

Podrobnosti o obou typech sloupců, které může obsahovat hvězdicový pohled, jsou uvedeny v tabulce Tabulka 18.


Tabulka 18. Obsah hvězdicového schématu
Jméno Typ Obsah
Pro sloupce dimenzí:

Krátké jméno pro dimenzi je přejato ze sloupce RelDimensionName pohledu krychle.

VarChar(80) Jméno člena
Pro sloupce kotvicích členů:

Krátké jméno člena je přejato ze sloupce RelMemberName pohledu dané kotvicí dimenze.

Double Datová hodnota pro danou buňku

Dotazy na hvězdicový pohled v systémech UNIX a Windows NT pomocí příkazů SQL

Chcete-li přistoupit k datům ve hvězdicovém pohledu, aplikace musí nejprve určit jméno hvězdicového pohledu z pohledu katalogu krychle.

Chcete-li například zjistit jméno hvězdicového pohledu pro databázi Basic v aplikaci Sample, můžete použít tento příkaz SQL:

SELECT STARVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='SAMPLE' AND CUBENAME='BASIC'

Výsledek dotazu může vypadat takto: OLAPSERV.SAMPBASI_STARVIEW

Chcete-li vybrat datové hodnoty pro produkt 100-10 v regionu Central pro první čtvrtletí, použijte dotaz:

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE PRODUCT='100-10' AND MARKET='Central' AND TIME='Q1'

Chcete-li vybrat všechny ztrátové produkty v centrálním regionu pro druhé čtvrtletí, použijte dotaz:

SELECT PRODUCT,PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET='Central' AND TIME='Q2' AND PROFIT < 0

Ne všichni členové hvězdicového pohledu jsou na stejné úrovni hierarchie. Při vytváření dotazů SQL provádějících agregační operace je proto nutné postupovat opatrně. V případě, že vybraní členové v dimenzi nejsou na stejné úrovni, dojde k dvojité agregaci.

V následujícím příkladu je ukázán příkaz SQL, který zobrazí členy vybrané na různých úrovních hvězdicového pohledu. (Některé položky prodeje budou započítány dvakrát, neboť jsou provedeny agregační součty na dvou úrovních).

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Central','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','1996')
 

Předpokládejme, že stát Illinois je součást centrálního regionu (Central) a první čtvrtletí (Q1) patří do roku 1996. Dotaz pak vrátí tabulku PROFIT se součty na úrovních států i regionu a na úrovni čtvrtletí i roku. Vzhledem k tomu, že centrální region již obsahuje data pro stát Illinois, data Illinois a Q1 jsou započítána v součtu dvakrát. Pokud chcete opravit dotaz SQL, aby sčítal prodeje pro dva státy v centrálním regionu v průběhu dvou různých čtvrtletí, můžete vyjít z následujícího příkladu:

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Indiana','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','Q2')
 


[ Začátek stránky | Předchozí stránka | Další stránka | Obsah | Rejstřík ]