OLAP Installations- och användarhandbok

Vyer i DB2 OLAP Server

När du skapar OLAP-tillämpningar och flerdimensionella databaser registreras den nya tillämpningen och databasen i DB2 OLAP Server, och en uppsättning relationstabeller, även kallade stjärnschema, skapas. Dessutom skapar och administrerar DB2 OLAP Server ett antal vyer som gör det enklare för SQL-tillämpningarna att få åtkomst till flerdimensionella data. Du kan använda anpassade tillämpningar och vanliga frågeverktyg när du vill få åtkomst till flerdimensionella data med hjälp av de här vyerna. En del tillämpningar är utformade så att de utnyttjar de data som lagras i stjärnschemat som skapades i DB2 OLAP Server till fullo.

I följande lista visas alla de vyer som administreras av DB2 OLAP Server:

Namngivningsregler för vyer

DB2 OLAP Server lagrar alla bastabeller och -vyer i schemat användarnamn, där användarnamn står för det användar-ID som har tilldelats DB2 OLAP Server. I de SQL-exempel som tas upp i det här kapitlet används schemat OLAPSERV.

Alla vynamn skrivs med stora bokstäver. Sätt inte citattecken runt vynamn. DB2 OLAP Server skapar vynamn och lagrar dem i katalogvyer. Dina SQL-tillämpningar kan ställa frågor mot vynamnen från katalogvyer. I Bild 9 visas de primära vyerna i DB2 OLAP Server.

Bild 9. schema i DB2 OLAP Server


Figure views not displayed.

Använda kubkatalogvyn

Det finns en kubkatalogvy som DB2 OLAP Server använder för schemat användarnamn. Den här vyn innehåller en rad för varje kub. Använd den här vyn till att ta reda på detaljer om alla OLAP-tillämpningar och -kuber som lagras i scheman. Kubkatalogvyn innehåller register över alla OLAP-tillämpningar och databaser som administreras i DB2 OLAP Server.

Namnet på kubkatalogvyn

Namnet på kubkatalogvyn är CUBECATALOGVIEW. Precis som alla andra vyer ägs den av det schema som är tilldelat till DB2 OLAP Server.

Innehåll i kubkatalogvyn

I Tabell 14 visas de kolumner som ingår i kubkatalogvyn.

Tabell 14. Innehåll i kubkatalogvyn
Namn Typ Största storlek Innehåll
AppName VarChar 8 Namnet på den OLAP-tillämpning som innehåller den relationskub som hör till CubeName.
CubeName VarChar 8 Namnet på den flerdimensionella databasen.
CubeViewName VarChar 27 Fullständig sökväg för den kubvy som hör till den här flerdimensionella databasen.
FactViewName VarChar 27 Fullständig sökväg för den faktavy som hör till den här flerdimensionella databasen.
StarViewName VarChar 27 Fullständig sökväg för den stjärnvy som hör till den här flerdimensionella databasen.
AliasIdViewName VarChar 27 Fullständig sökväg för den alias-ID-vy som hör till den här flerdimensionella databasen.
LROViewName VarChar 27 Fullständig sökväg för den LRO-vy som hör till den här flerdimensionella databasen.

Ställa frågor mot kubkatalogvyn genom att använda SQL-satser

Använd följande SQL-sats om du vill visa en lista över alla OLAP-tillämpningar:

SELECT DISTINCT APPNAME FROM OLAPSERV.CUBECATALOGVIEW 

Om du vill visa en lista över alla flerdimensionella databaser i tillämpningen Sample kan du använda följande SQL-sats:

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

Om du vill visa en lista med alla vynamn för den flerdimensionella databasen Basic i tillämpningen Sample kan du använda följande SQL-sats:

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

Ställa frågor mot dimensions- och elementinformation

Kubvyn och dimensionsvyerna innehåller information om dimensioner och element i en relationskub. Det finns en kubvy för varje relationskub, och en dimensionsvy för varje dimension en relationskub. De här vyerna kan användas till att ställa frågor mot många av de attribut som anges för dimensioner och element i OLAP-dispositionen.

Använda kubvyn

Det finns en kubvy för varje relationskub som DB2 OLAP Server administrerar. Kubvyn innehåller en rad för varje dimension i relationskuben. Använd den här vyn till att få fram information om dimensionerna i en kub.

Namn på kubvyn

Namnet på kubvyn fås från kolumnen CubeViewName i kubkatalogvyn.

Innehåll i kubvyn

I Tabell 15 visas de kolumner som ingår i kubvyn.

Tabell 15. Innehåll i kubvyn
Namn Typ Storlek Innehåll
DimensionName VarChar 80 OLAP-namnet på dimensionen.
RelDimensionName VarChar 18 Namnet i DB2 OLAP Server på dimensionen. Den här kolumnen innehåller namnet på en kolumn i stjärnvyn eller den faktavy som hör till den här dimensionen. RelDimensionName skiljer sig från alla andra dimensionsnamn och namnen på elementen i relationskubens ankardimension. RelDimensionName är en lite annorlunda version av DimensionName. Du kan behöva göra följande ändringar med DimensionName:
  • Begränsa längden på namnet
  • Ta bort eller byta ut särskilda tecken som tillåts i multidimensionella namn men inte i relationsnamn
  • Ändra några tecken så att namnet blir unikt inom relationskubens namnutrymme, när alla andra ändringar har gjorts
DimensionType Small Integer
Kolumnen kan innehålla följande värden:
  • 0 = Tät dimension
  • 1 = Gles dimension
  • 2 = Ankardimension
DimensionTag Small Integer
Kolumnen kan innehålla följande värden:
  • 0x00 för ingen märkning
  • 0x01 för Konton
  • 0x02 för Tid
  • 0x04 för Land
  • 0x08 för Valutapartition
DimensionId Heltal
Dimensions-ID i OLAP-dispositionen.
DimensionViewName VarChar 27 Den fullständiga sökvägen till dimensionsvyn för dimensionen.
UDAViewName VarChar 27 Den fullständiga sökvägen till vyn för användardefinierade attribut (UDA) för dimensionen.
RATViewName VarChar 27 Den fullständiga sökvägen till vyn för relationsattribut för dimensionen.

Ställa frågor mot kubvyn genom att använda SQL-satser

Om du vill få åtkomst till data i kubvyn måste din tillämpning först avgöra namnet på kubvyn från kubkatalogvyn.

Exempel: Om du vill få reda på namnet på kubvyn för databasen Basic i tillämpningen Sample, formulerar du frågan på följande sätt:

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

Resultatet på frågan kan se ut ungefär på följande sätt:

OLAPSERV.SAMPBASI_CUBEVIEW

Om du vill visa en lista med dimensionsnamnen med tillhörande namn på dimensionsvyer för databasen Basic skriver du på följande sätt:

SELECT DIMENSIONNAME.DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW

Om du vill visa en lista med namnen på de täta dimensionerna i databasen Basic:

SELECT DIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE = 0

Om du vill få fram namnen på de dimensioner som inte är ankardimensioner och som används till att namnge kolumnerna i stjärnvyn skriver du på följande sätt:

SELECT RELDIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE <> 2  

Om du vill returnera namnet på vyn för relationsattribut i dimensionen Product skriver du på följande sätt:

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

Namnet på dimensionsvyn

Namnet på dimensionsvyn hämtas från kolumnen DimensionViewName i kubvyn.

Innehåll i dimensionsvyn

I Tabell 16 visas de kolumner som ingår i en dimensionsvy.

Tabell 16. Innehåll i en dimensionsvy
Namn Typ Storlek Innehåll
MemberName VarChar 80 Namnet på elementet.
RelMemberName VarChar 18 Bara för ankardimensioner. Elementnamnet i DB2 OLAP Server. Det här namnet används till att namnge kolumner i fakta- och stjärnvyerna som hör till elementen i ankardimensionen. Det är ett unikt namn som skiljer sig från alla andra elementnamn i ankardimensionen och från namnen på de dimensioner i relationskuben som inte är ankardimensioner. Det är en lite annorlunda variant på MemberName. Du kan behöva göra följande ändringar med MemberName:
  • Begränsa längden på namnet
  • Ta bort eller byta ut särskilda tecken som tillåts i multidimensionella namn men inte i relationsnamn
  • Ändra några tecken så att namnet blir unikt inom relationskubens namnutrymme, när alla andra ändringar har gjorts
RelMemberID Heltal Ingen ID i DB2 OLAP Server för elementet. Det här IDt används till att koppla ihop dimensionstabellen och faktatabellen.
ParentRelId Heltal Ingen Relations-ID för närmast överordnade element till elementet i OLAP-dispositionen. För elementet med den högsta nivån är värdet NULL.
LeftSiblingRelId Heltal Ingen Relations-ID för det vänstra syskonelementet till elementet i OLAP-dispositionen. För element som inte har något vänstra syskon är värdet NULL.
Status Heltal Ingen Statusen för det här elementet kan vara en kombination av följande värden:
  • 0x0000= Reserverat
  • 0x0001= För element med inställningen 'Dela aldrig'
  • 0x0002= För element med inställningen 'Endast etikett'
  • 0x0004 = För element med inställningen 'Delat element'
  • 0x0008 = Reserverat
  • 0x0010 = För element som har ett enda närmast underordnat element eller där bara ett av de närmast underordnade elementen har en hopslagningsoperator (alla de andra närmast underordnade elementen har operatorn 'no-op').
  • 0x0020 = För element med inställningen 'Dynamisk beräkning och lagring'
  • 0x0040= För element med inställningen 'Dynamisk beräkning'
  • 0x0080= Reserverat
  • 0x0100= Reserverat
  • 0x02000= För element där något av de närmast underordnade elementen är delat
  • 0x04000= För vanliga element
CalcEquation Long VarChar (arbetsstation); VarChar (OS/390) 32700 (arbetsstation); 250 (OS/390) Den beräkningsekvation som är standard för beräknade element. Lägg märke till att standardberäkningsekvationen inte behöver vara den ekvation som används till att beräkna elementets värde om en annan beräkning är angiven i det beräkningsskript som används till att beräkna relationskuben.
UnarySymbol Small Integer Ingen Den enställiga beräkningssymbolen:
  • 0 = Addera
  • 1 = Subtrahera
  • 2 = Multiplicera
  • 3 = Dividera
  • 4 = Procent
  • 5 = Ingen operator
AccountsType Heltal Ingen Det här attributet används bara för kontodimensionen. Det kan innehålla en kombination av följande värden:
  • 0x0000 = Utför inte mask på värdet noll eller om värde saknas
  • 0x4000 = Utför mask om värde saknas
  • 0x8000 = Utför mask på värdet noll
  • 0x0001 = Saldo först
  • 0x0002 = Saldo sist
  • 0x0004 = Procent
  • 0x0008 = Medelvärde
  • 0x0010 = Enhet
  • 0x0020 = Bara detaljer
  • 0x0040 = Utgift
NoCurrencyConv Small Integer Ingen Inställning för valutakonvertering:
  • 0x0000 = Använd valutakonvertering
  • 0x0001 = Använd inte valutakonvertering
CurrencyMemberName VarChar 80 Ett elementnamn från valutakuben som hör till det här elementet.
GenerationNumber Heltal Ingen Generationsnummer för det här elementet.
GenerationName VarChar 80 Generationsnamn för det här elementet.
LevelNumber Heltal
Nivånummer för det här elementet.
LevelName VarChar 80 Nivånamn för det här elementet.
aliastabellnamn Det finns en aliaskolumn för varje OLAP-aliastabell som används i dispositionen. VarChar 80 Aliaset för det här elementet i en tillhörande OLAP-aliastabell. Om det inte finns något alias för elementet är det här värdet null. Mer information finns i Använda vyer för alias-IDn.
namn på kolumnen för relationsattribut Det finns en kolumn för relationsattribut för varje användardefinierat attribut av typen RatCol. Den datatyp som angavs när kolumnen för relationsattribut skapades. Storleken angavs när kolumnen för relationsattribut skapades. Värdet på relationsattributet för det här elementet.

Ställa frågor mot dimensionsnamn genom att använda SQL-satser

Om du vill få åtkomst till data i dimensionsvyn måste din tillämpning först avgöra namnet på dimensionsvyn från kubvyn.

Exempel: Om du vill få reda på namnet på dimensionsvyn för dimensionen Time i databasen Basic formulerar du frågan på följande sätt:

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

Resultatet på frågan kan se ut ungefär på följande sätt: OLAPSERV.SAMPBASID_TIME

Visa lista med elementnamn genom att använda SQL

Skriv på följande sätt om du vill visa en lista med elementnamnen för dimensionen Time:

SELECT MEMBERNAME FROM OLAPSERV.SAMPBASID_TIME

Fakta- och stjärnvyerna

DB2 OLAP Server skapar och underhåller följande två vyer för faktatabellen i stjärnschemat:

Faktavy
Det finns en faktavy för varje kub som administreras i DB2 OLAP Server. Faktavyn är en enkel vy av faktatabellen. Faktatabellen innehåller flerdimensionella data. Använd den här vyn till att få direktåtkomst till flerdimensionella data från SQL-tillämpningar som hanterar de kopplingar till dimensionsvyer som krävs.

Stjärnvy
Det finns en stjärnvy för varje kub som administreras i DB2 OLAP Server. I stjärnvyn kopplas faktatabellen ihop med varje dimensionsvy i stjärnschemat. Den här vyn ger enkel SQL-åtkomst till flerdimensionella data och är perfekt för ad hoc-frågor, och till att användas tillsammans med de vanliga frågeverktygen som inte klarar av att hantera de kopplingar till dimensionsvyer som krävs.

Eftersom faktatabeller innehåller värden på olika hopslagningsnivåer måste du se till att den uppsättning element som väljs i varje dimension är på samma hopslagningsnivå om du skriver en SQL-tillämpning för hopslagning. I annat fall blir hopslagningen felaktig. Ett sätt att åstadkomma det på är att ta med ett villkor för något av fälten generationsnummer eller nivånummer i dimensionstabellen.

Faktatabellen som skapas i DB2 OLAP Server har en kolumn för varje dimension förutom ankardimensionen, och en kolumn för varje element i ankardimensionen som innehåller några data. Faktatabellen som hör till dispositionen som används i Bild 9 innehåller följande kolumner:

I dimensionskolumnerna lagras element-IDn som avser element i alla dimensioner förutom ankardimensionen. Element-IDna kan avbildas på elementnamn med hjälp av dimensionsvyerna. I ankarelementkolumnerna lagras de faktiska datavärdena. Ankardimensionselementen kan avbildas på kolumner i faktavyn med hjälp av dimensionsvyn för ankardimensionen.

DB2 OLAP Server använder interna namn på kolumnerna i faktatabellen, och interna IDn för elementen. Faktavyn ersätter de interna kolumnnamnen med dimensions- och elementnamn, men den avbildar inte element-IDna i dimensionskolumnen på elementnamn. Stjärnvyn ersätter de interna kolumnnamnen med dimensions- och elementnamn, och avbildar element-IDna i dimensionskolumnen på elementnamn genom att koppla ihop faktatabellen och dimensionstabellerna.

Även om eventuella täta dimensioner kan anges som ankardimension, om du har åtkomst till fakta- eller stjärnvyn från SQL-tillämpningar och kör ad hoc-frågor, får du den mest naturliga avbildningen om du anger dimensionen Accounts som ankardimension.

Namnet på faktavyn

Namnet på faktavyn fås från kolumnen FactViewName i kubkatalogvyn.

Innehåll i faktavyn

Faktavyn innehåller ett varierande antal kolumner av följande två typer:

Dimensionskolumner
En kolumn för varje dimension förutom ankardimensionen

Ankarelementkolumner
En kolumn för varje ankardimensionselement som lagrar några data

I Tabell 17 visas detaljer om de två typerna av kolumner i faktavyn.

Tabell 17. Innehåll i faktavyn
Namn Typ Innehåll
I dimensionskolumner:

Kortnamnet på dimensionen fås från kolumnen RelDimensionName i kubvyn.

Heltal RelMemberID för elementet i den här dimensionen.
I ankarelementkolumner:

Kortnamnet för elementet fås från kolumnen RelMemberName i dimensionsvyn för ankardimensionen.

Double Datavärdet för den här cellen.

Ställa frågor mot faktavyn i UNIX och Windows NT med hjälp av SQL-satser

Om du vill få åtkomst till data i faktavyn måste din tillämpning först avgöra namnet på faktavyn från kubkatalogvyn.

Exempel: Om du vill få reda på namnet på faktavyn för databasen Basic i tillämpningen Sample, formulerar du frågan på följande sätt:

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

Resultatet på frågan kan se ut ungefär på följande sätt:

OLAPSERV.SAMPBASI_FACTVIEW

Om din tillämpning håller reda på RelMemberID-värden för element kan du ställa frågan direkt mot faktavyn. Exempel: Om du vill välja datavärdena för produkten med RelMemberId 3 (100-20) i marknaden med RelMemberId 2 (East), vid tidpunkten med RelMemberID 4 (Q3) kan du skriva på följande sätt:

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

Det vanligaste är att frågor som ställs mot faktavyn innehåller kopplingar till dimensionsvyerna. Med kopplingar skulle motsvarigheten till föregående fråga se ut på följande sätt:

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

Namnet på stjärnvyn

Namnet på stjärnvyn fås från kolumnen StarViewName i kubkatalogvyn.

Innehåll i stjärnvyn

Stjärnvyn innehåller ett varierande antal kolumner av följande två typer:

Dimensionskolumner
En kolumn för varje dimension förutom ankardimensionen

Ankarelementkolumner
En kolumn för varje ankardimensionselement

I Tabell 18 visas detaljer om de två typerna av kolumner i stjärnvyn.


Tabell 18. Innehåll i stjärnvyn
Namn Typ Innehåll
I dimensionskolumner:

Kortnamnet på dimensionen fås från kolumnen RelDimensionName i kubvyn.

VarChar(80) Elementnamn.
I ankarelementkolumner:

Kortnamnet för elementet fås från kolumnen RelMemberName i dimensionsvyn för ankardimensionen.

Double Datavärdet för den här cellen.

Ställa frågor mot stjärnvyn i UNIX och Windows NT med hjälp av SQL-satser

Om du vill få åtkomst till data i stjärnvyn måste din tillämpning först avgöra namnet på stjärnvyn från kubkatalogvyn.

Exempel: Om du vill få reda på namnet på stjärnvyn för databasen Basic i tillämpningen Sample, formulerar du frågan på följande sätt:

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

Resultatet på frågan kan se ut ungefär på följande sätt: OLAPSERV.SAMPBASI_STARVIEW

Om du vill välja datavärdena för produkten 100-10 i marknaden Central, under det första kvartalet skriver du på följande sätt:

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

Om du vill välja alla produkter i regionen Central, där vinsten sjönk under det andra kvartalet skriver du på följande sätt:

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

Alla element i stjärnvyn befinner sig inte på samma hierarkiska nivå, så konstruera frågorna noggrant när du använder SQL till att utföra hopslagningsåtgärder. De element som väljs från en dimension bör vara på samma nivå så att du undviker dubbel hopslagning.

Exempel: Följande SQL-sats visar element som väljs från olika nivåer i stjärnvyn (vissa Sales-värden kommer att räknas två gånger eftersom två olika nivåer i Sums slås ihop).

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

Om vi förutsätter att Illinois ingår i regionen Central och att Q1 ingår i 1996 så kommer frågan resultera i att siffror för PROFIT från både nivåerna State och Region samt nivåerna Quarter och Year summeras. Eftersom regionen Central redan innehåller data för Illinois räknas data för Illinois och Q1 två gånger i summan. Om du vill rätta till SQL-satsen så att den rätt räknar samman försäljningssiffrorna för två stater i regionen Central under två olika kvartal kan du göra på följande sätt:

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


[ Början av sidan | Föregående sida | Nästa sida | Innehåll | Index ]