|
De probleemgebieden
bij datawarehousing
'Datawarehouse
volwassen als het de terabyte overschrijdt'
De
behoefte aan informatie houdt gelijke tred met de ontwikkeling
van informatiesystemen. De vraag daarbij is wat wat aanstuurt:
is het 'customer need' of 'technology push'? Data-informatiesystemen
worden steeds belang-rijker en daarmee ook steeds omvangrijker.
Het voordeel van het vergaren van al die data komt pas goed
tot zijn recht wanneer er relaties gelegd kunnen worden tussen
de data uit verschillende informatiesystemen; iets dat pas
goed mogelijk wordt als wordt overgegaan op 'dataware-housing'.
Net als bij een 'normaal' logistiek systeem, moet ook bij
datawarehousing van tevoren goed worden nage-dacht over wat
wordt opgeslagen, hoe het wordt opge-slagen en met welk doel
we het gaan opslaan. Eénmaal gemaakte keuzes voor een bepaalde
systematiek hebben immers een weerslag op toekomstige modificaties.
In iedere organisatie wordt informatie verzameld: productinformatie,
klantinformatie, verkoopinformatie, marketing-informatie enzovoort.
Vaak leidt dit tot een grote diversiteit aan informatiesystematieken
en -systemen: iedere afdeling bouwt zijn eigen data-eilandje
en het bedrijf raakt op een grandioze manier het overzicht
kwijt: productie weet niet wat de behoeften van sales en marketing
zijn, marketing heeft geen idee hoe de logistiek draait, de
facturatie krijgt gegevens van sales, maar weet niet hoeveel
producten daadwerkelijk zijn uitgeleverd en hoeveel orders
nog wachten op uitlevering... De oplossing ligt natuurlijk
voor de hand: koppel al die systemen. Mocht dat niet haalbaar
zijn, maak dan een groot nieuw systeem waar al die afzonderlijke
systemen in worden ondergebracht of kies ervoor de data uit
al die afzonderlijke systemen in een grote, nieuwe database,
een 'datawarehouse', onder te brengen.
Het
klinkt logisch en ook wel gemakkelijk, maar de praktijk is
weerbarstig. Rien Matthijsse, directeur van Marobi, Oracle-specialist
en iemand met veel ervaring op het vlak van dataware-housing,
gaf er voor Centor's Oracle-specialisten een presentatie over.
Het Orakel beperkt zich in dit artikel echter tot een inventarisatie
van de meest voorkomende problemen.
Probleemgebied
1: De eindgebruiker
Wanneer je met eindgebruikers praat, blijkt vaak dat ze niet
weten wat ze willen. Ze hebben geen idee wat de potentie van
de reeds bestaande operationele systemen is, want het probleem
is juist dat ze dat overzicht verloren hebben. Met andere
woorden de 'initial requirements' zijn vaak uiterst vaag.
Een bijkomend probleem is dat, als eindgebruikers al weten
wat ze willen, ze gaandeweg de formulering van hun informatiebe-hoefte
en het bouwen van het systeem, steeds meer willen.
De ervaring is dat wanneer een datawarehouse on-line wordt
gebracht er al een hele stapel wijzigingsverzoeken ligt te
wachten, want 'we wisten niet dat dát ook kon, maar dan willen
we dat natuurlijk ook'. Een tweede val waar ontwikkelaars
in kunnen trappen is dat het systeem al begint te groeien
voordat het goed en wel geïmplementeerd is: 'Als je toch bezig
bent, zou je dan...'
De ervaring leert dat je, wanneer je éénmaal begint met bouwen,
blijft bouwen.
De
beheerders en gebruikers van de operationele systemen, die
data leveren aan het datawarehouse, hebben vaak niet in de
gaten dat een wijziging in hun systeem gevolgen heeft voor
het centrale systeem. Er komt bijvoorbeeld een nieuwe versie
van de database-software uit en zonder zich te realiseren
dat een gewijzigde manier van opslag van de records grote
gevolgen kan hebben voor het centrale systeem wordt de nieuwe
versie geïmplementeerd. Wat ook gebeurt, is dat plotseling
een extra veldje in de records verschijnt ('dat is toch wel
handig') of verdwijnt ('gebruikten we toch niet'). Dat soort
wijzigingen en aanpassingen resulteert in grote problemen
in het dataware-house: informatie is niet meer volledig, de
volgorde van de velden wordt omgedraaid enzovoort. Zo kun
je bezig blijven...
De consequentie van één en ander is en daar zijn nog
te weinig bedrijven zich van bewust - dat het onderhoud
van bestaande datawarehousing-systemen vaak duurder is dan
het initiële bouwtraject.
Vaak ook is er sprake van een 'muur' tussen de IT-mensen en
de rest van de business; dat hoeft geen opzet te zijn, maar
is meestal het gevolg van elkaar niet begrijpen. Het grote
probleem is dat je elkaar bij het opzetten van een datawarehouse
nu juist wél moet begrijpen.
Probleemgebied
2: Definities van terminologie
Wat is wat? Het lijkt een obligate vraag, maar het antwoord
op deze vraag levert in de praktijk vaak problemen op. Wat
is bijvoorbeeld een 'klant'? De afdeling Verkoop denkt bijvoorbeeld
aan iets totaal anders wanneer zij het woord 'klant' bezigen,
dan iemand van de logistieke afdeling. Voor een verkoper is
het adres de plaats waar hij met de auto naartoe rijdt om
een verkoopge-sprek te voeren. Voor de logistieke medewerker
is het adres het afleveradres waar het pakketje naar toe moet
en voor de facturatie is het adres de postbus waar de factuur
naartoe moet worden gestuurd.
Probleemgebied
3: Key-management
Ieder record dat wordt geproduceerd heeft een sleutel, waaraan
het te herkennen is. De keuze voor een sleutel-systematiek
is structureel. Want dat is iets wat je niet zomaar na drie
maanden nog even wijzigt. Over het antwoord op de vragen 'Welke
sleutel of sleutelsystematiek gaan we toepassen, een productie-key
of een artificiële key? En hoe gaan we het doen, sequentieel,
at random?' moet heel goed worden nagedacht, want iedere keuze
heeft zijn consequenties. Wanneer bijvoorbeeld wordt gekozen
voor een productie-key en op termijn wil men de ontwikkelingen
in de tijd van een bepaald product gaan volgen en in kaart
brengen, stuit men op grote problemen.
Probleemgebied 4: Datamanagement
Bestaande informatie wordt regelmatig gewijzigd: een klant
verhuist en krijgt een nieuw adres of gaat trouwen en krijgt
niet alleen een nieuw adres maar ook een andere naam. Nu zijn
dit nog voor de hand liggende voorbeelden, maar het kan natuurlijk
veel geniepiger: er wordt een andere schrijfwijze gehanteerd,
iets wat voorheen met een 'c' werd geschreven wordt nu met
een 'k' vermeld…
Wanneer de consequenties van dergelijke modificaties en wijzigingen
niet goed worden overdacht, is er sprake van een enorme vervuiling
van je systeem. En dat niet alleen; wanneer gegevens slechts
in één van de operationele systemen worden gewijzigd is het
leed niet te overzien. De beheerder van het datawarehouse
moet dan gaan zoeken wanneer en op welke manier de wijzigingen
zijn opgetreden. Daarbij kan het nodig zijn één en ander tot
op recordniveau uit te zoeken. Vaak hebben records bijvoorbeeld
een tijdsaanduiding zodat je kunt nagaan wanneer de
wijzigingen voor het eerst optraden maar soms ook niet
en moet worden teruggegaan tot de transactielogs van de operationele
systemen. Ga er maar aan staan.
Een
ander probleem in dit kader staat bekend als de 'slow moving
dimensions'. Stel dat één of een aantal klanten overgaat van
de ene verkoper naar de andere. Op zich geen probleem, want
in de data van de klant wordt de naam van de account-manager
gewijzigd. Maar nu vindt die wijziging plaats op 15 oktober
en de stand op 31 december is bepalend voor de hoogte van
de bonus van de verkopers. De eerste tien maanden omzet die
de betreffende klant heeft opgeleverd moet ten gunste komen
van de verkoper die van 1 januari tot en met 14 oktober verant-woordelijk
was voor de klant en de periode van 15 oktober tot en met
31 december van de andere verkoper. Dergelijke wisselingen
moeten natuurlijk wel traceerbaar blijven.
Probleemgebied
5: Integratie
Het zijn natuurlijk met name de grote bedrijven die behoefte
hebben aan datawarehouses. Vaak gaat het daarbij om moedermaatschappijen
die diverse dochters 'onder zich hebben hangen'. Dan praat
je niet meer over een logistiek systeem, een verkoopsysteem
en een facturatiesysteem waarvan de data moet worden verzameld
en gekoppeld, maar over vijf of tien logistieke systemen en
evenzoveel verkoop- en facturatiesystemen. Wanneer datamanagement
voor systemen binnen één bedrijf al een issue is, zal duidelijk
zijn dat bij implementatie van een gezamenlijk datawarehouse
voor een aantal werkmaatschappijen datamanagement een Issue
met een hoofdletter is. Vaak hebben de werkmaatschappijen
een eigen uniek klantenbestand en is er weinig overlap met
klanten van andere werkmaatschappijen, maar je kunt wachten
op de vraag om een totaaloverzicht van alle klanten, waarbij
aan de hand van bijvoorbeeld een RFM-analyse (Recency,
Frequency, Monetairy) een klantanalyse moet worden
gemaakt. Dan moet je alle data met elkaar in verband brengen
en weet je zeker dat klant P.G. Jansen van de ene werkmaatschappij
dezelfde is als klant P.G. Jansen van de andere werkmaatschappij?
Probleemgebied
6: Datamodelling
De vraag bij datamodelling is 'Moeten we normaliseren of niet?'
Welke afwegingen moeten hiervoor worden gemaakt? Het belang
daarbij is 'consistentie'. Die consistentie kan vele malen
beter worden gewaarborgd in een genormaliseerde database dan
in een niet-genormaliseerde database. Maar aan de andere kant
kan met een niet-genormaliseerde database enorme perfor-mance-winst
worden geboekt. Bij datamodelling geldt de formule 'tijd x
ruimte = constant'. Als je te maken hebt met een tijd-kritisch
systeem, zul je kiezen voor een niet-genormaliseerde database,
maar dat kost wel meer geheugenruimte. Is geheugen-ruimte
echter een probleem en tijd minder, kies dan voor een genormaliseerde
manier van inrichten van je database.
Wanneer een goede analyse van de business wordt gemaakt, ligt
het datamodel natuurlijk redelijk voor de hand, maar er is
geen éénduidige keuze.
Probleemgebied
7: De operatie
In een datawarehouse kunnen met gemak tien miljard records
voorkomen. Wanneer je op dat soort enorme tabellen bijvoor-beeld
tien indexen moet onderhouden, heb je een probleem. Die tien
indexen zijn niet te onderhouden en de update-inserts wor-den
veel te duur. Een oplossing die daarbij wel gebruikt wordt
is eerst alle indexen 'droppen', dan het werk op de betreffende
entiteit uitvoeren en vervolgens alle indexen weer 'rebuilden'.
Zeker bij het indexbeeld van Oracle is daarbij winst te behalen.
Een
ander probleem is de back-up. Wanneer een datawarehouse-systeem
1,2 terabyte aan data heeft, is het maken van een back-up
natuurlijk een onuitvoerbare opgaaf. Maar als je niets doet
aan opschoning van de bestanden blijft het bestand continu
groeien. Dit is een probleem dat over het algemeen vergeten
wordt. Er mag data uit, sterker nog er móet data uit. Maar
er zijn zelfs databases waarin wel een 'insert'- en 'modify'-
maar geen 'delete'-voorziening is opgenomen. Wanneer als eis
wordt gesteld dat alle data tien jaar bewaard en toe-gankelijk
moet blijven, kan met een gerust hart elf jaar oude data worden
verwijderd. Hóe de data wordt weggegooid is een probleem op
zich. Zeker wanneer aggregaten worden bijge-houden. Wat moet
er uit de aggregaten worden weggegooid? Of moeten aggregaten
helemaal opnieuw gebouwd worden?
Hetgeen
in dit artikel behandeld is, is verre van volledig. De dagelijkse
praktijk stelt ons telkens weer voor verrassingen. En eigenlijk
moeten we bekennen dat dát misschien wel de charme van het
vak is: problemen oplossen, die in de begintijd van het programmeren
wel eens zijn omschreven als 'een olifant achteruit door het
oog van een naald sturen', geeft de Oracle-specialist natuurlijk
meer bevrediging dan wanneer deze simpel op een knop moet
drukken en het programma wordt geïnstalleerd. Gezien de behoefte
aan informatiesystemen en de complexiteit van de problematiek,
zullen we - ondanks alle goede instrumen-ten die ons ten dienste
staan - voorlopig nog wel olifanten achteruit door zo'n heel
klein, miniem oogje moeten sturen.

|