Home / Analysis Services / Hierarchieën in Analysis Services 2005

Hierarchieën in Analysis Services 2005

Iedere kent ze wel, hierarchieën in Analysis Services 2005. Met een hierarchy kun je bepaalde data op verschillende niveau’s aan de eindgebruiker tonen. Een bekend voorbeeld is:

Jaar -> Kwartaal -> Maand -> Dag

Omdat ik het nogal onduidelijk vind hoe je dit precies moet configureren leek het mij handig hier een blogje over te schrijven.

Kennis hiervan heb ik opgedaan tijdens een Cursus bij Infosupport en door het in de praktijk toe te passen in een project met OLAP Cubes. In onderstaand voorbeeld ga ik ervanuit dat er gebruik gemaakt wordt van een datumdimensie die er ongeveer zo uitziet:

ssas_datumhierarchy_01

1. Maak een nieuwe Analysis Services projectje aan en configureer een datasource en een datasourceview. Voeg aan de datasourceview de datumtabel toe uit het datawarehouse, bijvoorbeel DimDatum of DimTime.

2. Maak een nieuwe dimensie aan door met de rechtermuisknop te klikken op Dimensies -> New Dimension. De wizard zal opstarten. Kies bij Dimensietype voor ‘Time Dimension’ en selecteer de tabel die je net in je datasourceview hebt toegevoegd, de DimDatum dus. Je krijgt daarna onderstaand schermpje. Vul de juiste waarden in, ongeveer zoals in het voorbeeld. Dit kun je later ook nog aanpassen.
ssas_datumhierarchy_02

Vervolgens krijg je dit schermpje:

ssas_datumhierarchy_03

Geef je dimensie een naampje, bijvoorbeeld: Datum. Als alles goed is gegaan zal de gegenereerde dimensie verschijnen in je lijstje met dimensies.

Nu denk je vast, is dat het? Nee, er moeten namelijk nog een paar heel belangrijke aanpassingen gedaan worden die je zeker vergeet als je het niet weet, namelijk de onderlinge relaties tussen de hierachieën instellen. Daarnaast moeten er nog wat sleutels worden goedgezet die een jaar + maand als uniek maken.

3. Open de dimensie. Met het cirkeltje op het plaatje zie je dat de onderlinge relaties niet goedstaan. Dit zie je snel over het hoofd!

ssas_datumhierarchy_04

Wat we nu gaan doen is de relaties goed zetten.

4. Klap aan de linkerkant van je scherm de DatumID open (of de primary sleutel van je datum dimensie). Je krijgt nu alle attributen te zien die gekoppeld zijn aan de sleutel.

5. Sleep de parent attribuut onder de child. In ons geval sleep je jaar onder Kwartaal, vervolgens Kwartaal onder Maand en Maand onder Dag. Dit doe je allemaal aan de linkerkant van je scherm dus niets naar het midden slepen!

6. Let goed op dat de namen van je hierarchie gelijk zijn aan het plaatje in het midden. Ik gebruik in mijn voorbeeld MaandNummerVanJaar en MaandNaam. De hierarchy configureren we op het integerniveau van de dimensie dus we gebruik maandnummervanjaar en kwartaalnummer van jaar. Dit moet ook zichtbaar zijn in het midden van het scherm waar de feitelijke hierarchy wordt opgebouwd!!

ssas_datumhierarchy_05

7. Als het goed is krijg je onderstaande afbeelding te zien. Je ziet dat de vierkante blokjes nu met elkaar zijn verbonden met pijltjes, dit betekent dat de relaties goedstaan! Uiteraard kun je zoveel hierarchieën aanmaken als je zelf wilt.

ssas_datumhierarchy_06


8. Nu moeten we nog de sleutels goedzetten. Een maand is namelijk niet uniek! Hetzelfde geldt voor een kwartaal. Een maand komt immers voor in ieder jaar! Klik aan de linkerkant op het attribuut “MaandNummerVanJaar” en dan op properties. Er verschijnt een flinke lijst aan properties aan de rechterkant van je schem. De property die je nodig hebt is: “KeyColums”. Klik op het … knopje bij de property. Je krijgt nu dit schermpje:

ssas_datumhierarchy_07

Klink links op “Add” en zoek bij Source naar “Jaar”. Wat je nu doet is een combinatie maken van maand + jaar zodat deze uniek wordt.

ssas_datumhierarchy_08

Klik op OK! Herhaal dit voor het KwartaalNummerVanJaar attribuut. Om te testen of het goed is geconfigureerd kun je de Dimensie even deployen/processen en op de “Browse” knop drukken. Als alles goed is krijg je onderstaande afbeelding te zien! Je krijgt nu voor de maanden de nummers 1 t/m 12 te zien en de kwartalen 1 t/m 4. Dit is natuurlijk niet zo netjes want we willen graag de maandnamen zien en de Kwartaalnummers!

9. Dit doe je bij de property “NameColum”. Stel dat we MaandNummerVanJaar nemen als attribuut dan vullen we bij NameColumn in: MaandNaam. Deze kun je als het goed is kiezen uit het lijstje!

Voorbeeldje:

ssas_datumhierarchy_09

Als het niet wordt weergegeven als hierboven dan is de kans groot dat je sleutels of hierarchie niet juist is ingesteld!

Meerdere hierarchieën en de configuratie van de sleutels
Hennie vroeg hoe je de sleutels moet configureren wanneer je meerdere hierarchieën wilt gebruiken in een dimensie. Ik heb hier even naar gekeken en het antwoord is vrij eenvoudig.

Stel we hebben een dimensie DimFunctie. In deze dimensie hebben we twee hierarchieën:

  • Functie Type -> Functie Naam
  • Functie Niveau -> Functie Naam

We moeten nu dus twee combinaties van sleutels maken, voor allebei de hierarchie een. Wat je nu het beste kunt doen is de eerste hierarchie configureren zoals hierboven beschreven is. Om de tweede hierarchie te configureren doe je het volgende:
1. Sleep vanaf de rechterkant je hoogste niveau naar het midden, een nieuwe hierarchie verschijnt (in mijn geval Functie Niveau). Vervolgens sleep je vanaf rechts het tweede niveau daaronder (Functie Naam). Als het goed is herkent het programma dat je Functie nu twee keer wilt gebruiken en maakt hij een nieuwe attribuut aan die hetzelfde heet, gevolgd door het cijfer 1. Ik krijg nu dus een attribuut aan de linkerzijde: Functie Naam 1. Vervolgens configureer ik deze op dezelfde manier, ik sleep dus het parent item onder Functie Naam.

ssas_datumhierarchy_10

Hennie vroeg ook nog om een voorbeeld van een tijdsdimensie met meer dan 1 hierarchie, zie screenshot:

ssas_datumhierarchy_11

Check Also

Analysis Services Enterprise vs Standard

Als je bij een Microsoft Analysis omgeving te maken hebt met meerdere servers met verschillende …

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.