Denken Over Data

Jaar: 2010

  • Tijd in een datawarehouse

    Tijd in een datawarehouse

    Het aspect tijd speelt een belangrijke rol in ieder datawarehouse. In deze blog zal ik uiteenzetten welke tijdsaspecten we zoal hebben en wat hun nut is.

    Allereerst gebruiken we een datawarehouse om historische data te bewaren. Dit stelt ons in staat om de situatie in het verleden te bekijken en trends te analyseren. Zo kunnen we bijvoorbeeld in een datawarehouse het aantal aan een project bestede uren van jaren terug bekijken terwijl gegevens uit die tijd in het bronsysteem mogelijk niet eens meer beschikbaar zijn. Dit wordt ook wel het time-variant principe genoemd.

    Verder is er ook nog zoiets als het non-volatility principe. Dit zorgt ervoor dat je op ieder moment in de tijd een in het verleden geproduceerd rapport exact kunt reproduceren. Stelt u zich een universiteit voor met verschillende faculteiten. Aan deze faculteiten zijn onderzoekers verbonden (middels een aanstelling). Onderzoekers verbonden aan verschillende faculteiten werken gezamenlijk aan het project genaamd IMPACT. Stel we draaiden op 15 januari 2009 een rapport uit met het aantal in het jaar 2008 besteedde uren aan project IMPACT, dan moeten we anno nu dit rapport nog exact zo kunnen uitdraaien. Dit alles moet mogelijk zijn ongeacht het feit dat er inmiddels wijzigingen zijn opgetreden in de organisatiestructuur (twee faculteiten zijn inmiddels gefuseerd) en ongeacht het verlaat invoeren van gewerkte uren door diverse medewerkers die na 15 januari 2009 met terugwerkende kracht zijn doorgevoerd.

    Tegelijkertijd wil je ook in staat zijn over besteedde uren in het jaar 2008 te rapporteren inclusief de achteraf doorgevoerde wijzigingen. Als het datawarehouse moet voldoen aan het non-volatility principe betekent dit dat we van ieder item de historie moeten gaan bijhouden.

    Deze twee principes worden doorgaans niet ondersteund door transactiesystemen waarover een BI laag is gelegd. Immers transactiesystemen zijn met een heel ander doel gebouwd, namelijk het ondersteunen van het businessproces, zoals het vastleggen van orders, zodat er geleverd kan worden. Managementinformatie is voor dit systemen aanvankelijk van secundair belang. Dit zijn volgens mijn mening dan ook geen echte datawarehouses, ongeacht het feit dat een BI laag overheen ligt.

    Ook zijn er systemen dat toch wel degelijk het leveren van managementinformatie als primair doel heeft maar dat niet aan het non-volatility principe voldoet. Vaak wordt dit principe niet op zijn waarde geschat of gewoon als teveel rompslomp ervaren. Het draagt echter bij aan de geloofwaardigheid van de managementinformatie die het systeem produceert.

    Stel je voor dat je (teruggrijpend op het eerdergenoemde voorbeeld) op 15 januari 2009 aan de faculteitsdirecteur een overzicht moet leveren van het aantal onderzoeksuren dat binnen zijn faculteit aan verschillende projecten is besteed in het jaar 2008. Hij presenteert deze cijfers vervolgens tijdens het een overleg met de het college van bestuur. Voorafgaand aan de volgende vergadering, een maand later, krijg je het verzoek om deze cijfers nogmaals te leveren, maar nu verfijnd op maandniveau en per type activiteit. In het urenregistratiesysteem is wat achterstallige administratie over het jaar 2008 bijgewerkt. Deze data is inmiddels ook ingelezen in het datawarehouse. Je hebt dus de beschikking over “verbeterde” informatie maar… helaas, je cijfers die je op 15 januari 2009 hebt geleverd, zijn niet meer exact te reproduceren. Voor de meeste projecten wijken de besteedde uren nu iets af van de cijfers op het vorige publicatiemoment. De faculteitsdirecteur is nu in verlegenheid gebracht omdat hij aan het college van bestuur mag gaan uitleggen waarom zijn managementinformatie over het jaar 2008 zomaar is veranderd. Hij hoort de schampere opmerkingen al over tafel gaan: “Volgende maand is het zeker weer anders!”. Uiteraard krijg jij deze opmerkingen keurig doorgeserveerd.

    Je kunt er natuurlijk altijd voor kiezen om na ieder moment dat een datawarehouse wordt bijgewerkt een back-up te maken en deze naar behoefte weer online te plaatsen, mocht men terugwillen grijpen op de situatie in het verleden. Dit is een tamelijk onpraktische benadering omdat deze steeds een beheershandeling vereist. Veel mooier zou zijn als het non-volatility principe is ingebakken in de architectuur van het datawarehouse.

    Een datawarehouse die is opgezet volgens de Datavault benadering voldoet hier aan. Dit is een van de redenen waarom ik zo’n liefhebber ben van deze benadering. Zonder er diep op in te gaan komt de het er op neer dat alle in het datawarehouse ingelezen brondata op efficiënte wijze met een bepaalde geldigheidsduur wordt opgeslagen. Van iedere entiteit wordt bij ieder attribuut een “geldig vanaf-“ en een “geldig tot-” datum vastgelegd. Hetzelfde geldt voor relaties tussen de opgeslagen entiteiten. Door ieder deeltje informatie een geldigheidsduur mee te geven, kan aan het non-volatility principe worden voldaan. Ik besef dat deze laatste alinea vele vragen bij u oproept en hopelijk uw nieuwsgierigheid gewekt heeft. Daarom zal in een volgende blog zal ik hierover wat gedetailleerder in gaan.

  • Datawarehousing: Bezint eer ge begint

    Datawarehousing: Bezint eer ge begint

    Over het algemeen ontstaat de behoefte aan een Enterprise Data Warehouse (EDW) geleidelijk. Iemand in de organisatie heeft behoefte aan bepaalde statistieken die hem kunnen helpen bij het nemen van beslissingen. In het begin wordt deze vraag op een ad hoc wijze opgepakt, eventueel wordt er een business intelligence tool voor gebruikt. Na verloop van tijd komt men erachter dat er regelmatig her en der in de organisatie soortgelijke acties lopen en dat dit allemaal wel erg veel tijd kost. Trouwens: hoe komt het dat Pietje andere statistieken heeft als Jantje over het zelfde onderwerp? Het is tijd voor een meer centrale aanpak: een EDW project.

    De start van het EDW project zou altijd moeten worden ingeluid met fase van bezinning en analyse. Hier dient men ondermeer de volgende vragen te beantwoorden:

    Vraag: Wie heeft er belang bij een EDW?

    Het gaat er hierbij om te bepalen welke mensen mogelijk eindgebruiker zullen worden van het EDW. Mogelijk hebben zij stokpaardjes of tegenstrijdige belangen.  Dit moet in een vroeg stadium helder zijn zodat hierop geanticipeerd kan worden.

    Vraag: Wat verwachten deze mensen van een EDW?

    Van belang is hier te bepalen of de verwachtingen van de potentiële eindgebruikers wel realistisch zijn. Men dient te beseffen dat de informatie die men aan het EDW wil onttrekken ergens vandaan moet komen en een zeker kwaliteitsniveau moet hebben. Hier geldt het principe Garbage in is garbage out. Ook moet men beseffen dat al het gewenste mogelijk niet in één keer, maar stapsgewijs gerealiseerd kan worden. Verwachtingsmanagement is hier het toverwoord. Dit voorkomt teleurstellingen achteraf.

    Vraag: Staat de directie achter het project?

    Een EDW raakt de gehele organisatie. De data die in het EDW wordt ingelezen wordt in de bronsysteen ingevoerd door vele mensen op allerlei afdelingen en niveaus. Verschillende mensen zijn eigenaar of beheerder van de data. Iedereen heeft binnen de organisatie zo zijn eigen doelstellingen. Deze komen niet noodzakelijkerwijs overeen met de doelstellingen van het EDW project. Weerstand kan dan het gevolg zijn. Soms is het dan nodig dat er “van bovenaf” mensen in een bepaalde richting te sturen.

    Vraag: Is er voldoende draagvlak in de organisatie?

    Zoals hierboven genoemd, raakt een EDW project een heleboel mensen binnen de organisatie. Deze mensen dragen allemaal in meer of mindere mate bij aan het succesvol zijn van het EDW. Het is essentieel dat er door de organisatie heen voldoende draagvlak gecreëerd wordt. Dit komt normaal gesproken niet vanzelf. Als een EDW alleen maar meer werk betekent voor een medewerker (bijvoorbeeld door dat er strengere eisen gesteld worden aan de wijze waarop deze persoon zijn gegevens invoert in een bronsysteem), dan zal deze er niet snel voor warm lopen. Het is dus zaak om mensen vroegtijdig te betrekken bij het project (al is het maar door regelmatige informatieverstrekking)  en ze, waar mogelijk, in ruil ook iets terug te geven. Denk hierbij bijvoorbeeld aan het beschikbaar stellen van nuttige rapportages die gebaseerd zijn op de geïntegreerde data in het EDW.

    Vraag: Is er voldoende geld en mankracht beschikbaar voor het EDW project?

    Deze praktische vraag ligt in het verlengde van het voorgaande. Iets willen is een ding maar er daadwerkelijk resources voor vrijmaken is iets anders. De kosten zijn in het begin van het project het hoogst maar zullen in principe niet stoppen zolang het EDW in gebruik is. Een EDW project blijft gedurende de levenscyclus van het data warehouse de nodige menskracht, geld en aandacht vergen. Idealiter is er minstens een persoon die binnen de organisatie de verantwoordelijkheid draagt voor het “in leven houden” van het EDW. Dit is geen taakje dat je “er even naast” doet. Om het EDW levend te houden moet er naast de nodige technische en functionele beheerhandelingen ook het draagvlak voor het data warehouse op zijn minst gehandhaafd blijven.

    Hopelijk valt u op dat in deze vragen techniek geen enkele rol speelt. Datawarehousing is in de eerste plaats mensenwerk en raakt de gehele organisatie.  Het is daarmee grotendeels een politiek spel. Technologie is slechts het middel waarmee het datawarehouse gerealiseerd wordt en komt  pas een veel later aan bod.

    Maar daarover meer in een volgende post…..