De Data Vault-methodiek betekent in een aantal opzichten een radicale breuk met het datawarehouse-verleden. Hoe radicaal, merk je pas goed als je de ideeën eruit begint toe te passen. Dan kom je er ook achter dat je alleen ten volle profijt kunt trekken van dat nieuwe denken, als je je oude ideeën, aannamen en ervaring overboord durft te zetten.
Zo kan een vertrouwd concept als brononafhankelijkheid door een frisse benadering een geheel andere invulling krijgen.
Brononafhankelijkheid
Een datawarehouse moet (zo) brononafhankelijk (mogelijk) zijn: wijzigingen in de bronsystemen moeten zoveel mogelijk worden losgekoppeld van wijzigingen in de BI-omgeving.
Traditioneel wordt het datamodel van het centrale datawarehouse beschouwd als een belangrijke enabler voor brononafhankelijkheid. Het is een best practice om dit model niet te baseren op de datamodellen van de bronnen, maar op bedrijfsmodellen: informatiemodellen die de kern van het bedrijfsproces weten te vangen, ongeacht hoe dat proces op enig moment geïmplementeerd is. Daardoor wordt het datawarehouse-model in zekere mate generiek: er wordt als het ware op voorhand al rekening gehouden met toekomstige wijzigingen in de bron, zodat die geen aanpassing van het datamodel vereisen. Aanpassing van het ETL-proces is echter niet te vermijden, de brongegevens moeten immers omgevormd worden naar het generieke model.
Omslag
De Data Vault-aanpak staat daar haaks op. Er wordt geen poging gedaan om achterliggende bedrijfsprincipes te achterhalen en de feiten daar naartoe te modelleren: de feiten worden vastgelegd zoals ze binnenkomen. Op basis van een set vuistregels wordt een Data Vault-variant van het bronmodel geconstrueerd (en ook de ETL daar naartoe kan op die manier bepaald worden), maar inhoudelijk wordt er niets gewijzigd aan de gemodelleerde begrippen.
Met andere woorden: een Data Vault wordt volledig bronafhankelijk gemodelleerd!
Dat druist lijnrecht in tegen alles wat we weten over datawarehousing. In mijn huidige opdracht ben ik heel lang bezig geweest om die brongestuurde modellering te verenigen met het idee van een generiek datawarehouse-datamodel – we willen toch brononafhankelijkheid? Nou dan!
Totdat ik me realiseerde dat het in de Data Vault-architectuur zinloos is (zo niet contraproductief) om het centraal datawarehouse generiek te modelleren, omdat het in de overall omgeving een totaal andere rol speelt dan bij de traditionele aanpak.
Een andere kijk op het datawarehouse
We zijn gewend het centrale datawarehouse te beschouwen als de kern van de totale datawarehouse-omgeving, dé plek waar het allemaal gebeurt. Binnenkomende brongegevens worden onderweg naar het centrale datawarehouse omgemodelleerd, losgekoppeld van de bron, geïntegreerd, geschoond, etc. Het zwaartepunt van de processing, de “Big T” (als in: Transformatie met een grote T) bevindt zich dus aan de ingang van het datawarehouse.
In de Data Vault-architectuur daarentegen, speelt het centrale datawarehouse eigenlijk maar een ondergeschikte rol. De Big T, die in deze architectuur tussen het datawarehouse en de datamarts is gepositioneerd, is de kern van een Data Vault-datawarehouse: daar voeren we alle business logica uit, daar integreren we, daar schonen we.
En daar ligt ook het ontkoppelpunt met de bronnen. Als de bronnen wijzigen, moeten de gewijzigde gegevens nog steeds probleemloos ingelezen kunnen worden in het datawarehouse; maar wat er daarna mee gebeurt, wordt volledig bepaald in de Big T. Geheel in lijn met de Data Vault-principes, worden ook de gewijzigde gegevens niet zonder meer automatisch doorgeladen naar de datamart, maar alleen als de gebruiker daarom vraagt.
Impact
Maar als het ontkoppelpunt tussen bronnen en BI-omgeving binnen het datawarehouse komt te liggen, hebben bronwijzigingen toch wel degelijk impact op het datawarehouse-model?
Jawel – maar hoe erg is dat eigenlijk? Laten we eens bekijken hoe een en ander in de praktijk uitpakt.
Om de gewijzigde brongegevens in te passen in het datawarehouse-model, halen we ze door de modelleringsregels van de Data Vault: we zetten ze rechtstreeks om naar corresponderende hubs, satellites of links. (Een bronaanpassing zul je in een Data Vault vaak terugzien als nieuwe attributen in een bestaande satellite, of als nieuwe links en satellites die worden toegevoegd tussen de bestaande structuren.) Daardoor kan ook de ETL-verwerking het datawarehouse in rechttoe-rechtaan zijn; de gegevens kunnen vrijwel 1:1 geladen worden. (Dit deel van de ETL kan zelfs gegenereerd worden.)
De Big T, het meest complexe proces, hoeven we pas aan te passen als de gebruikers de gegevens in de BI-omgeving willen zien. Die klus doen we in ons eigen tempo, los van de bronwijziging.
Ook in een traditionele omgeving moet het ETL-proces aangepast worden. Maar daar wordt de zwaarste verwerking al aan de ingang van het datawarehouse gedaan: willen we dus de nieuwe gegevens überhaupt kunnen laden, dan hebben we geen andere keus dan direct de Big T onder handen te nemen – ook als we de nieuwe gegevens nog niet naar de datamarts hoeven door te zetten. En voor het uitvoeren van die complexe aanpassing, hebben we dan ook nog de releasedatum van het bronsysteem als deadline – want zodra de nieuwe interface operationeel wordt, moet het datawarehouse deze netjes kunnen verwerken, anders loopt het ETL-proces stuk.
Oftewel: in een Data Vault moet het datawarehouse-model weliswaar aangepast worden, maar de totale impact op de datawarehouse-omgeving is een stuk beter te beheren en beheersen. En dat is toch uiteindelijk de reden waarom we brononafhankelijkheid nastreven.
Trackback URI: http://blog.grey-matter.nl/data-vault-en-brononafhankelijkheid/trackback/Back to home page
« Ongestructureerde gegevens: zin of... De rol van het datamodel in het... »
Ik ben Lidwine van As, sinds 1994 werkzaam in de IT, en actief als 







