Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: bepalen granulatie feitentabel
Prev Next
You are not authorized to post a reply.

Author Messages
Ruud BootsUser is Offline

Posts:62

20-04-2009 16:08:45 Alert 

Voor een kubus 'personeel info' wil ik de granulatie van een feiten tabel bepalen.
Initieel is het personeelsnummer en een dagelijks timeid de primary key.
één van de foreign keys is een afdelingscode, tbv een dimensie 'afdeling'
In de praktijk blijkt het voor te komen dat een medewerker in de bron geregistreerd kan staan voor meerdere afdelingen.
(bv. voor 75% afdeling A en 25% voor afdeling B)
Hoe kan dit het beste in dit model oplossen?
Arjan FraaijUser is Offline

Posts:110

20-04-2009 20:14:19 Alert 
Wat wordt er in de fact geregistreerd is mijn eerste vraag? Hoe wordt in de fact de afdeling FK bepaald? Als je deze in de fact tabel wil opnemen zou het dus kunnen zijn dat er per medewerker meerdere fact regels op een dag worden geregistreerd afhankelijk van de business requirement.
Stel ik werk 3 uur voor X en 5 uur voor Y en op andere dagen is het weer verschillend. De business requirement is dat onder andere op uurniveau bepaald moet kunnen worden voor welke afdeling dit geweest is. Dan dient de fact granualiteit dus op uur niveau te liggen. Als de uurverdeling gelijk blijft dan zouden dit dus in een 5 daagse werkweek 10 fact regels moeten opleveren.

Als ik 1 dag voor X werk en 4 dagen voor Y dan is het dus dag niveau. hierbij komen op een 5 daagse werkweek dus 5 fact regels. Het is een beetje lastig aan te geven omdat niet bekend is wat in de fact moet worden opgenomen.

Als ik het zo lees is voor de persooneels informatie gekozen om de afdeling in de fact niveau vast te leggen, wellicht had je dit moeten registreren op medewerkeniveau en dus in de personeels dimensie en onderdeel moeten maken van de Surrogate BusinessKey.
Een andere oplossing is denk ik het gebruik maken van een weighting factor tabel om de afdeling op fact niveau vast te leggen. (Kimball bridge table)
Of te wel je komt terecht in de many to many SSAS structuren, Marco Russo heeft hier een hier een whitepaper over geschreven http://www.sqlbi.eu/Portals/0/Downloads/M2M%20Revolution%201.0.93.pdf

Zie bv pg51 DimCustomer -> DimCustomerProfile volgens mij kan je dit vertalen in DimPersoneel > DimPersoneelAfdeling met een weight factor voor de percentage verdeling.

Om tot een echt goed antwoord te komen zou echter de business case bekend moeten zijn om te zien hoe de facts en dimensies op te bouwen.
Hoop dat je hier iets aan hebt.

Gr,
Arjan Fraaij

Ruud BootsUser is Offline

Posts:62

20-04-2009 20:48:00 Alert 
Arjan,

In de eerste plaats hartelijk dank voor je reactie en de link. Het model staat nog niet vast, jouw idee om de afdeling op te nemen in de personeelsdimensie is zeker een optie. Hoe zou je dan een weging zoals bv. 75/25 kunnen implementeren? Uitgaande dat deze verdeling pre-calculatief in de bron is vastgelegd, dus niet op basis van werkelijk gewerkte uren of dagen in een week.

mvgr
Ruud
Arjan FraaijUser is Offline

Posts:110

21-04-2009 09:34:53 Alert 
Hallo Ruud,

Neem even een kijkje op http://msdn.microsoft.com/en-us/library/ms345139.aspx sectie Measure Expressions and Many-to-Many Dimensions

hierbij moet je de volgende vergelijking maken:
Sales = Jouw Fact
Store = DimPersoneel
Ownership = DimBridgeAfdeling waarbij kolom ownership de weeg factor bevat
Organization = DimAfdeling

Kan in dit forum helaas geen plaatjes toevoegen dus even tekstueel proberen. Ga eens kijken of ik er een blogje voor kan maken.

Wat zou je dus kunnen gaan krijgen:
Fact_PersoneelInfo
- Dim_Personeel_FK
- Measure 1
- Measure etc

Dim_Personeel
- Dim_Personeel_PK
- Naam
- Woonplaats
- ETC

Dim_BridgeAfdeling
- Dim_Personeel_FK
- Dim_Afdeling_FK
- Factor

Dim_Afdeling
- Dim_Afdeling_PK
- Naam
- Etc

De Bridge tabel gaat dan bv de volgende informatie bevatten..
Dim_Personeel_FK Dim_Afdeling_FK Factor
1 A 0.25
1 B 0.75
2 C 1.00
3 A 0.15
3 B 0.35
3 C 0.50

Je measures moet je dan aanpassen om je bridge tabel factor te gebruiken, dit kan je na lezen op de MSDN page.

Om dit te realiseren moet je natuurlijk wel je ETL inrichten om tot de dimensionele structuur te komen, om dit echter uit te leggen gaat een beetje te ver maar er zijn voldoende kimball cursussen en boeken verkrijgbaar :-) of je moet een Data Vault fan zijn.

Je kan mij natuurlijk altijd inhuren.... of is reclame spam op dit forum verboden?

Met vriendelijke groet,
Arjan Fraaij

Kimball trainingen in europa worden verzorgt door www.q4k.com (Er is momenteel een Dimensional modeling training gepland zover ik kan zien)

Arjan FraaijUser is Offline

Posts:110

21-04-2009 11:31:58 Alert 
Ruud,

Nog even een kleine waarschuwing, veel functionaliteit is beperkt in de Standard edition van SQL SSAS 2005/8.
Het bijvoorbeeld aanpassen van je measure expression om de factor te gebruiken is alleen mogelijk in de Enterprise / developers edition.

Een algemene tip is altijd de BIDS project properties even aan te passen naar welke SSAS edition je gebruikt zodat je niet voor verassingen komt te staan.

Ruud BootsUser is Offline

Posts:62

21-04-2009 11:44:42 Alert 
Hallo Arjan,
Super, bedankt voor je uitgebreide uitleg en vertaling naar mijn casus. Hiermee kan ik goed uit de voeten. Dank voor je aanbod tot inhuur, maar voor nu (nog) niet nodig.

mvrgr
Ruud
You are not authorized to post a reply.
Forums > Forums > Business Intelligence > bepalen granulatie feitentabel



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use