
Database ontwikkelaars met een Oracle achtergrond vragen zich wel eens af of je voor een datawarehouse project de verschillende staging databases, het datawarehouse zelf en de verschillende datamarts niet zou moeten samenvoegen in één database en daarin gebruik zou moeten maken van schemas om ze functioneel te scheiden. De vraag komt voort uit het feit dat in Oracle iedere database een aparte Oracle instance is. Die eigen resources gebruikt en dus “duur” is. Letterlijk duur wanneer je database omgeving gehost wordt door een derde partij.
In SQL Server hebben we dit ‘probleem’ niet. Het aanmaken van extra databases is niet ‘duurder’ dan het gebruik van schemas in één database. En daarmee is mijn antwoord op de vraag ‘wat is beter’ in de context van een datawarehouse project: gescheiden databases gebruiken. Mijn motivatie daarin is dat ik hou van zo klein mogelijke, ‘loosely coupled’ componenten die zoveel mogelijk onafhankelijk kunnen worden gebruikt. Op die manier kun je veel makkelijker een datamart weggooien of verplaatsen of een hele staging area leeggooien. Of het datawarehouse tijdelijk detachen voor onderhoud terwijl alle datamarts nog beschikbaar zijn. Ik zou schemas hooguit binnen een datawarehouse gebruiken om bepaalde functionele gebieden binnen dat datawarehouse af te bakenen van andere gebieden. Maar het is maar een mening…
One comment
Vind ik legitiem wat je schrijft, ik gebruik ook gescheiden databases.
Wat wel lastig is, is dat je de relaties kwijt raakt tussen de objecten onderling. Verwijs je bijvoorbeeld vanuit je integratie met een view naar je staging database dan gaat het prima. Maar druk je op “view dependencies” dan zie je de relatie niet tussen de view en de tabel in die andere database (althans in 2005). Bij schemas zou je dat wel zien.
Ook een programma als BI-documenter doet dat niet wat errug jammer is. De metadata blijft toch behelpen bij veel produkten vooral de grote spelers (http://www.dbm.nl/Blogs/59977/Blijft-metadata-het-kind-van-de-rekening-), wellicht wachten op SQLServerModelling (waarvan de CTP uit is), dat wordt nl. een sterke metadata hub van het gehele MS platform :-)!
Johan