Datawarehouse actueel houden een uitdaging? Deze ervaringen en tips helpen je op weg.

Veel organisaties werken met een datawarehouse. Gelijk hebben ze, want de voordelen zijn zonneklaar. Je kunt verzamelde gegevens in samenhang analyseren en gebruiken voor sturing en besluitvorming. Dat zorgt ervoor dat je eenvoudiger kunt verklaren waarom resultaten zijn zoals ze zijn én je kunt betere voorspellingen doen. De uitdaging is vaak: hoe houd je je datawarehouse actueel? Dat lees je in deze blog.

Veel organisaties gebruiken SQL Server Integration Services (SSIS) als tool voor het ophalen van data uit bronsystemen en het verwerken van deze data in het datawarehouse. Met deze tool kun je de sequentie van bewerkingen op de data in SSIS-packages configureren. De voordelen: veel ontwikkelaars kunnen met deze tool werken, er is een diversiteit aan bewerkingen op de data out-of-the-box mogelijk en voor het ophalen van data uit verschillende bronsystemen zijn vaak standaard connectoren beschikbaar.

Meestal is er nog wel verbetering mogelijk bij de packages zelf die in SSIS ontwikkeld zijn. Maar de grootste uitdaging is het aansturen en monitoren van de verwerkingen in deze packages. Best practice is het gebruik van master-packages voor de aansturing van de verwerking. Default starten packages sequentieel vanuit een master-package. Packages die functioneel en/of technisch niet van elkaar afhankelijk zijn, zouden ook parallel kunnen draaien. Dit verkort de doorlooptijd van de verwerking (het verversen van het datawarehouse gaat sneller).

Een ander probleem is: als er bij één van de verwerkingen fouten optreden, start je doorgaans het aansturende master-package opnieuw. Het gevolg: alle verwerkingen die goed waren afgerond voordat die ene package fout ging, starten óók opnieuw op. Zo gebeurt hetzelfde werk nog een keer. En met een beetje pech gaat ook een volgende package fout, waardoor je de verwerking meerdere keren opnieuw moet starten om die tot een goed einde te brengen.

Uitdagingen bij het toevoegen van nieuwe data

Een enterprise datawarehouse is vaak een spin in het web. Vanuit diverse bronsystemen wordt data geladen en er zijn diverse afnemers van de informatie. Vanuit beide perspectieven is flexibiliteit een vereiste.

Elk bronsysteem kent een eigen lifecycle en een eigen cyclus met updates. Uitgefaseerde systemen krijgen vervangers in de vorm van nieuwe systemen. Dit betekent over het algemeen dat je de verversing van gegevens uit het uitgefaseerde systeem moet stoppen. Wat als het bronsysteem vervolgens niet meer beschikbaar is? Dan is de data uit dit systeem nog wel aanwezig in het datawarehouse, maar wordt die niet meer gemuteerd. Het is dan niet wenselijk om deze data steeds opnieuw te moeten verwerken. Het is ook verre van ideaal dat je in deze situatie data uit het nieuwe systeem moet halen en in de bestaande oplossing moet verwerken om de informatievoorziening zonder noemenswaardige veranderingen door te laten gaan.

Modulair datawarehouse

Een sterk modulair opgezet datawarehouse biedt uitkomst. Daarmee kun je de hierboven genoemde wijzigingen beheersbaar doorvoeren. De integratie van gegevens vanuit verschillende bronsystemen vindt zo laat mogelijk plaats (lees: als het echt niet later kan).

Daarnaast maakt deze modulaire opzet van het datawarehouse het makkelijker om de vraag om informatie van afnemers in te vullen. Veelal is de behoefte beperkt tot een extra gegeven uit een bronsysteem. In een nieuwe versie van het bronsysteem is een extra vinkje beschikbaar gekomen dat men bij de analyse wil gebruiken of er is een nieuwe vragenlijst ingericht waarover men wil rapporteren. Omdat de benodigde wijzigingen voor een groot deel tot de verwerking vanuit een bronsysteem beperkt blijven, is de samenhang met en de impact op andere onderdelen beperkt. Pas op het laatste moment in de gegevensverwerking wordt deze extra informatie toegevoegd in de informatielaag en aan de gebruikers beschikbaar gesteld. De noodzaak om te testen blijft hiermee vaak beperkt tot het testen van de verwerking vanuit dat ene systeem en de controle of het gegeven correct in de informatielaag is opgenomen.

Leerpunten

Met het oog op de ervaringen die ik hierboven beschreven heb, zijn dit de belangrijkste aandachtspunten bij het beheer en onderhoud van je datawarehouse:

  • Best practice is om per doeltabel een SSIS-package of een procedure te hebben. Organiseer de aansturing van de verwerking zo dat dit op detailniveau (het niveau van de doeltabel) gebeurt. Vergeet hierbij niet om afhankelijkheden tussen verwerkingen goed in te richten;
  • Wees kritisch op hoe je SSIS inzet. Vaak is het beter om de verwerking in de database te doen, bijvoorbeeld in een stored procedure. Die kun je als dat nodig is vanuit SSIS aansturen;
  • Richt de verwerking zo in dat bij een eventuele herstart alleen de verwerkingen draaien die eerder nog niet goed zijn afgerond;
  • Richt de verwerking zoveel mogelijk in per bronsysteem; vanaf het ophalen van de data tot en met het dimensioneel modelleren. Maak hier bovenop een laag waarbij je de informatie vanuit de verschillende systemen (zo mogelijk virtueel) integreert;
  • Haal alleen de gegevens uit je bronsysteem waar gebruikers om vragen. Alle overbodige gegevens die je meeneemt belasten namelijk het systeem en zorgen voor een langere doorlooptijd.

Herken je de uitdagingen rond het actueel houden van je datawarehouse? Dan hoop ik dat de (leer)ervaringen die ik hierboven met je heb gedeeld je goed van pas komen. En mocht je een keer met mij willen sparren over dit onderwerp, of je wil weten hoe Biyond jouw organisatie hierbij kan ondersteunen, neem dan gerust contact met mij op.

Richard Wiersma – Senior BI consultant

Terug naar alle blogs