Het is tamelijk gebruikelijk om naast een centraal datapakhuis (datawarehouse), waarin alle gegevens voor rapportage verzameld worden, enkele datamarts op te bouwen.
In deze ‘markten’ krijgen gegevens de juiste vorm en het aggregatieniveau dat voor bepaalde groepen gebruikers ideaal is. Meestal bevat een datamart ook alleen die gegevens die voor die groep relevant is, ofwel elk datamart bevat een deelverzameling aan gegevens van het centrale datawarehouse. Er zijn ook organisaties die alleen datamarts ontwikkelen, zonder centraal datawarehouse. Dit is zeker een mogelijkheid. De uitdaging om gegevens in de verschillende datamarts consistent te houden is dan wel wat groter.
Laten we in dit artikel uitgaan van die eerste benadering. Deze kent enkele nadelen. Ten eerste worden veel gegevens meerdere malen opgeslagen. Gegevens in elk datamart komen ook voor in het datawarehouse en er zal ook overlap zijn in de gegevens van de verschillende datamarts.
Een groter nadeel is echter dat er meer ‘lagen’ met gegevens bestaan. Als het aantal gegevenslagen in een datawarehouse-architectuur groeit, ontstaan weer extra problemen. De totale architectuur wordt steeds complexer en er zijn steeds meer kopieerslagen nodig om de gegevens bij de gebruikers te krijgen. Eerst moeten ze van de operationele systemen naar het datawarehouse gebracht worden, daarna van het warehouse naar de datamarts, soms van de datamarts naar allerlei cubes en dan pas komen de gegevens terecht in de rapporten en zijn ze toegankelijk voor de gebruikers.
Een ander nadeel is dat als we iets in de rapporten willen veranderen, op vele plaatsen specificaties moeten aanpassen. Kopieerslagen moeten aangepast worden, tabelstructuren moeten veranderd worden. Dit alles vermindert de reactiesnelheid, ofwel de time-to-market. Gebruikers moeten steeds langer wachten tot de veranderingen gerealiseerd zijn. En dan hebben we het nog niet eens over de toename van beheerscomplexiteit als het aantal gegevenslagen toeneemt.
Een volgend nadeel is dat het steeds langer duurt voordat gegevensveranderingen in de operationele systemen zichtbaar worden in de rapporten. En dat strookt niet met de wensen van de hedendaagse organisaties.
Het zou uiteraard fantastisch zijn als we de rapporten direct kunnen voeden met gegevens uit de operationele systemen, maar dat zal voor veel organisaties vandaag de dag nog geen optie zijn. Toch moet men er naar streven de complexiteit van de architectuur zo simpel mogelijk te houden en het aantal gegevenslagen te minimaliseren. Waar kunnen we dat onder andere doen: bij de datamarts.
Bekende databaseservers als IBM’s DB2, Microsofts SQL Server en Oracle’s Oracle10g worden steeds krachtiger. Steeds meer functionaliteit wordt toegevoegd om Olap-achtige queries te versnellen. Denk hierbij aan bitmap indexen, compressie van opgeslagen gegevens, Olap-extensies in SQL, Olap-cubes in de relationele databaseserver, datamining algoritmes geïntegreerd met SQL en in-memory databasetechnologie. De leveranciers zitten niet stil. Queries die vijf jaar geleden minuten duurden, draaien nu in seconden.
Maken we ons leven niet eenvoudiger door de datamarts virtueel te implementeren? Door middel van zogenaamde views kunnen we de datamarts simuleren zonder dat gegevens gekopieerd worden. Hierdoor is er geen extra kopieerslag nodig en wordt de time-to-market verbeterd. We kunnen eenvoudiger veranderingen doorvoeren en gegevens zijn sneller beschikbaar voor de gebruikers. Ook het bewaken van de gegevensconsistentie is eenvoudiger, omdat alle gegevens maar één keer opgeslagen liggen, namelijk in het datawarehouse. Veranderen die gegevens, dan veranderen automatisch de virtuele views.
Misschien wordt het eens tijd dat we dit alternatief serieuzer gaan bekijken. Te snel laten we ons verleiden tot het opbouwen van extra gegevenslagen. Ik denk dat het in veel situaties niet nodig is en dat we met virtuele datamarts hetzelfde effect kunnen bereiken. Dergelijke datamarts zijn veelsneller en eenvoudiger te onderhouden en goedkoper.
Rick F. van der Lans is onafhankelijk adviseur, een internationaal bekend spreker en auteur van diverse boeken, tevens gespecialiseerd in softwareontwikkeling, datawarehousing en internet.