Staging area
Wat is een staging area?
Een staging area is de tussenopslag waar ruwe data landt nadat ze uit de bronsystemen is getrokken en voor ze wordt bewerkt en in haar uiteindelijke bestemming geladen. Ze zit tussen de bronnen en het doel, meestal een data warehouse, een data mart of een data lake.
Zie het als het aanrecht tussen de boodschappentassen en het klaargemaakte gerecht. Je legt eerst alles uit, en dan pas was, snij en combineer je. Data rechtstreeks uit een live systeem in één beweging naar een volledig bewerkte tabel trekken is fragiel: de bron blijft langer bezet, en een fout halverwege laat een puinhoop achter. Eerst het ruwe extract laten landen maakt het ophalen snel en de bewerking herstartbaar.
In het vocabulaire van dimensioneel modelleren volgens de Kimball-methode hoort deze plek bij de back room van het warehouse: het deel dat gebruikers nooit zien, waar de data wordt klaargezet voor ze de presentatielaag bereikt.
Waarvoor dient een staging area?
De hoofdtaak is het ophalen loskoppelen van het bewerken. Zodra de ruwe data geland is, is het bronsysteem af, en kan de pijplijn rustig opschonen en omvormen zonder een verbinding open te houden.
Die scheiding levert je een paar praktische zaken op. Het ophalen kan op het ritme van de bron draaien en de bewerking op haar eigen ritme. Een mislukte lading kan je opnieuw draaien vanaf de geladen kopie in plaats van de bron opnieuw aan te spreken. En de geladen data geeft je een plek om records te profileren, te controleren en te vergelijken voor iets verderop ze vertrouwt.
Een staging area is bewust eenvoudig. De tabellen weerspiegelen vaak de structuur van de bron, met weinig meer dan een tijdstempel van de lading erbij. Het slimme modelleren naar een sterschema gebeurt na de staging, niet erin.
Tijdelijke versus blijvende staging
Hoelang de geladen data blijft leven, is de ontwerpkeuze die het meest uitmaakt.
Een tijdelijke staging area wordt bij elke run leeggemaakt. Ze wordt gewist voor of net na een geslaagde lading, dus ze bevat altijd alleen de batch die nu verwerkt wordt. Dat houdt de opslag klein en het ontwerp simpel, en het is de klassieke standaard wanneer het warehouse zelf de geschiedenis bijhoudt.
Een blijvende staging area bewaart elke versie die ze ooit ontving. In plaats van te overschrijven voegt elke lading toe, zodat de staginglaag mettertijd een volledige veranderingsgeschiedenis van de bron opbouwt. Die geschiedenis komt van pas als je tabellen verderop van nul wil heropbouwen, wil reconstrueren hoe een record er op een dag in het verleden uitzag, of wil herstellen van een fout in de bewerking zonder opnieuw op te halen uit een bron die de oude waarden niet meer bijhoudt. De prijs is opslag en de discipline om ze te beheren.
Waar staging in de pijplijn past
In een klassieke ETL-stroom wordt de data naar de staging area gehaald, daar of in een engine die eruit leest bewerkt, en dan in het warehouse geladen. Bij ELT landt de ruwe data eerst in het eigen stagingschema van het warehouse en draaien de bewerkingen daarna met de engine van het warehouse zelf.
De medallion-architectuur is hetzelfde idee onder andere namen. De bronzen laag is een landingsplek voor ruw binnengehaalde data en speelt de rol van staging, voor de zilveren en gouden laag ze opschonen en modelleren. Change data capture voedt staging vaak ook, en stuurt nieuwe, gewijzigde en verwijderde records naar de landingstabellen op het moment dat ze gebeuren.
Waar moet je op letten bij het gebruik van een staging area
Het is geen rapporteringslaag. Geladen tabellen zijn ruw en niet gemodelleerd. Zodra mensen dashboards beginnen te bouwen rechtstreeks op staging omdat het makkelijk is, lekt ongeteste en niet-afgestemde data in beslissingen.
Gevoelige data landt hier ook. Ruwe extracten kunnen persoonsgegevens of financiële velden onversleuteld meedragen. De staging area heeft dezelfde toegangsregels, maskering en bewaartermijnen nodig als de bestemming, niet minder omdat ze tijdelijk is.
Blijvende staging groeit stil aan. Elke lading toevoegen bouwt geschiedenis op die je misschien wil, en een opslagfactuur die je niet voorzien had. Beslis vooraf hoe ver je terug bewaart en handhaaf dat.
Een veranderende structuur breekt stille ladingen. Omdat staging meestal de bron weerspiegelt, kan een kolom die van type verandert of verdwijnt bovenstrooms een lading bederven zonder duidelijke fout. Controleer de structuur bij het binnenkomen in plaats van erop te vertrouwen dat de bron stil blijft staan.