rudolf_kleurenbalk.png

Besteed meer tijd aan de tijddimensie!

De meest gebruikte dimensie in een rapportageomgeving is de tijddimensie, maar ontwikkelaars besteden er meestal niet veel aandacht aan. Vaak wordt de tijddimensie gewoon gegenereerd met de wizard van de ETL-tool. Een beetje aandacht voor de opzet van de tijddimensie draagt bij aan gebruiksgemak en kan een aantal problemen voorkomen. Bedenk dat een tijddimensie wordt gebruikt in elk rapport dat er wordt gebouwd, waardoor het heel moeilijk is om deze in een bestaande omgeving nog aan te passen. In deze blog een aantal ideeën om de tijddimensie te verrijken:

  • Voeg extra attributen toe
  • Definieer tijdgroepen
  • De tijddimensie is niet statisch
  • Let op datatypen

Voeg extra attributen toe

Hoe vaak moet een gebruiker zelf filters definiëren in rapporten, zoals huidig en vorig jaar en huidige en laatste week? Vaak wordt dat gedefinieerd op basis van de systeemdatum of op geladen gegevens. Een organisatie verstuurde elke week een standaardrapport over de prestaties tot en met de afgelopen week. Dat kon pas op dinsdag, omdat de definitie van afgelopen week de een na laatste week met data was. Pas als er data van maandag was geladen, werd de juiste week in de rapporten geselecteerd. Het is handiger om de definities van laatste week, huidige week, huidig boekjaar etc. eenduidig vast te leggen en dit in de tijddimensie op te nemen. Ook levert dit afgeleide attributen op. Ik neem graag de volgende extra attributen op:
indicatoren: vandaag, gisteren, huidige en laatste week, huidige en laatste maand, huidig en vorig jaar
Afgeleid van indicatoren: aantal jaren, maanden, weken geleden

Definieer tijdgroepen

Vaak wil je in een rapport meerdere groeperingen over de tijd opnemen, bijvoorbeeld laatste maand, vorige maand, year-to-date. OLAP-tools bieden hier mooie functies voor, rapportagetools wat minder. Door aan de tijddimensie een tijdgroep te hangen, kan je dit soort groeperingen ook eenvoudig in andere situaties gebruiken. Een voorbeeld van een tijddimensie met maanden:

Tijddimensie

Tijd key

Maand omschrijving

Jaar

Huidige Maand

200901

Januari 2009

2009

Nee

200902

Februari 2009

2009

Nee

200903

Maart 2009

2009

Ja

200904

April 2009

2009

Nee

Tijdgroepen:

Groepnaam

Tijd key

Year-to-date

200901

Year-to-date

200902

Year-to-date

200903

Huidige maand

200903

Vorige maand

200902

Op deze manier kun je eenvoudig een rapport maken, waarin YTD, huidige maand en vorige maand naast elkaar worden getoond.

De tijddimensie is niet statisch

Omdat meerdere attributen in de tijddimensie afhankelijk zijn van het laadmoment, is het nodig voortaan de tijddimensie tijdens elk laadproces te verversen. Dit is geen enkel probleem, langer dan een paar minuten hoort dat niet te duren.

Let op datatypen!

Met name wizards zijn berucht. Als het maandnummer een tekstveld is, wordt het lastig om maanden te sorteren, omdat 12 dan voor 2 komt. Ook een tegenintuïtieve jaar-maand-combinatie als tekstveld kan gemakkelijk tot chaos leiden. En het is helemaal niet gemakkelijk om dat later nog eens te veranderen.

Conclusie

Besteed meer aandacht aan de tijddimensie. Dat levert tevreden gebruikers op en kan je hoofdbrekens besparen bij het samenstellen van rapporten.

Reageren? | 15-06-2009 | RSS

scheidingslijntje

Jonalyn zei op 14-08-2011

Kudos! What a neat way of tnhkiing about it.

____________________________________________________________________